CodePorting.Translator Cs2Cpp
CodePorting.Translator.Cs2Cpp.Framework
ikvcollection.h
1
2#ifndef _aspose_system_collections_ikvcollection_h_
3#define _aspose_system_collections_ikvcollection_h_
4
5#include <system/array.h>
6#include <system/collections/ilist.h>
7
8namespace System { namespace Collections { namespace Generic {
9
15template <typename T>
16class ASPOSECPP_SHARED_CLASS IKVCollection : public IList<T>
17{
19 RTTI_INFO_TEMPLATE_CLASS(System::Collections::Generic::IKVCollection<T>, System::BaseTypesInfo<System::Collections::Generic::IList<T>>);
20
21public:
22 // IEnumerable
25 virtual SharedPtr<IEnumerator<T> > GetEnumerator() override = 0;
26
27 // ICollection
30 virtual int get_Count() const override = 0;
33 virtual void Add(const T& item) override { ASPOSE_UNUSED(item); throw MakeReadonlyException(); }
35 virtual void Clear() override { throw MakeReadonlyException(); }
39 virtual bool Contains(const T& item) const override { ASPOSE_UNUSED(item); throw System::NotImplementedException(ASPOSE_CURRENT_FUNCTION); }
43 virtual bool Remove(const T& item) override { ASPOSE_UNUSED(item); throw MakeReadonlyException(); }
46 virtual bool get_IsReadOnly() const override { return true; }
47
48 // IList
52 virtual int IndexOf(const T& item) const override { ASPOSE_UNUSED(item); throw System::NotSupportedException(ASPOSE_CURRENT_FUNCTION); }
53
57 virtual void Insert(int index, const T& item) override { ASPOSE_UNUSED(index); ASPOSE_UNUSED(item); throw MakeReadonlyException(); }
60 virtual void RemoveAt(int index) override { ASPOSE_UNUSED(index); throw MakeReadonlyException(); }
61
65 virtual T idx_get(int index) const override = 0;
69 virtual void idx_set(int index, T value) override { ASPOSE_UNUSED(index); ASPOSE_UNUSED(value); throw MakeReadonlyException(); }
70
71protected:
73 ~IKVCollection() override {}
74
76 static System::NotSupportedException MakeReadonlyException()
77 {
78 return System::NotSupportedException(u"The collection is readonly.");
79 }
80};
81
82} } }
83
84#endif // _aspose_system_collections_ikvcollection_h_
Interface of container containing keys or values of the dictionary-like container....
Definition: ikvcollection.h:17
virtual int get_Count() const override=0
Gets number of elements in container.
virtual void Insert(int index, const T &item) override
Inserts item at specified position.
Definition: ikvcollection.h:57
static System::NotSupportedException MakeReadonlyException()
Creates exception which corresponds to calling modifying methods of read-only container.
Definition: ikvcollection.h:76
virtual T idx_get(int index) const override=0
Getter function.
virtual void Clear() override
Deletes all elements from container.
Definition: ikvcollection.h:35
virtual bool Remove(const T &item) override
Removes item from container.
Definition: ikvcollection.h:43
virtual void RemoveAt(int index) override
Removes item at specified position.
Definition: ikvcollection.h:60
virtual void idx_set(int index, T value) override
Setter function.
Definition: ikvcollection.h:69
virtual SharedPtr< IEnumerator< T > > GetEnumerator() override=0
Gets enumerator for container.
virtual bool Contains(const T &item) const override
Checks if item is present in container.
Definition: ikvcollection.h:39
virtual void Add(const T &item) override
Adds item to container.
Definition: ikvcollection.h:33
virtual bool get_IsReadOnly() const override
Checks if container is read only.
Definition: ikvcollection.h:46
virtual int IndexOf(const T &item) const override
Gets index of item in container.
Definition: ikvcollection.h:52
~IKVCollection() override
Destructor.
Definition: ikvcollection.h:73
Interface of indexed container of elements. Objects of this class should only be allocated using Syst...
Definition: ilist.h:19
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