diff options
author | Shaun Verch <shaun.verch@10gen.com> | 2013-01-04 11:46:14 -0800 |
---|---|---|
committer | Shaun Verch <shaun.verch@10gen.com> | 2013-01-17 15:56:56 +0000 |
commit | e0fa2f1eea17be8faeaad2a550c82e833a3eadeb (patch) | |
tree | 3ee9650f9c16e19adf9ab4fd5d08b54614055fd4 /src/mongo/bson/bson_field.h | |
parent | 39d2b276b6b5ed4c4671973641d3c89fb0afba3e (diff) | |
download | mongo-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.h | 18 |
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 |