VR-Forces 4.0.4 Class Documentation
include/vrfExtObjects/reflExtAgg.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2004 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /*******************************************************************************
00006 ** $RCSfile: reflExtAgg.h,v $ $Revision: 1.14 $ $State: Exp $
00007 *******************************************************************************/
00008 
00009 #ifndef REFLEXTAGG_H
00010 #define REFLEXTAGG_H
00011 
00012 #if DtHLA
00013    #include <vl/hReflectedObj.h>
00014    #define DtAggReflectedObjectType DtReflectedObject
00015 #elif DtDIS
00016    #include <vl/dReflectedAgg.h>
00017    #define DtAggReflectedObjectType DtReflectedAggregate
00018 #elif DtTENA
00019    #include <vl/tReflectedAgg.h>
00020    #define DtAggReflectedObjectType DtReflectedAggregate
00021 #else
00022 #  pragma message ( "No protocol defined." )
00023 #endif
00024 
00025 #include <vrfExtObjects/extAggSR.h>
00026 
00027 // Callback function that takes a DtReflectedExtAggregate 
00028 // and usr data.
00029 
00030 class DtReflectedExtAggregate;
00031 
00032 typedef void (*DtExtAggregateCallbackFunction)
00033 (
00034    DtReflectedExtAggregate* obj, void* userData
00035 );
00036 
00037 class DtExerciseConn;
00038 
00039 #include <vrfExtObjects/vrfExtObjectsDefines.h>
00040 class DT_DLL_vrfExtObjects DtReflectedExtAggregate : public DtAggReflectedObjectType
00041 {
00042 
00043 public:
00044 
00045 #if DtHLA
00046    DtReflectedExtAggregate
00047    (
00048       DtHlaObject* obj,
00049       DtExerciseConn* conn
00050    );
00051    DtReflectedExtAggregate(DtExerciseConn* conn, DtAggregateStateRepository* esrToUse);
00052 #elif (DtDIS || DtTENA)
00053    // constructor
00054    DtReflectedExtAggregate
00055    (
00056       DtExerciseConn* conn,
00057       const DtEntityIdentifier& id,
00058       const DtEntityType& type
00059    );
00060 #else
00061 #  pragma message ( "No protocol defined." )
00062 #endif
00063 
00064    // destructor
00065    virtual ~DtReflectedExtAggregate();
00066 
00067    // Returns a pointer to an aggregate state repository through which you can 
00068    // inspect current state info.
00069    virtual DtExtAggregateStateRepository* extAggregateStateRep() const;
00070 
00071    // Synonym for extAggregateStateRep.
00072    virtual DtExtAggregateStateRepository* easr() const;
00073 
00074    // Implementation for abstract base class.  Calls cosr().
00075    virtual DtStateRepository* stateRep() const;
00076 
00077 #if DtDIS
00078    // Process an aggregate state PDU.  
00079    // Calls DtReflectedAggregate::processStateMessage().
00080    virtual void processStateMessage(const DtStateMsg& msg);
00081 #endif
00082 
00083    // Get the next and previous elements in the reflected aggregate list.
00084    virtual DtReflectedExtAggregate* nextEA() const;
00085    virtual DtReflectedExtAggregate* prevEA() const;
00086 
00087    // Get the next and previous elements, wrap at the ends of the list.
00088    virtual DtReflectedExtAggregate* wrapNextEA() const;
00089    virtual DtReflectedExtAggregate* wrapPrevEA() const;
00090 
00091    // Aggregate callback registration/deregistration.
00092    virtual void addPostUpdateCallback
00093    (
00094       DtExtAggregateCallbackFunction cb, void* userData
00095    );
00096    virtual void removePostUpdateCallback
00097    (
00098       DtExtAggregateCallbackFunction cb, void* userData
00099    );
00100 
00101    static void postUpdateCallback
00102    (
00103       DtReflectedExtAggregate* agg, void* userData
00104    );
00105 
00106    virtual void processPostUpdateCallback(DtReflectedExtAggregate* agg);
00107 
00108    virtual void updateExtensions();
00109 
00110    // Overridden from bast class to make public.
00111    virtual void processPostUpdateCallbacks();
00112 
00113 private:
00114 
00115    // copy constructor
00116    DtReflectedExtAggregate(const DtReflectedExtAggregate& orig);
00117 
00118    // assignment operator
00119    DtReflectedExtAggregate& operator=(const DtReflectedExtAggregate& orig);
00120 
00121 };
00122 
00123 #endif

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)