From dabde92a24671700ac2150c938587c3efd505499 Mon Sep 17 00:00:00 2001 From: lloyd Date: Sat, 12 Apr 2008 16:17:44 +0000 Subject: Modify areas that still assumed Pipe::message_id was exactly a u32bit. This was done by replacing Pipe::message_id with a completely opaque type and adding only the necessary operations. In this revision Pipe::message_id does remain a u32bit. However it may become an opaque type in the future. Move the Invalid_Message_Number exception to Pipe since that is the only piece of code which throws it. --- include/exceptn.h | 8 -------- include/out_buf.h | 13 +++++++------ include/pipe.h | 8 +++++++- 3 files changed, 14 insertions(+), 15 deletions(-) (limited to 'include') diff --git a/include/exceptn.h b/include/exceptn.h index 1381782cf..5b0106105 100644 --- a/include/exceptn.h +++ b/include/exceptn.h @@ -59,14 +59,6 @@ struct Invalid_IV_Length : public Invalid_Argument Invalid_IV_Length(const std::string&, u32bit); }; -/************************************************* -* Invalid_Message_Number Exception * -*************************************************/ -struct Invalid_Message_Number : public Invalid_Argument - { - Invalid_Message_Number(const std::string&, u32bit); - }; - /************************************************* * Invalid_State Exception * *************************************************/ diff --git a/include/out_buf.h b/include/out_buf.h index 8965e3895..1e169b9bc 100644 --- a/include/out_buf.h +++ b/include/out_buf.h @@ -7,6 +7,7 @@ #define BOTAN_OUTPUT_BUFFER_H__ #include +#include #include namespace Botan { @@ -17,22 +18,22 @@ namespace Botan { class Output_Buffers { public: - u32bit read(byte[], u32bit, u32bit); - u32bit peek(byte[], u32bit, u32bit, u32bit) const; - u32bit remaining(u32bit) const; + u32bit read(byte[], u32bit, Pipe::message_id); + u32bit peek(byte[], u32bit, u32bit, Pipe::message_id) const; + u32bit remaining(Pipe::message_id) const; void add(class SecureQueue*); void retire(); - u32bit message_count() const; + Pipe::message_id message_count() const; Output_Buffers(); ~Output_Buffers(); private: - class SecureQueue* get(u32bit) const; + class SecureQueue* get(Pipe::message_id) const; std::deque buffers; - u32bit offset; + Pipe::message_id offset; }; } diff --git a/include/pipe.h b/include/pipe.h index 20fdc6a41..89f1ac4db 100644 --- a/include/pipe.h +++ b/include/pipe.h @@ -20,6 +20,12 @@ class Pipe : public DataSource public: typedef u32bit message_id; + class Invalid_Message_Number : public Invalid_Argument + { + public: + Invalid_Message_Number(const std::string&, message_id); + }; + static const message_id LAST_MESSAGE, DEFAULT_MESSAGE; void write(const byte[], u32bit); @@ -48,7 +54,7 @@ class Pipe : public DataSource message_id default_msg() const { return default_read; } void set_default_msg(message_id); - u32bit message_count() const; + message_id message_count() const; bool end_of_data() const; void start_msg(); -- cgit v1.2.3