OROCHI
 
Loading...
Searching...
No Matches
GxListClassBase.inl
Go to the documentation of this file.
1//===========================================================================
9//===========================================================================
10
11//---------------------------------------------------------------------------
14//---------------------------------------------------------------------------
19
20//---------------------------------------------------------------------------
23//---------------------------------------------------------------------------
25{
27 iterator.getBottom();
28 iterator.getNext();
29 return iterator;
30}
31
32//---------------------------------------------------------------------------
33// const配列
36//---------------------------------------------------------------------------
37template <class T>
38GX_FORCE_INLINE const T GxListClassBase::GxIterator<T>::operator[](u32 i) const
39{
40 auto* pGxNodeClassBase = _pListClassBase->getNode(i);
41 if(pGxNodeClassBase)
42 {
43 return static_cast<T>(pGxNodeClassBase->getObject());
44 }
45 return nullptr;
46}
47
48//---------------------------------------------------------------------------
49// 配列
52//---------------------------------------------------------------------------
53template <class T>
55{
56 auto* pGxNodeClassBase = _pListClassBase->getNode(i);
57 if(pGxNodeClassBase)
58 {
59 return static_cast<T>(pGxNodeClassBase->getObject());
60 }
61 return nullptr;
62}
63
64//---------------------------------------------------------------------------
65// 先頭を取得
67//---------------------------------------------------------------------------
68template <class T>
70{
71 _pCurrent = _pListClassBase->getTop();
72 if(_pCurrent)
73 {
74 return static_cast<T>(_pCurrent->getObject());
75 }
76 return nullptr;
77}
78
79//---------------------------------------------------------------------------
80// 終端を取得
82//---------------------------------------------------------------------------
83template <class T>
85{
86 _pCurrent = _pListClassBase->getBottom();
87 if(_pCurrent)
88 {
89 return static_cast<T>(_pCurrent->getObject());
90 }
91 return nullptr;
92}
93
94//---------------------------------------------------------------------------
95// 前を取得
97//---------------------------------------------------------------------------
98template <class T>
100{
101 if(_pCurrent)
102 {
103 _pCurrent = _pCurrent->getPrevious();
104 if(_pCurrent)
105 {
106 return static_cast<T>(_pCurrent->getObject());
107 }
108 }
109 return nullptr;
110}
111
112//---------------------------------------------------------------------------
113// 現在のオブジェクトを取得
115//---------------------------------------------------------------------------
116template <class T>
118{
119 if(_pCurrent)
120 {
121 return static_cast<T>(_pCurrent->getObject());
122 }
123 return nullptr;
124}
125
126//---------------------------------------------------------------------------
127// 次を取得
129//---------------------------------------------------------------------------
130template <class T>
132{
133 if(_pCurrent)
134 {
135 _pCurrent = _pCurrent->getNext();
136 if(_pCurrent)
137 {
138 return static_cast<T>(_pCurrent->getObject());
139 }
140 }
141 return nullptr;
142}
143
144//---------------------------------------------------------------------------
145// 先頭を取得
147//---------------------------------------------------------------------------
152
153//---------------------------------------------------------------------------
154// 終端を取得
156//---------------------------------------------------------------------------
161
162//---------------------------------------------------------------------------
163// 指定インデックスのノードを取得
166//---------------------------------------------------------------------------
168{
169 return static_cast<GxNodeClassBaseReference*>(Super::getNode(index));
170}
171
172//---------------------------------------------------------------------------
173// 親リストを取得
175//---------------------------------------------------------------------------
177{
178 return static_cast<GxListClassBaseReference*>(Super::getParent());
179}
180
181//---------------------------------------------------------------------------
182// 前のノードを取得
184//---------------------------------------------------------------------------
189
190//---------------------------------------------------------------------------
191// 次のノードを取得
193//---------------------------------------------------------------------------
198
199//---------------------------------------------------------------------------
200// オブジェクトを取得
202//---------------------------------------------------------------------------
204{
205 return static_cast<GxClassBaseReference*>(Super::getObject());
206}
参照オブジェクト基底クラス
Definition GxBase.h:122
イテレータ
Definition GxListClassBase.h:194
GX_FORCE_INLINE T getTop(void)
先頭を取得
Definition GxListClassBase.inl:69
GX_FORCE_INLINE T getCurrent(void) const
現在のオブジェクトを取得
Definition GxListClassBase.inl:117
GX_FORCE_INLINE T getNext(void)
次を取得
Definition GxListClassBase.inl:131
GX_FORCE_INLINE T getPrevious(void)
前を取得
Definition GxListClassBase.inl:99
GX_FORCE_INLINE T getBottom(void)
終端を取得
Definition GxListClassBase.inl:84
GX_FORCE_INLINE const T operator[](u32 i) const
const配列
Definition GxListClassBase.inl:38
GxListClassBase::GxNodeClassBase * _pTop
先頭ノード
Definition GxListClassBase.h:115
GX_FORCE_INLINE GxIterator< GxClassBaseRoot * > end(void)
終端を取得
Definition GxListClassBase.inl:24
GX_FORCE_INLINE GxIterator< GxClassBaseRoot * > begin(void)
先頭を取得
Definition GxListClassBase.inl:15
GxListClassBase::GxNodeClassBase * _pBottom
終端ノード
Definition GxListClassBase.h:116
GxClassBaseReference用連結リストノードクラス
Definition GxListClassBase.h:315
GX_FORCE_INLINE GxListClassBaseReference * getParent(void) const
親リストを取得
Definition GxListClassBase.inl:176
GX_FORCE_INLINE GxNodeClassBaseReference * getNext(void) const
次のノードを取得
Definition GxListClassBase.inl:194
GX_FORCE_INLINE GxClassBaseReference * getObject(void) const
オブジェクトを取得
Definition GxListClassBase.inl:203
GX_FORCE_INLINE GxNodeClassBaseReference * getPrevious(void) const
前のノードを取得
Definition GxListClassBase.inl:185
GxClassBaseReference用連結リストクラス
Definition GxListClassBase.h:263
GX_FORCE_INLINE GxNodeClassBaseReference * getNode(u32 index) const
指定インデックスのノードを取得
Definition GxListClassBase.inl:167
GX_FORCE_INLINE GxNodeClassBaseReference * getTop(void) const
先頭を取得
Definition GxListClassBase.inl:148
GX_FORCE_INLINE GxNodeClassBaseReference * getBottom(void) const
終端を取得
Definition GxListClassBase.inl:157