commore  1.0.6-SNAPSHOT
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Listener.h
Go to the documentation of this file.
1 //
2 // Copyright (c) 2006-2014 Raphael David / CANTOR
3 //
4 
5 #ifndef CMR_LISTENER_INCLUDED
6 #define CMR_LISTENER_INCLUDED
7 
8 #include "Commore.h"
9 #include "AutoRef.h"
10 
11 
12 
13 namespace commore
14 {
35  class CMREXD Listener : public RefObject
36  {
37  public:
44  {
45  friend class Listener;
46 
47  public:
48  Callback();
49  virtual ~Callback();
50 
51  public:
58  void detach();
66  virtual int call(const Tuple& in_req, Tuple& out_req) = 0;
67 
68  private:
69  Listener* listener_;
70 
71  };
72 
73  public:
74  Listener();
75  virtual ~Listener();
76 
77  public:
84  virtual bool start();
91  virtual bool stop();
98  virtual bool is_ok();
102  virtual bool is_stopped();
106  virtual void set_callback(Callback& callback);
110  virtual void reset_callback();
116  virtual const AString& get_address() const = 0;
120  virtual void set_param(const Tuple& param);
121  virtual Tuple& get_param(Tuple& param);
122 
123  public:
127  static const AChar* factory_name() { return "commore::Listener"; }
128 
129  protected:
131  };
133 
134 
135 
136 }
137 
138 #endif
139 
Definition: Listener.h:43
Definition: Tuple.h:29
Definition: AString.h:39
char AChar
Definition: Type.h:65
#define CMREXD
Definition: Compiler.h:22
static const AChar * factory_name()
Definition: Listener.h:127
IAutoRef< Listener > PListener
Definition: Listener.h:132
Definition: Listener.h:35
Definition: RefObject.h:89
Definition: AutoRef.h:270
Callback * callback_
Definition: Listener.h:130