VR-Link API Documentation for DIS
actionPdu.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 *********************************************************************/
00005 #ifndef DtActionRequestPdu_H_
00006 #define DtActionRequestPdu_H_
00007 
00008 
00009 
00010 
00011 #if DtDIS
00012 
00013 #include "hostStructs.h"
00014 #include "pduWithData.h"
00015 #include <vlpi/datumIdType.h>
00016 
00017 class DT_DLL_VL DtExerciseConn;
00018 
00019 /***********************************************/
00020 /************* ACTION REQUEST PDU *************/
00021 /***********************************************/
00022 
00023 
00024 class DT_DLL_VL DtActionRequestPdu;
00025 typedef DtActionRequestPdu DtActionRequestInteraction;
00026 
00028 typedef void (*DtActionRequestInteractionCb)
00029    (DtActionRequestInteraction *pdu, void *usr);
00030 
00034 class DT_DLL_VL DtActionRequestPdu : public DtPduWithData
00035 {
00036 public:
00037    enum { PduStaticSize=40 };
00038 public:
00040    DtActionRequestPdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00041    DtActionRequestPdu(const DtNetActionRequestPdu *initial, 
00042                       DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00043 
00046    static DtPdu *create(const DtNetPacket *initial, 
00047                         DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);   
00048 
00051    static void addCallback(DtExerciseConn *conn, 
00052                            DtActionRequestInteractionCb cb, void *usr);
00053    static void removeCallback(DtExerciseConn *conn, 
00054                               DtActionRequestInteractionCb cb, void *usr);
00055 
00057    unsigned long requestId() const;
00058    void setRequestId(unsigned long id);   
00059 
00061    unsigned long actionId() const;
00062    void setActionId(unsigned long id);   
00063 
00065    virtual void printData() const;
00066 
00068    virtual void printDataToStream(std::ostream& stream) const;
00069 
00070 protected:
00072    DtPduKind internalGetPduKind() const {return DtActionRequestPduKind;}
00073 
00075    DtNetDataPduTail *dataSection() const;
00076 };
00077 
00078 /***********************************************/
00079 /************* ACTION RESPONSE PDU *************/
00080 /***********************************************/
00081 
00082 
00083 class DT_DLL_VL DtActionResponsePdu;
00084 typedef DtActionResponsePdu DtActionResponseInteraction;
00085 
00087 typedef void (*DtActionResponseInteractionCb)(DtActionResponsePdu *pdu, void *usr);
00088 
00092 class DT_DLL_VL DtActionResponsePdu : public DtPduWithData
00093 {
00094 public:
00095 
00096    enum { PduStaticSize=40 };
00097 
00098 public:
00100    DtActionResponsePdu(DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00101    DtActionResponsePdu(const DtNetActionResponsePdu *initial, 
00102                        DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);
00103 
00106    static DtPdu *create(const DtNetPacket *initial, 
00107                         DtBufferPtr buffer = DtUSE_INTERNAL_BUFFER);   
00108 
00111    static void addCallback(DtExerciseConn *conn, 
00112                            DtActionResponseInteractionCb cb, void *usr);
00113    static void removeCallback(DtExerciseConn *conn, 
00114                               DtActionResponseInteractionCb cb, void *usr);
00115 
00117    unsigned long requestId() const;
00118    void setRequestId(unsigned long id);   
00119 
00121    DtRequestStatus requestStatus() const;
00122    void setRequestStatus(DtRequestStatus rStatus);
00123 
00125    virtual void printData() const;
00126 
00128    virtual void printDataToStream(std::ostream& stream) const;
00129 
00130 protected:
00132    DtPduKind internalGetPduKind() const {return DtActionResponsePduKind;}
00133 
00135    DtNetDataPduTail *dataSection() const;
00136 };
00137 
00138 #endif
00139 #endif
00140 
00141 
00142 
00143 

Document ID: Generated on Mon May 14 08:06:18 EDT 2012 from SVN revision 114750
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)