Package org.agrona.concurrent.status
Class AtomicLongPosition
java.lang.Object
org.agrona.concurrent.status.ReadablePosition
org.agrona.concurrent.status.Position
org.agrona.concurrent.status.AtomicLongPosition
- All Implemented Interfaces:
AutoCloseable
Position that is backed by an AtomicLong which is useful for tests.-
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor.AtomicLongPosition(int id) Create a position with a given id and zero as an initial value.AtomicLongPosition(int id, long initialValue) Create a position with a given id and an initial value. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()longget()Get the current position of a component without memory ordering semantics.longGet the current position of a component with volatile semantics.intid()Identifier for this position.booleanisClosed()Has this Position been closed?booleanproposeMax(long proposedValue) Set the position to a new proposedValue if greater than the current value without memory ordering semantics.booleanproposeMaxOrdered(long proposedValue) Set the position to the new proposedValue if greater than the current value with memory ordering semantics.voidset(long value) Sets the current position of the component without memory ordering semantics.voidsetOrdered(long value) Sets the current position of the component with ordered memory semantics.voidsetVolatile(long value) Sets the current position of the component with volatile memory semantics.toString()
-
Constructor Details
-
AtomicLongPosition
public AtomicLongPosition()Default constructor. -
AtomicLongPosition
public AtomicLongPosition(int id) Create a position with a given id and zero as an initial value.- Parameters:
id- to be assigned.
-
AtomicLongPosition
public AtomicLongPosition(int id, long initialValue) Create a position with a given id and an initial value.- Parameters:
id- to be assigned.initialValue- to be assigned.
-
-
Method Details
-
isClosed
public boolean isClosed()Has this Position been closed? -
id
public int id()Identifier for this position.- Specified by:
idin classReadablePosition- Returns:
- the identifier for this position.
-
get
public long get()Get the current position of a component without memory ordering semantics. -
getVolatile
public long getVolatile()Get the current position of a component with volatile semantics.- Specified by:
getVolatilein classReadablePosition- Returns:
- the current position of a component with volatile semantics.
-
set
public void set(long value) Sets the current position of the component without memory ordering semantics. -
setOrdered
public void setOrdered(long value) Sets the current position of the component with ordered memory semantics.- Specified by:
setOrderedin classPosition- Parameters:
value- the current position of the component.
-
setVolatile
public void setVolatile(long value) Sets the current position of the component with volatile memory semantics.- Specified by:
setVolatilein classPosition- Parameters:
value- the current position of the component.
-
proposeMax
public boolean proposeMax(long proposedValue) Set the position to a new proposedValue if greater than the current value without memory ordering semantics.- Specified by:
proposeMaxin classPosition- Parameters:
proposedValue- for the new max.- Returns:
- true if a new max as been set otherwise false.
-
proposeMaxOrdered
public boolean proposeMaxOrdered(long proposedValue) Set the position to the new proposedValue if greater than the current value with memory ordering semantics.- Specified by:
proposeMaxOrderedin classPosition- Parameters:
proposedValue- for the new max.- Returns:
- true if a new max as been set otherwise false.
-
close
public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein classReadablePosition
-
toString
-