summaryrefslogtreecommitdiff
path: root/client/dbclient.h
diff options
context:
space:
mode:
authorAntonin Kral <a.kral@bobek.cz>2010-08-18 09:23:15 +0200
committerAntonin Kral <a.kral@bobek.cz>2010-08-18 09:23:15 +0200
commit3b9581e84e19723087b31b79674801b6c06ae533 (patch)
tree5568dbd7199b1ce64ace1cec26b590c1431e872d /client/dbclient.h
parentd7ec8115ec4b160ed74c1a8a06a1c171d76370ac (diff)
downloadmongodb-3b9581e84e19723087b31b79674801b6c06ae533.tar.gz
Imported Upstream version 1.6.1
Diffstat (limited to 'client/dbclient.h')
-rw-r--r--client/dbclient.h19
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();