diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2008-10-12 18:29:36 +0200 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2008-10-12 18:29:36 +0200 |
commit | cbe4f1b4fae72a54e610725d3304fefd37aa4495 (patch) | |
tree | 78d0a044db455c70d7e2ded00ddc0b06651dd339 /source4/lib/zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs | |
parent | 45b340dd19ebc0a5531844030594c4de596ed80f (diff) | |
download | samba-cbe4f1b4fae72a54e610725d3304fefd37aa4495.tar.gz samba-cbe4f1b4fae72a54e610725d3304fefd37aa4495.tar.bz2 samba-cbe4f1b4fae72a54e610725d3304fefd37aa4495.zip |
Move zlib to top-level root.
Diffstat (limited to 'source4/lib/zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs')
-rw-r--r-- | source4/lib/zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/source4/lib/zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs b/source4/lib/zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs deleted file mode 100644 index 16997e906b..0000000000 --- a/source4/lib/zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs +++ /dev/null @@ -1,83 +0,0 @@ -//
-// © Copyright Henrik Ravn 2004
-//
-// Use, modification and distribution are subject to the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-
-using System;
-using System.Diagnostics;
-
-namespace DotZLib
-{
-
- /// <summary>
- /// This class implements a circular buffer
- /// </summary>
- internal class CircularBuffer
- {
- #region Private data
- private int _capacity;
- private int _head;
- private int _tail;
- private int _size;
- private byte[] _buffer;
- #endregion
-
- public CircularBuffer(int capacity)
- {
- Debug.Assert( capacity > 0 );
- _buffer = new byte[capacity];
- _capacity = capacity;
- _head = 0;
- _tail = 0;
- _size = 0;
- }
-
- public int Size { get { return _size; } }
-
- public int Put(byte[] source, int offset, int count)
- {
- Debug.Assert( count > 0 );
- int trueCount = Math.Min(count, _capacity - Size);
- for (int i = 0; i < trueCount; ++i)
- _buffer[(_tail+i) % _capacity] = source[offset+i];
- _tail += trueCount;
- _tail %= _capacity;
- _size += trueCount;
- return trueCount;
- }
-
- public bool Put(byte b)
- {
- if (Size == _capacity) // no room
- return false;
- _buffer[_tail++] = b;
- _tail %= _capacity;
- ++_size;
- return true;
- }
-
- public int Get(byte[] destination, int offset, int count)
- {
- int trueCount = Math.Min(count,Size);
- for (int i = 0; i < trueCount; ++i)
- destination[offset + i] = _buffer[(_head+i) % _capacity];
- _head += trueCount;
- _head %= _capacity;
- _size -= trueCount;
- return trueCount;
- }
-
- public int Get()
- {
- if (Size == 0)
- return -1;
-
- int result = (int)_buffer[_head++ % _capacity];
- --_size;
- return result;
- }
-
- }
-}
|