00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef _ThinClient_h
00030 #define _ThinClient_h
00031
00032 #include <sienaconf.h>
00033
00034 #include <sys/types.h>
00035 #ifdef HAVE_STDINT_H
00036 #include <stdint.h>
00037 #endif
00038
00039 #include <string>
00040
00041 #include <siena/SienaId.h>
00042 #include <siena/Comm.h>
00043
00044 #ifdef HAVE_CXX_NAMESPACE
00045
00046 namespace Siena {
00047 #endif
00048
00051 class ThinClient: public SienaPull {
00052 public:
00058 ThinClient(const string & uri);
00059 ~ThinClient();
00060
00074 void set_receiver(Receiver *);
00075
00078 Receiver * get_receiver();
00079
00080 virtual void publish(const Notification &e);
00081
00082 virtual void subscribe(const Filter &f);
00083
00084 virtual void unsubscribe(const Filter &f);
00085 virtual void unsubscribe();
00086
00087 virtual Notification * get_notification();
00088 virtual NotificationSequence * get_notification_sequence();
00089
00090 virtual void suspend();
00091 virtual void resume();
00092
00093 virtual void shutdown();
00094
00095 private:
00096 string master_uri;
00097 Sender * master;
00098 SienaId my_id;
00099 Receiver * receiver;
00100 };
00101
00102 #ifndef NO_INLINE
00103 #include <siena/ThinClient.icc>
00104 #endif
00105
00106 #ifdef HAVE_CXX_NAMESPACE
00107 };
00108 #endif
00109
00110 #endif