/* * mesbus.cpp * (C) gsd 2001 */ #ifndef MESSAGEBUS_H #define MESSAGEBUS_H /* The terminals, the session controller, the database are acting like they were inot in the same address space, so they can communicate only via the MessageBus layer. (That is like they would use CORBA, or others.) */ #include <string> #include <map> class CMessageBus { public: CMessageBus(); // init id, and register to router virtual ~CMessageBus(); // deregister from router static void printrouter(); // in the first version long getid() const { return m_busid; } std::string getsid() const; bool send( long target_id, std::string message); virtual void receive( long sender_id, std::string message); private: const long m_busid; // the unique id of a comm. device - like IP addr. static long sm_busid; // the sequencer static map<long, CMessageBus*> sm_router; // the router }; #endif /* MESSAGEBUS_H */