summaryrefslogtreecommitdiff
path: root/src/mongo/bson/bson_field.h
diff options
context:
space:
mode:
authorShaun Verch <shaun.verch@10gen.com>2013-01-04 11:46:14 -0800
committerShaun Verch <shaun.verch@10gen.com>2013-01-17 15:56:56 +0000
commite0fa2f1eea17be8faeaad2a550c82e833a3eadeb (patch)
tree3ee9650f9c16e19adf9ab4fd5d08b54614055fd4 /src/mongo/bson/bson_field.h
parent39d2b276b6b5ed4c4671973641d3c89fb0afba3e (diff)
downloadmongo-e0fa2f1eea17be8faeaad2a550c82e833a3eadeb.tar.gz
SERVER-939 Store defaults in BSONField and handle defaults in FieldParser extract functions
Diffstat (limited to 'src/mongo/bson/bson_field.h')
-rw-r--r--src/mongo/bson/bson_field.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/mongo/bson/bson_field.h b/src/mongo/bson/bson_field.h
index 8359ce5e031..c8fcfb1fe2f 100644
--- a/src/mongo/bson/bson_field.h
+++ b/src/mongo/bson/bson_field.h
@@ -74,8 +74,11 @@ namespace mongo {
template<typename T>
class BSONField {
public:
- BSONField(const std::string& name, const std::string& longName="")
- : _name(name), _longName(longName) {}
+ BSONField(const std::string& name)
+ : _name(name), _defaultSet(false) {}
+
+ BSONField(const std::string& name, const T& defaultVal)
+ : _name(name), _default(defaultVal), _defaultSet(true) {}
BSONFieldValue<T> make(const T& t) const {
return BSONFieldValue<T>(_name, t);
@@ -89,6 +92,14 @@ namespace mongo {
return _name;
}
+ const T& getDefault() const {
+ return _default;
+ }
+
+ const bool hasDefault() const {
+ return _defaultSet;
+ }
+
std::string operator()() const {
return _name;
}
@@ -109,7 +120,8 @@ namespace mongo {
private:
std::string _name;
- std::string _longName;
+ T _default;
+ bool _defaultSet;
};
} // namespace mongo