Developer Application Interface (ARC API) v4.5.8
ARC, Inc. GenIV Application Interface
CArcStringList.h
1// +---------------------------------------------------------------------------------------------------------+
2// | FILE: CArcStringList.h |
3// +---------------------------------------------------------------------------------------------------------+
4// | PURPOSE: This file defines a string list class. |
5// | |
6// | AUTHOR: Scott Streit DATE: July 16, 2013 |
7// | |
8// | Copyright 2013 Astronomical Research Cameras, Inc. All rights reserved. |
9// +---------------------------------------------------------------------------------------------------------+
12#pragma once
13
14#ifdef _WINDOWS
15 #pragma warning( disable: 4251 )
16#endif
17
18#include <initializer_list>
19#include <functional>
20#include <cstdint>
21#include <memory>
22#include <vector>
23#include <string>
24
25#include <CArcBaseDllMain.h>
26
27
28
29namespace arc
30{
31 namespace gen4
32 {
33
34 // +-----------------------------------------------------------------------------------------------------+
35 // | CArcStringList Class |
36 // +-----------------------------------------------------------------------------------------------------+
37
41 class GEN4_CARCBASE_API CArcStringList
42 {
43
44 public:
45
46 typedef std::vector<std::string>::iterator iterator;
47 typedef std::vector<std::string>::const_iterator const_iterator;
53
58 CArcStringList( const std::initializer_list<std::string>& tList );
59
64
68 CArcStringList( CArcStringList&& tObj ) noexcept;
69
75
81
84 virtual ~CArcStringList( void ) = default;
85
89 void add( std::string const& sElem );
90
93 void clear( void );
94
98 bool empty( void );
99
103 const std::string toString( void );
104
111 const std::string& at( std::uint32_t uIndex );
112
117 bool find( const std::string& searchString ) noexcept;
118
122 std::uint32_t length( void ) noexcept;
123
129 CArcStringList& operator<<( std::string const& sElem );
130
137
141 iterator begin( void ) noexcept;
142
146 const_iterator cbegin( void ) noexcept;
147
151 iterator end( void ) noexcept;
152
156 const_iterator cend( void ) noexcept;
157
161 void sortAscending( void );
162
166 void sortDescending( void );
167
168 private:
169
171 std::unique_ptr<std::vector<std::string>> m_pvList;
172 };
173
174
177 using pStringList_t = std::unique_ptr<arc::gen4::CArcStringList>;
178
179
180 } // end gen4 namespace
181} // end arc namespace
CArcStringList & operator=(CArcStringList &&tObj) noexcept
const_iterator cend(void) noexcept
void add(std::string const &sElem)
CArcStringList(const std::initializer_list< std::string > &tList)
CArcStringList & operator+=(CArcStringList &anotherList)
iterator begin(void) noexcept
iterator end(void) noexcept
const_iterator cbegin(void) noexcept
std::uint32_t length(void) noexcept
bool find(const std::string &searchString) noexcept
const std::string toString(void)
CArcStringList(const CArcStringList &tObj)
virtual ~CArcStringList(void)=default
const std::string & at(std::uint32_t uIndex)
CArcStringList & operator<<(std::string const &sElem)
CArcStringList(CArcStringList &&tObj) noexcept
std::vector< std::string >::const_iterator const_iterator
CArcStringList & operator=(const CArcStringList &tObj)
std::vector< std::string >::iterator iterator
std::unique_ptr< arc::gen4::CArcStringList > pStringList_t
Definition: CArcBase.h:50