19#ifndef INCLUDED_vrpn_MainloopObject_h_GUID_38f638e4_40e0_4c6d_bebc_21c463794b88
20#define INCLUDED_vrpn_MainloopObject_h_GUID_38f638e4_40e0_4c6d_bebc_21c463794b88
31#ifdef VRPN_MAINLOOPOBJECT_VERBOSE
33#define VRPN_MAINLOOPOBJECT_MSG(_x) \
34 std::cout << __FILE__ << ":" << __LINE__ << ": " << _x << std::endl;
36#define VRPN_MAINLOOPOBJECT_MSG(_x)
49 "Cannot wrap a null pointer into a vrpn_MainloopObject!")
100 template <
class T>
class TypedMainloopObject;
109 , _do_delete(do_delete)
112 throw vrpn_MainloopObject::
113 CannotWrapNullPointerIntoMainloopObject();
123 fprintf(stderr,
"TypedMainloopObject::~TypedMainloopObject: delete failed\n");
137 virtual bool broken() {
return (_instance->connectionPtr() == NULL); }
153 throw vrpn_MainloopObject::
154 CannotWrapNullPointerIntoMainloopObject();
162 _instance->removeReference();
167 virtual bool broken() {
return (!_instance->doing_okay()); }
virtual bool broken()
Checks the connectionPtr() for the VRPN object to make sure it is not NULL.
virtual void * _returnContained() const
Internal function to return a typeless pointer of the contained object, for comparison purposes.
virtual void mainloop()
The mainloop function: the primary thing we look for in a VRPN object.
virtual ~TypedMainloopObject()
TypedMainloopObject(T *o, bool do_delete=true)
virtual void mainloop()
The mainloop function: the primary thing we look for in a VRPN object.
vrpn_Connection * _instance
virtual bool broken()
Checks the connectionPtr() for the VRPN object to make sure it is not NULL.
virtual void * _returnContained() const
Internal function to return a typeless pointer of the contained object, for comparison purposes.
virtual ~TypedMainloopObject()
TypedMainloopObject(vrpn_Connection *o)
Generic connection class not specific to the transport mechanism.
An interface for all VRPN objects that have a "mainloop" method. Not instantiated directly: use vrpn_...
virtual ~vrpn_MainloopObject()
Destructor.
virtual bool broken()=0
Checks the connectionPtr() for the VRPN object to make sure it is not NULL.
static vrpn_MainloopObject * wrap(T o)
Templated wrapping function.
virtual void mainloop()=0
The mainloop function: the primary thing we look for in a VRPN object.
friend bool operator!=(vrpn_MainloopObject const &lhs, vrpn_MainloopObject const &rhs)
virtual void * _returnContained() const =0
Internal function to return a typeless pointer of the contained object, for comparison purposes.
friend bool operator==(vrpn_MainloopObject const &lhs, vrpn_MainloopObject const &rhs)
Namespace enclosing internal implementation details.
Exception thrown when trying to wrap a NULL pointer.
CannotWrapNullPointerIntoMainloopObject()
#define VRPN_MAINLOOPOBJECT_MSG(_x)