From 03b70c6883fda48f79f6c9754496a0c18b3a9634 Mon Sep 17 00:00:00 2001 From: Eliot Horowitz Date: Wed, 21 Jul 2010 12:17:38 -0400 Subject: not using Model for DBConfig - first step in SERVER-1427 --- s/config.h | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) (limited to 's/config.h') diff --git a/s/config.h b/s/config.h index 1b2f64475da..bad081bf44f 100644 --- a/s/config.h +++ b/s/config.h @@ -71,14 +71,19 @@ namespace mongo { }; /** - * top level grid configuration for an entire database - * TODO: use shared_ptr for ChunkManager + * top level configuration for a database */ - class DBConfig : public Model { + class DBConfig { public: - DBConfig( string name = "" ) : _name( name ) , _primary("config","") , - _shardingEnabled(false), _lock("DBConfig") { } + DBConfig( string name ) + : _name( name ) , + _primary("config","") , + _shardingEnabled(false), + _lock("DBConfig") { + assert( name.size() ); + } + virtual ~DBConfig(){} string getName(){ return _name; }; @@ -114,18 +119,18 @@ namespace mongo { _primary.reset( s ); } + bool load(); bool reload(); - + void save(); // TODO make private + bool dropDatabase( string& errmsg ); - virtual string modelServer(); - // model stuff - virtual const char * getNS(){ return "config.databases"; } - virtual void serialize(BSONObjBuilder& to); - virtual void unserialize(const BSONObj& from); - + // lockless loading + void serialize(BSONObjBuilder& to); + void unserialize(const BSONObj& from); + protected: /** @@ -134,8 +139,11 @@ namespace mongo { bool _isSharded( const string& ns ); bool _dropShardedCollections( int& num, set& allServers , string& errmsg ); - - bool doload(); + + bool _load(); + bool _reload(); + void _save(); // TODO make private + /** @return true if there was sharding info to remove -- cgit v1.2.1