00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef PAYLOAD_H
00022 #define PAYLOAD_H
00023
00024 #ifdef HAVE_CONFIG_H
00025 #include "config.h"
00026 #endif
00027
00028 #include "printable.h"
00029 #include "bytebuffer.h"
00030
00031 namespace openikev2 {
00032
00037 class Payload : public Printable {
00038
00039
00040 public:
00042 enum PAYLOAD_TYPE {
00043 PAYLOAD_NONE = 0,
00044 PAYLOAD_SA = 33,
00045 PAYLOAD_KE,
00046 PAYLOAD_IDi,
00047 PAYLOAD_IDr,
00048 PAYLOAD_CERT,
00049 PAYLOAD_CERT_REQ,
00050 PAYLOAD_AUTH,
00051 PAYLOAD_NONCE,
00052 PAYLOAD_NOTIFY,
00053 PAYLOAD_DEL,
00054 PAYLOAD_VENDOR,
00055 PAYLOAD_TSi,
00056 PAYLOAD_TSr,
00057 PAYLOAD_SK,
00058 PAYLOAD_CONF,
00059 PAYLOAD_EAP,
00060 };
00061
00062
00063 public:
00064 PAYLOAD_TYPE type;
00065 bool critical;
00067
00068 protected:
00074 Payload (Payload::PAYLOAD_TYPE type, bool critical);
00075
00076 public:
00082 static string PAYLOAD_TYPE_STR( Payload::PAYLOAD_TYPE type );
00083
00088 virtual void getBinaryRepresentation( ByteBuffer& byte_buffer ) const = 0;
00089
00094 virtual auto_ptr<Payload> clone() const = 0;
00095
00096 virtual string toStringTab( uint8_t tabs ) const = 0;
00097
00098 virtual ~Payload();
00099 };
00100 }
00101
00102 #endif