diff options
author | Eliot Horowitz <eliot@10gen.com> | 2010-07-21 12:17:38 -0400 |
---|---|---|
committer | Eliot Horowitz <eliot@10gen.com> | 2010-07-21 12:17:38 -0400 |
commit | 03b70c6883fda48f79f6c9754496a0c18b3a9634 (patch) | |
tree | 994b7efbaf0d6333e68105d321b8da1b504154f2 /s/config.h | |
parent | 1f8a29ada3d54e0e46e62f0189c992fe21be55d9 (diff) | |
download | mongo-03b70c6883fda48f79f6c9754496a0c18b3a9634.tar.gz |
not using Model for DBConfig - first step in SERVER-1427
Diffstat (limited to 's/config.h')
-rw-r--r-- | s/config.h | 36 |
1 files changed, 22 insertions, 14 deletions
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<Shard>& allServers , string& errmsg ); - - bool doload(); + + bool _load(); + bool _reload(); + void _save(); // TODO make private + /** @return true if there was sharding info to remove |