public final class ReferenceCountUtil extends Object
ReferenceCounted
.Modifier and Type | Method and Description |
---|---|
static int |
refCnt(Object msg)
Returns reference count of a
ReferenceCounted object. |
static boolean |
release(Object msg)
Try to call
ReferenceCounted.release() if the specified message implements ReferenceCounted . |
static boolean |
release(Object msg,
int decrement)
Try to call
ReferenceCounted.release(int) if the specified message implements ReferenceCounted . |
static <T> T |
releaseLater(T msg)
Deprecated.
this may introduce a lot of memory usage so it is generally preferable to manually release objects.
|
static <T> T |
releaseLater(T msg,
int decrement)
Deprecated.
this may introduce a lot of memory usage so it is generally preferable to manually release objects.
|
static <T> T |
retain(T msg)
Try to call
ReferenceCounted.retain() if the specified message implements ReferenceCounted . |
static <T> T |
retain(T msg,
int increment)
Try to call
ReferenceCounted.retain(int) if the specified message implements ReferenceCounted . |
static void |
safeRelease(Object msg)
Try to call
ReferenceCounted.release() if the specified message implements ReferenceCounted . |
static void |
safeRelease(Object msg,
int decrement)
Try to call
ReferenceCounted.release(int) if the specified message implements ReferenceCounted . |
static <T> T |
touch(T msg)
Tries to call
ReferenceCounted.touch() if the specified message implements ReferenceCounted . |
static <T> T |
touch(T msg,
Object hint)
Tries to call
ReferenceCounted.touch(Object) if the specified message implements
ReferenceCounted . |
public static <T> T retain(T msg)
ReferenceCounted.retain()
if the specified message implements ReferenceCounted
.
If the specified message doesn't implement ReferenceCounted
, this method does nothing.public static <T> T retain(T msg, int increment)
ReferenceCounted.retain(int)
if the specified message implements ReferenceCounted
.
If the specified message doesn't implement ReferenceCounted
, this method does nothing.public static <T> T touch(T msg)
ReferenceCounted.touch()
if the specified message implements ReferenceCounted
.
If the specified message doesn't implement ReferenceCounted
, this method does nothing.public static <T> T touch(T msg, Object hint)
ReferenceCounted.touch(Object)
if the specified message implements
ReferenceCounted
. If the specified message doesn't implement ReferenceCounted
,
this method does nothing.public static boolean release(Object msg)
ReferenceCounted.release()
if the specified message implements ReferenceCounted
.
If the specified message doesn't implement ReferenceCounted
, this method does nothing.public static boolean release(Object msg, int decrement)
ReferenceCounted.release(int)
if the specified message implements ReferenceCounted
.
If the specified message doesn't implement ReferenceCounted
, this method does nothing.public static void safeRelease(Object msg)
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.public static void safeRelease(Object msg, int decrement)
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.@Deprecated public static <T> T releaseLater(T msg)
@Deprecated public static <T> T releaseLater(T msg, int decrement)
public static int refCnt(Object msg)
ReferenceCounted
object. If object is not type of
ReferenceCounted
, -1
is returned.Copyright © 2008–2017 The Netty Project. All rights reserved.