33 #include "mongo/db/jsobj.h" 34 #include "mongo/util/debug_util.h" 47 explicit KeyBson(
const char* keyData) :
_o(keyData) {}
63 return _o.firstElement();
85 void operator=(
const KeyV1&);
94 DEV _keyData = (
const unsigned char*)1;
98 dassert(_keyData > (
const unsigned char*)1);
109 explicit KeyV1(
const char* keyData) : _keyData((unsigned char*)keyData) {}
115 return toBson().toString();
120 return (
const char*)_keyData;
128 return bson().firstElement();
131 return *_keyData != IsBSON;
135 return _keyData > (
const unsigned char*)1;
139 enum { IsBSON = 0xff };
143 return BSONObj((
const char*)_keyData + 1);
147 int compareHybrid(
const KeyV1& right,
const Ordering& order)
const;
165 void traditional(
const BSONObj& obj);
BSONObj bson() const
Definition: key.h:141
int dataSize() const
Definition: key.h:56
const char * data() const
get the key data we want to store in the btree bucket
Definition: key.h:119
bool isCompactFormat() const
Definition: key.h:130
~KeyV1()
Definition: key.h:93
std::string toString() const
Definition: key.h:114
Copyright (C) 2014 MongoDB Inc.
Definition: bson_collection_catalog_entry.cpp:38
BSONElement _firstElement() const
only used by geo, which always has bson keys
Definition: key.h:127
KeyBson(const char *keyData)
Definition: key.h:47
KeyBson()
Definition: key.h:46
KeyV1(const char *keyData)
Definition: key.h:109
bool isValid() const
Definition: key.h:72
KeyV1(const KeyV1 &rhs)
Definition: key.h:97
BSONObj toBson() const
Definition: key.h:50
bool isValid() const
Definition: key.h:134
BSONElement _firstElement() const
Definition: key.h:62
Key class for precomputing a small format index key that is denser than a traditional BSONObj...
Definition: key.h:44
void assign(const KeyBson &rhs)
Definition: key.h:69
KeyBson(const BSONObj &obj)
Definition: key.h:48
const char * data() const
Definition: key.h:59
bool isCompactFormat() const
Definition: key.h:65
const unsigned char * _keyData
Definition: key.h:140
int woCompare(const KeyBson &r, const Ordering &o) const
Definition: key.cpp:203
BSONObj _o
Definition: key.h:77
KeyV1()
Definition: key.h:90
StackBufBuilder b
Definition: key.h:164
void assign(const KeyV1 &rhs)
Definition: key.h:102
bool woEqual(const KeyBson &r) const
Definition: key.cpp:209
std::string toString() const
Definition: key.h:53