From 0ea5fc66924303d1bf73ba283a383e2aadee02f2 Mon Sep 17 00:00:00 2001 From: neodarz Date: Sat, 11 Aug 2018 20:21:34 +0200 Subject: Initial commit --- docs/doxygen/nel/buf__fifo_8h-source.html | 191 ++++++++++++++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 docs/doxygen/nel/buf__fifo_8h-source.html (limited to 'docs/doxygen/nel/buf__fifo_8h-source.html') diff --git a/docs/doxygen/nel/buf__fifo_8h-source.html b/docs/doxygen/nel/buf__fifo_8h-source.html new file mode 100644 index 00000000..61377e58 --- /dev/null +++ b/docs/doxygen/nel/buf__fifo_8h-source.html @@ -0,0 +1,191 @@ + + + + nevrax.org : docs + + + + + + + + + + + + + + +
# Home   # nevrax.com   
+ + + + +
Nevrax
+ + + + + + + + + + +
+ + +
+ Nevrax.org
+ + + + + + + +
#News
#Mailing-list
#Documentation
#CVS
#Bugs
#License
+
+ + +
+ + +
+Docs + +
+  + + + + + +
Documentation 
+ +
+Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages   Search  
+

buf_fifo.h

Go to the documentation of this file.
00001 
+00007 /* Copyright, 2001 Nevrax Ltd.
+00008  *
+00009  * This file is part of NEVRAX NEL.
+00010  * NEVRAX NEL is free software; you can redistribute it and/or modify
+00011  * it under the terms of the GNU General Public License as published by
+00012  * the Free Software Foundation; either version 2, or (at your option)
+00013  * any later version.
+00014 
+00015  * NEVRAX NEL is distributed in the hope that it will be useful, but
+00016  * WITHOUT ANY WARRANTY; without even the implied warranty of
+00017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+00018  * General Public License for more details.
+00019 
+00020  * You should have received a copy of the GNU General Public License
+00021  * along with NEVRAX NEL; see the file COPYING. If not, write to the
+00022  * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+00023  * MA 02111-1307, USA.
+00024  */
+00025 
+00026 #ifndef NL_BUF_FIFO_H
+00027 #define NL_BUF_FIFO_H
+00028 
+00029 #include "nel/misc/types_nl.h"
+00030 
+00031 #include <vector>
+00032 
+00033 #include "nel/misc/time_nl.h"
+00034 #include "nel/misc/mem_stream.h"
+00035 
+00036 
+00037 namespace NLMISC {
+00038 
+00039 
+00064 class CBufFIFO
+00065 {
+00066 public:
+00067 
+00068         CBufFIFO ();
+00069         ~CBufFIFO ();
+00070 
+00072         void     push (const std::vector<uint8> &buffer) { push (&buffer[0], buffer.size()); }
+00073 
+00074         void     push (const NLMISC::CMemStream &buffer) { push (buffer.buffer(), buffer.length()); }
+00075 
+00076         void     push (const uint8 *buffer, uint32 size);
+00077 
+00079         void     push (const std::vector<uint8> &buffer1, const std::vector<uint8> &buffer2);
+00080 
+00082         void     front (std::vector<uint8> &buffer);
+00083 
+00084         void     front (NLMISC::CMemStream &buffer);
+00085 
+00086         void     front (uint8 *&buffer, uint32 &size);
+00087 
+00090         uint8    frontLast ();
+00091 
+00092 
+00094         void     pop ();
+00095 
+00097         void     resize (uint32 size);
+00098 
+00100         bool     empty () { return _Empty; }
+00101 
+00102 
+00104         void     clear ();
+00105 
+00107         uint32   size ();
+00108 
+00110         void     display ();
+00111 
+00113         void     displayStats ();
+00114 
+00115 private:
+00116 
+00117         typedef uint32 TFifoSize;
+00118 
+00119         // pointer to the big buffer
+00120         uint8   *_Buffer;
+00121         // size of the big buffer
+00122         uint32   _BufferSize;
+00123 
+00124         // true if the bufffer is empty
+00125         bool     _Empty;
+00126 
+00127         // head of the FIFO
+00128         uint8   *_Head;
+00129         // tail of the FIFO
+00130         uint8   *_Tail;
+00131         // pointer to the rewinder of the FIFO
+00132         uint8   *_Rewinder;
+00133 
+00134         // return true if we can put size bytes on the buffer
+00135         // return false if we have to resize
+00136         bool     canFit (uint32 size);
+00137 
+00138 
+00139         // statisics of the FIFO
+00140         uint32 _BiggestBlock;
+00141         uint32 _SmallestBlock;
+00142         uint32 _BiggestBuffer;
+00143         uint32 _SmallestBuffer;
+00144         uint32 _Pushed ;
+00145         uint32 _Fronted;
+00146         uint32 _Resized;
+00147         TTicks _PushedTime;
+00148         TTicks _FrontedTime;
+00149         TTicks _ResizedTime;
+00150 };
+00151 
+00152 
+00153 } // NLMISC
+00154 
+00155 
+00156 #endif // NL_BUF_FIFO_H
+00157 
+00158 /* End of buf_fifo.h */
+
+ + +
                                                                                                                                                                    +
+ + -- cgit v1.2.1