# ActorRuntime (dapr-sdk-parent 1.10.0 API)

Package io.dapr.actors.runtime

## Class ActorRuntime

- java.lang.Object
- - io.dapr.actors.runtime.ActorRuntime

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`

    public class ActorRuntime
    extends Object
    implements Closeable

Contains methods to register actor types. Registering the types allows the runtime to create instances of the actor.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`void` `close()`
`reactor.core.publisher.Mono<Void>` `deactivate​(String actorTypeName, String actorId)` Deactivates an actor for an actor type with given actor id.
`ActorRuntimeConfig` `getConfig()` Gets the Actor configuration for this runtime.
`static ActorRuntime` `getInstance()` Returns an ActorRuntime object.
`reactor.core.publisher.Mono<byte[]>` `invoke​(String actorTypeName, String actorId, String actorMethodName, byte[] payload)` Invokes the specified method for the actor, this is mainly used for cross language invocation.
`reactor.core.publisher.Mono<Void>` `invokeReminder​(String actorTypeName, String actorId, String reminderName, byte[] params)` Fires a reminder for the Actor.
`reactor.core.publisher.Mono<Void>` `invokeTimer​(String actorTypeName, String actorId, String timerName, byte[] params)` Fires a timer for the Actor.
`<T extends AbstractActor> void` `registerActor​(Class<T> clazz)` Registers an actor with the runtime, using `DefaultObjectSerializer` and `DefaultActorFactory`.
`<T extends AbstractActor> void` `registerActor​(Class<T> clazz, ActorFactory<T> actorFactory)` Registers an actor with the runtime, using `DefaultObjectSerializer`.
`<T extends AbstractActor> void` `registerActor​(Class<T> clazz, ActorFactory<T> actorFactory, DaprObjectSerializer objectSerializer, DaprObjectSerializer stateSerializer)` Registers an actor with the runtime.
`<T extends AbstractActor> void` `registerActor​(Class<T> clazz, DaprObjectSerializer objectSerializer, DaprObjectSerializer stateSerializer)` Registers an actor with the runtime.
`byte[]` `serializeConfig()` Gets the Actor configuration for this runtime.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Method Detail

#### getInstance

    public static ActorRuntime getInstance()

Returns an ActorRuntime object.

Returns:
  An ActorRuntime object.

#### getConfig

    public ActorRuntimeConfig getConfig()

Gets the Actor configuration for this runtime.

Returns:
  Actor configuration.

#### serializeConfig

    public byte[] serializeConfig()
                           throws IOException

Gets the Actor configuration for this runtime.

Returns:
  Actor configuration serialized.
Throws:
  `IOException` - If cannot serialize config.

#### registerActor

    public <T extends AbstractActor> void registerActor​(Class<T> clazz)

Registers an actor with the runtime, using `DefaultObjectSerializer` and `DefaultActorFactory`. `DefaultObjectSerializer` is not recommended for production scenarios.

Type Parameters:
  `T` - Actor class type.
Parameters:
  `clazz` - The type of actor.

#### registerActor

    public <T extends AbstractActor> void registerActor​(Class<T> clazz,
                                                        ActorFactory<T> actorFactory)

Registers an actor with the runtime, using `DefaultObjectSerializer`. `DefaultObjectSerializer` is not recommended for production scenarios.

Type Parameters:
  `T` - Actor class type.
Parameters:
  `clazz` - The type of actor.
  `actorFactory` - An optional factory to create actors. This can be used for dependency injection.

#### registerActor

    public <T extends AbstractActor> void registerActor​(Class<T> clazz,
                                                        DaprObjectSerializer objectSerializer,
                                                        DaprObjectSerializer stateSerializer)

Registers an actor with the runtime.

Type Parameters:
  `T` - Actor class type.
Parameters:
  `clazz` - The type of actor.
  `objectSerializer` - Serializer for Actor's request and response objects.
  `stateSerializer` - Serializer for Actor's state objects.

#### registerActor

    public <T extends AbstractActor> void registerActor​(Class<T> clazz,
                                                        ActorFactory<T> actorFactory,
                                                        DaprObjectSerializer objectSerializer,
                                                        DaprObjectSerializer stateSerializer)

Registers an actor with the runtime.

Type Parameters:
  `T` - Actor class type.
Parameters:
  `clazz` - The type of actor.
  `actorFactory` - An optional factory to create actors. This can be used for dependency injection.
  `objectSerializer` - Serializer for Actor's request and response objects.
  `stateSerializer` - Serializer for Actor's state objects.

#### deactivate

    public reactor.core.publisher.Mono<Void> deactivate​(String actorTypeName,
                                                        String actorId)

Deactivates an actor for an actor type with given actor id.

Parameters:
  `actorTypeName` - Actor type name to deactivate the actor for.
  `actorId` - Actor id for the actor to be deactivated.
Returns:
  Async void task.

#### invoke

    public reactor.core.publisher.Mono<byte[]> invoke​(String actorTypeName,
                                                      String actorId,
                                                      String actorMethodName,
                                                      byte[] payload)

Invokes the specified method for the actor, this is mainly used for cross language invocation.

Parameters:
  `actorTypeName` - Actor type name to invoke the method for.
  `actorId` - Actor id for the actor for which method will be invoked.
  `actorMethodName` - Method name on actor type which will be invoked.
  `payload` - RAW payload for the actor method.
Returns:
  Response for the actor method.

#### invokeReminder

    public reactor.core.publisher.Mono<Void> invokeReminder​(String actorTypeName,
                                                            String actorId,
                                                            String reminderName,
                                                            byte[] params)

Fires a reminder for the Actor.

Parameters:
  `actorTypeName` - Actor type name to invoke the method for.
  `actorId` - Actor id for the actor for which method will be invoked.
  `reminderName` - The name of reminder provided during registration.
  `params` - Params for the reminder.
Returns:
  Async void task.

#### invokeTimer

    public reactor.core.publisher.Mono<Void> invokeTimer​(String actorTypeName,
                                                         String actorId,
                                                         String timerName,
                                                         byte[] params)

Fires a timer for the Actor.

Parameters:
  `actorTypeName` - Actor type name to invoke the method for.
  `actorId` - Actor id for the actor for which method will be invoked.
  `timerName` - The name of timer provided during registration.
  `params` - Params to trigger timer.
Returns:
  Async void task.

#### close

    public void close()

Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in interface `Closeable`