19#ifndef INCLUDED_vrpn_ConnectionPtr_h_GUID_52044DCC_1409_4F8B_FC18_0F80285ABDBE
20#define INCLUDED_vrpn_ConnectionPtr_h_GUID_52044DCC_1409_4F8B_FC18_0F80285ABDBE
26#include <vrpn_Connection.h>
57 if (
this == &other || _p == other._p) {
94 _p->removeReference();
116 bool operator!()
const {
return !_p; }
121 operator unspecified_bool_type()
const
123 return (this->
operator!()) ? &vrpn_ConnectionPtr::_p : NULL;
134 create_server_connection(
int port = vrpn_DEFAULT_LISTEN_PORT_NO,
135 const char* local_in_logfile_name = NULL,
136 const char* local_out_logfile_name = NULL,
137 const char* NIC_NAME = NULL)
140 vrpn_create_server_connection(port, local_in_logfile_name,
141 local_out_logfile_name, NIC_NAME),
146 create_server_connection(
const char* cname,
147 const char* local_in_logfile_name = NULL,
148 const char* local_out_logfile_name = NULL)
151 vrpn_create_server_connection(cname, local_in_logfile_name,
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();
200 rhs.this_type_does_not_support_comparisons();
206 rhs.this_type_does_not_support_comparisons();
212 lhs.this_type_does_not_support_comparisons();
218 lhs.this_type_does_not_support_comparisons();
237 throw vrpn_MainloopObject::
238 CannotWrapNullPointerIntoMainloopObject();
242 virtual bool broken() {
return (!_instance->doing_okay()); }
virtual void mainloop()
The mainloop function: the primary thing we look for in a VRPN object
定义 vrpn_ConnectionPtr.h:244
virtual bool broken()
定义 vrpn_ConnectionPtr.h:242
virtual void * _returnContained() const
定义 vrpn_ConnectionPtr.h:247
定义 vrpn_MainloopObject.h:100
A shared pointer class for holding on to vrpn_Connection instances, using the existing "intrusive ref...
定义 vrpn_ConnectionPtr.h:34
bool operator!=(const vrpn_ConnectionPtr &lhs, const vrpn_ConnectionPtr &rhs)
定义 vrpn_ConnectionPtr.h:186
vrpn_Connection * get() const
定义 vrpn_ConnectionPtr.h:103
vrpn_ConnectionPtr & operator=(vrpn_Connection *other)
Assignment operator from non-smart pointer
定义 vrpn_ConnectionPtr.h:71
void reset()
定义 vrpn_ConnectionPtr.h:91
vrpn_ConnectionPtr & operator=(vrpn_ConnectionPtr const &other)
Assignment operator from smart pointer
定义 vrpn_ConnectionPtr.h:55
bool operator==(const vrpn_ConnectionPtr &lhs, const vrpn_ConnectionPtr &rhs)
定义 vrpn_ConnectionPtr.h:178
~vrpn_ConnectionPtr()
Destructor - decrements the contained reference count, if applicable
定义 vrpn_ConnectionPtr.h:87
vrpn_ConnectionPtr(vrpn_Connection *c=NULL)
Explicit constructor from a non-smart connection pointer
定义 vrpn_ConnectionPtr.h:37
vrpn_ConnectionPtr(vrpn_ConnectionPtr const &other)
Copy constructor from smart pointer
定义 vrpn_ConnectionPtr.h:46
Generic connection class not specific to the transport mechanism.
定义 vrpn_Connection.h:562
void addReference()
Counting references to this connection.
定义 vrpn_MainloopObject.h:43
Namespace enclosing internal implementation details
定义 vrpn_ConnectionPtr.h:225