00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 00020 00021 00022 00023 00024 00025 00026 00027 00028 00029 00030 00031 00032 00033 00034 00035 00036 00037 00038 00039 00040 #ifndef __JAUS_CORE_EVENTS_CREATE_EVENT__H 00041 #define __JAUS_CORE_EVENTS_CREATE_EVENT__H 00042 00043 #include "jaus/core/corecodes.h" 00044 #include "jaus/core/message.h" 00045 #include "jaus/core/events/events.h" 00046 00047 namespace JAUS 00048 { 00060 class JAUS_CORE_DLL CreateEvent : public Message 00061 { 00062 public: 00069 class JAUS_CORE_DLL Limits : public JAUS::Limits 00070 { 00071 public: 00072 static const double MaxUpdateRate; 00073 static const double MinUpdateRate; 00074 }; 00075 CreateEvent(const Address& dest = Address(), const Address& src = Address()); 00076 CreateEvent(const CreateEvent& message); 00077 ~CreateEvent(); 00078 inline void SetType(const Events::Type type) { mType = type; } 00079 inline void SetRequestID(const Byte id) { mRequestID = id; } 00080 bool SetRequestedPeriodicRate(const double rate); 00081 bool SetQueryMessage(const Message* queryMessage); 00082 bool SetQueryMessage(const UShort messageCode, const Packet& queryPayload); 00083 inline Events::Type GetType() const { return mType; } 00084 inline Byte GetRequestID() const { return mRequestID; } 00085 inline double GetRequestedPeriodicRate() const { return mRequestedPeriodicRate; } 00086 inline UShort GetQueryMessageCode() const { return mQueryMessageCode; } 00087 inline const Packet* GetQueryMessage() const { return &mQueryMessage; } 00088 virtual bool IsCommand() const { return false; } 00089 virtual bool IsResponseToMessage(const Message* requestingMessage) const; 00090 virtual int WriteMessageBody(Packet& packet) const; 00091 virtual int ReadMessageBody(const Packet& packet); 00092 virtual Message* Clone() const { return new CreateEvent(*this); } 00093 virtual UInt GetPresenceVector() const { return 0; } 00094 virtual UInt GetPresenceVectorSize() const { return 0; } 00095 virtual UInt GetPresenceVectorMask() const { return 0; } 00096 virtual UShort GetMessageCodeOfResponse() const { return CONFIRM_EVENT_REQUEST; } 00097 virtual std::string GetMessageName() const { return "Create Event"; } 00098 virtual void ClearMessageBody(); 00099 virtual bool IsLargeDataSet(const unsigned int maxPayloadSize) const { return false; } 00100 CreateEvent& operator=(const CreateEvent& message); 00101 protected: 00102 Events::Type mType; 00103 Byte mRequestID; 00104 double mRequestedPeriodicRate; 00105 UShort mQueryMessageCode; 00106 Packet mQueryMessage; 00107 }; 00108 } 00109 00110 #endif 00111 /* End of File */