VR-Forces 4.2 Class Documentation

DtExampleEventSignaler.h

/******************************************************************************
** Copyright (c) 2012 MAK Technologies, Inc.
** All rights reserved.
******************************************************************************/
/******************************************************************************
** $RCSfile: DtExampleEventSignaler.h,v $ $Revision: 1.4 $ $State: Exp $
******************************************************************************/
//\file DtExampleEventSignaler.h
//\brief Contains DtExampleEventSignaler class.
//An event signaler is a class that is used to signal boost style signals from
//the gui thread to the networking thread
#pragma once
#include <vrvUtil/event_signal.h>
#include <vrvUtil/DtVirtualBaseClass.h>
#include <vrvUtil/signalslib.h>
namespace makVrv
{
class DtDe;
class DtSharedSettingsManager;
}
class DtExampleEventSignaler : public makVrv::DtVirtualBaseClass
{
public:
//Get an instance of the simulation settings automatically from the
//settings manager. this will return a different signaler depending
//on what thread this function is called from.
static DtExampleEventSignaler& instance(const makVrv::DtSharedSettingsManager&);
//Get an instance of the simulation settings from the event queue
//interface. This will return the same signaler independent of the thread.
static DtExampleEventSignaler& instance(makVrv::DtEventQueueInterface&);
//Find an instance of the signaler, for an interface, if one does not
//exist it will not be created.
//\retval NULL if the instance does not exist.
makVrv::DtEventQueueInterface*);
//DTOR
//@name Signals
//\brief Signal to send a pdu from the network thread
makVrv::event_signal<void ()> signal_sendPdu;
protected:
DtExampleEventSignaler(makVrv::DtEventQueueInterface& eqi);
private:
};

DtExampleEventSignaler.cxx

/******************************************************************************
** Copyright (c) 2012 MAK Technologies, Inc.
** All rights reserved.
******************************************************************************/
/******************************************************************************
** $RCSfile: DtExampleEventSignaler.cxx,v $ $Revision: 1.10 $ $State: Exp $
******************************************************************************/
//\file DtExampleEventSignaler.cxx
//\brief Contains DtExampleEventSignaler class.
#include <vrvCore/DtSharedSettingsManager.h>
#include <vlutil/vlExceptions.h>
using namespace makVrv;
{
dynamic_cast<DtExampleEventSignaler*>(
eqi.findInstance("DtExampleEventSignaler"));
if(!sig)
{
sig = new DtExampleEventSignaler(eqi);
eqi.registerInstance("DtExampleEventSignaler",sig);
}
return *sig;
}
DtExampleEventSignaler& DtExampleEventSignaler::instance( const DtSharedSettingsManager& manager)
{
DtEventQueueInterface* eqi = manager.findThisThreadEventQueue();
if(eqi)
{
}
else
{
DtTHROW_NEW(DtCorruptedState, "Unable to access Event Queue from manager for DtExampleEventSignaler.");
}
}
{
return dynamic_cast<DtExampleEventSignaler*>(
eqi->findInstance("DtExampleEventSignaler"));
}
{
}
, signal_sendPdu(&DtExampleEventSignaler::signal_sendPdu,eqi)
{
}

Document ID: Generated on Sun Nov 24 19:49:21 EST 2013 from SVN revision 133924
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)