|
AndroMeta
2.0.0
|
00001 /* 00002 * Copyright 2009-2012 AndroMeta LLC. All rights reserved. 00003 * 00004 * AndroMeta LLC retains all intellectual property and proprietary 00005 * rights to this software and related documentation and any modifications 00006 * thereto. Any use, reproduction, disclosure, or distribution of this 00007 * software and related documentation without an express license agreement 00008 * from AndroMeta LLC is strictly prohibited. 00009 * 00010 */ 00011 00019 #ifndef ANDROMETA_M_PEER_BROKER_H 00020 #define ANDROMETA_M_PEER_BROKER_H 00021 00022 #include <AndroMeta/MBrokerBase.h> 00023 #include <AndroMeta/MObject.h> 00024 00025 namespace Meta{ 00026 00027 class MProcTask; 00028 00040 class MPeerBroker : public MBrokerBase{ 00041 public: 00042 00051 MPeerBroker(MProcTask* task); 00052 00056 virtual ~MPeerBroker(); 00057 00061 mnode process(MObject* object, mnode n, bool block); 00062 00069 bool connect(); 00070 00076 bool connect(int localPort, long groupId, 00077 const mstr& user, const mstr& key); 00078 00082 bool isConnected() const; 00083 00087 MProcTask* task(); 00088 00092 int localPort() const; 00093 00097 long groupId() const; 00098 00102 long peerId() const; 00103 00107 long submitterId() const; 00108 00112 mvec peers() const; 00113 00117 void close(); 00118 00122 virtual void onClose(); 00123 00135 mstr distribute(MObject* object, 00136 const mstr& className, 00137 const mstr& objectName=""); 00138 00142 bool revoke(MObject* object); 00143 00155 MObject* obtain(long peerId, 00156 const mstr& objectName); 00157 00166 virtual bool onObtain(MObject* object); 00167 00175 bool release(MObject* object, bool disconnect=false); 00176 00181 mvar& session(MObject* object); 00182 00183 private: 00184 MPeerBroker& operator=(const MPeerBroker&); 00185 MPeerBroker(const MPeerBroker&); 00186 00187 class MPeerBroker_* x_; 00188 }; 00189 00190 } // end namespace Meta 00191 00192 #endif // ANDROMETA_M_PEER_BROKER_H
1.7.6.1