Package io.dapr.actors.runtime

# Class AbstractActor

java.lang.Object
io.dapr.actors.runtime.AbstractActor

public abstract class AbstractActor extends Object
Represents the base class for actors. The base type for actors, that provides the common functionality for actors. The state is preserved across actor garbage collections and fail-overs.

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`AbstractActor(ActorRuntimeContext runtimeContext, ActorId id)`
Instantiates a new Actor.

## Method Summary

Modifier and Type
Method
Description
`protected ActorStateManager`
`getActorStateManager()`
Returns the state store manager for this Actor.
`protected ActorId`
`getId()`
Returns the id of the actor.
`protected reactor.core.publisher.Mono<Void>`
`onActivate()`
Callback function invoked after an Actor has been activated.
`protected reactor.core.publisher.Mono<Void>`
`onDeactivate()`
Callback function invoked after an Actor has been deactivated.
`protected reactor.core.publisher.Mono<Void>`
`onPostActorMethod(ActorMethodContext actorMethodContext)`
Callback function invoked after method is invoked.
`protected reactor.core.publisher.Mono<Void>`
`onPreActorMethod(ActorMethodContext actorMethodContext)`
Callback function invoked before method is invoked.
`protected <T> reactor.core.publisher.Mono<String>`
`registerActorTimer(String timerName, String callback, T state, Duration dueTime, Duration period)`
Registers a Timer for the actor.
`protected <T> reactor.core.publisher.Mono<Void>`
`registerReminder(String reminderName, T state, Duration dueTime, Duration period)`
Registers a reminder for this Actor.
`protected reactor.core.publisher.Mono<Void>`
`saveState()`
Saves the state of this Actor.
`protected reactor.core.publisher.Mono<Void>`
`unregisterReminder(String reminderName)`
Unregisters a Reminder.
`protected reactor.core.publisher.Mono<Void>`
`unregisterTimer(String timerName)`
Unregisters an Actor timer.

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

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

## Constructor Details

### AbstractActor

protected AbstractActor(ActorRuntimeContext runtimeContext, ActorId id)
Instantiates a new Actor.

Parameters:
  `runtimeContext` - Context for the runtime.
  `id` - Actor identifier.

## Method Details

### getId

protected ActorId getId()
Returns the id of the actor.

Returns:
  Actor id.

### getActorStateManager

protected ActorStateManager getActorStateManager()
Returns the state store manager for this Actor.

Returns:
  State store manager for this Actor

### registerReminder

protected <T> reactor.core.publisher.Mono<Void> registerReminder(String reminderName, T state, Duration dueTime, Duration period)
Registers a reminder for this Actor.

Type Parameters:
  `T` - Type of the state object.
Parameters:
  `reminderName` - Name of the reminder.
  `state` - State to be send along with reminder triggers.
  `dueTime` - Due time for the first trigger.
  `period` - Frequency for the triggers.
Returns:
  Asynchronous void response.

### registerActorTimer

protected <T> reactor.core.publisher.Mono<String> registerActorTimer(String timerName, String callback, T state, Duration dueTime, Duration period)
Registers a Timer for the actor. A timer name is autogenerated by the runtime to keep track of it.

Type Parameters:
  `T` - Type for the state to be passed in to timer.
Parameters:
  `timerName` - Name of the timer, unique per Actor (auto-generated if null).
  `callback` - Name of the method to be called.
  `state` - State to be passed it to the method when timer triggers.
  `dueTime` - The amount of time to delay before the async callback is first invoked. Specify negative one (-1) milliseconds to prevent the timer from starting. Specify zero (0) to start the timer immediately.
  `period` - The time interval between invocations of the async callback. Specify negative one (-1) milliseconds to disable periodic signaling.
Returns:
  Asynchronous result with timer's name.

### unregisterTimer

protected reactor.core.publisher.Mono<Void> unregisterTimer(String timerName)
Unregisters an Actor timer.

Parameters:
  `timerName` - Name of Timer to be unregistered.
Returns:
  Asynchronous void response.

### unregisterReminder

protected reactor.core.publisher.Mono<Void> unregisterReminder(String reminderName)
Unregisters a Reminder.

Parameters:
  `reminderName` - Name of Reminder to be unregistered.
Returns:
  Asynchronous void response.

### onActivate

protected reactor.core.publisher.Mono<Void> onActivate()
Callback function invoked after an Actor has been activated.

Returns:
  Asynchronous void response.

### onDeactivate

protected reactor.core.publisher.Mono<Void> onDeactivate()
Callback function invoked after an Actor has been deactivated.

Returns:
  Asynchronous void response.

### onPreActorMethod

protected reactor.core.publisher.Mono<Void> onPreActorMethod(ActorMethodContext actorMethodContext)
Callback function invoked before method is invoked.

Parameters:
  `actorMethodContext` - Method context.
Returns:
  Asynchronous void response.

### onPostActorMethod

protected reactor.core.publisher.Mono<Void> onPostActorMethod(ActorMethodContext actorMethodContext)
Callback function invoked after method is invoked.

Parameters:
  `actorMethodContext` - Method context.
Returns:
  Asynchronous void response.

### saveState

protected reactor.core.publisher.Mono<Void> saveState()
Saves the state of this Actor.

Returns:
  Asynchronous void response.