MicoleAgentThread Class Reference
[Core]

#include <MicoleAgentThread.h>

Inherits MicoleAgent, and lo2k::Thread.

Inherited by DServerAgent, FF3DDeviceSenderAgent [private], MouseSenderAgent, NetworkAgent [private], ServerAgent, and TimerAgent.

Collaboration diagram for MicoleAgentThread:

Collaboration graph
[legend]
List of all members.

Detailed Description

Threaded version of MicoleAgent MicoleAgentThread provide easy thread use with a classic run and start method.

See also:
MicoleAgent

Definition at line 42 of file MicoleAgentThread.h.

Public Member Functions

 ~MicoleAgentThread ()
AgentState getState ()
virtual void run ()=0
 the run method inherited from Thread, agent is started using Thread's start() method.
virtual void start ()
 start the thread
string getAgentName ()
string getAgentType ()
void onApplicationConnected (MicoleBus *app)
void onApplicationDisconnected (MicoleBus *app)
void handlePingMessage (MicoleBus *app, int argc, const char **argv)
void handleQuitMessage (MicoleBus *app, int argc, const char **argv)
void handleSuspendMessage (MicoleBus *app, int argc, const char **argv)
void handleResumeMessage (MicoleBus *app, int argc, const char **argv)
void handleRegisterReply (MicoleBus *app, int argc, const char **argv)
void handleStartMessage (MicoleBus *app, int argc, const char **argv)
void handlePrintIDMessage (MicoleBus *app, int argc, const char **argv)
int sendMessage (const char *message)
 Sends a message using bus->SendMsg.
int sendMessage (const string message)
 Sends a message using bus->SendMsg.
void sendMessage (const char *to, const char *message)
 Sends a message to the MicoleBus *app by calling app->SendMsg(const char *message) The message goes only to agent specified by const char *to.

Static Public Member Functions

static threadid getthreadid ()
 return thread identifier
static void sleep (long milliseconds=1)
 sleep the thread

Protected Member Functions

void suspendAgent ()
 Suspends the agent.
void resumeAgent ()
 Resumes the agent.
virtual void stopAgent ()
 Gives inheriting class a chance to save state when the agent receives Quit-message.
 MicoleAgentThread (const string &name, const string &type, const char *domain="127.255.255.255:2010")
 Default constructor.
int bindMessage (const char *regexp, MicoleCallback *cb)
 Binds a callback method to bus.
void unBindMessage (int messageId)
void unBindMessage (MicoleBinding &binding)
void obtainIdentifier ()
 Obtains identifier from the RegistryAgent.

Protected Attributes

vector< MicoleBindingbindings
AgentState state
int resumeId

Static Protected Attributes

static MicoleBusbus = 0


Constructor & Destructor Documentation

MicoleAgentThread::~MicoleAgentThread (  ) 

Definition at line 44 of file MicoleAgentThread.cpp.

MicoleAgentThread::MicoleAgentThread ( const string &  name,
const string &  type,
const char *  domain = "127.255.255.255:2010" 
) [protected]

Default constructor.

Parameters:
name agent name
type agent type (not used for the moment)
domain ip and port where the agent listen

Definition at line 29 of file MicoleAgentThread.cpp.


Member Function Documentation

int MicoleAgent::bindMessage ( const char *  regexp,
MicoleCallback cb 
) [protected, inherited]

Binds a callback method to bus.

When a message that satisfies condition given in *regexp is received, the call back method is called by the bus. Methods that are bound with this message are not called when the agent is SUSPENDED. Methods that are bound using bus->BindMsg() are called also when the agent's state is SUSPENDED.

Definition at line 88 of file MicoleAgent.cpp.

string MicoleAgent::getAgentName (  )  [inherited]

Definition at line 62 of file MicoleAgent.cpp.

string MicoleAgent::getAgentType (  )  [inherited]

Definition at line 67 of file MicoleAgent.cpp.

AgentState MicoleAgentThread::getState (  ) 

Definition at line 39 of file MicoleAgentThread.cpp.

static threadid lo2k::Thread::getthreadid (  )  [inline, static, inherited]

return thread identifier

Returns:
identifier

Definition at line 85 of file Lo2kThread.h.

void MicoleAgent::handlePingMessage ( MicoleBus app,
int  argc,
const char **  argv 
) [inherited]

Definition at line 130 of file MicoleAgent.cpp.

void MicoleAgent::handlePrintIDMessage ( MicoleBus app,
int  argc,
const char **  argv 
) [inherited]

Definition at line 180 of file MicoleAgent.cpp.

void MicoleAgent::handleQuitMessage ( MicoleBus app,
int  argc,
const char **  argv 
) [inherited]

Reimplemented in RegistryAgent, and SoundPlayerAgent.

Definition at line 111 of file MicoleAgent.cpp.

void MicoleAgent::handleRegisterReply ( MicoleBus app,
int  argc,
const char **  argv 
) [inherited]

Definition at line 138 of file MicoleAgent.cpp.

void MicoleAgent::handleResumeMessage ( MicoleBus app,
int  argc,
const char **  argv 
) [inherited]

Definition at line 105 of file MicoleAgent.cpp.

void MicoleAgent::handleStartMessage ( MicoleBus app,
int  argc,
const char **  argv 
) [inherited]

Definition at line 175 of file MicoleAgent.cpp.

void MicoleAgent::handleSuspendMessage ( MicoleBus app,
int  argc,
const char **  argv 
) [inherited]

Definition at line 99 of file MicoleAgent.cpp.

void MicoleAgent::obtainIdentifier (  )  [protected, inherited]

Obtains identifier from the RegistryAgent.

Definition at line 185 of file MicoleAgent.cpp.

void MicoleAgent::onApplicationConnected ( MicoleBus app  )  [inherited]

void MicoleAgent::onApplicationDisconnected ( MicoleBus app  )  [inherited]

void MicoleAgentThread::resumeAgent (  )  [protected, virtual]

Resumes the agent.

Re-binds all callback methods.

Reimplemented from MicoleAgent.

Definition at line 88 of file MicoleAgentThread.cpp.

virtual void MicoleAgentThread::run (  )  [pure virtual]

the run method inherited from Thread, agent is started using Thread's start() method.

This is an abstract function, must be implemented in inherited classes.

Implements lo2k::Thread.

Implemented in DServerAgent, MouseSenderAgent, NetworkAgent, ServerAgent, and TimerAgent.

void MicoleAgent::sendMessage ( const char *  to,
const char *  message 
) [inherited]

Sends a message to the MicoleBus *app by calling app->SendMsg(const char *message) The message goes only to agent specified by const char *to.

The receiving agent must have appropriate regexp bound to process the message.

int MicoleAgent::sendMessage ( const string  message  )  [inherited]

Sends a message using bus->SendMsg.

The message goes to all agents.

Definition at line 79 of file MicoleAgent.cpp.

int MicoleAgent::sendMessage ( const char *  message  )  [inherited]

Sends a message using bus->SendMsg.

The message goes to all agents.

Definition at line 72 of file MicoleAgent.cpp.

static void lo2k::Thread::sleep ( long  milliseconds = 1  )  [inline, static, inherited]

sleep the thread

Parameters:
milliseconds milliseconds

Definition at line 98 of file Lo2kThread.h.

void MicoleAgentThread::start (  )  [virtual]

start the thread

Reimplemented from lo2k::Thread.

Definition at line 56 of file MicoleAgentThread.cpp.

void MicoleAgentThread::stopAgent (  )  [protected, virtual]

Gives inheriting class a chance to save state when the agent receives Quit-message.

Reimplemented from MicoleAgent.

Definition at line 102 of file MicoleAgentThread.cpp.

void MicoleAgentThread::suspendAgent (  )  [protected, virtual]

Suspends the agent.

Unbinds all callback methods that are bound using MicoleAgent::bindMessage()

Reimplemented from MicoleAgent.

Definition at line 77 of file MicoleAgentThread.cpp.

void MicoleAgent::unBindMessage ( MicoleBinding binding  )  [protected, inherited]

void MicoleAgent::unBindMessage ( int  messageId  )  [protected, inherited]


Member Data Documentation

vector<MicoleBinding> MicoleAgent::bindings [protected, inherited]

Definition at line 158 of file MicoleAgent.h.

MicoleBus * MicoleAgent::bus = 0 [static, protected, inherited]

Definition at line 156 of file MicoleAgent.h.

int MicoleAgent::resumeId [protected, inherited]

Definition at line 160 of file MicoleAgent.h.

AgentState MicoleAgent::state [protected, inherited]

Definition at line 159 of file MicoleAgent.h.


The documentation for this class was generated from the following files:
Generated on Tue Oct 16 17:10:59 2007 for Micole by  doxygen 1.4.7