diff options
author | Eric Milkie <milkie@10gen.com> | 2014-07-10 15:44:30 -0400 |
---|---|---|
committer | Eric Milkie <milkie@10gen.com> | 2014-07-14 09:56:50 -0400 |
commit | d13602b96458b2d6c2ccf0be5b968d45e0a5402a (patch) | |
tree | 389e5e93c6c513792ce8f546ff8daaef97de6fb1 /src/mongo/bson/bsontypes.cpp | |
parent | a1b737a2146ba380ae9a51acfb1138982745d996 (diff) | |
download | mongo-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.cpp | 104 |
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 |