summaryrefslogtreecommitdiff
path: root/s/config.h
diff options
context:
space:
mode:
authorEliot Horowitz <eliot@10gen.com>2010-07-21 12:17:38 -0400
committerEliot Horowitz <eliot@10gen.com>2010-07-21 12:17:38 -0400
commit03b70c6883fda48f79f6c9754496a0c18b3a9634 (patch)
tree994b7efbaf0d6333e68105d321b8da1b504154f2 /s/config.h
parent1f8a29ada3d54e0e46e62f0189c992fe21be55d9 (diff)
downloadmongo-03b70c6883fda48f79f6c9754496a0c18b3a9634.tar.gz
not using Model for DBConfig - first step in SERVER-1427
Diffstat (limited to 's/config.h')
-rw-r--r--s/config.h36
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