#include <OPC_IceHook.h>
Public Member Functions | |
inline_ Container & | Add (udword entry) |
inline_ Container & | Add (const udword *entries, udword nb) |
inline_ Container & | Add (float entry) |
inline_ Container & | Add (const float *entries, udword nb) |
inline_ Container & | AddUnique (udword entry) |
Add unique [slow]. | |
Container () | |
Container (const Container &object) | |
Container (udword size, float growth_factor) | |
bool | Contains (udword entry, udword *location=null) const |
bool | Delete (udword entry) |
inline_ void | DeleteIndex (udword index) |
Deletes the entry whose index is given. | |
bool | DeleteKeepingOrder (udword entry) |
inline_ void | DeleteLastEntry () |
Deletes the very last entry. | |
Container & | Empty () |
Container & | FindNext (udword &entry, FindMode find_mode=FIND_CLAMP) |
Container & | FindPrev (udword &entry, FindMode find_mode=FIND_CLAMP) |
inline_ void | ForceSize (udword size) |
inline_ udword * | GetEntries () const |
Returns the list of entries. | |
inline_ udword | GetEntry (udword i) const |
Returns ith entry. | |
inline_ udword | GetFirst () const |
inline_ float | GetGrowthFactor () const |
Returns the growth factor. | |
inline_ udword | GetLast () const |
inline_ udword | GetNbContainers () const |
Operator for "Container A = Container B". | |
inline_ udword | GetNbEntries () const |
Returns the current number of entries. | |
inline_ udword | GetTotalBytes () const |
udword | GetUsedRam () const |
inline_ bool | IsFull () const |
Checks the container is full. | |
inline_ BOOL | IsNotEmpty () const |
Checks the container is empty. | |
inline_ udword | operator[] (udword i) const |
Read-access as an array. | |
inline_ udword & | operator[] (udword i) |
Write-access as an array. | |
bool | Refit () |
inline_ void | Reset () |
inline_ void | SetGrowthFactor (float growth) |
Sets the growth factor. | |
bool | SetSize (udword nb) |
~Container () | |
Private Member Functions | |
bool | Resize (udword needed=1) |
Private Attributes | |
udword | mCurNbEntries |
Current number of entries. | |
udword * | mEntries |
List of entries. | |
float | mGrowthFactor |
Resize: new number of entries = old number * mGrowthFactor. | |
udword | mMaxNbEntries |
Maximum possible number of entries. | |
Static Private Attributes | |
static udword | mNbContainers |
Number of containers around. | |
static udword | mUsedRam |
Amount of bytes used by containers in the system. |
Definition at line 26 of file OPC_IceHook.h.
Constructor. No entries allocated there.
Definition at line 40 of file IceContainer.cpp.
Container::Container | ( | const Container & | object | ) |
Copy constructor.
Definition at line 67 of file IceContainer.cpp.
Container::Container | ( | udword | size, |
float | growth_factor | ||
) |
Constructor. Also allocates a given number of entries.
Definition at line 53 of file IceContainer.cpp.
Destructor. Frees everything and leaves.
Definition at line 81 of file IceContainer.cpp.
inline_ Container& IceCore::Container::Add | ( | udword | entry | ) | [inline] |
A O(1) method to add a value in the container. The container is automatically resized if needed. The method is inline, not the resize. The call overhead happens on resizes only, which is not a problem since the resizing operation costs a lot more than the call overhead...
entry | [in] a udword to store in the container |
Definition at line 48 of file OPC_IceHook.h.
Definition at line 58 of file OPC_IceHook.h.
inline_ Container& IceCore::Container::Add | ( | float | entry | ) | [inline] |
A O(1) method to add a value in the container. The container is automatically resized if needed. The method is inline, not the resize. The call overhead happens on resizes only, which is not a problem since the resizing operation costs a lot more than the call overhead...
entry | [in] a float to store in the container |
Definition at line 82 of file OPC_IceHook.h.
inline_ Container& IceCore::Container::Add | ( | const float * | entries, |
udword | nb | ||
) | [inline] |
Definition at line 92 of file OPC_IceHook.h.
inline_ Container& IceCore::Container::AddUnique | ( | udword | entry | ) | [inline] |
Add unique [slow].
Definition at line 104 of file OPC_IceHook.h.
bool Container::Contains | ( | udword | entry, |
udword * | location = null |
||
) | const |
Checks whether the container already contains a given value.
entry | [in] the value to look for in the container |
location | [out] a possible pointer to store the entry location |
Definition at line 224 of file IceContainer.cpp.
bool Container::Delete | ( | udword | entry | ) |
Deletes an entry. If the container contains such an entry, it's removed.
entry | [in] the value to delete. |
Definition at line 246 of file IceContainer.cpp.
inline_ void IceCore::Container::DeleteIndex | ( | udword | index | ) | [inline] |
Deletes the entry whose index is given.
Definition at line 165 of file OPC_IceHook.h.
bool Container::DeleteKeepingOrder | ( | udword | entry | ) |
Deletes an entry, preserving the insertion order. If the container contains such an entry, it's removed.
entry | [in] the value to delete. |
Definition at line 269 of file IceContainer.cpp.
inline_ void IceCore::Container::DeleteLastEntry | ( | ) | [inline] |
Deletes the very last entry.
Definition at line 163 of file OPC_IceHook.h.
Container & Container::Empty | ( | ) |
Clears the container. All stored values are deleted, and it frees used ram.
Definition at line 97 of file IceContainer.cpp.
Container & Container::FindNext | ( | udword & | entry, |
FindMode | find_mode = FIND_CLAMP |
||
) |
Gets the next entry, starting from input one.
entry | [in/out] On input, the entry to look for. On output, the next entry |
find_mode | [in] wrap/clamp |
Definition at line 297 of file IceContainer.cpp.
Container & Container::FindPrev | ( | udword & | entry, |
FindMode | find_mode = FIND_CLAMP |
||
) |
Gets the previous entry, starting from input one.
entry | [in/out] On input, the entry to look for. On output, the previous entry |
find_mode | [in] wrap/clamp |
Definition at line 317 of file IceContainer.cpp.
inline_ void IceCore::Container::ForceSize | ( | udword | size | ) | [inline] |
Definition at line 134 of file OPC_IceHook.h.
inline_ udword* IceCore::Container::GetEntries | ( | ) | const [inline] |
Returns the list of entries.
Definition at line 173 of file OPC_IceHook.h.
inline_ udword IceCore::Container::GetEntry | ( | udword | i | ) | const [inline] |
Returns ith entry.
Definition at line 172 of file OPC_IceHook.h.
inline_ udword IceCore::Container::GetFirst | ( | ) | const [inline] |
Definition at line 175 of file OPC_IceHook.h.
inline_ float IceCore::Container::GetGrowthFactor | ( | ) | const [inline] |
Returns the growth factor.
Definition at line 179 of file OPC_IceHook.h.
inline_ udword IceCore::Container::GetLast | ( | ) | const [inline] |
Definition at line 176 of file OPC_IceHook.h.
inline_ udword IceCore::Container::GetNbContainers | ( | ) | const [inline] |
Operator for "Container A = Container B".
Definition at line 196 of file OPC_IceHook.h.
inline_ udword IceCore::Container::GetNbEntries | ( | ) | const [inline] |
Returns the current number of entries.
Definition at line 171 of file OPC_IceHook.h.
inline_ udword IceCore::Container::GetTotalBytes | ( | ) | const [inline] |
Definition at line 197 of file OPC_IceHook.h.
udword Container::GetUsedRam | ( | ) | const |
Gets the ram used by the container.
Definition at line 335 of file IceContainer.cpp.
inline_ bool IceCore::Container::IsFull | ( | ) | const [inline] |
Checks the container is full.
Definition at line 181 of file OPC_IceHook.h.
inline_ BOOL IceCore::Container::IsNotEmpty | ( | ) | const [inline] |
Checks the container is empty.
Definition at line 182 of file OPC_IceHook.h.
Read-access as an array.
Definition at line 185 of file OPC_IceHook.h.
Write-access as an array.
Definition at line 187 of file OPC_IceHook.h.
bool Container::Refit | ( | ) |
Refits the container and get rid of unused bytes.
Definition at line 181 of file IceContainer.cpp.
inline_ void IceCore::Container::Reset | ( | ) | [inline] |
Resets the container. Stored values are discarded but the buffer is kept so that further calls don't need resizing again. That's a kind of temporal coherence.
Reimplemented in Opcode::CollisionFaces.
Definition at line 126 of file OPC_IceHook.h.
bool Container::Resize | ( | udword | needed = 1 | ) | [private] |
Resizes the container.
needed | [in] assume the container can be added at least "needed" values |
Definition at line 114 of file IceContainer.cpp.
inline_ void IceCore::Container::SetGrowthFactor | ( | float | growth | ) | [inline] |
Sets the growth factor.
Definition at line 180 of file OPC_IceHook.h.
bool Container::SetSize | ( | udword | nb | ) |
Sets the initial size of the container. If it already contains something, it's discarded.
nb | [in] Number of entries |
Definition at line 153 of file IceContainer.cpp.
udword IceCore::Container::mCurNbEntries [private] |
Current number of entries.
Definition at line 208 of file OPC_IceHook.h.
udword* IceCore::Container::mEntries [private] |
List of entries.
Definition at line 209 of file OPC_IceHook.h.
float IceCore::Container::mGrowthFactor [private] |
Resize: new number of entries = old number * mGrowthFactor.
Definition at line 210 of file OPC_IceHook.h.
udword IceCore::Container::mMaxNbEntries [private] |
Maximum possible number of entries.
Definition at line 207 of file OPC_IceHook.h.
udword IceCore::Container::mNbContainers [static, private] |
Number of containers around.
Definition at line 200 of file OPC_IceHook.h.
udword IceCore::Container::mUsedRam [static, private] |
Amount of bytes used by containers in the system.
Definition at line 201 of file OPC_IceHook.h.