Requirements on HandlerFactory:. More...
#include <actorpool.h>
Classes | |
class | Actor |
Public Types | |
typedef HandlerFactory::Handler | Handler |
typedef Handler::argument_type | Message |
typedef Handler::result_type | Reply |
typedef MailBox< Reply > | ReplyBox |
typedef std::pair< Message, ReplyBox * > | MessageReply |
Public Member Functions | |
ActorPool (const std::string &name, HandlerFactory &factory, size_t n_threads, size_t max_capacity=0, unsigned int min_debug_level=0, Debugable *debug_master=0) | |
~ActorPool () | |
int | main () |
Main function of thread. | |
void | request (const Message &m, ReplyBox *r=0) |
const std::string & | name () const |
Private Attributes | |
const std::string | name_ |
HandlerFactory & | factory_ |
size_t | n_threads_ |
std::vector< Actor * > | actors_ |
MailBox< MessageReply > | mbox_ |
Requirements on HandlerFactory:.
class HandlerFactory { class Handler: public std::unary_function<Message, Reply> { Reply operator()(const Message&); } Handler* create() ; // create and start new worker void work(); // do something useful or sleep(2) };
typedef HandlerFactory::Handler Dv::Thread::ActorPool< HandlerFactory >::Handler |
typedef Handler::argument_type Dv::Thread::ActorPool< HandlerFactory >::Message |
typedef Handler::result_type Dv::Thread::ActorPool< HandlerFactory >::Reply |
typedef MailBox<Reply> Dv::Thread::ActorPool< HandlerFactory >::ReplyBox |
typedef std::pair<Message,ReplyBox*> Dv::Thread::ActorPool< HandlerFactory >::MessageReply |
Dv::Thread::ActorPool< HandlerFactory >::ActorPool | ( | const std::string & | name, | |
HandlerFactory & | factory, | |||
size_t | n_threads, | |||
size_t | max_capacity = 0 , |
|||
unsigned int | min_debug_level = 0 , |
|||
Debugable * | debug_master = 0 | |||
) | [inline] |
References Dv::Thread::Thread::start().
Dv::Thread::ActorPool< HandlerFactory >::~ActorPool | ( | ) | [inline] |
References FUNCTION_S, Dv::Thread::Thread::kill(), and Dv::Thread::Thread::wait().
int Dv::Thread::ActorPool< HandlerFactory >::main | ( | ) | [inline, virtual] |
Main function of thread.
Reimplemented from Dv::Thread::Thread.
References Dv::Thread::ActorPool< HandlerFactory >::actors_, Dv::Thread::Thread::detach(), Dv::Thread::ActorPool< HandlerFactory >::factory_, Dv::Thread::Thread::killed(), Dv::Thread::ActorPool< HandlerFactory >::n_threads_, and Dv::Thread::ActorPool< HandlerFactory >::name().
void Dv::Thread::ActorPool< HandlerFactory >::request | ( | const Message & | m, | |
ReplyBox * | r = 0 | |||
) | [inline] |
const std::string& Dv::Thread::ActorPool< HandlerFactory >::name | ( | ) | const [inline] |
References Dv::Thread::ActorPool< HandlerFactory >::name_.
Referenced by Dv::Thread::ActorPool< HandlerFactory >::main().
const std::string Dv::Thread::ActorPool< HandlerFactory >::name_ [private] |
Referenced by Dv::Thread::ActorPool< HandlerFactory >::name().
HandlerFactory& Dv::Thread::ActorPool< HandlerFactory >::factory_ [private] |
Referenced by Dv::Thread::ActorPool< HandlerFactory >::main().
size_t Dv::Thread::ActorPool< HandlerFactory >::n_threads_ [private] |
Referenced by Dv::Thread::ActorPool< HandlerFactory >::main().
std::vector<Actor*> Dv::Thread::ActorPool< HandlerFactory >::actors_ [private] |
Referenced by Dv::Thread::ActorPool< HandlerFactory >::main().
MailBox<MessageReply> Dv::Thread::ActorPool< HandlerFactory >::mbox_ [private] |
Referenced by Dv::Thread::ActorPool< HandlerFactory >::request().
dvthread-0.13.4 | [11 December, 2009] |