OSVR Framework (Internal Development Docs)  0.6-1962-g59773924
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
OSVR_DeviceTokenObject Struct Referenceabstract

A DeviceToken connects the generic device interaction code in PluginKit's C API with the workings of an actual ConnectionDevice. More...

#include <osvr/Connection/DeviceToken.h>

Inheritance diagram for OSVR_DeviceTokenObject:
osvr::connection::AsyncDeviceToken osvr::connection::SyncDeviceToken osvr::connection::VirtualDeviceToken

Public Types

using EventFunction = std::function< void()>
 

Public Member Functions

virtual ~OSVR_DeviceTokenObject ()
 Destructor.
 
std::string const & getName () const
 Accessor for name property.
 
void setUpdateCallback (osvr::connection::DeviceUpdateCallback const &cb)
 Sets the update/wait callback.
 
void setPreConnectionInteract (EventFunction const &f)
 Sets a function to be executed at the beginning of connectionInteract()
 
void sendData (osvr::connection::MessageType *type, const char *bytestream, size_t len)
 Send data. More...
 
void sendData (osvr::util::time::TimeValue const &timestamp, osvr::connection::MessageType *type, const char *bytestream, size_t len)
 Send data. More...
 
osvr::util::GuardPtr getSendGuard ()
 
void connectionInteract ()
 Interact with connection. Only legal to end up in ConnectionDevice::sendData from within here somehow.
 
void stopThreads ()
 Stop any threads spawned and owned by this DeviceToken.
 
void setDeviceDescriptor (std::string const &jsonString)
 Send a new or updated device descriptor for this device.
 
template<typename T >
void * acquireObject (T obj)
 Pass (smart-pointer) ownership of some object to the client context.
 
bool releaseObject (void *obj)
 Frees some object whose lifetime is controlled by the client context. More...
 

Static Public Member Functions

Factory functions

Creates a device token (and underlying ConnectionDevice) that has a wait callback that can block, that is called repeatedly in a thread of its own (managed by OSVR)

static
osvr::connection::DeviceTokenPtr 
createAsyncDevice (osvr::connection::DeviceInitObject &init)
 
static
osvr::connection::DeviceTokenPtr 
createSyncDevice (osvr::connection::DeviceInitObject &init)
 Creates a device token (and underlying ConnectionDevice) that has an update method that runs in the server mainloop.
 
static
osvr::connection::DeviceTokenPtr 
createVirtualDevice (std::string const &name, osvr::connection::ConnectionPtr const &conn)
 Creates a device token (and underlying ConnectionDevice) without a traditional, built-in update method - typically for server-internal usage.
 

Protected Member Functions

 OSVR_DeviceTokenObject (std::string const &name)
 
osvr::connection::ConnectionPtr m_getConnection ()
 
osvr::connection::ConnectionDevicePtr m_getConnectionDevice ()
 
virtual void m_setUpdateCallback (osvr::connection::DeviceUpdateCallback const &cb)=0
 
virtual void m_sendData (osvr::util::time::TimeValue const &timestamp, osvr::connection::MessageType *type, const char *bytestream, size_t len)=0
 
virtual osvr::util::GuardPtr m_getSendGuard ()=0
 
virtual void m_connectionInteract ()=0
 
virtual void m_stopThreads ()
 

Detailed Description

A DeviceToken connects the generic device interaction code in PluginKit's C API with the workings of an actual ConnectionDevice.

Definition at line 56 of file DeviceToken.h.

Member Function Documentation

void OSVR_DeviceTokenObject::sendData ( osvr::connection::MessageType type,
const char *  bytestream,
size_t  len 
)

Send data.

The timestamp for the data is assumed to be at the time this call is placed.

This may block until the next connectionInteract call before forwarding on to ConnectionDevice::sendData, depending on the type of device token.

void OSVR_DeviceTokenObject::sendData ( osvr::util::time::TimeValue const &  timestamp,
osvr::connection::MessageType type,
const char *  bytestream,
size_t  len 
)

Send data.

This may block until the next connectionInteract call before forwarding on to ConnectionDevice::sendData, depending on the type of device token.

bool OSVR_DeviceTokenObject::releaseObject ( void *  obj)

Frees some object whose lifetime is controlled by the client context.

Returns
true if the object was found and released.

Definition at line 113 of file DeviceToken.cpp.


The documentation for this struct was generated from the following files: