MongoDB  2.7.0
const_element-inl.h
1 /* Copyright 2013 10gen Inc.
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #pragma once
17 
18 namespace mongo {
19 namespace mutablebson {
20 
21  inline ConstElement::ConstElement(const Element& basis)
22  : _basis(basis) {}
23 
24  inline ConstElement ConstElement::leftChild() const {
25  return _basis.leftChild();
26  }
27 
28  inline ConstElement ConstElement::rightChild() const {
29  return _basis.rightChild();
30  }
31 
32  inline bool ConstElement::hasChildren() const {
33  return _basis.hasChildren();
34  }
35 
36  inline ConstElement ConstElement::leftSibling(size_t distance) const {
37  return _basis.leftSibling(distance);
38  }
39 
40  inline ConstElement ConstElement::rightSibling(size_t distance) const {
41  return _basis.rightSibling(distance);
42  }
43 
44  inline ConstElement ConstElement::parent() const {
45  return _basis.parent();
46  }
47 
48  inline ConstElement ConstElement::findNthChild(size_t n) const {
49  return _basis.findNthChild(n);
50  }
51 
52  inline ConstElement ConstElement::operator[](size_t n) const {
53  return _basis[n];
54  }
55 
56  inline ConstElement ConstElement::findFirstChildNamed(const StringData& name) const {
57  return _basis.findFirstChildNamed(name);
58  }
59 
60  inline ConstElement ConstElement::operator[](const StringData& name) const {
61  return _basis[name];
62  }
63 
64  inline ConstElement ConstElement::findElementNamed(const StringData& name) const {
65  return _basis.findElementNamed(name);
66  }
67 
68  inline size_t ConstElement::countSiblingsLeft() const {
69  return _basis.countSiblingsLeft();
70  }
71 
72  inline size_t ConstElement::countSiblingsRight() const {
73  return _basis.countSiblingsRight();
74  }
75 
76  inline size_t ConstElement::countChildren() const {
77  return _basis.countChildren();
78  }
79 
80  inline bool ConstElement::hasValue() const {
81  return _basis.hasValue();
82  }
83 
84  inline const BSONElement ConstElement::getValue() const {
85  return _basis.getValue();
86  }
87 
88  inline double ConstElement::getValueDouble() const {
89  return _basis.getValueDouble();
90  }
91 
92  inline StringData ConstElement::getValueString() const {
93  return _basis.getValueString();
94  }
95 
96  inline BSONObj ConstElement::getValueObject() const {
97  return _basis.getValueObject();
98  }
99 
100  inline BSONArray ConstElement::getValueArray() const {
101  return _basis.getValueArray();
102  }
103 
104  inline bool ConstElement::isValueUndefined() const {
105  return _basis.isValueUndefined();
106  }
107 
108  inline OID ConstElement::getValueOID() const {
109  return _basis.getValueOID();
110  }
111 
112  inline bool ConstElement::getValueBool() const {
113  return _basis.getValueBool();
114  }
115 
116  inline Date_t ConstElement::getValueDate() const {
117  return _basis.getValueDate();
118  }
119 
120  inline bool ConstElement::isValueNull() const {
121  return _basis.isValueNull();
122  }
123 
124  inline StringData ConstElement::getValueSymbol() const {
125  return _basis.getValueSymbol();
126  }
127 
128  inline int32_t ConstElement::getValueInt() const {
129  return _basis.getValueInt();
130  }
131 
132  inline OpTime ConstElement::getValueTimestamp() const {
133  return _basis.getValueTimestamp();
134  }
135 
136  inline int64_t ConstElement::getValueLong() const {
137  return _basis.getValueLong();
138  }
139 
140  inline bool ConstElement::isValueMinKey() const {
141  return _basis.isValueMinKey();
142  }
143 
144  inline bool ConstElement::isValueMaxKey() const {
145  return _basis.isValueMaxKey();
146  }
147 
148  inline SafeNum ConstElement::getValueSafeNum() const {
149  return _basis.getValueSafeNum();
150  }
151 
152  inline int ConstElement::compareWithElement(const ConstElement& other,
153  bool considerFieldName) const {
154  return _basis.compareWithElement(other, considerFieldName);
155  }
156 
157  inline int ConstElement::compareWithBSONElement(const BSONElement& other,
158  bool considerFieldName) const {
159  return _basis.compareWithBSONElement(other, considerFieldName);
160  }
161 
162  inline int ConstElement::compareWithBSONObj(const BSONObj& other,
163  bool considerFieldName) const {
164  return _basis.compareWithBSONObj(other, considerFieldName);
165  }
166 
167  inline void ConstElement::writeTo(BSONObjBuilder* builder) const {
168  return _basis.writeTo(builder);
169  }
170 
171  inline void ConstElement::writeArrayTo(BSONArrayBuilder* builder) const {
172  return _basis.writeArrayTo(builder);
173  }
174 
175  inline bool ConstElement::ok() const {
176  return _basis.ok();
177  }
178 
179  inline const Document& ConstElement::getDocument() const {
180  return _basis.getDocument();
181  }
182 
183  inline BSONType ConstElement::getType() const {
184  return _basis.getType();
185  }
186 
187  inline bool ConstElement::isType(BSONType type) const {
188  return _basis.isType(type);
189  }
190 
191  inline StringData ConstElement::getFieldName() const {
192  return _basis.getFieldName();
193  }
194 
195  inline Element::RepIdx ConstElement::getIdx() const {
196  return _basis.getIdx();
197  }
198 
199  inline std::string ConstElement::toString() const {
200  return _basis.toString();
201  }
202 
203  inline bool operator==(const ConstElement& l, const ConstElement& r) {
204  return l._basis == r._basis;
205  }
206 
207  inline bool operator!=(const ConstElement& l, const ConstElement& r) {
208  return !(l == r);
209  }
210 
211  inline bool operator==(const Element& l, const ConstElement& r) {
212  return ConstElement(l) == r;
213  }
214 
215  inline bool operator!=(const Element& l, const ConstElement& r) {
216  return !(l == r);
217  }
218 
219  inline bool operator==(const ConstElement& l, const Element& r) {
220  return l == ConstElement(r);
221  }
222 
223  inline bool operator!=(const ConstElement& l, const Element& r) {
224  return !(l == r);
225  }
226 
227 
228 } // namespace mutablebson
229 } // namespace mongo
BSONType
the complete list of valid BSON types see also bsonspec.org
Definition: bsontypes.h:43
For an overview of mutable BSON, please see the file document.h in this directory.
Definition: const_element.h:36