|
| EndpointContainer () |
| Constructor of empty container.
|
|
| ~EndpointContainer () |
| Destructor - includes a call to clear()
|
|
void | clear () |
| Tells each held endpoint in turn to drop the connection then deletes it
|
|
pointer | front () const |
| Shorthand for get_by_index(0)
|
|
template<typename T > |
T * | acquire (T *endpoint) |
| Given the result of an endpoint allocator, if it's non-NULL, takes ownership of it.
|
|
void | compact () |
| Goes through and gets rid of the NULL entries.
|
|
bool | full () const |
| Can we no longer accommodate a new endpoint?
|
|
bool | is_valid (size_type i) const |
| Checks to see if an index is both in-range and pointing to a still-extant object
|
|
bool | destroy (base_pointer endpoint) |
| Destroys the contained endpoint by address.
|
|
pointer | get_by_index (size_type i) const |
|
size_type | get_full_container_size () const |
| Get size of container including NULL elements that haven't been compacted yet.
|
|
iterator | begin () const |
| Get an iterator to the beginning that skips nulls. Invalidated by compacting.
|
|
iterator | end () const |
| Get an iterator suitable only for testing to see if we're "done"
|
|
Container for endpoints, held by pointer.
To check if we have room, use this: if (d_endpoints.full()) {}
instead of the old code looking like this: if (which_end >= vrpn_MAX_ENDPOINTS)
Usage example for iteration:
it != e; ++it) {
it->pack_type_description(which)
}
An iterator that goes forward in an EndpointContainer skipping the NULLs, that also acts a bit like a...
定义 vrpn_EndpointContainer.h:164