19 #ifndef INCLUDED_vrpn_ConnectionPtr_h_GUID_52044DCC_1409_4F8B_FC18_0F80285ABDBE 20 #define INCLUDED_vrpn_ConnectionPtr_h_GUID_52044DCC_1409_4F8B_FC18_0F80285ABDBE 57 if (
this == &other || _p == other._p) {
123 return (this->
operator!()) ? &vrpn_ConnectionPtr::_p : NULL;
135 const char* local_in_logfile_name = NULL,
136 const char* local_out_logfile_name = NULL,
137 const char* NIC_NAME = NULL)
141 local_out_logfile_name, NIC_NAME),
147 const char* local_in_logfile_name = NULL,
148 const char* local_out_logfile_name = NULL)
152 local_out_logfile_name),
164 if (_p && needsAddRef) {
173 void this_type_does_not_support_comparisons()
const {}
181 return lhs.
get() == rhs.
get();
189 return lhs.
get() != rhs.
get();
193 template <
typename T>
200 rhs.this_type_does_not_support_comparisons();
204 template <
typename T>
206 rhs.this_type_does_not_support_comparisons();
210 template <
typename T>
212 lhs.this_type_does_not_support_comparisons();
216 template <
typename T>
218 lhs.this_type_does_not_support_comparisons();
237 throw vrpn_MainloopObject::
238 CannotWrapNullPointerIntoMainloopObject();
242 virtual bool broken() {
return (!_instance->doing_okay()); }
254 #endif // INCLUDED_vrpn_ConnectionPtr_h_GUID_52044DCC_1409_4F8B_FC18_0F80285ABDBE bool operator!=(const vrpn_ConnectionPtr &lhs, const vrpn_ConnectionPtr &rhs)
Inequality operator for connection smart pointers.
virtual bool broken()
Checks the connectionPtr() for the VRPN object to make sure it is not NULL.
~vrpn_ConnectionPtr()
Destructor - decrements the contained reference count, if applicable.
TypedMainloopObject(vrpn_ConnectionPtr o)
void reset()
Clears the contained pointer and decrements the reference count, if applicable.
vrpn_Connection const & operator*() const
vrpn_Connection const * operator->() const
vrpn_ConnectionPtr & operator=(vrpn_Connection *other)
Assignment operator from non-smart pointer.
vrpn_ConnectionPtr(vrpn_Connection *c=NULL)
Explicit constructor from a non-smart connection pointer.
Generic connection class not specific to the transport mechanism.
static vrpn_ConnectionPtr create_server_connection(int port=vrpn_DEFAULT_LISTEN_PORT_NO, const char *local_in_logfile_name=NULL, const char *local_out_logfile_name=NULL, const char *NIC_NAME=NULL)
vrpn_ConnectionPtr & operator=(vrpn_ConnectionPtr const &other)
Assignment operator from smart pointer.
Namespace enclosing internal implementation details.
virtual void mainloop()
The mainloop function: the primary thing we look for in a VRPN object.
vrpn_Connection * operator->()
vrpn_Connection * get() const
Gets the contained "non-smart" pointer. You are responsible for calling vrpn_Connection::addReference...
vrpn_Connection & operator*()
A shared pointer class for holding on to vrpn_Connection instances, using the existing "intrusive ref...
static vrpn_ConnectionPtr create_server_connection(const char *cname, const char *local_in_logfile_name=NULL, const char *local_out_logfile_name=NULL)
vrpn_Connection *vrpn_ConnectionPtr::* unspecified_bool_type
bool operator==(const vrpn_ConnectionPtr &lhs, const vrpn_ConnectionPtr &rhs)
Equality operator for connection smart pointers.
An interface for all VRPN objects that have a "mainloop" method. Not instantiated directly: use vrpn_...
vrpn_Connection * vrpn_create_server_connection(const char *cname, const char *local_in_logfile_name, const char *local_out_logfile_name)
Create a server connection of arbitrary type (VRPN UDP/TCP, TCP, File, Loopback, MPI).
void addReference()
Counting references to this connection.
vrpn_ConnectionPtr(vrpn_ConnectionPtr const &other)
Copy constructor from smart pointer.
virtual void * _returnContained() const
Internal function to return a typeless pointer of the contained object, for comparison purposes...