Class CSN
java.lang.Object
org.opends.server.replication.common.CSN
- All Implemented Interfaces:
Serializable
,Comparable<CSN>
Class used to represent Change Sequence Numbers.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum
The version of a CSN to ask for a particular representation. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
The number of bytes used by the byte string representation of a change number v1.static final long
The maximum stream sequence number.static final CSN
The maximum possible value for a CSN; used for comparisons and initialization, the stream id does not count.static final long
The minimum stream sequence number.static final CSN
The minimum possible value for a CSN; used for comparisons and initialization, the stream id does not count.static final long
The has no meaning for this CSN.static final long
The stream sequence number to use when no stream sequence number is needed.static final int
The position of the replica name in a string representation of a CSN V1 and V2.static final int
The position of the replica name in a string representation of a CSN V3.static final int
The position of the stream sequence number in a string representation of a CSN V3.static final int
The number of characters used by the string representation of a change number v1. -
Method Summary
Modifier and TypeMethodDescriptionstatic int
Compares this CSN with the provided CSN for order and returns a negative number ifcsn1
is older thancsn2
, zero if they have the same age, or a positive number ifcsn1
is newer thancsn2
.int
Compares this CSN with the provided CSN for order and returns a negative number if this CSN is older thancsn
, zero if they have the same age, or a positive number if this CSN is newer thancsn
.boolean
Returns the replica ID.int
Returns the sequence number.long
Returns the stream sequence number.long
Returns the stream timestamp associated to thisCSN
in milliseconds.long
getTime()
Returns the timestamp associated to this CSN in milliseconds.long
Returns the timestamp associated to thisCSN
in seconds.Returns the CSN version.int
hashCode()
boolean
isNewerThan
(CSN csn) Returnstrue
if this CSN is newer than the provided CSN.boolean
isNewerThanOrEqualTo
(CSN csn) Returnstrue
if this CSN is newer than or equal to the provided CSN.boolean
isOlderThan
(CSN csn) Returnstrue
if this CSN is older than the provided CSN.boolean
isOlderThanOrEqualTo
(CSN csn) Returnstrue
if this CSN is older than or equal to the provided CSN.boolean
isOldestCsn
(ReplicaId replicaId) Returns if this is the oldest possible CSN for a replica.static boolean
Returnstrue
if the provided string can be parsed as a CSN.static CSN
Create a newCSN
.static CSN
Create a newCSN
.static CSN
newCsnV1
(long timeStamp, int seqNum, int replicaId) Create a newCSN
.static CSN
Create a newCSN
.static CSN
newestCsn
(long timeStamp) Returns the newest possible CSN for the given time.static CSN
Returns the newest possible CSN for a replica.static CSN
oldestCsn
(long timeStamp) Returns the oldest possible CSN for the given time.static CSN
Returns the oldest possible CSN for a replica.static void
skipCsn
(ByteStringReader reader) Advances reading the provided reader to the end of the CSN representation, by skipping over it.Encodes this CSN as a byte string.void
toByteString
(ByteStringBuilder builder, CSN.CsnVersion version) Encodes this CSN into the provided byte string builder according to the given CSN version.toByteString
(CSN.CsnVersion version) Encodes this CSN as a byte string according to the given CSN version.Returns theInstant
representing the CSN time.toJson()
Returns the json representation of this CSN.toString()
Convert theCSN
to a printable String.toString
(CSN.CsnVersion version) Convert theCSN
to a printable String according to the given CSN version.Convert theCSN
to a printable String with a user friendly format.static CSN
Parses the providedtoString()
representation of a CSN.static CSN
valueOf
(ByteString bs) Decodes the providedtoByteString(CsnVersion)
representation of a CSN.static CSN
valueOf
(ByteStringReader reader) Decodes the providedtoByteString(CsnVersion)
representation of a CSN, possibly embedded in a larger sequence.
-
Field Details
-
BYTE_ENCODING_V1_LENGTH
public static final int BYTE_ENCODING_V1_LENGTHThe number of bytes used by the byte string representation of a change number v1.- See Also:
-
STRING_ENCODING_V1_LENGTH
public static final int STRING_ENCODING_V1_LENGTHThe number of characters used by the string representation of a change number v1.- See Also:
-
REPLICA_NAME_POSITION_V2
public static final int REPLICA_NAME_POSITION_V2The position of the replica name in a string representation of a CSN V1 and V2.- See Also:
-
STREAM_SEQNUM_POSITION_V3
public static final int STREAM_SEQNUM_POSITION_V3The position of the stream sequence number in a string representation of a CSN V3.- See Also:
-
REPLICA_NAME_POSITION_V3
public static final int REPLICA_NAME_POSITION_V3The position of the replica name in a string representation of a CSN V3.- See Also:
-
NO_STREAM
public static final long NO_STREAMThe has no meaning for this CSN.- See Also:
-
NO_STREAM_SEQ_NUM
public static final long NO_STREAM_SEQ_NUMThe stream sequence number to use when no stream sequence number is needed.- See Also:
-
MIN_STREAM_SEQ_NUM
public static final long MIN_STREAM_SEQ_NUMThe minimum stream sequence number.- See Also:
-
MAX_STREAM_SEQ_NUM
public static final long MAX_STREAM_SEQ_NUMThe maximum stream sequence number.- See Also:
-
MIN_VALUE
The minimum possible value for a CSN; used for comparisons and initialization, the stream id does not count. -
MAX_VALUE
The maximum possible value for a CSN; used for comparisons and initialization, the stream id does not count.
-
-
Method Details
-
isValid
Returnstrue
if the provided string can be parsed as a CSN.- Parameters:
str
- the CSN- Returns:
true
if the provided string can be parsed as a CSN
-
valueOf
Parses the providedtoString()
representation of a CSN.- Parameters:
str
- The string to be parsed.- Returns:
- The parsed CSN.
- See Also:
-
valueOf
Decodes the providedtoByteString(CsnVersion)
representation of a CSN.- Parameters:
bs
- The byte string to be parsed.- Returns:
- The decoded CSN.
- See Also:
-
valueOf
Decodes the providedtoByteString(CsnVersion)
representation of a CSN, possibly embedded in a larger sequence.- Parameters:
reader
- The reader of the byte string to be parsed.- Returns:
- The decoded CSN.
-
skipCsn
Advances reading the provided reader to the end of the CSN representation, by skipping over it.- Parameters:
reader
- The reader to advance
-
newCsnV1
Create a newCSN
. -
newCsnV2
Create a newCSN
. -
newCsn
Create a newCSN
. -
newCsn
public static CSN newCsn(long streamTimeStamp, long timeStamp, int seqNum, long streamSeqNum, ReplicaId replicaId) Create a newCSN
. -
getVersion
Returns the CSN version.- Returns:
- the CSN version
-
getTime
public long getTime()Returns the timestamp associated to this CSN in milliseconds.- Returns:
- the timestamp associated to this CSN in milliseconds
-
getTimeSec
public long getTimeSec()Returns the timestamp associated to thisCSN
in seconds.- Returns:
- the timestamp associated to this
CSN
in seconds
-
getStreamTimeStamp
public long getStreamTimeStamp()Returns the stream timestamp associated to thisCSN
in milliseconds.- Returns:
- the stream timestamp associated to this
CSN
in milliseconds
-
getSeqnum
public int getSeqnum()Returns the sequence number.- Returns:
- the sequence number
-
getStreamSeqNum
public long getStreamSeqNum()Returns the stream sequence number.- Returns:
- the stream sequence number
-
getReplicaId
Returns the replica ID.- Returns:
- the replica ID
-
equals
-
hashCode
public int hashCode() -
toByteString
Encodes this CSN as a byte string.The returned representation is according to the most recent CSN version. Use
toByteString(CsnVersion)
to get a representation compatible with earlier protocol versions.- Returns:
- The encoded representation of this CSN.
- See Also:
-
toByteString
Encodes this CSN as a byte string according to the given CSN version.- Parameters:
version
- The required representation version- Returns:
- The encoded representation of this CSN.
-
toByteString
Encodes this CSN into the provided byte string builder according to the given CSN version.- Parameters:
builder
- The byte string builder.version
- The required representation version- See Also:
-
toString
Convert theCSN
to a printable String.The returned representation is according to the most recent CSN version. Use
toString(CsnVersion)
to get a representation compatible with earlier protocol versions. -
toString
Convert theCSN
to a printable String according to the given CSN version.- Parameters:
version
- The required representation version- Returns:
- the string
-
toStringUI
Convert theCSN
to a printable String with a user friendly format.- Returns:
- the string
-
compare
Compares this CSN with the provided CSN for order and returns a negative number ifcsn1
is older thancsn2
, zero if they have the same age, or a positive number ifcsn1
is newer thancsn2
.- Parameters:
csn1
- The first CSN to be compared, which may benull
.csn2
- The second CSN to be compared, which may benull
.- Returns:
- A negative number if
csn1
is older thancsn2
, zero if they have the same age, or a positive number ifcsn1
is newer thancsn2
.
-
isOlderThan
Returnstrue
if this CSN is older than the provided CSN.- Parameters:
csn
- The CSN to be compared- Returns:
true
if this CSN is older than the provided CSN
-
isOlderThanOrEqualTo
Returnstrue
if this CSN is older than or equal to the provided CSN.- Parameters:
csn
- The CSN to be compared- Returns:
true
if this CSN is older than or equal to the provided CSN
-
isNewerThanOrEqualTo
Returnstrue
if this CSN is newer than or equal to the provided CSN.- Parameters:
csn
- The CSN to be compared- Returns:
true
if this CSN is newer than or equal to the provided CSN
-
isNewerThan
Returnstrue
if this CSN is newer than the provided CSN.- Parameters:
csn
- The CSN to be compared- Returns:
true
if this CSN is newer than the provided CSN
-
compareTo
Compares this CSN with the provided CSN for order and returns a negative number if this CSN is older thancsn
, zero if they have the same age, or a positive number if this CSN is newer thancsn
.- Specified by:
compareTo
in interfaceComparable<CSN>
- Parameters:
csn
- The CSN to be compared.- Returns:
- A negative number if this CSN is older than
csn
, zero if they have the same age, or a positive number if this CSN is newer thancsn
.
-
toInstant
Returns theInstant
representing the CSN time.- Returns:
- the
Instant
representing the CSN time
-
oldestCsn
Returns the oldest possible CSN for the given time.- Parameters:
timeStamp
- the time of the CSN- Returns:
- the oldest possible CSN for the given time
-
oldestCsn
Returns the oldest possible CSN for a replica.- Parameters:
replicaId
- the replica- Returns:
- the oldest possible CSN for a replica
-
isOldestCsn
Returns if this is the oldest possible CSN for a replica.- Parameters:
replicaId
- the replica- Returns:
- if this is the oldest possible CSN for a replica
-
newestCsn
Returns the newest possible CSN for the given time.- Parameters:
timeStamp
- the time of the CSN- Returns:
- the newest possible CSN for the given time
-
newestCsn
Returns the newest possible CSN for a replica.- Parameters:
replicaId
- the replica- Returns:
- the newest possible CSN for a replica
-
toJson
Returns the json representation of this CSN.- Returns:
- the json representation of this CSN
-