19 #ifndef INCLUDE_RCF_PINGBACKSERVICE_HPP
20 #define INCLUDE_RCF_PINGBACKSERVICE_HPP
25 #include <RCF/Export.hpp>
26 #include <RCF/Heap.hpp>
27 #include <RCF/Service.hpp>
28 #include <RCF/Tools.hpp>
33 typedef boost::shared_ptr<RcfSession> RcfSessionPtr;
34 typedef boost::weak_ptr<RcfSession> RcfSessionWeakPtr;
36 typedef std::pair<boost::uint32_t, RcfSessionWeakPtr> PingBackTimerEntry;
38 class RCF_EXPORT PingBackService :
public I_Service
42 typedef boost::weak_ptr<RcfSession> RcfSessionWeakPtr;
46 PingBackTimerEntry registerSession(RcfSessionPtr rcfSessionPtr);
47 void unregisterSession(
const PingBackTimerEntry & entry);
51 typedef PingBackTimerEntry Entry;
53 void onServiceAdded(RcfServer &server);
54 void onServiceRemoved(RcfServer &server);
56 void cycle(
int timeoutMs);
62 TimerHeap<RcfSessionWeakPtr> mTimerHeap;
68 typedef boost::shared_ptr<PingBackService> PingBackServicePtr;
72 #endif // ! INCLUDE_RCF_PINGBACKSERVICE_HPP