diff options
author | levin@chromium.org <levin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-28 01:54:15 +0000 |
---|---|---|
committer | levin@chromium.org <levin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-28 01:54:15 +0000 |
commit | 3b63f8f451afcf414a59c529f627c620e4d449d9 (patch) | |
tree | 2dcbab1c060b29a260c29bb19b67bf97a8293ca3 /base/scoped_vector.h | |
parent | 9174a108509c2aafe513da68e6e63fbc7df38c85 (diff) | |
download | chromium_src-3b63f8f451afcf414a59c529f627c620e4d449d9.zip chromium_src-3b63f8f451afcf414a59c529f627c620e4d449d9.tar.gz chromium_src-3b63f8f451afcf414a59c529f627c620e4d449d9.tar.bz2 |
Move some files from base to base/memory.
raw_scoped_refptr_mismatch_checker.h
ref_counted.cc
ref_counted.h
ref_counted_memory.cc
ref_counted_memory.h
ref_counted_unittest.cc
scoped_callback_factory.h
scoped_comptr_win.h
scoped_handle.h
scoped_native_library.cc
scoped_native_library.h
scoped_native_library_unittest.cc
scoped_nsobject.h
scoped_open_process.h
scoped_ptr.h
scoped_ptr_unittest.cc
scoped_temp_dir.cc
scoped_temp_dir.h
scoped_temp_dir_unittest.cc
scoped_vector.h
singleton.h
singleton_objc.h
singleton_unittest.cc
linked_ptr.h
linked_ptr_unittest.cc
weak_ptr.cc
weak_ptr.h
weak_ptr_unittest.cc
BUG=None
TEST=Compile
Review URL: http://codereview.chromium.org/6714032
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@79524 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/scoped_vector.h')
-rw-r--r-- | base/scoped_vector.h | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/base/scoped_vector.h b/base/scoped_vector.h deleted file mode 100644 index 9d372f3..0000000 --- a/base/scoped_vector.h +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef BASE_SCOPED_VECTOR_H_ -#define BASE_SCOPED_VECTOR_H_ -#pragma once - -#include <vector> - -#include "base/basictypes.h" -#include "base/stl_util-inl.h" - -// ScopedVector wraps a vector deleting the elements from its -// destructor. -template <class T> -class ScopedVector { - public: - typedef typename std::vector<T*>::iterator iterator; - typedef typename std::vector<T*>::const_iterator const_iterator; - typedef typename std::vector<T*>::reverse_iterator reverse_iterator; - typedef typename std::vector<T*>::const_reverse_iterator - const_reverse_iterator; - - ScopedVector() {} - ~ScopedVector() { reset(); } - - std::vector<T*>* operator->() { return &v; } - const std::vector<T*>* operator->() const { return &v; } - T*& operator[](size_t i) { return v[i]; } - const T* operator[](size_t i) const { return v[i]; } - - bool empty() const { return v.empty(); } - size_t size() const { return v.size(); } - - reverse_iterator rbegin() { return v.rbegin(); } - const_reverse_iterator rbegin() const { return v.rbegin(); } - reverse_iterator rend() { return v.rend(); } - const_reverse_iterator rend() const { return v.rend(); } - - iterator begin() { return v.begin(); } - const_iterator begin() const { return v.begin(); } - iterator end() { return v.end(); } - const_iterator end() const { return v.end(); } - - void push_back(T* elem) { v.push_back(elem); } - - std::vector<T*>& get() { return v; } - const std::vector<T*>& get() const { return v; } - void swap(ScopedVector<T>& other) { v.swap(other.v); } - void release(std::vector<T*>* out) { - out->swap(v); - v.clear(); - } - - void reset() { STLDeleteElements(&v); } - void reserve(size_t capacity) { v.reserve(capacity); } - void resize(size_t new_size) { v.resize(new_size); } - - // Lets the ScopedVector take ownership of |x|. - iterator insert(iterator position, T* x) { - return v.insert(position, x); - } - - iterator erase(iterator position) { - delete *position; - return v.erase(position); - } - - iterator erase(iterator first, iterator last) { - STLDeleteContainerPointers(first, last); - return v.erase(first, last); - } - - // Like |erase()|, but doesn't delete the element at |position|. - iterator weak_erase(iterator position) { - return v.erase(position); - } - - // Like |erase()|, but doesn't delete the elements in [first, last). - iterator weak_erase(iterator first, iterator last) { - return v.erase(first, last); - } - private: - std::vector<T*> v; - - DISALLOW_COPY_AND_ASSIGN(ScopedVector); -}; - -#endif // BASE_SCOPED_VECTOR_H_ |