MAK RTIspy API Documentation for HLA 1.3
msgRetractHandleImpl.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2003 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: msgRetractHandleImpl.h,v $ $Revision: 1.7 $ $State: Exp $
00007 *********************************************************************/
00008 
00011 
00012 #ifndef msgRetractHandleImplementation_H_
00013 #define msgRetractHandleImplementation_H_
00014 
00015 #ifdef DtIFSPEC1516
00016 
00017 #include "rtiMsConfig.h"
00018 #include <RTI/VariableLengthData.h>
00019 #include <string>
00020 #include <sstream>
00021 #include "internalTypes.h"
00022 
00023 namespace rti1516
00024 {
00025 
00026 class MessageRetractionHandleImplementation
00027 {
00028 public:
00030    MessageRetractionHandleImplementation();
00031    MessageRetractionHandleImplementation(
00032       DtMessageRetractionHandle retractHandle);
00033    MessageRetractionHandleImplementation(
00034       unsigned long fedHandleValue,
00035       unsigned long serialValue);
00036    MessageRetractionHandleImplementation(
00037       MessageRetractionHandleImplementation const & rhs);
00038 
00040    MessageRetractionHandleImplementation & operator=(
00041       MessageRetractionHandleImplementation const & rhs);
00042 
00043    bool isValid() const;
00044 
00046    bool operator==(MessageRetractionHandleImplementation const & rhs) const;
00047    bool operator!=(MessageRetractionHandleImplementation const & rhs) const;
00048    bool operator< (MessageRetractionHandleImplementation const & rhs) const;
00049 
00052    rti1516::VariableLengthData encode() const;
00054    unsigned long encode(void* buffer, unsigned long bufferSize) const;
00055    unsigned long encodedLength() const;
00056 
00058    void decode(
00059       rti1516::VariableLengthData const & encodedHandle);
00060 
00062    void decode(void* buffer, unsigned long bufferSize);
00063 
00065    std::wstring toString() const;
00066 
00068    void setValue(DtMessageRetractionHandle retractHandle);
00069    DtMessageRetractionHandle const & value() const;
00070 
00072    void setFederateHandle(unsigned long fedHandleValue);
00073    unsigned long federateHandle() const;
00074 
00076    void setSerialNumber(unsigned long serialValue);
00077    unsigned long serialNumber() const;
00078 
00079 protected:
00080    DtMessageRetractionHandle myRetractHandle;
00081 };
00082 
00083 inline
00084 MessageRetractionHandleImplementation::MessageRetractionHandleImplementation()
00085 {
00087    myRetractHandle.sendingFederate = 0;
00088    myRetractHandle.serialNumber = 0;
00089 }
00090 inline
00091 MessageRetractionHandleImplementation::MessageRetractionHandleImplementation(
00092    unsigned long fedHandleValue,
00093    unsigned long serialValue)
00094 {
00095    myRetractHandle.sendingFederate = fedHandleValue;
00096    myRetractHandle.serialNumber = serialValue;
00097 }
00098 inline
00099 MessageRetractionHandleImplementation::MessageRetractionHandleImplementation(
00100    DtMessageRetractionHandle retractHandle)
00101 {
00102    myRetractHandle.sendingFederate = retractHandle.sendingFederate;
00103    myRetractHandle.serialNumber = retractHandle.serialNumber;
00104 }
00105 inline
00106 MessageRetractionHandleImplementation::MessageRetractionHandleImplementation(
00107    MessageRetractionHandleImplementation const & rhs)
00108 {
00109    myRetractHandle.sendingFederate = rhs.myRetractHandle.sendingFederate;
00110    myRetractHandle.serialNumber = rhs.myRetractHandle.serialNumber;
00111 }
00112 inline
00113 MessageRetractionHandleImplementation &
00114 MessageRetractionHandleImplementation::operator=(
00115    MessageRetractionHandleImplementation const & rhs)
00116 {
00117    if (this == &rhs)
00118       return *this;
00119    myRetractHandle.sendingFederate = rhs.myRetractHandle.sendingFederate;
00120    myRetractHandle.serialNumber = rhs.myRetractHandle.serialNumber;
00121    return *this;
00122 };
00123 
00124 inline bool MessageRetractionHandleImplementation::isValid() const
00125 {
00127    return myRetractHandle.sendingFederate != 0;
00128 }
00129 
00130 inline bool MessageRetractionHandleImplementation::operator==(
00131    MessageRetractionHandleImplementation const & rhs) const
00132 {
00133    return
00134       myRetractHandle.sendingFederate == rhs.myRetractHandle.sendingFederate
00135       && myRetractHandle.serialNumber == rhs.myRetractHandle.serialNumber;
00136 };
00137 inline bool MessageRetractionHandleImplementation::operator!=(
00138    MessageRetractionHandleImplementation const & rhs) const
00139 {
00140    return
00141       myRetractHandle.sendingFederate != rhs.myRetractHandle.sendingFederate
00142       || myRetractHandle.serialNumber != rhs.myRetractHandle.serialNumber;
00143 };
00144 inline bool MessageRetractionHandleImplementation::operator< (
00145    MessageRetractionHandleImplementation const & rhs) const
00146 {
00147    return
00148       myRetractHandle.sendingFederate < rhs.myRetractHandle.sendingFederate
00149       ||
00150       (myRetractHandle.sendingFederate == rhs.myRetractHandle.sendingFederate
00151        && myRetractHandle.serialNumber < rhs.myRetractHandle.serialNumber);
00152 };
00153 
00154 inline rti1516::VariableLengthData
00155 MessageRetractionHandleImplementation::encode() const
00156 {
00157    DtNetMessageRetractionHandle netHandle;
00158    netHandle.sendingFederate = myRetractHandle.sendingFederate;
00159    netHandle.serialNumber = myRetractHandle.serialNumber;
00160    return rti1516::VariableLengthData(&netHandle, sizeof(netHandle));
00161 };
00162 
00163 inline unsigned long MessageRetractionHandleImplementation::encode(
00164    void* buffer, unsigned long bufferSize) const
00165 {
00166    DtNetMessageRetractionHandle netHandle;
00167    if (bufferSize < sizeof(netHandle))
00168       return 0;
00169    netHandle.sendingFederate = myRetractHandle.sendingFederate;
00170    netHandle.serialNumber = myRetractHandle.serialNumber;
00171    memcpy(buffer, &netHandle, sizeof(netHandle));
00172    return sizeof(netHandle);
00173 }
00174 inline unsigned long MessageRetractionHandleImplementation::encodedLength() const
00175 {
00176    return sizeof(DtNetMessageRetractionHandle);
00177 }
00178 
00179 inline std::wstring MessageRetractionHandleImplementation::toString() const
00180 {
00181    std::wstringstream ss;
00182    ss << myRetractHandle.sendingFederate << L" " << myRetractHandle.serialNumber;
00183    return ss.str();
00184 };
00185 
00186 inline void MessageRetractionHandleImplementation::setValue(
00187    DtMessageRetractionHandle retractHandle)
00188 {
00189    myRetractHandle.sendingFederate = retractHandle.sendingFederate;
00190    myRetractHandle.serialNumber = retractHandle.serialNumber;
00191 }
00192 
00193 inline DtMessageRetractionHandle const &
00194 MessageRetractionHandleImplementation::value() const
00195 {
00196    return myRetractHandle;
00197 }
00198 
00199 inline void MessageRetractionHandleImplementation::setFederateHandle(
00200 unsigned long fedHandleValue)
00201 {
00202    myRetractHandle.sendingFederate = fedHandleValue;
00203 }
00204 inline unsigned long MessageRetractionHandleImplementation::federateHandle() const
00205 {
00206    return myRetractHandle.sendingFederate;
00207 }
00208 
00209 inline void MessageRetractionHandleImplementation::setSerialNumber(unsigned long serialValue)
00210 {
00211    myRetractHandle.serialNumber = serialValue;
00212 }
00213 inline unsigned long MessageRetractionHandleImplementation::serialNumber() const
00214 {
00215    return myRetractHandle.serialNumber;
00216 }
00217 inline void MessageRetractionHandleImplementation::decode(
00218    rti1516::VariableLengthData const & encodedHandle)
00219 {
00220    DtNetMessageRetractionHandle* netHandle =
00221       (DtNetMessageRetractionHandle*) encodedHandle.data();
00222    myRetractHandle.sendingFederate = netHandle->sendingFederate;
00223    myRetractHandle.serialNumber = netHandle->serialNumber;
00224 }
00225 
00226 inline void MessageRetractionHandleImplementation::decode(
00227    void* buffer, unsigned long bufferSize)
00228 {
00229    DtNetMessageRetractionHandle* netHandle =
00230       (DtNetMessageRetractionHandle*) buffer;
00231    myRetractHandle.sendingFederate = netHandle->sendingFederate;
00232    myRetractHandle.serialNumber = netHandle->serialNumber;
00233 }
00234 
00235 };
00236 
00237 #endif // DtIFSPEC1516
00238 
00239 #endif //! msgRetractHandleImplementation_H_

Document ID: Generated on Thu Jun 14 14:15:04 EDT 2012 from SVN revision 116116
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)