⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 referencecounteddirectbytebuffer.java

📁 java 文件下载器。可自定义
💻 JAVA
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space 
// Source File Name:   ReferenceCountedDirectByteBuffer.java

package org.gudy.azureus2.core3.util;

import java.nio.ByteBuffer;

// Referenced classes of package org.gudy.azureus2.core3.util:
//			DirectByteBuffer, Debug

public class ReferenceCountedDirectByteBuffer extends DirectByteBuffer
{
	protected class ReferenceCountedDirectByteBufferDuplicate extends ReferenceCountedDirectByteBuffer
	{

		final ReferenceCountedDirectByteBuffer this$0;

		public ReferenceCountedDirectByteBuffer duplicate(int offset, int length)
		{
			Debug.out("dup dup");
			return null;
		}

		public void returnToPool()
		{
			decrementReferenceCount();
		}

		public void incrementReferenceCount()
		{
			ReferenceCountedDirectByteBuffer.this.incrementReferenceCount();
		}

		public void decrementReferenceCount()
		{
			ReferenceCountedDirectByteBuffer.this.decrementReferenceCount();
		}

		protected ReferenceCountedDirectByteBufferDuplicate(ByteBuffer owner)
		{
			this$0 = ReferenceCountedDirectByteBuffer.this;
			super(owner);
			incrementReferenceCount();
		}
	}


	private DirectByteBuffer basis;
	private int ref_count;

	protected ReferenceCountedDirectByteBuffer(DirectByteBuffer _basis)
	{
		this(_basis.getBufferInternal());
		basis = _basis;
	}

	protected ReferenceCountedDirectByteBuffer(ByteBuffer _buffer)
	{
		super(_buffer);
		ref_count = 1;
	}

	public ReferenceCountedDirectByteBuffer duplicate(int offset, int length)
	{
		ByteBuffer duplicate = getBufferInternal().duplicate();
		duplicate.position(duplicate.position() + offset);
		duplicate.limit(duplicate.position() + length);
		ReferenceCountedDirectByteBuffer res = new ReferenceCountedDirectByteBufferDuplicate(duplicate);
		return res;
	}

	public void incrementReferenceCount()
	{
		synchronized (this)
		{
			ref_count++;
		}
	}

	public void decrementReferenceCount()
	{
		synchronized (this)
		{
			ref_count--;
			if (ref_count == 0)
				basis.returnToPool();
		}
	}

	public int getReferenceCount()
	{
		return ref_count;
	}

	public void returnToPool()
	{
		decrementReferenceCount();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -