Fork Vasum on GitHub Official Vasum Wiki on Tizen.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
c-array.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Contact: Piotr Bartosiewicz <p.bartosiewi@partner.samsung.com>
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License
17  */
18 
25 #ifndef COMMON_UTILS_C_ARRAY_HPP
26 #define COMMON_UTILS_C_ARRAY_HPP
27 
28 #include <vector>
29 
30 namespace utils {
31 
32 template<typename T>
34 public:
35  CArrayBuilder(): mArray(1, nullptr) {}
36 
37  CArrayBuilder& add(const T& v) {
38  mArray.back() = v;
39  mArray.push_back(nullptr);
40  return *this;
41  }
42 
43  const T* c_array() const {
44  return mArray.data();
45  }
46 
47  size_t size() const {
48  return mArray.size() - 1;
49  }
50 
51  bool empty() const {
52  return size() == 0;
53  }
54 
55  const T* begin() const {
56  return &*mArray.begin();
57  }
58 
59  const T* end() const {
60  return &*(mArray.end() - 1);
61  }
62 private:
63  std::vector<T> mArray;
64 };
65 
67 
68 } // namespace utils
69 
70 
71 #endif // COMMON_UTILS_C_ARRAY_HPP
std::vector< T > mArray
Definition: c-array.hpp:63
bool empty() const
Definition: c-array.hpp:51
const T * begin() const
Definition: c-array.hpp:55
CArrayBuilder< const char * > CStringArrayBuilder
Definition: c-array.hpp:66
size_t size() const
Definition: c-array.hpp:47
const T * end() const
Definition: c-array.hpp:59
CArrayBuilder & add(const T &v)
Definition: c-array.hpp:37
CArrayBuilder()
Definition: c-array.hpp:35
const T * c_array() const
Definition: c-array.hpp:43
Definition: c-array.hpp:33