00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef __BARRY_PACKET_H__
00025 #define __BARRY_PACKET_H__
00026
00027 #include <stdint.h>
00028
00029 namespace Barry { class Data; }
00030
00031 namespace Barry {
00032
00033
00034 class Parser;
00035 class Builder;
00036 class SocketZero;
00037 class Socket;
00038 namespace Mode {
00039 class Desktop;
00040 }
00041
00042 class Packet
00043 {
00044 friend class SocketZero;
00045 friend class Socket;
00046
00047 protected:
00048 Data &m_send, &m_receive;
00049
00050 Data& GetSend() { return m_send; }
00051 Data& GetReceive() { return m_receive; }
00052
00053 public:
00054 Packet(Data &send, Data &receive)
00055 : m_send(send), m_receive(receive)
00056 {}
00057 virtual ~Packet() {}
00058
00059
00060
00061
00062 unsigned int Command() const;
00063 };
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075 class ZeroPacket : public Packet
00076 {
00077 friend class Socket;
00078
00079 public:
00080 ZeroPacket(Data &send, Data &receive);
00081 ~ZeroPacket();
00082
00083
00084
00085
00086
00087
00088
00089 void GetAttribute(unsigned int object, unsigned int attribute);
00090
00091
00092
00093
00094
00095 unsigned int ObjectID() const;
00096 unsigned int AttributeID() const;
00097 uint32_t ChallengeSeed() const;
00098 unsigned int RemainingTries() const;
00099 unsigned int SocketResponse() const;
00100 unsigned char SocketSequence() const;
00101 };
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118 class DBPacket : public Packet
00119 {
00120 friend class Socket;
00121
00122 private:
00123 Mode::Desktop &m_con;
00124 unsigned int m_last_dbop;
00125
00126 protected:
00127
00128 public:
00129 DBPacket(Mode::Desktop &con, Data &send, Data &receive);
00130 ~DBPacket();
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140 void ClearDatabase(unsigned int dbId);
00141 void GetDBDB();
00142 void GetRecordStateTable(unsigned int dbId);
00143 void SetRecordFlags(unsigned int dbId, unsigned int stateTableIndex, uint8_t flag1);
00144 void DeleteRecordByIndex(unsigned int dbId, unsigned int stateTableIndex);
00145 void GetRecordByIndex(unsigned int dbId, unsigned int stateTableIndex);
00146 bool SetRecordByIndex(unsigned int dbId, unsigned int stateTableIndex, Builder &build);
00147 void GetRecords(unsigned int dbId);
00148 bool SetRecord(unsigned int dbId, Builder &build);
00149
00150
00151
00152
00153
00154
00155 unsigned int ReturnCode() const;
00156 unsigned int DBOperation() const;
00157
00158 bool Parse(Parser &parser);
00159
00160
00161 };
00162
00163 }
00164
00165 #endif
00166