Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
IceCore::Container Class Reference

#include <OPC_IceHook.h>

Inheritance diagram for IceCore::Container:
Inheritance graph
[legend]

List of all members.

Public Member Functions

inline_ ContainerAdd (udword entry)
inline_ ContainerAdd (const udword *entries, udword nb)
inline_ ContainerAdd (float entry)
inline_ ContainerAdd (const float *entries, udword nb)
inline_ ContainerAddUnique (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.
ContainerEmpty ()
ContainerFindNext (udword &entry, FindMode find_mode=FIND_CLAMP)
ContainerFindPrev (udword &entry, FindMode find_mode=FIND_CLAMP)
inline_ void ForceSize (udword size)
inline_ udwordGetEntries () 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_ udwordoperator[] (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.
udwordmEntries
 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.

Detailed Description

Definition at line 26 of file OPC_IceHook.h.


Constructor & Destructor Documentation

Constructor. No entries allocated there.

Definition at line 40 of file IceContainer.cpp.

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.


Member Function Documentation

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...

Parameters:
entry[in] a udword to store in the container
See also:
Add(float entry)
Empty()
Contains(udword entry)
Returns:
Self-Reference

Definition at line 48 of file OPC_IceHook.h.

inline_ Container& IceCore::Container::Add ( const udword entries,
udword  nb 
) [inline]

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...

Parameters:
entry[in] a float to store in the container
See also:
Add(udword entry)
Empty()
Contains(udword entry)
Returns:
Self-Reference

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.

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.

Parameters:
entry[in] the value to look for in the container
location[out] a possible pointer to store the entry location
See also:
Add(udword entry)
Add(float entry)
Empty()
Returns:
true if the value has been found in the container, else false.

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.

Parameters:
entry[in] the value to delete.
Returns:
true if the value has been found in the container, else false.
Warning:
This method is arbitrary slow (O(n)) and should be used carefully. Insertion order is not preserved.

Definition at line 246 of file IceContainer.cpp.

Deletes the entry whose index is given.

Definition at line 165 of file OPC_IceHook.h.

Deletes an entry, preserving the insertion order. If the container contains such an entry, it's removed.

Parameters:
entry[in] the value to delete.
Returns:
true if the value has been found in the container, else false.
Warning:
This method is arbitrary slow (O(n)) and should be used carefully.

Definition at line 269 of file IceContainer.cpp.

Deletes the very last entry.

Definition at line 163 of file OPC_IceHook.h.

Clears the container. All stored values are deleted, and it frees used ram.

See also:
Reset()
Returns:
Self-Reference

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.

Parameters:
entry[in/out] On input, the entry to look for. On output, the next entry
find_mode[in] wrap/clamp
Returns:
Self-Reference

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.

Parameters:
entry[in/out] On input, the entry to look for. On output, the previous entry
find_mode[in] wrap/clamp
Returns:
Self-Reference

Definition at line 317 of file IceContainer.cpp.

Definition at line 134 of file OPC_IceHook.h.

Returns the list of entries.

Definition at line 173 of file OPC_IceHook.h.

Returns ith entry.

Definition at line 172 of file OPC_IceHook.h.

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.

Definition at line 176 of file OPC_IceHook.h.

Operator for "Container A = Container B".

Definition at line 196 of file OPC_IceHook.h.

Returns the current number of entries.

Definition at line 171 of file OPC_IceHook.h.

Definition at line 197 of file OPC_IceHook.h.

Gets the ram used by the container.

Returns:
the ram used in bytes.

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.

Checks the container is empty.

Definition at line 182 of file OPC_IceHook.h.

inline_ udword IceCore::Container::operator[] ( udword  i) const [inline]

Read-access as an array.

Definition at line 185 of file OPC_IceHook.h.

inline_ udword& IceCore::Container::operator[] ( udword  i) [inline]

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.

Returns:
true if success

Definition at line 181 of file IceContainer.cpp.

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.

See also:
Empty()

Reimplemented in Opcode::CollisionFaces.

Definition at line 126 of file OPC_IceHook.h.

bool Container::Resize ( udword  needed = 1) [private]

Resizes the container.

Parameters:
needed[in] assume the container can be added at least "needed" values
Returns:
true if success.

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.

Parameters:
nb[in] Number of entries
Returns:
true if success

Definition at line 153 of file IceContainer.cpp.


Member Data Documentation

Current number of entries.

Definition at line 208 of file OPC_IceHook.h.

List of entries.

Definition at line 209 of file OPC_IceHook.h.

Resize: new number of entries = old number * mGrowthFactor.

Definition at line 210 of file OPC_IceHook.h.

Maximum possible number of entries.

Definition at line 207 of file OPC_IceHook.h.

Number of containers around.

Definition at line 200 of file OPC_IceHook.h.

Amount of bytes used by containers in the system.

Definition at line 201 of file OPC_IceHook.h.


The documentation for this class was generated from the following files:


openhrp3
Author(s): AIST, General Robotix Inc., Nakamura Lab of Dept. of Mechano Informatics at University of Tokyo
autogenerated on Thu Apr 11 2019 03:30:22