RCFProto
 All Classes Functions Typedefs
Service.hpp
1 
2 //******************************************************************************
3 // RCF - Remote Call Framework
4 //
5 // Copyright (c) 2005 - 2013, Delta V Software. All rights reserved.
6 // http://www.deltavsoft.com
7 //
8 // RCF is distributed under dual licenses - closed source or GPL.
9 // Consult your particular license for conditions of use.
10 //
11 // If you have not purchased a commercial license, you are using RCF
12 // under GPL terms.
13 //
14 // Version: 2.0
15 // Contact: support <at> deltavsoft.com
16 //
17 //******************************************************************************
18 
19 #ifndef INCLUDE_RCF_SERVICE_HPP
20 #define INCLUDE_RCF_SERVICE_HPP
21 
22 #include <boost/shared_ptr.hpp>
23 
24 #include <RCF/Export.hpp>
25 #include <RCF/ServerTask.hpp>
26 #include <RCF/ThreadLibrary.hpp>
27 
28 namespace RCF {
29 
30  class I_Service;
31  class RcfServer;
32  class StubEntry;
33  class Token;
34  typedef boost::shared_ptr<I_Service> ServicePtr;
35  typedef boost::shared_ptr<StubEntry> StubEntryPtr;
36 
37  class RCF_EXPORT I_Service
38  {
39  public:
40  I_Service();
41 
42  virtual ~I_Service()
43  {}
44 
45  virtual void onServiceAdded(RcfServer &server);
46  virtual void onServiceRemoved(RcfServer &server);
47  virtual void onServerStart(RcfServer &server);
48  virtual void onServerStop(RcfServer &server);
49 
50  void setThreadPool(ThreadPoolPtr threadPoolPtr);
51  void resetMuxers();
52 
53  virtual void onTimer()
54  {}
55 
56  protected:
57 
58  friend class RcfServer;
59 
60  TaskEntries mTaskEntries;
61 
62  ThreadPoolPtr mThreadPoolPtr;
63  };
64 
65 } // namespace RCF
66 
67 #endif // ! INCLUDE_RCF_SERVICE_HPP