📄 cmpppacketcircle.java
字号:
import java.lang.*;
import java.net.*;
import java.io.*;
import CMPPPacket;
public class CMPPPacketCircle
{
final static int m_nSize = 0x10;
final static int m_nSizeMask = 0x0f;
int m_nReadPosition = 0;
int m_nWritePosition = 0;
CMPPPacket[] m_packets = null;
public CMPPPacketCircle()
{
m_nReadPosition = 0;
m_nWritePosition = 0;
m_packets = new CMPPPacket[m_nSize];
}
public boolean isReadable()
{
if(m_nReadPosition == m_nWritePosition)
{
return false;
}
return true;
}
public synchronized CMPPPacket read()
{
if(isReadable())
{
CMPPPacket packet = new CMPPPacket(m_packets[m_nReadPosition]);
m_packets[m_nReadPosition] = null;
m_nReadPosition ++;
m_nReadPosition &= m_nSizeMask;
return packet;
}
return null;
}
public synchronized CMPPPacket peer()
{
if(isReadable())
{
return m_packets[m_nReadPosition];
}
return null;
}
public boolean isWritable()
{
if(((m_nWritePosition + 1) & m_nSizeMask) == m_nReadPosition)
{
return false;
}
return true;
}
public synchronized boolean write(CMPPPacket packet)
{
if(isWritable() && packet != null)
{
m_packets[m_nWritePosition] = new CMPPPacket(packet);
m_nWritePosition ++;
m_nWritePosition &= m_nSizeMask;
return true;
}
return false;
}
public boolean isEmpty()
{
if(m_nReadPosition == m_nWritePosition)
{
return true;
}
return false;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -