summaryrefslogtreecommitdiff
path: root/src/mongo/s/catalog/type_chunk.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/s/catalog/type_chunk.h')
-rw-r--r--src/mongo/s/catalog/type_chunk.h193
1 files changed, 104 insertions, 89 deletions
diff --git a/src/mongo/s/catalog/type_chunk.h b/src/mongo/s/catalog/type_chunk.h
index 5945f722f6f..52a452a20f2 100644
--- a/src/mongo/s/catalog/type_chunk.h
+++ b/src/mongo/s/catalog/type_chunk.h
@@ -36,95 +36,110 @@
namespace mongo {
- class BSONObj;
- class Status;
- template<typename T> class StatusWith;
+class BSONObj;
+class Status;
+template <typename T>
+class StatusWith;
+
+/**
+ * This class represents the layout and contents of documents contained in the
+ * config.chunks collection. All manipulation of documents coming from that
+ * collection should be done with this class.
+ */
+class ChunkType {
+public:
+ // Name of the chunks collection in the config server.
+ static const std::string ConfigNS;
+
+ // Field names and types in the chunks collection type.
+ static const BSONField<std::string> name;
+ static const BSONField<std::string> ns;
+ static const BSONField<BSONObj> min;
+ static const BSONField<BSONObj> max;
+ static const BSONField<BSONArray> version;
+ static const BSONField<std::string> shard;
+ static const BSONField<bool> jumbo;
+ static const BSONField<Date_t> DEPRECATED_lastmod;
+ static const BSONField<OID> DEPRECATED_epoch;
+
+
+ /**
+ * Constructs a new ChunkType object from BSON.
+ * Also does validation of the contents.
+ */
+ static StatusWith<ChunkType> fromBSON(const BSONObj& source);
+
+ /**
+ * Returns OK if all fields have been set. Otherwise returns NoSuchKey
+ * and information about the first field that is missing.
+ */
+ Status validate() const;
+
+ /**
+ * Returns the BSON representation of the entry.
+ */
+ BSONObj toBSON() const;
/**
- * This class represents the layout and contents of documents contained in the
- * config.chunks collection. All manipulation of documents coming from that
- * collection should be done with this class.
+ * Returns a std::string representation of the current internal state.
*/
- class ChunkType {
- public:
-
- // Name of the chunks collection in the config server.
- static const std::string ConfigNS;
-
- // Field names and types in the chunks collection type.
- static const BSONField<std::string> name;
- static const BSONField<std::string> ns;
- static const BSONField<BSONObj> min;
- static const BSONField<BSONObj> max;
- static const BSONField<BSONArray> version;
- static const BSONField<std::string> shard;
- static const BSONField<bool> jumbo;
- static const BSONField<Date_t> DEPRECATED_lastmod;
- static const BSONField<OID> DEPRECATED_epoch;
-
-
- /**
- * Constructs a new ChunkType object from BSON.
- * Also does validation of the contents.
- */
- static StatusWith<ChunkType> fromBSON(const BSONObj& source);
-
- /**
- * Returns OK if all fields have been set. Otherwise returns NoSuchKey
- * and information about the first field that is missing.
- */
- Status validate() const;
-
- /**
- * Returns the BSON representation of the entry.
- */
- BSONObj toBSON() const;
-
- /**
- * Returns a std::string representation of the current internal state.
- */
- std::string toString() const;
-
- const std::string& getName() const { return _name.get(); }
- void setName(const std::string& name);
-
- const std::string& getNS() const { return _ns.get(); }
- void setNS(const std::string& name);
-
- const BSONObj& getMin() const { return _min.get(); }
- void setMin(const BSONObj& min);
-
- const BSONObj& getMax() const { return _max.get(); }
- void setMax(const BSONObj& max);
-
- bool isVersionSet() const { return _version.is_initialized(); }
- const ChunkVersion& getVersion() const { return _version.get(); }
- void setVersion(const ChunkVersion& version);
-
- const std::string& getShard() const { return _shard.get(); }
- void setShard(const std::string& shard);
-
- bool getJumbo() const { return _jumbo.get_value_or(false); }
- void setJumbo(bool jumbo);
-
- private:
-
- // Convention: (M)andatory, (O)ptional, (S)pecial rule.
-
- // (M) chunk's id
- boost::optional<std::string> _name;
- // (M) collection this chunk is in
- boost::optional<std::string> _ns;
- // (M) first key of the range, inclusive
- boost::optional<BSONObj> _min;
- // (M) last key of the range, non-inclusive
- boost::optional<BSONObj> _max;
- // (M) version of this chunk
- boost::optional<ChunkVersion> _version;
- // (M) shard this chunk lives in
- boost::optional<std::string> _shard;
- // (O) too big to move?
- boost::optional<bool> _jumbo;
- };
-
-} // namespace mongo
+ std::string toString() const;
+
+ const std::string& getName() const {
+ return _name.get();
+ }
+ void setName(const std::string& name);
+
+ const std::string& getNS() const {
+ return _ns.get();
+ }
+ void setNS(const std::string& name);
+
+ const BSONObj& getMin() const {
+ return _min.get();
+ }
+ void setMin(const BSONObj& min);
+
+ const BSONObj& getMax() const {
+ return _max.get();
+ }
+ void setMax(const BSONObj& max);
+
+ bool isVersionSet() const {
+ return _version.is_initialized();
+ }
+ const ChunkVersion& getVersion() const {
+ return _version.get();
+ }
+ void setVersion(const ChunkVersion& version);
+
+ const std::string& getShard() const {
+ return _shard.get();
+ }
+ void setShard(const std::string& shard);
+
+ bool getJumbo() const {
+ return _jumbo.get_value_or(false);
+ }
+ void setJumbo(bool jumbo);
+
+private:
+ // Convention: (M)andatory, (O)ptional, (S)pecial rule.
+
+ // (M) chunk's id
+ boost::optional<std::string> _name;
+ // (M) collection this chunk is in
+ boost::optional<std::string> _ns;
+ // (M) first key of the range, inclusive
+ boost::optional<BSONObj> _min;
+ // (M) last key of the range, non-inclusive
+ boost::optional<BSONObj> _max;
+ // (M) version of this chunk
+ boost::optional<ChunkVersion> _version;
+ // (M) shard this chunk lives in
+ boost::optional<std::string> _shard;
+ // (O) too big to move?
+ boost::optional<bool> _jumbo;
+};
+
+} // namespace mongo