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