Extension.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 EXTENSION_H
00024 #define EXTENSION_H
00025
00026
00027 namespace Gnutella {
00028 namespace Packets {
00029 namespace Extensions {
00031
00033
00037 class Extension
00038 {
00039 public:
00040 virtual ~Extension() {}
00041 virtual Extension * copy() const = 0;
00042
00043 bool isValid() const { return isValid_; }
00044
00045 virtual int prepareRead (const QByteArray &rawData) = 0;
00046 virtual void read (QDataStream &stream) = 0;
00047 virtual int prepareWrite() const = 0;
00048 virtual void write (QDataStream &stream) const = 0;
00049
00050 protected:
00051 Extension() : isValid_ (true) {}
00052 void setIsValid (bool isValid) { isValid_ = isValid; }
00053
00054 private:
00055 bool isValid_;
00056 };
00057
00058
00059 }
00060 }
00061 }
00063
00064 #endif // EXTENSION_H