OSVR-Core
Public Member Functions | Protected Member Functions | List of all members
osvr::common::BaseDevice Class Referenceabstract

Class used as an interface for underlying devices that can have device components (corresponding to interface classes) More...

#include <BaseDevice.h>

Inheritance diagram for osvr::common::BaseDevice:
osvr::common::DeviceWrapper osvr::connection::vrpn_BaseFlexServer

Public Member Functions

virtual OSVR_COMMON_EXPORT ~BaseDevice ()
 Virtual destructor. More...
 
template<typename T >
TaddComponent (shared_ptr< T > component)
 Adds a component to a base device. More...
 
void registerHandler (vrpn_MESSAGEHANDLER handler, void *userdata, RawMessageType const &msgType)
 
void unregisterHandler (vrpn_MESSAGEHANDLER handler, void *userdata, RawMessageType const &msgType)
 
template<typename T >
void registerMessageType (MessageRegistration< T > &messageReg)
 Call with a MessageRegistration object, and the message type will be registered and stored in the type field. More...
 
RawSenderType getSender ()
 
OSVR_COMMON_EXPORT void update ()
 Called from the outside to run the mainloop on the device and its components. More...
 
OSVR_COMMON_EXPORT void sendPending ()
 Called from a component to send pending messages instead of waiting for next time. More...
 
template<typename T , typename ClassOfService >
void packMessage (Buffer< T > const &buf, RawMessageType const &msgType, util::time::TimeValue const &timestamp, class_of_service::ClassOfServiceBase< ClassOfService > const &)
 
template<typename T >
void packMessage (Buffer< T > const &buf, RawMessageType const &msgType, util::time::TimeValue const &timestamp)
 
template<typename T , typename ClassOfService >
void packMessage (Buffer< T > const &buf, RawMessageType const &msgType, class_of_service::ClassOfServiceBase< ClassOfService > const &)
 
template<typename T >
void packMessage (Buffer< T > const &buf, RawMessageType const &msgType)
 
std::string const & getDeviceName () const
 

Protected Member Functions

OSVR_COMMON_EXPORT BaseDevice ()
 Constructor.
 
OSVR_COMMON_EXPORT void m_setup (vrpn_ConnectionPtr conn, RawSenderType sender, std::string const &name)
 Should be called by derived class to set the connection, etc.
 
vrpn_ConnectionPtr m_getConnection () const
 Accessor for underlying connection.
 
virtual void m_update ()=0
 Implementation-specific update (call client_mainloop() or server_mainloop() in it!)
 

Detailed Description

Class used as an interface for underlying devices that can have device components (corresponding to interface classes)

Constructor & Destructor Documentation

§ ~BaseDevice()

osvr::common::BaseDevice::~BaseDevice ( )
virtual

Virtual destructor.

Clear the component list first to make sure handler are unregistered.

Member Function Documentation

§ addComponent()

template<typename T >
T* osvr::common::BaseDevice::addComponent ( shared_ptr< T component)
inline

Adds a component to a base device.

Exceptions
std::logic_errorif you pass a null pointer.

§ registerMessageType()

template<typename T >
void osvr::common::BaseDevice::registerMessageType ( MessageRegistration< T > &  messageReg)
inline

Call with a MessageRegistration object, and the message type will be registered and stored in the type field.

§ sendPending()

void osvr::common::BaseDevice::sendPending ( )

Called from a component to send pending messages instead of waiting for next time.

§ update()

void osvr::common::BaseDevice::update ( )

Called from the outside to run the mainloop on the device and its components.


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