diff options
author | Christian Pointner <equinox@anytun.org> | 2009-01-12 23:39:51 +0000 |
---|---|---|
committer | Christian Pointner <equinox@anytun.org> | 2009-01-12 23:39:51 +0000 |
commit | b979b0be8ac5623ff3f4c3b5a5331edd953aa0bb (patch) | |
tree | 7e8c3d344412ce4f2b916a70caaa0f7838f4590d /src/seqWindow.h | |
parent | cleaned up includes (diff) |
ported uAnytun sequence window to anytun
Diffstat (limited to 'src/seqWindow.h')
-rw-r--r-- | src/seqWindow.h | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/src/seqWindow.h b/src/seqWindow.h index 5bac491..e16e335 100644 --- a/src/seqWindow.h +++ b/src/seqWindow.h @@ -39,22 +39,32 @@ #include "threadUtils.hpp" #include "datatypes.h" +class SeqWindow; + +class SeqWindowElement { +public: + SeqWindowElement(); + ~SeqWindowElement(); + + void init(window_size_t w, seq_nr_t m); + + seq_nr_t max_; + window_size_t pos_; + u_int8_t* window_; +}; + class SeqWindow { public: - typedef std::deque<seq_nr_t> SeqDeque; - typedef std::map<sender_id_t, SeqDeque> SenderMap; + typedef std::map<sender_id_t, SeqWindowElement> SenderMap; SeqWindow(window_size_t w); ~SeqWindow(); - SeqDeque::size_type getLength(sender_id_t sender); - bool hasSeqNr(sender_id_t sender, seq_nr_t seq); - void addSeqNr(sender_id_t sender, seq_nr_t seq); + bool checkAndAdd(sender_id_t sender, seq_nr_t seq_nr); void clear(sender_id_t sender); void clear(); - private: window_size_t window_size_; Mutex mutex_; |