Top Description Fields Constructors Methods
io.netty5.util

public final Class ReferenceCountUtil

extends Object
Class Inheritance
Imports
io.netty5.util.internal.ObjectUtil, io.netty5.util.internal.logging.InternalLogger, .InternalLoggerFactory

Collection of method to handle objects that may implement ReferenceCounted.

Field Summary

Modifier and TypeField and Description
private static final InternalLogger

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public static boolean

Returns:

true if the given object is reference counted.
isReferenceCounted
(Object
The object to test.
obj
)

Tests whether the given object implements the ReferenceCounted interface.

public static int
refCnt(Object msg)

Returns reference count of a ReferenceCounted object.

public static boolean
release(Object msg)

Try to call ReferenceCounted#release() if the specified message implements ReferenceCounted.

public static boolean
release(Object msg, int decrement)

Try to call ReferenceCounted#release(int) if the specified message implements ReferenceCounted.

public static <T> T
retain(T msg)

Try to call ReferenceCounted#retain() if the specified message implements ReferenceCounted.

public static <T> T
retain(T msg, int increment)

Try to call ReferenceCounted#retain(int) if the specified message implements ReferenceCounted.

public static void
safeRelease(Object msg)

Try to call ReferenceCounted#release() if the specified message implements ReferenceCounted.

public static void
safeRelease(Object msg, int decrement)

Try to call ReferenceCounted#release(int) if the specified message implements ReferenceCounted.

public static <T> T
touch(T msg)

Tries to call ReferenceCounted#touch() if the specified message implements ReferenceCounted.

public static <T> T
touch(T msg, Object hint)

Tries to call ReferenceCounted#touch(Object) if the specified message implements ReferenceCounted.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

loggerback to summary
private static final InternalLogger logger

Constructor Detail

ReferenceCountUtilback to summary
private ReferenceCountUtil()

Method Detail

isReferenceCountedback to summary
public static boolean isReferenceCounted(Object obj)

Tests whether the given object implements the ReferenceCounted interface.

Parameters
obj:Object

The object to test.

Returns:boolean

true if the given object is reference counted.

refCntback to summary
public static int refCnt(Object msg)

Returns reference count of a ReferenceCounted object. If object is not type of ReferenceCounted, -1 is returned.

releaseback to summary
public static boolean release(Object msg)

Try to call ReferenceCounted#release() if the specified message implements ReferenceCounted. If the specified message doesn't implement ReferenceCounted, this method does nothing.

releaseback to summary
public static boolean release(Object msg, int decrement)

Try to call ReferenceCounted#release(int) if the specified message implements ReferenceCounted. If the specified message doesn't implement ReferenceCounted, this method does nothing.

retainback to summary
public static <T> T retain(T msg)

Try to call ReferenceCounted#retain() if the specified message implements ReferenceCounted. If the specified message doesn't implement ReferenceCounted, this method does nothing.

Annotations
@SuppressWarnings:unchecked
retainback to summary
public static <T> T retain(T msg, int increment)

Try to call ReferenceCounted#retain(int) if the specified message implements ReferenceCounted. If the specified message doesn't implement ReferenceCounted, this method does nothing.

Annotations
@SuppressWarnings:unchecked
safeReleaseback to summary
public static void safeRelease(Object msg)

Try to call ReferenceCounted#release() if the specified message implements ReferenceCounted. If the specified message doesn't implement ReferenceCounted, this method does nothing. Unlike release(Object) this method catches an exception raised by ReferenceCounted#release() and logs it, rather than rethrowing it to the caller. It is usually recommended to use release(Object) instead, unless you absolutely need to swallow an exception.

safeReleaseback to summary
public static void safeRelease(Object msg, int decrement)

Try to call ReferenceCounted#release(int) if the specified message implements ReferenceCounted. If the specified message doesn't implement ReferenceCounted, this method does nothing. Unlike release(Object) this method catches an exception raised by ReferenceCounted#release(int) and logs it, rather than rethrowing it to the caller. It is usually recommended to use release(Object, int) instead, unless you absolutely need to swallow an exception.

touchback to summary
public static <T> T touch(T msg)

Tries to call ReferenceCounted#touch() if the specified message implements ReferenceCounted. If the specified message doesn't implement ReferenceCounted, this method does nothing.

Annotations
@SuppressWarnings:unchecked
touchback to summary
public static <T> T touch(T msg, Object hint)

Tries to call ReferenceCounted#touch(Object) if the specified message implements ReferenceCounted. If the specified message doesn't implement ReferenceCounted, this method does nothing.

Annotations
@SuppressWarnings:unchecked