Developer Application Interface (ARC API) v4.5.9
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 <algorithm>
20#include <functional>
21#include <utility>
22#include <cstdint>
23#include <ranges>
24#include <memory>
25#include <vector>
26#include <string>
27
28#include <CArcBaseDllMain.h>
29
30
31
32namespace arc
33{
34 namespace gen4
35 {
36
37 // +-----------------------------------------------------------------------------------------------------+
38 // | CArcStringList Class |
39 // +-----------------------------------------------------------------------------------------------------+
40
44 class GEN4_CARCBASE_API CArcStringList
45 {
46
47 public:
48
51 typedef std::vector<std::string>::iterator iterator;
55 typedef std::vector<std::string>::const_iterator const_iterator;
61
66 CArcStringList( const std::initializer_list<std::string>& tList );
67
72
76 CArcStringList( CArcStringList&& tObj ) noexcept;
77
83
89
92 virtual ~CArcStringList( void ) = default;
93
97 void add( std::string const& sElem );
98
101 void clear( void );
102
106 bool empty( void );
107
111 const std::string toString( void );
112
119 const std::string& at( std::uint32_t uIndex );
120
125 bool find( const std::string& searchString ) noexcept;
126
130 std::uint32_t length( void ) noexcept;
131
137 CArcStringList& operator<<( std::string const& sElem );
138
145
149 iterator begin( void ) noexcept;
150
154 const_iterator cbegin( void ) noexcept;
155
159 iterator end( void ) noexcept;
160
164 const_iterator cend( void ) noexcept;
165
169 void sortAscending( void );
170
174 void sortDescending( void );
175
176 private:
177
179 std::unique_ptr<std::vector<std::string>> m_pvList;
180 };
181
182
185 using pStringList_t = std::unique_ptr<arc::gen4::CArcStringList>;
186
187
188 } // end gen4 namespace
189} // 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:46