当前位置: 首页>>代码示例>>Java>>正文


Java TDebug.TraceCircularBuffer方法代码示例

本文整理汇总了Java中org.tritonus.share.TDebug.TraceCircularBuffer方法的典型用法代码示例。如果您正苦于以下问题:Java TDebug.TraceCircularBuffer方法的具体用法?Java TDebug.TraceCircularBuffer怎么用?Java TDebug.TraceCircularBuffer使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.tritonus.share.TDebug的用法示例。


在下文中一共展示了TDebug.TraceCircularBuffer方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: read

import org.tritonus.share.TDebug; //导入方法依赖的package包/类
public int read(byte[] abData, int nOffset, int nLength)
{
	if (TDebug.TraceCircularBuffer)
	{
		TDebug.out(">TCircularBuffer.read(): called.");
		dumpInternalState();
	}
	if (! isOpen())
	{
		if (availableRead() > 0)
		{
			nLength = Math.min(nLength, availableRead());
			if (TDebug.TraceCircularBuffer) { TDebug.out("reading rest in closed buffer, length: " + nLength); }
		}
		else
		{
			if (TDebug.TraceCircularBuffer) { TDebug.out("< not open. returning -1."); }
			return -1;
		}
	}
	synchronized (this)
	{
		if (m_trigger != null && availableRead() < nLength)
		{
			if (TDebug.TraceCircularBuffer) { TDebug.out("executing trigger."); }
			m_trigger.execute();
		}
		if (!m_bBlockingRead)
		{
			nLength = Math.min(availableRead(), nLength);
		}
		int nRemainingBytes = nLength;
		while (nRemainingBytes > 0)
		{
			while (availableRead() == 0)
			{
				try
				{
					wait();
				}
				catch (InterruptedException e)
				{
					if (TDebug.TraceAllExceptions)
					{
						TDebug.out(e);
					}
				}
			}
			int	nAvailable = Math.min(availableRead(), nRemainingBytes);
			while (nAvailable > 0)
			{
				int	nToRead = Math.min(nAvailable, m_nSize - getReadPos());
				System.arraycopy(m_abData, getReadPos(), abData, nOffset, nToRead);
				m_lReadPos += nToRead;
				nOffset += nToRead;
				nAvailable -= nToRead;
				nRemainingBytes -= nToRead;
			}
			notifyAll();
		}
		if (TDebug.TraceCircularBuffer)
		{
			TDebug.out("After read:");
			dumpInternalState();
			TDebug.out("< completed. Read " + nLength + " bytes");
		}
		return nLength;
	}
}
 
开发者ID:petersalomonsen,项目名称:frinika,代码行数:70,代码来源:TCircularBuffer.java

示例2: write

import org.tritonus.share.TDebug; //导入方法依赖的package包/类
public int write(byte[] abData, int nOffset, int nLength)
{
	if (TDebug.TraceCircularBuffer)
	{
		TDebug.out(">TCircularBuffer.write(): called; nLength: " + nLength);
		dumpInternalState();
	}
	synchronized (this)
	{
		if (TDebug.TraceCircularBuffer) { TDebug.out("entered synchronized block."); }
		if (!m_bBlockingWrite)
		{
			nLength = Math.min(availableWrite(), nLength);
		}
		int nRemainingBytes = nLength;
		while (nRemainingBytes > 0)
		{
			while (availableWrite() == 0)
			{
				try
				{
					wait();
				}
				catch (InterruptedException e)
				{
					if (TDebug.TraceAllExceptions)
					{
						TDebug.out(e);
					}
				}
			}
			int	nAvailable = Math.min(availableWrite(), nRemainingBytes);
			while (nAvailable > 0)
			{
				int	nToWrite = Math.min(nAvailable, m_nSize - getWritePos());
				//TDebug.out("src buf size= " + abData.length + ", offset = " + nOffset + ", dst buf size=" + m_abData.length + " write pos=" + getWritePos() + " len=" + nToWrite);
				System.arraycopy(abData, nOffset, m_abData, getWritePos(), nToWrite);
				m_lWritePos += nToWrite;
				nOffset += nToWrite;
				nAvailable -= nToWrite;
				nRemainingBytes -= nToWrite;
			}
			notifyAll();
		}
		if (TDebug.TraceCircularBuffer)
		{
			TDebug.out("After write:");
			dumpInternalState();
			TDebug.out("< completed. Wrote "+nLength+" bytes");
		}
		return nLength;
	}
}
 
开发者ID:petersalomonsen,项目名称:frinika,代码行数:54,代码来源:TCircularBuffer.java

示例3: read

import org.tritonus.share.TDebug; //导入方法依赖的package包/类
public int read(byte[] abData, int nOffset, int nLength)
{
	if (TDebug.TraceCircularBuffer)
	{
		TDebug.out(">TCircularBuffer.read(): called.");
		dumpInternalState();
	}
	if (! isOpen())
	{
		if (availableRead() > 0)
		{
			nLength = Math.min(nLength, availableRead());
			if (TDebug.TraceCircularBuffer) { TDebug.out("reading rest in closed buffer, length: " + nLength); }
		}
		else
		{
			if (TDebug.TraceCircularBuffer) { TDebug.out("< not open. returning -1."); }
			return -1;
		}
	}
	synchronized (this)
	{
		if (m_trigger != null && availableRead() < nLength)
		{
			if (TDebug.TraceCircularBuffer) { TDebug.out("executing trigger."); }
			m_trigger.execute();
		}
		if (!m_bBlockingRead)
		{
			nLength = Math.min(availableRead(), nLength);
		}
		int nRemainingBytes = nLength;
		while (nRemainingBytes > 0)
		{
			while (availableRead() == 0)
			{
				try
				{
					wait();
				}
				catch (InterruptedException e)
				{
					if (TDebug.TraceAllExceptions)
					{
						TDebug.out(e);
					}
				}
			}
			int	nAvailable = Math.min(availableRead(), nRemainingBytes);
			while (nAvailable > 0)
			{
				int	nToRead = Math.min(nAvailable, m_nSize - getReadPos());
				System.arraycopy(m_abData, getReadPos(), abData, nOffset, nToRead);
				m_nReadPos += nToRead;
				nOffset += nToRead;
				nAvailable -= nToRead;
				nRemainingBytes -= nToRead;
			}
			notifyAll();
		}
		if (TDebug.TraceCircularBuffer)
		{
			TDebug.out("After read:");
			dumpInternalState();
			TDebug.out("< completed. Read " + nLength + " bytes");
		}
		return nLength;
	}
}
 
开发者ID:projectestac,项目名称:jclic,代码行数:70,代码来源:TCircularBuffer.java

示例4: write

import org.tritonus.share.TDebug; //导入方法依赖的package包/类
public int write(byte[] abData, int nOffset, int nLength)
{
	if (TDebug.TraceCircularBuffer)
	{
		TDebug.out(">TCircularBuffer.write(): called; nLength: " + nLength);
		dumpInternalState();
	}
	synchronized (this)
	{
		if (TDebug.TraceCircularBuffer) { TDebug.out("entered synchronized block."); }
		if (!m_bBlockingWrite)
		{
			nLength = Math.min(availableWrite(), nLength);
		}
		int nRemainingBytes = nLength;
		while (nRemainingBytes > 0)
		{
			while (availableWrite() == 0)
			{
				try
				{
					wait();
				}
				catch (InterruptedException e)
				{
					if (TDebug.TraceAllExceptions)
					{
						TDebug.out(e);
					}
				}
			}
			int	nAvailable = Math.min(availableWrite(), nRemainingBytes);
			while (nAvailable > 0)
			{
				int	nToWrite = Math.min(nAvailable, m_nSize - getWritePos());
				//TDebug.out("src buf size= " + abData.length + ", offset = " + nOffset + ", dst buf size=" + m_abData.length + " write pos=" + getWritePos() + " len=" + nToWrite);
				System.arraycopy(abData, nOffset, m_abData, getWritePos(), nToWrite);
				m_nWritePos += nToWrite;
				nOffset += nToWrite;
				nAvailable -= nToWrite;
				nRemainingBytes -= nToWrite;
			}
			notifyAll();
		}
		if (TDebug.TraceCircularBuffer)
		{
			TDebug.out("After write:");
			dumpInternalState();
			TDebug.out("< completed. Wrote "+nLength+" bytes");
		}
		return nLength;
	}
}
 
开发者ID:projectestac,项目名称:jclic,代码行数:54,代码来源:TCircularBuffer.java


注:本文中的org.tritonus.share.TDebug.TraceCircularBuffer方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。