![]() |
VR-Link API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 #pragma once 00006 00009 00010 #if DtDIS 00011 00012 #include <vlutil/vlList.h> 00013 #include "pdu.h" 00014 00015 class DT_DLL_VL DtPduCallbackInfo; 00016 00018 typedef void (*DtPduCallbackFcn)(DtPdu* pdu, void* usr); 00019 00024 00025 class DT_DLL_VL DtPduCallbackManager 00026 { 00027 public: 00028 00030 DtPduCallbackManager(); 00031 00033 virtual ~DtPduCallbackManager(); 00034 00036 DtPduCallbackManager(const DtPduCallbackManager& orig); 00037 00039 DtPduCallbackManager& operator=(const DtPduCallbackManager& orig); 00040 00043 virtual void addPduCallback(DtPduKind k, 00044 DtPduCallbackFcn fcn, void* usr); 00045 virtual void removePduCallback(DtPduKind k, 00046 DtPduCallbackFcn fcn, void* usr); 00047 00049 virtual void processPdu(const DtPdu& pdu) const; 00050 00052 virtual int numCallbacks(DtPduKind k) const; 00053 00054 protected: 00055 00057 virtual void addPduCallback(DtPduKind k, DtPduCallbackInfo* info); 00058 virtual void removePduCallback(DtPduKind k, const DtPduCallbackInfo& info); 00059 00062 void emptyList(); 00063 00066 void copyList(const DtPduCallbackManager& orig); 00067 00068 protected: 00069 00070 #define DtMAX_PDU_KINDS 256 00071 DtList myCbList[DtMAX_PDU_KINDS]; 00072 }; 00073 00074 #endif 00075 00076 00077