VR-Forces 4.0.4 Class Documentation
include/vrvCore/DtEventView.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 2009 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 /******************************************************************************
00006 ** $RCSfile: DtEventView.h,v $ $Revision: 1.10 $ $State: Exp $
00007 ******************************************************************************/
00008 
00012 
00013 #ifndef DtEventView_H_
00014 #define DtEventView_H_
00015 
00016 #include <vrvCore/vrvCore.h>
00017 #include <vrvCore/DtDe.h>
00018 #include <vrvCore/DtSimEventEntry.h>
00019 #include <vrvCore/DtDataBank.h>
00020 
00021 #include <boost/bind.hpp>
00022 
00023 namespace makVrv
00024 {
00025    class DtSimEntry;
00026 
00029    class DT_DLL_VRVCORE DtBaseEventView
00030    {
00031 
00032    public:
00033 
00035       virtual ~DtBaseEventView();
00036 
00037    protected :   
00038     
00040       DtBaseEventView();
00041 
00042    };
00043 
00044 
00045    template <class EventType>
00046    class DtEventSignaler : public DtVirtualBaseClass
00047    {
00048    public:
00049 
00052       static DtEventSignaler& instance(DtSimData&);
00053 
00056       static void release(DtSimData&);
00057 
00059       DtEventSignaler(DtSimData&);
00060 
00061       ~DtEventSignaler();
00062 
00064       boost::signal<void (const EventType&)> signal_eventTriggered;
00065 
00066    protected:
00067 
00070       void onEventTriggered(const DtSimEventEntry& entry);
00071 
00073       void connectToEventTriggeredSignal();
00074 
00076       void disconnectFromEventTriggeredSignal();
00077 
00078    protected:
00079 
00080       DtSimData& mySimData;
00081       unsigned int myReferenceCount;
00082    };
00083 
00086    template<class EventType>
00087    class DtEventView : public DtBaseEventView
00088    {
00089 
00090    public:
00091 
00093       DtEventView(DtDe& de);
00094 
00096       virtual ~DtEventView();
00097 
00099       boost::signal<void (const EventType&)> signal_eventTriggered;
00100 
00101    protected:
00102 
00105       void onEventTriggered(const EventType& entry);
00106 
00108       void connectToEventTriggeredSignal();
00109 
00111       void disconnectFromEventTriggeredSignal();
00112 
00113       DtDe& myDe;
00114    };
00115 
00116 }
00117 
00118 #define DtEventView_INL_
00119 #include <vrvCore/DtEventView.inl>
00120 #undef DtEventView_INL_
00121 
00122 #endif
00123 

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)