diff options
author | Greg Studer <greg@10gen.com> | 2012-11-30 16:32:43 -0500 |
---|---|---|
committer | Greg Studer <greg@10gen.com> | 2012-12-03 17:01:20 -0500 |
commit | ceddaa1ac65b1c06e62a217f4a78086e0a354f23 (patch) | |
tree | 6830b27095d2aabf5050e5c1e195c2faadee607b /src/mongo/base/owned_pointer_vector.h | |
parent | 64408b78c89a65a4a727b57d552b64bf5f7eb803 (diff) | |
download | mongo-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.h | 11 |
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 |