chenxin
2020-11-10 820e4f5728b5ec6ec6d7d9395b86c54e210c116c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//======================================
//        Copyright (C) 2014-2015 xkMob Technology Co., Ltd.   
//        All rights reserved
//
//        filename :CircleBuffer.cs
//        description :
//======================================
using System;
using System.Collections;
 
 
public class CircleBuffer
{
 
    public static int MAX_RECEIVE_BUFFER_SIZE = 1024 * 2 * 1024; // 32k
 
    public int Length
    {
        get;
        internal set;
    }
    public byte[] DataBuffer
    {
        get;
        internal set;
    }
    public int LeftSpaceSize
    {
        get
        {
            return MAX_RECEIVE_BUFFER_SIZE - Length;
        }
    }
 
 
    public CircleBuffer()
    {
        DataBuffer = new byte[MAX_RECEIVE_BUFFER_SIZE];
        //Offset = 0;
        Length = 0;
    }
    public void Enlarge(int bufLength)
    {
        //Helpers.DebugAssert(Length + bufLength <= MAX_RECEIVE_BUFFER_SIZE);
        //if(Length + bufLength > SocketMgr.MAX_RECEIVE_BUFFER_SIZE)
 
        //    Debug.LogError("CircleBuffer Enlarge Out of Range ");
 
        //Array.Copy(buf, 0, DataBuffer, Length, bufLength);
        Length += bufLength;
 
    }
    public void Shrink(int size)
    {
        if (size >= Length)
            Length = 0;
        else
        {
            Array.Copy(DataBuffer, size, DataBuffer, 0, Length - size);
            Length -= size;
        }
    }
}