#ifndef _broker_h #define _broker_h class Client { private: ClientProxy* proxy; Broker* broker; public: Client(): proxy(0), broker(0) { }; ClientProxy* getProxy() { return proxy; }; void setProxy( ClientProxy* proxy ) { this -> proxy = proxy; }; Broker* getBroker() { return broker; }; void setBroker( Broker* broker ) { this -> broker = broker; }; }; class Server { private: ServerProxy* proxy; Broker* broker; public: Server(): proxy(0), broker(0) { }; ServerProxy* getProxy() { return proxy; }; void setProxy( ServerProxy* proxy ) { this -> proxy = proxy; }; Broker* getBroker() { return broker; }; void setBroker( Broker* broker ) { this -> broker = broker; }; }; class Broker { private: Client* client; Server* server; ClientProxy* clientProxy; ServerProxy* serverProxy; Bridge* bridge; public: Broker(): client(0), server(0), clientProxy(0), serverProxy(0), bridge(0) { }; Client* getClient() { return client; }; void setClient( Client* client ) { this -> client = client; }; Server* getServer() { return server; }; void setServer( Server* server ) { this -> server = server; }; ClientProxy* getClientProxy() { return clientProxy; }; void setClientProxy( ClientProxy* proxy ) { clientProxy = proxy; }; ServerProxy* getServerProxy() { return serverProxy; }; void setServerProxy( ServerProxy* proxy ) { serverProxy = proxy; }; Bridge* getBridge() { return bridge; }; void setBridge( Bridge* bridge ) { this -> bridge = bridge; }; }; class ClientProxy { private: Client* client; Broker* broker; public: ClientProxy(): client(0), broker(0) { }; Client* getClient() { return client; }; void setClient( Client* client ) { this -> client = client; }; Broker* getBroker() { return broker; }; void setBroker( Broker* broker ) { this -> broker = broker; }; }; class ServerProxy { private: Server* server; Broker* broker; public: ServerProxy(): server(0), broker(0) { }; Server* getServer() { return server; }; void setServer( Server* server ) { this -> server = server; }; Broker* getBroker() { return broker; }; void setBroker( Broker* broker ) { this -> broker = broker; }; }; class Bridge { private: Broker* broker; Bridge* remoteBridge; public: Bridge(): broker(0), remoteBridge(0) { }; Broker* getBroker() { return broker; }; void setBroker( Broker* broker ) { this -> broker = broker; }; Bridge* getRemoteBridge() { return remoteBridge; }; void setRemoteBridge( Bridge* bridge ) { remoteBridge = bridge; }; }; #endif