summaryrefslogtreecommitdiff
path: root/src/mongo/base/owned_pointer_vector.h
diff options
context:
space:
mode:
authorGreg Studer <greg@10gen.com>2012-11-30 16:32:43 -0500
committerGreg Studer <greg@10gen.com>2012-12-03 17:01:20 -0500
commitceddaa1ac65b1c06e62a217f4a78086e0a354f23 (patch)
tree6830b27095d2aabf5050e5c1e195c2faadee607b /src/mongo/base/owned_pointer_vector.h
parent64408b78c89a65a4a727b57d552b64bf5f7eb803 (diff)
downloadmongo-ceddaa1ac65b1c06e62a217f4a78086e0a354f23.tar.gz
SERVER-939 enhance owned pointer vector and add owned pointer map
Diffstat (limited to 'src/mongo/base/owned_pointer_vector.h')
-rw-r--r--src/mongo/base/owned_pointer_vector.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/mongo/base/owned_pointer_vector.h b/src/mongo/base/owned_pointer_vector.h
index 75bae2af7cd..4c3f83ae9d5 100644
--- a/src/mongo/base/owned_pointer_vector.h
+++ b/src/mongo/base/owned_pointer_vector.h
@@ -35,7 +35,10 @@ namespace mongo {
~OwnedPointerVector();
/** Access the vector. */
- std::vector<T*>& vector() { return _vector; }
+ const std::vector<T*>& vector() { return _vector; }
+ std::vector<T*>& mutableVector() { return _vector; }
+
+ void clear();
private:
std::vector<T*> _vector;
@@ -47,9 +50,15 @@ namespace mongo {
template<class T>
OwnedPointerVector<T>::~OwnedPointerVector() {
+ clear();
+ }
+
+ template<class T>
+ void OwnedPointerVector<T>::clear() {
for( typename std::vector<T*>::iterator i = _vector.begin(); i != _vector.end(); ++i ) {
delete *i;
}
+ _vector.clear();
}
} // namespace mongo