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 SNAC_SBL_H
00025 #define SNAC_SBL_H
00026
00027 #include <string>
00028 #include <list>
00029
00030 #include <libicq2000/SNAC-base.h>
00031 #include <libicq2000/Contact.h>
00032 #include <libicq2000/ContactList.h>
00033 #include <libicq2000/UserInfoBlock.h>
00034
00035 namespace ICQ2000 {
00036
00037
00038 const unsigned short SNAC_SBL_Request_List = 0x0005;
00039 const unsigned short SNAC_SBL_List_From_Server = 0x0006;
00040
00041
00042
00043 class SBLFamilySNAC : virtual public SNAC {
00044 public:
00045 unsigned short Family() const { return SNAC_FAM_SBL; }
00046 };
00047
00048 class RequestSBLSNAC : public SBLFamilySNAC, public OutSNAC {
00049
00050 protected:
00051 void OutputBody(Buffer& b) const;
00052
00053 public:
00054 RequestSBLSNAC();
00055
00056 unsigned short Subtype() const { return SNAC_SBL_Request_List; }
00057 };
00058
00059 class SBLListSNAC : public SBLFamilySNAC, public InSNAC {
00060 private:
00061 ContactList m_contacts;
00062
00063 protected:
00064 void ParseBody(Buffer& b);
00065
00066 public:
00067 SBLListSNAC();
00068
00069 const ContactList& getContactList() const { return m_contacts; }
00070 unsigned short Subtype() const { return SNAC_SBL_List_From_Server; }
00071 };
00072
00073 }
00074
00075 #endif