- Main Page
- Classes
- Files

- Search for |

# PacketSequenceChecker.h

Go to the documentation of this file.

    00001 /*****************************
    00002 File:      PacketSequenceChecker.h
    00003 Language:   C++ (header)
    00004 Project:    H3DNetworkingUtils
    00005 The contents of this file are subject to the Mozilla Public License
    00006 Version 1.1 (the "License"); you may not use this file except in
    00007 compliance with the License. You may obtain a copy of the License at
    00008 http://www.mozilla.org/MPL/
    00009
    00010 Software distributed under the License is distributed on an "AS IS"
    00011 basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
    00012 License for the specific language governing rights and limitations
    00013 under the License.
    00014
    00015 The Original Code is H3DNetworkingUtils v1.0.
    00016
    00017 The Initial Developer of the Original Code is CSIRO.
    00018 Portions created by the Initial Developer are Copyright (C) 1009 CSIRO. All Rights Reserved.
    00019 Contributor(s):
    00020     Chris Gunn  <Chris.Gunn@csiro.au> <ChrisJGunn@gmail.com>
    00021 ***************************/
    00022
    00025
    00026
    00027 #ifndef PacketSequenceChecker_H
    00028 #define PacketSequenceChecker_H
    00029
    00030 #ifdef MAGMA_IRIX
    00031 #define H3D Magma
    00032 #endif
    00033
    00034 #include "H3DNetworkingUtils/Config.h"
    00035 #include <iostream>
    00036
    00037 namespace H3DNetworkingUtils {
    00038
    00042
    00043 class H3D_NETWORKING_UTILS_DLL_SPEC PacketSequenceChecker {
    00044 public:
    00045   typedef unsigned short u_int16;
    00046   typedef short int16;
    00047   typedef unsigned int   u_int32;
    00048
    00050   PacketSequenceChecker();
    00051
    00054   virtual bool inSequence(u_int16 seq);
    00055
    00056 protected:
    00057
    00058   private:
    00059   static const int MIN_SEQUENTIAL;
    00060   static const int MAX_ALLOWABLE_DIFF;
    00061   static const int WRAP_CHECK;
    00062
    00063
    00064   u_int16 prev_seq_num;  // highest seq. number seen */
    00065   u_int16 bad_seq;       // last 'bad' seq number + 1 */
    00066   u_int16 probation;     // sequ. packets till source is valid */
    00067 };
    00068
    00069 }
    00070
    00071 #endif