summaryrefslogtreecommitdiff
path: root/src/mongo/bson/bsontypes.cpp
diff options
context:
space:
mode:
authorEric Milkie <milkie@10gen.com>2014-07-10 15:44:30 -0400
committerEric Milkie <milkie@10gen.com>2014-07-14 09:56:50 -0400
commitd13602b96458b2d6c2ccf0be5b968d45e0a5402a (patch)
tree389e5e93c6c513792ce8f546ff8daaef97de6fb1 /src/mongo/bson/bsontypes.cpp
parenta1b737a2146ba380ae9a51acfb1138982745d996 (diff)
downloadmongo-d13602b96458b2d6c2ccf0be5b968d45e0a5402a.tar.gz
SERVER-14524 move jsobj.cpp components into proper files
Diffstat (limited to 'src/mongo/bson/bsontypes.cpp')
-rw-r--r--src/mongo/bson/bsontypes.cpp104
1 files changed, 104 insertions, 0 deletions
diff --git a/src/mongo/bson/bsontypes.cpp b/src/mongo/bson/bsontypes.cpp
new file mode 100644
index 00000000000..3f83009ad1f
--- /dev/null
+++ b/src/mongo/bson/bsontypes.cpp
@@ -0,0 +1,104 @@
+/**
+ * Copyright (C) 2014 MongoDB Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * As a special exception, the copyright holders give permission to link the
+ * code of portions of this program with the OpenSSL library under certain
+ * conditions as described in each individual source file and distribute
+ * linked combinations including the program with the OpenSSL library. You
+ * must comply with the GNU Affero General Public License in all respects for
+ * all of the code used other than as permitted herein. If you modify file(s)
+ * with this exception, you may extend this exception to your version of the
+ * file(s), but you are not obligated to do so. If you do not wish to do so,
+ * delete this exception statement from your version. If you delete this
+ * exception statement from all source files in the program, then also delete
+ * it in the license file.
+ */
+
+#include "mongo/bson/bsontypes.h"
+
+#include "mongo/db/jsobj.h"
+
+namespace mongo {
+#pragma pack(1)
+ struct MaxKeyData {
+ MaxKeyData() {
+ totsize=7;
+ maxkey=MaxKey;
+ name=0;
+ eoo=EOO;
+ }
+ int totsize;
+ char maxkey;
+ char name;
+ char eoo;
+ } maxkeydata;
+ BSONObj maxKey((const char *) &maxkeydata);
+
+ struct MinKeyData {
+ MinKeyData() {
+ totsize=7;
+ minkey=MinKey;
+ name=0;
+ eoo=EOO;
+ }
+ int totsize;
+ char minkey;
+ char name;
+ char eoo;
+ } minkeydata;
+ BSONObj minKey((const char *) &minkeydata);
+
+ /*
+ struct JSObj0 {
+ JSObj0() {
+ totsize = 5;
+ eoo = EOO;
+ }
+ int totsize;
+ char eoo;
+ } js0;
+ */
+#pragma pack()
+
+ /* take a BSONType and return the name of that type as a char* */
+ const char* typeName (BSONType type) {
+ switch (type) {
+ case MinKey: return "MinKey";
+ case EOO: return "EOO";
+ case NumberDouble: return "NumberDouble";
+ case String: return "String";
+ case Object: return "Object";
+ case Array: return "Array";
+ case BinData: return "BinaryData";
+ case Undefined: return "Undefined";
+ case jstOID: return "OID";
+ case Bool: return "Bool";
+ case Date: return "Date";
+ case jstNULL: return "NULL";
+ case RegEx: return "RegEx";
+ case DBRef: return "DBRef";
+ case Code: return "Code";
+ case Symbol: return "Symbol";
+ case CodeWScope: return "CodeWScope";
+ case NumberInt: return "NumberInt32";
+ case Timestamp: return "Timestamp";
+ case NumberLong: return "NumberLong64";
+ // JSTypeMax doesn't make sense to turn into a string; overlaps with highest-valued type
+ case MaxKey: return "MaxKey";
+ default: return "Invalid";
+ }
+ }
+} // namespace mongo