diff options
author | Antonin Kral <a.kral@bobek.cz> | 2010-08-18 09:23:15 +0200 |
---|---|---|
committer | Antonin Kral <a.kral@bobek.cz> | 2010-08-18 09:23:15 +0200 |
commit | 3b9581e84e19723087b31b79674801b6c06ae533 (patch) | |
tree | 5568dbd7199b1ce64ace1cec26b590c1431e872d /client/dbclient.h | |
parent | d7ec8115ec4b160ed74c1a8a06a1c171d76370ac (diff) | |
download | mongodb-3b9581e84e19723087b31b79674801b6c06ae533.tar.gz |
Imported Upstream version 1.6.1
Diffstat (limited to 'client/dbclient.h')
-rw-r--r-- | client/dbclient.h | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/client/dbclient.h b/client/dbclient.h index 639d960..ea370c4 100644 --- a/client/dbclient.h +++ b/client/dbclient.h @@ -329,6 +329,8 @@ namespace mongo { /* used by QueryOption_Exhaust. To use that your subclass must implement this. */ virtual void recv( Message& m ) { assert(false); } + + virtual string getServerAddress() const = 0; }; /** @@ -739,8 +741,6 @@ namespace mongo { */ virtual void update( const string &ns , Query query , BSONObj obj , bool upsert = false , bool multi = false ); - virtual string getServerAddress() const = 0; - virtual bool isFailed() const = 0; virtual void killCursor( long long cursorID ) = 0; @@ -758,6 +758,9 @@ namespace mongo { virtual void say( Message& toSend ) = 0; virtual ConnectionString::ConnectionType type() const = 0; + + /** @return true if conn is either equal to or contained in this connection */ + virtual bool isMember( const DBConnector * conn ) const = 0; }; // DBClientBase class DBClientReplicaSet; @@ -892,11 +895,16 @@ namespace mongo { virtual bool call( Message &toSend, Message &response, bool assertOk = true ); virtual ConnectionString::ConnectionType type() const { return ConnectionString::MASTER; } + + virtual bool isMember( const DBConnector * conn ) const { return this == conn; }; + + virtual void checkResponse( const char *data, int nReturned ); + protected: friend class SyncClusterConnection; virtual void recv( Message& m ); virtual void sayPiggyBack( Message &toSend ); - virtual void checkResponse( const char *data, int nReturned ); + }; /** Use this class to connect to a replica set of servers. The class will manage @@ -987,9 +995,12 @@ namespace mongo { virtual ConnectionString::ConnectionType type() const { return ConnectionString::SET; } + virtual bool isMember( const DBConnector * conn ) const; + + virtual void checkResponse( const char *data, int nReturned ) { checkMaster()->checkResponse( data , nReturned ); } + protected: virtual void sayPiggyBack( Message &toSend ) { assert(false); } - virtual void checkResponse( const char *data, int nReturned ) { assert(false); } bool isFailed() const { return _currentMaster == 0 || _currentMaster->isFailed(); |