CodePorting.Translator Cs2Cpp
CodePorting.Translator.Cs2Cpp.Framework
string_collection.h
1
2#ifndef _aspose_system_collections_specialized_string_collection_h
3#define _aspose_system_collections_specialized_string_collection_h
4
5#include "system/object.h"
6#include "system/string.h"
7#include "system/array.h"
8
9#include "system/collections/icollection.h"
10#include "system/collections/base_enumerator.h"
11
12namespace System {
13namespace Collections {
14namespace Specialized {
15
20class ASPOSECPP_SHARED_CLASS StringCollection : public Generic::IEnumerable<System::String>
21{
23 RTTI_INFO(StringCollection, ::System::BaseTypesInfo<System::Object>);
24
25public:
27 class Enumerator : public Generic::SimpleEnumerator<std::vector<System::String> >
28 {
29 public:
32 Enumerator(const SharedPtr<StringCollection>& data) : Generic::SimpleEnumerator<std::vector<System::String> >(data, data->m_data) { }
34 RTTI_INFO(StringCollection::Enumerator, ::System::BaseTypesInfo<System::Object>);
35 };
36
38 ASPOSECPP_SHARED_API StringCollection();
39
43 {
44 return MakeObject<Enumerator>(MakeSharedPtr(this));
45 }
46
49 ASPOSECPP_SHARED_API int get_Count() const;
53 ASPOSECPP_SHARED_API System::String& operator[](int index);
57 ASPOSECPP_SHARED_API System::String idx_get(int index) const;
61 ASPOSECPP_SHARED_API void idx_set(int index, const System::String& value);
65 ASPOSECPP_SHARED_API int Add(const System::String& value);
68 ASPOSECPP_SHARED_API void AddRange(const ArrayPtr<System::String>& range);
72 ASPOSECPP_SHARED_API void CopyTo(const ArrayPtr<System::String>& arr, const int32_t index) const;
74 ASPOSECPP_SHARED_API void Clear();
78 ASPOSECPP_SHARED_API bool Contains(const System::String& value) const;
82 ASPOSECPP_SHARED_API int IndexOf(const System::String& value) const;
86 ASPOSECPP_SHARED_API void Insert(int index, const System::String& value);
89 ASPOSECPP_SHARED_API void Remove(const System::String& value);
92 ASPOSECPP_SHARED_API void RemoveAt(int index);
93
96 ASPOSECPP_SHARED_API std::vector<System::String>& data();
99 ASPOSECPP_SHARED_API const std::vector<System::String>& data() const;
100
101
103 typedef typename std::vector<System::String>::iterator iterator;
105 typedef typename std::vector<System::String>::const_iterator const_iterator;
107 typedef typename std::vector<System::String>::reverse_iterator reverse_iterator;
109 typedef typename std::vector<System::String>::const_reverse_iterator const_reverse_iterator;
110
114 ASPOSECPP_SHARED_API iterator begin() noexcept;
118 ASPOSECPP_SHARED_API const_iterator begin() const noexcept;
122 ASPOSECPP_SHARED_API const_iterator cbegin() const noexcept;
126 ASPOSECPP_SHARED_API iterator end() noexcept;
130 ASPOSECPP_SHARED_API const_iterator end() const noexcept;
134 ASPOSECPP_SHARED_API const_iterator cend() const noexcept;
139 ASPOSECPP_SHARED_API reverse_iterator rbegin() noexcept;
144 ASPOSECPP_SHARED_API const_reverse_iterator rbegin() const noexcept;
149 ASPOSECPP_SHARED_API const_reverse_iterator crbegin() const noexcept;
154 ASPOSECPP_SHARED_API reverse_iterator rend() noexcept;
159 ASPOSECPP_SHARED_API const_reverse_iterator rend() const noexcept;
164 ASPOSECPP_SHARED_API const_reverse_iterator crend() const noexcept;
165
166 ASPOSECPP_SHARED_API System::Details::VirtualizedIteratorBase<System::String>* virtualizeBeginIterator() override;
167 ASPOSECPP_SHARED_API System::Details::VirtualizedIteratorBase<System::String>* virtualizeEndIterator() override;
168 ASPOSECPP_SHARED_API System::Details::VirtualizedIteratorBase<System::String>* virtualizeBeginConstIterator() const override;
169 ASPOSECPP_SHARED_API System::Details::VirtualizedIteratorBase<System::String>* virtualizeEndConstIterator() const override;
170
171protected:
173 ASPOSECPP_SHARED_API ~StringCollection() override;
174
176 std::vector<System::String> m_data;
177
178#ifdef __DBG_FOR_EACH_MEMBER
179public:
182 void DBG_for_each_member(DBG::for_each_member_visitor &visitor) const override
183 {
184 visitor.add_self(this);
185 }
186
189 const char* DBG_class_name() const override { return "StringCollection<T>"; }
190#endif
191};
192
194class StringCollectionPtr : public SharedPtr<StringCollection>
195{
196public:
202
207 {
208 return (**this)[idx];
209 }
210};
211
212} // namespace Specialized
213} // namespace Collections
214} // namespace System
215
216#endif // _aspose_system_collections_specialized_string_collection_h
Interface of object providing enumerator on contained elements.
Definition: ienumerable.h:25
Iterator class for simple containers holding elements directly using rbegin() and rend() functions....
Definition: base_enumerator.h:81
Enumerator type to iterate through string collection.
Definition: string_collection.h:28
Enumerator(const SharedPtr< StringCollection > &data)
Constructs enumerator iterating through specified collection.
Definition: string_collection.h:32
RTTI_INFO(StringCollection::Enumerator, ::System::BaseTypesInfo< System::Object >)
RTTI information.
Indexed list of strings. Objects of this class should only be allocated using System::MakeObject() fu...
Definition: string_collection.h:21
iterator begin() noexcept
Returns an iterator to the first element of the container. If the container is empty,...
System::String idx_get(int index) const
Gets value at specified position.
void RemoveAt(int index)
Removes element at specified position.
std::vector< System::String >::reverse_iterator reverse_iterator
Reverse iterator type.
Definition: string_collection.h:107
void Remove(const System::String &value)
Removes first occurrence of specified string.
void CopyTo(const ArrayPtr< System::String > &arr, const int32_t index) const
Copy elements to existing arra elements.
std::vector< System::String >::const_reverse_iterator const_reverse_iterator
Const reverse iterator type.
Definition: string_collection.h:109
System::String & operator[](int index)
Accessor function.
std::vector< System::String >::const_iterator const_iterator
Const iterator type.
Definition: string_collection.h:105
void AddRange(const ArrayPtr< System::String > &range)
Add elements into container.
int IndexOf(const System::String &value) const
Looks for specific string in container.
int Add(const System::String &value)
Adds value to the end of the list.
int get_Count() const
Gets number of elements in collection.
SharedPtr< Generic::IEnumerator< System::String > > GetEnumerator() override
Gets enumerator iterating through current collection.
Definition: string_collection.h:42
StringCollection()
Constructs empty string collection.
void idx_set(int index, const System::String &value)
Sets value at specified position.
std::vector< System::String >::iterator iterator
Iterator type.
Definition: string_collection.h:103
const std::vector< System::String > & data() const
Internal data structure accessor.
std::vector< System::String > & data()
Internal data structure accessor.
bool Contains(const System::String &value) const
Checks whether specific string is present in container.
void Insert(int index, const System::String &value)
Inserts specific value into container.
Stirng collection poiner with access operator.
Definition: string_collection.h:195
StringCollectionPtr(const SharedPtr< StringCollection > &obj)
Constructs pointer to specific collection.
Definition: string_collection.h:201
StringCollectionPtr()
Constructs null pointer.
Definition: string_collection.h:198
Pointer class to wrap types being allocated on heap. Use it to manage memory for classes inheriting O...
Definition: smart_ptr.h:180
decltype(System::Details::GetByIndex(std::declval< const SmartPtr_ * >(), std::declval< IdxType >()) operator[])(IdxType idx) const
Accessor for array elements. Only compiles if SmartPtr_ is specialization of System::Array.
Definition: smart_ptr.h:822
String class used across the library. Is a substitute for C# System.String when translating code....
Definition: string.h:122
Definition: db_command.h:9
SmartPtr< X > MakeSharedPtr(X *p)
Converts raw pointer to smart pointer.
Definition: smart_ptr.h:1650