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_QUERY_EVENTS__H 00041 #define __JAUS_CORE_EVENTS_QUERY_EVENTS__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 { 00057 class JAUS_CORE_DLL QueryEvents : public Message 00058 { 00059 public: 00060 // Filters for types of event data to request. 00061 enum Type 00062 { 00063 MessageID = 0, 00064 EventType, 00065 EventID, 00066 AllEvents 00067 }; 00068 QueryEvents(const Address& dest = Address(), const Address& src = Address()); 00069 QueryEvents(const QueryEvents& message); 00070 ~QueryEvents(); 00071 Type GetQueryType() const { return mQueryType; } 00072 UShort GetQueryFilter() const { return mQueryFilter; } 00073 void SetQueryType(const Type queryType) { mQueryType = queryType; } 00074 void SetQueryFilter(const UShort filterData) { mQueryFilter = filterData; } 00075 virtual bool IsCommand() const { return false; } 00076 virtual int WriteMessageBody(Packet& packet) const; 00077 virtual int ReadMessageBody(const Packet& packet); 00078 virtual Message* Clone() const { return new QueryEvents(*this); } 00079 virtual UInt GetPresenceVector() const { return 0; } 00080 virtual UInt GetPresenceVectorSize() const { return 0; } 00081 virtual UInt GetPresenceVectorMask() const { return 0; } 00082 virtual UShort GetMessageCodeOfResponse() const { return REPORT_EVENTS; } 00083 virtual std::string GetMessageName() const { return "Query Events"; } 00084 virtual void ClearMessageBody(); 00085 virtual bool IsLargeDataSet(const unsigned int maxPayloadSize) const { return false; } 00086 QueryEvents& operator=(const QueryEvents& message); 00087 protected: 00088 Type mQueryType; 00089 UShort mQueryFilter; 00090 }; 00091 } 00092 00093 #endif 00094 /* End of File */