pub struct LuaActor {
pub recipients: HashMap<String, Recipient<LuaMessage>>,
/* private fields */
}
Expand description
Top level struct which holds a lua state for itself.
It provides most of the actix context API to the lua enviroment.
You can create new LuaActor
with LuaActorBuilder
.
ctx.msg
The message sent to Lua actor.
ctx.notify(msg)
Send message msg
to self.
ctx.notify_later(msg, seconds)
Send message msg
to self after specified period of time.
local recipient = ctx.new_actor(script_path, [actor_name])
Create a new actor with given lua script. returns a recipient which can be used in ctx.send
and ctx.do_send
.
local result = ctx.send(recipient, msg)
Send message msg
to `recipient asynchronously and wait for response.
Calling ctx.send
yield the current coroutine and returns a ThreadYield(thread_id)
message.
LuaActor will wait for the response and resume the yielded coroutine once the response is returned.
Equivalent to actix::Recipient.send
.
ctx.do_send(recipient, msg)
Send message msg
to recipient
.
Equivalent to actix::Recipient.do_send
.
ctx.terminate()
Terminate actor execution.
Fields
recipients: HashMap<String, Recipient<LuaMessage>>
Implementations
sourceimpl LuaActor
impl LuaActor
pub fn new_with_vm(
vm: Lua,
started: Option<String>,
handle: Option<String>,
stopped: Option<String>
) -> Result<LuaActor, LuaError>
pub fn new(
started: Option<String>,
handle: Option<String>,
stopped: Option<String>
) -> Result<LuaActor, LuaError>
sourcepub fn add_recipients(
&mut self,
name: &str,
rec: Recipient<LuaMessage>
) -> Option<Recipient<LuaMessage>>
pub fn add_recipients(
&mut self,
name: &str,
rec: Recipient<LuaMessage>
) -> Option<Recipient<LuaMessage>>
Add a recipient to the actor’s recipient list.
You can send message to the recipient via name
with the context API ctx.send(name, message)
Trait Implementations
sourceimpl Actor for LuaActor
impl Actor for LuaActor
sourcefn started(&mut self, ctx: &mut Context<Self>)
fn started(&mut self, ctx: &mut Context<Self>)
sourcefn stopped(&mut self, ctx: &mut Context<Self>)
fn stopped(&mut self, ctx: &mut Context<Self>)
sourcefn stopping(&mut self, ctx: &mut Self::Context) -> Running
fn stopping(&mut self, ctx: &mut Self::Context) -> Running
Actor::Stopping
state. There
could be several reasons for stopping. Context::stop
get called
by the actor itself. All addresses to current actor get dropped and
no more evented objects left in the context. Read more