diff options
author | Mathias Agopian <mathias@google.com> | 2011-06-28 19:09:31 -0700 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2011-06-29 15:05:41 -0700 |
commit | 439863f3b3e725b5de1cba4940a21900369961c0 (patch) | |
tree | 90ab56432c2436c3392b02ba08876c86796a36ef /include/utils/Vector.h | |
parent | f1bfa84ccf61cad2b6ea9f2e6a612a54a38b79bc (diff) | |
download | frameworks_base-439863f3b3e725b5de1cba4940a21900369961c0.zip frameworks_base-439863f3b3e725b5de1cba4940a21900369961c0.tar.gz frameworks_base-439863f3b3e725b5de1cba4940a21900369961c0.tar.bz2 |
SF transactions are now O(1) wrt IPC instead of O(N).
Change-Id: I57669852cbf6aabae244ea86940a08a5a27ffc43
Diffstat (limited to 'include/utils/Vector.h')
-rw-r--r-- | include/utils/Vector.h | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/include/utils/Vector.h b/include/utils/Vector.h index f1e87e6..b908e2a 100644 --- a/include/utils/Vector.h +++ b/include/utils/Vector.h @@ -29,6 +29,9 @@ namespace android { +template <typename TYPE> +class SortedVector; + /*! * The main templated vector class ensuring type safety * while making use of VectorImpl. @@ -47,13 +50,17 @@ public: Vector(); Vector(const Vector<TYPE>& rhs); + explicit Vector(const SortedVector<TYPE>& rhs); virtual ~Vector(); /*! copy operator */ const Vector<TYPE>& operator = (const Vector<TYPE>& rhs) const; Vector<TYPE>& operator = (const Vector<TYPE>& rhs); - /* + const Vector<TYPE>& operator = (const SortedVector<TYPE>& rhs) const; + Vector<TYPE>& operator = (const SortedVector<TYPE>& rhs); + + /* * empty the vector */ @@ -215,6 +222,11 @@ Vector<TYPE>::Vector(const Vector<TYPE>& rhs) } template<class TYPE> inline +Vector<TYPE>::Vector(const SortedVector<TYPE>& rhs) + : VectorImpl(static_cast<const VectorImpl&>(rhs)) { +} + +template<class TYPE> inline Vector<TYPE>::~Vector() { finish_vector(); } @@ -227,6 +239,18 @@ Vector<TYPE>& Vector<TYPE>::operator = (const Vector<TYPE>& rhs) { template<class TYPE> inline const Vector<TYPE>& Vector<TYPE>::operator = (const Vector<TYPE>& rhs) const { + VectorImpl::operator = (static_cast<const VectorImpl&>(rhs)); + return *this; +} + +template<class TYPE> inline +Vector<TYPE>& Vector<TYPE>::operator = (const SortedVector<TYPE>& rhs) { + VectorImpl::operator = (static_cast<const VectorImpl&>(rhs)); + return *this; +} + +template<class TYPE> inline +const Vector<TYPE>& Vector<TYPE>::operator = (const SortedVector<TYPE>& rhs) const { VectorImpl::operator = (rhs); return *this; } |