IpPort.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__IP_PORT_H
00024 #define GNUTELLA__PACKETS__EXTENSIONS__GGEPS__IP_PORT_H
00025
00026 #include "Gnutella/Packets/Extensions/Ggep.h"
00027 #include "Protocols/Transports/NodeAddress.h"
00028
00029
00030 namespace Gnutella {
00031 namespace Packets {
00032 namespace Extensions {
00033 class GgepBlock;
00034 namespace Ggeps {
00036
00037 using Protocols::Transports::NodeAddress;
00038
00039 class IpPort : public Ggep
00040 {
00041 public:
00042 static const Ggep::GgepId Id;
00043
00044 IpPort (const GgepId &id, int flags, int dataSize);
00045 IpPort (const QList <NodeAddress> &nodeAddresses);
00046
00047 static const IpPort * findIn (const GgepBlock &ggepBlock);
00048 IpPort * copy() const;
00049
00050
00051 inline QList <NodeAddress> addresses() const;
00052 inline void setAddresses (const QList <NodeAddress> &addresses);
00053
00054 protected:
00055 bool prepareReadData (const QByteArray &rawData);
00056 void readData (QDataStream &stream);
00057 int prepareWriteData() const;
00058 void writeData (QDataStream &stream) const;
00059
00060 private:
00061
00062 struct Private
00063 {
00064 QList <NodeAddress> addresses;
00065 } p;
00066 };
00067
00069
00071
00072 inline QList <NodeAddress> IpPort::addresses() const
00073 { return p.addresses; }
00074
00075 inline void IpPort::setAddresses (const QList <NodeAddress> &addresses)
00076 { p.addresses = addresses; }
00077
00078
00079 }
00080 }
00081 }
00082 }
00084
00085 #endif // GNUTELLA__PACKETS__EXTENSIONS__GGEPS__IP_PORT_H