# ri > Concurrent::Actor::AbstractContext

## [Concurrent::Actor::AbstractContext](https://www.chedong.com/phpMan.php/perldoc/Concurrent%3A%3AActor%3A%3AAbstractContext/markdown) < Object

------------------------------------------------------------------------
## Includes:
(from /home/chedong/.local/share/rdoc)
  TypeCheck
  InternalDelegations

(from /home/chedong/.local/share/rdoc)
------------------------------------------------------------------------
New actor is defined by subclassing {RestartingContext}, {Context} and
defining its abstract methods. {AbstractContext} can be subclassed
directly to implement more specific behaviour see {Root} implementation.

* {Context}

  > {include:[Actor::Context](https://www.chedong.com/phpMan.php/perldoc/Actor%3A%3AContext/markdown)}

* {RestartingContext}.

  > {include:[Actor::RestartingContext](https://www.chedong.com/phpMan.php/perldoc/Actor%3A%3ARestartingContext/markdown)}

Example of ac actor definition:

{include:file:docs-source/actor/define.out.rb}

See methods of {AbstractContext} what else can be tweaked, e.g
{AbstractContext#default_reference_class}

@abstract implement {AbstractContext#on_message} and
{AbstractContext#behaviour_definition}
------------------------------------------------------------------------
## Class methods:

  spawn
  spawn!
  to_spawn_options

## Instance methods:

  <<
  ask
  ask!
  behaviour_definition
  core
  dead_letter_routing
  default_executor
  default_reference_class
  envelope
  on_envelope
  on_event
  on_message
  pass
  tell

## Attributes:

  attr_reader core

