CodePorting.Translator Cs2Cpp
CodePorting.Translator.Cs2Cpp.Framework
ilist_impl.h
1#pragma once
2#include <system/object_ext.h>
3#include <system/collections/ilist_ng.h>
4#include <system/collections/ienumerator_impl.h>
5
6namespace System {
7namespace Collections {
8
11template <typename T>
12class ASPOSECPP_SHARED_CLASS IListImplRefType : virtual public System::Collections::IList
13{
14public:
18 {};
19
22 {
23 return System::ExplicitCast<T>(value);
24 }
25
28 {
29 return (value);
30 }
31
35 virtual SharedPtr<System::Object> idx_get(int index, int dummy = 0) const override
36 {
37 return BoxValue(m_list->idx_get(index));
38 }
39
43 virtual void Insert(int index, System::SharedPtr<System::Object> value) override
44 {
45 m_list->Insert(index, UnboxValue(value));
46 }
47
51 virtual int IndexOf(System::SharedPtr<System::Object> value) const override
52 {
53 return m_list->IndexOf(UnboxValue(value));
54 }
55
58 virtual void RemoveAt(int index) override
59 {
60 m_list->RemoveAt(index);
61 }
62
65 virtual int Add(SharedPtr<System::Object> item) override
66 {
67 m_list->Add(UnboxValue(item));
68 return m_list->get_Count() - 1;
69 }
70
72 virtual void Clear() override
73 {
74 m_list->Clear();
75 }
76
80 virtual bool Contains(SharedPtr<System::Object> item) const override
81 {
82 return m_list->Contains(UnboxValue(item));
83 }
84
87 virtual void Remove(SharedPtr<System::Object> item) override
88 {
89 m_list->Remove(UnboxValue(item));
90 }
91
95 virtual int get_Count() const override
96 {
97 return m_list->get_Count();
98 }
99
103 {
104 return System::MakeObject<System::Collections::IEnumeratorImplRefType<T>>(m_list->GetEnumerator());
105 }
106
107private:
109};
110
113template <typename T>
115{
116public:
120 : m_list(list)
121 {}
122
126 virtual SharedPtr<System::Object> idx_get(int index, int dummy = 0) const override
127 {
128 return ObjectExt::Box(m_list->idx_get(index));
129 }
130
134 virtual void Insert(int index, System::SharedPtr<System::Object> value) override
135 {
136 m_list->Insert(index, ObjectExt::Unbox<T>(value));
137 }
138
142 virtual int IndexOf(System::SharedPtr<System::Object> value) const override
143 {
144 return m_list->IndexOf(ObjectExt::Unbox<T>(value));
145 }
146
149 virtual void RemoveAt(int index) override
150 {
151 m_list->RemoveAt(index);
152 }
153
157 {
158 m_list->Add(ObjectExt::Unbox<T>(item));
159 return m_list->get_Count() - 1;
160 }
161
163 virtual void Clear() override
164 {
165 m_list->Clear();
166 }
167
171 virtual bool Contains(SharedPtr<System::Object> item) const override
172 {
173 return m_list->Contains(ObjectExt::Unbox<T>(item));
174 }
175
178 virtual void Remove(SharedPtr<System::Object> item) override
179 {
180 m_list->Remove(ObjectExt::Unbox<T>(item));
181 }
182
186 virtual int get_Count() const override
187 {
188 return m_list->get_Count();
189 }
190
194 {
195 return System::MakeObject<System::Collections::IEnumeratorImplValueType<T>>(m_list->GetEnumerator());
196 }
197
198private:
200};
201
202}} // namespace System::Collections
Interface of indexed container of elements. Objects of this class should only be allocated using Syst...
Definition: ilist.h:19
List forward declaration.
Definition: list.h:127
IList Represents a non-generic collection of objects that can be individually accessed by index.
Definition: ilist_ng.h:9
Stub that implements System::Collections::IList interface on System::Collections::Generic::List objec...
Definition: ilist_impl.h:13
virtual int Add(SharedPtr< System::Object > item) override
Adds element to the end of list.
Definition: ilist_impl.h:65
virtual void RemoveAt(int index) override
Removes item at specified position.
Definition: ilist_impl.h:58
virtual int IndexOf(System::SharedPtr< System::Object > value) const override
Gets index of first appearance of item in container.
Definition: ilist_impl.h:51
virtual bool Contains(SharedPtr< System::Object > item) const override
Checks if item is present in list.
Definition: ilist_impl.h:80
virtual SharedPtr< System::Collections::IEnumerator > GetEnumerator() override
IEnumerable.GetEnumerator() implementation Returns an enumerator that iterates through a collection.
Definition: ilist_impl.h:102
static System::SharedPtr< System::Object > BoxValue(System::SharedPtr< T > value)
Converting type reference into object value into object.
Definition: ilist_impl.h:27
virtual SharedPtr< System::Object > idx_get(int index, int dummy=0) const override
Gets the element at the specified index.
Definition: ilist_impl.h:35
virtual void Insert(int index, System::SharedPtr< System::Object > value) override
Inserts element into specified position, shifting other elements.
Definition: ilist_impl.h:43
IListImplRefType(System::SharedPtr< System::Collections::Generic::List< System::SharedPtr< T > > > list)
Creates new object instance.
Definition: ilist_impl.h:17
virtual void Remove(SharedPtr< System::Object > item) override
Removes first instance of specific item from list.
Definition: ilist_impl.h:87
virtual int get_Count() const override
ICollection.get_Count() methods implementation Gets number of elements in collection.
Definition: ilist_impl.h:95
virtual void Clear() override
Deletes all elements.
Definition: ilist_impl.h:72
static System::SharedPtr< T > UnboxValue(System::SharedPtr< System::Object > value)
Converting object value into partucular type reference.
Definition: ilist_impl.h:21
Stub that implements System::Collections::IList interface on System::Collections::Generic::List objec...
Definition: ilist_impl.h:115
virtual void Clear() override
Deletes all elements.
Definition: ilist_impl.h:163
IListImplValueType(System::SharedPtr< System::Collections::Generic::IList< T > > list)
Creates new object instance.
Definition: ilist_impl.h:119
virtual SharedPtr< System::Collections::IEnumerator > GetEnumerator() override
IEnumerable.GetEnumerator() implementation Returns an enumerator that iterates through a collection.
Definition: ilist_impl.h:193
virtual int get_Count() const override
ICollection.get_Count() methods implementation Gets number of elements in collection.
Definition: ilist_impl.h:186
virtual bool Contains(SharedPtr< System::Object > item) const override
Checks if item is present in list.
Definition: ilist_impl.h:171
virtual void Remove(SharedPtr< System::Object > item) override
Removes first instance of specific item from list.
Definition: ilist_impl.h:178
virtual int IndexOf(System::SharedPtr< System::Object > value) const override
Gets index of first appearance of item in container.
Definition: ilist_impl.h:142
virtual SharedPtr< System::Object > idx_get(int index, int dummy=0) const override
Gets the element at the specified index.
Definition: ilist_impl.h:126
int Add(SharedPtr< System::Object > item) override
Adds element to the end of list.
Definition: ilist_impl.h:156
virtual void RemoveAt(int index) override
Removes item at specified position.
Definition: ilist_impl.h:149
virtual void Insert(int index, System::SharedPtr< System::Object > value) override
Inserts element into specified position, shifting other elements.
Definition: ilist_impl.h:134
static std::enable_if< std::is_enum< T >::value, System::SmartPtr< System::Object > >::type Box(const T &value)
Boxes value types for converting to Object. Implementation for enum types.
Definition: object_ext.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
Definition: db_command.h:9