UdpHostCache.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef GNUTELLA_PACKETS_EXTENSIONS_GGEPS_UDPHOSTCACHE_H
00024 #define GNUTELLA_PACKETS_EXTENSIONS_GGEPS_UDPHOSTCACHE_H
00025
00026 #include "Gnutella/Packets/Extensions/Ggep.h"
00027
00028
00029 namespace Gnutella {
00030 namespace Packets {
00031 namespace Extensions {
00032 class GgepBlock;
00033 namespace Ggeps {
00035
00036 class UdpHostCache : public Ggep
00037 {
00038 public:
00039 static const Ggep::GgepId Id;
00040
00041 UdpHostCache (const GgepId &id, int flags, int dataSize);
00042 inline UdpHostCache (const QString &hostCacheAddress);
00043
00044 static const UdpHostCache * findIn (const GgepBlock &ggepBlock);
00045 UdpHostCache * copy() const;
00046
00047 inline QString hostName() const;
00048 inline void setHostName (const QString &hostName);
00049
00050 protected:
00051 bool prepareReadData (const QByteArray &rawData);
00052 void readData (QDataStream &stream);
00053 int prepareWriteData() const;
00054 void writeData (QDataStream &stream) const;
00055
00056 private:
00057
00058 struct Private
00059 {
00060 QString hostName;
00061 mutable QByteArray rawBuffer;
00062 } p;
00063 };
00064
00066
00068
00069 inline QString UdpHostCache::hostName() const
00070 { return p.hostName; }
00071
00072 inline void UdpHostCache::setHostName (const QString &hostName)
00073 { p.hostName = hostName; }
00074
00075
00076 }
00077 }
00078 }
00079 }
00081
00082 #endif // GNUTELLA_PACKETS_EXTENSIONS_GGEPS_UDPHOSTCACHE_H