Package org.h2.mvstore
Class DataUtils
- java.lang.Object
-
- org.h2.mvstore.DataUtils
-
public final class DataUtils extends java.lang.Object
Utility methods
-
-
Field Summary
Fields Modifier and Type Field Description static int
COMPRESSED_VAR_INT_MAX
The maximum integer that needs less space when using variable size encoding (only 3 bytes instead of 4).static long
COMPRESSED_VAR_LONG_MAX
The maximum long that needs less space when using variable size encoding (only 7 bytes instead of 8).static int
ERROR_BLOCK_NOT_FOUND
The block in the stream store was not found.static int
ERROR_CHUNK_NOT_FOUND
The application was trying to read data from a chunk that is no longer available.static int
ERROR_CLOSED
The object is already closed.static int
ERROR_FILE_CORRUPT
The file is corrupt or (for encrypted files) the encryption key is wrong.static int
ERROR_FILE_LOCKED
The file is locked.static int
ERROR_INTERNAL
An internal error occurred.static int
ERROR_READING_FAILED
An error occurred while reading from the file.static int
ERROR_SERIALIZATION
An error occurred when serializing or de-serializing.static int
ERROR_TOO_MANY_OPEN_TRANSACTIONS
There are too many open transactions.static int
ERROR_TRANSACTION_CORRUPT
The transaction store is corrupt.static int
ERROR_TRANSACTION_ILLEGAL_STATE
The transaction store is in an illegal state (for example, not yet initialized).static int
ERROR_TRANSACTION_LOCKED
An entry is still locked by another transaction.static int
ERROR_TRANSACTION_TOO_BIG
The transaction contains too many changes.static int
ERROR_TRANSACTIONS_DEADLOCK
Deadlock discovered and one of transactions involved chosen as victim and rolled back.static int
ERROR_UNKNOWN_DATA_TYPE
The transaction store can not be initialized because data type is not found in type registry.static int
ERROR_UNSUPPORTED_FORMAT
The file format is not supported.static int
ERROR_WRITING_FAILED
An error occurred when trying to write to the file.static int
MAX_VAR_INT_LEN
The maximum length of a variable size int.static int
MAX_VAR_LONG_LEN
The maximum length of a variable size long.static java.lang.String
META_CHUNK
The prefix for chunks ("chunk.").static java.lang.String
META_MAP
The prefix for maps ("map.").static java.lang.String
META_NAME
The prefix for names ("name.").static java.lang.String
META_ROOT
The prefix for root positions of maps ("root.").static int
PAGE_COMPRESSED
The bit mask for compressed pages (compression level fast).static int
PAGE_COMPRESSED_HIGH
The bit mask for compressed pages (compression level high).static int
PAGE_HAS_PAGE_NO
The bit mask for pages with page sequential number.static int
PAGE_LARGE
The marker size of a very large page.static int
PAGE_TYPE_LEAF
The type for leaf page.static int
PAGE_TYPE_NODE
The type for node page.
-
Constructor Summary
Constructors Constructor Description DataUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
appendMap(java.lang.StringBuilder buff, java.lang.String key, int value)
Append a key-value pair to the string builder.static void
appendMap(java.lang.StringBuilder buff, java.lang.String key, long value)
Append a key-value pair to the string builder.static void
appendMap(java.lang.StringBuilder buff, java.lang.String key, java.lang.String value)
Append a key-value pair to the string builder.static java.lang.StringBuilder
appendMap(java.lang.StringBuilder buff, java.util.HashMap<java.lang.String,?> map)
Append a map to the string builder, sorted by key.private static java.lang.StringBuilder
appendMapKey(java.lang.StringBuilder buff, java.lang.String key)
static void
checkArgument(boolean test, java.lang.String message, java.lang.Object... arguments)
Throw an IllegalArgumentException if the argument is invalid.static java.io.IOException
convertToIOException(java.lang.Throwable e)
Convert an exception to an IO exception.static void
copyExcept(java.lang.Object src, java.lang.Object dst, int oldSize, int removeIndex)
Copy the elements of an array, and remove one element.static void
copyWithGap(java.lang.Object src, java.lang.Object dst, int oldSize, int gapIndex)
Copy the elements of an array, with a gap.static int
decodePageLength(int code)
Get the maximum length for the given code.static int
encodeLength(int len)
Convert the length to a length code 0..31.static java.lang.String
formatMessage(int errorCode, java.lang.String message, java.lang.Object... arguments)
Format an error message.static short
getCheckValue(int x)
Calculate a check value for the given integer.(package private) static int
getConfigParam(java.util.Map<java.lang.String,?> config, java.lang.String key, int defaultValue)
Get the configuration parameter value, or default.static int
getFletcher32(byte[] bytes, int offset, int length)
Calculate the Fletcher32 checksum.static java.lang.String
getFromMap(java.lang.String s, java.lang.String key)
Parse a specified pair from key-value pair list.static java.lang.String
getMapName(java.lang.String s)
Parse a name from key-value pair list.static int
getPageChunkId(long pos)
Get the chunk id from the position.static int
getPageMapId(long tocElement)
Get the map id from the chunk's table of content element.static int
getPageMaxLength(long pos)
Get the maximum length for the given page position.static int
getPageOffset(long tocElement)
Get the offset from the position.static long
getPagePos(int chunkId, int offset, int length, int type)
Get the position of this page.static long
getPagePos(int chunkId, long tocElement)
Convert tocElement into pagePos by replacing mapId with chunkId.static int
getPageType(long pos)
Get the page type from the position.static long
getTocElement(int mapId, int offset, int length, int type)
Create table of content element.static int
getVarIntLen(int x)
Get the length of the variable size int.static int
getVarLongLen(long x)
Get the length of the variable size long.private static <T extends java.lang.Exception>
TinitCause(T e, java.lang.Object... arguments)
static boolean
isLeafPosition(long pos)
Determines whether specified file position corresponds to a leaf page(package private) static boolean
isPageRemoved(long pos)
Find out if page was removed.static boolean
isPageSaved(long pos)
Find out if page was saved.static java.lang.IllegalArgumentException
newIllegalArgumentException(java.lang.String message, java.lang.Object... arguments)
Create a new IllegalArgumentException.static MVStoreException
newMVStoreException(int errorCode, java.lang.String message, java.lang.Object... arguments)
Create a new MVStoreException.static java.lang.UnsupportedOperationException
newUnsupportedOperationException(java.lang.String message)
Create a new UnsupportedOperationException.(package private) static java.util.HashMap<java.lang.String,java.lang.String>
parseChecksummedMap(byte[] bytes)
Parse a key-value pair list and checks its checksum.(package private) static byte[]
parseHexBytes(java.util.Map<java.lang.String,?> map, java.lang.String key)
Parse the hex-encoded bytes of an entry in the map.static int
parseHexInt(java.lang.String x)
Parse an unsigned, hex long.static long
parseHexLong(java.lang.String x)
Parse an unsigned, hex long.static java.util.HashMap<java.lang.String,java.lang.String>
parseMap(java.lang.String s)
Parse a key-value pair list.private static int
parseMapValue(java.lang.StringBuilder buff, java.lang.String s, int i, int size)
static void
readFully(java.nio.channels.FileChannel file, long pos, java.nio.ByteBuffer dst)
Read from a file channel until the buffer is full.(package private) static int
readHexInt(java.util.Map<java.lang.String,?> map, java.lang.String key, int defaultValue)
Read a hex int value from a map.static long
readHexLong(java.util.Map<java.lang.String,?> map, java.lang.String key, long defaultValue)
Read a hex long value from a map.static java.lang.String
readString(java.nio.ByteBuffer buff)
Read a string.static java.lang.String
readString(java.nio.ByteBuffer buff, int len)
Read a string.static int
readVarInt(java.nio.ByteBuffer buff)
Read a variable size int.private static int
readVarIntRest(java.nio.ByteBuffer buff, int b)
static long
readVarLong(java.nio.ByteBuffer buff)
Read a variable size long.static void
writeFully(java.nio.channels.FileChannel file, long pos, java.nio.ByteBuffer src)
Write to a file channel.static void
writeStringData(java.nio.ByteBuffer buff, java.lang.String s, int len)
Write characters from a string (without the length).static void
writeVarInt(java.io.OutputStream out, int x)
Write a variable size int.static void
writeVarInt(java.nio.ByteBuffer buff, int x)
Write a variable size int.static void
writeVarLong(java.io.OutputStream out, long x)
Write a variable size long.static void
writeVarLong(java.nio.ByteBuffer buff, long x)
Write a variable size long.
-
-
-
Field Detail
-
ERROR_READING_FAILED
public static final int ERROR_READING_FAILED
An error occurred while reading from the file.- See Also:
- Constant Field Values
-
ERROR_WRITING_FAILED
public static final int ERROR_WRITING_FAILED
An error occurred when trying to write to the file.- See Also:
- Constant Field Values
-
ERROR_INTERNAL
public static final int ERROR_INTERNAL
An internal error occurred. This could be a bug, or a memory corruption (for example caused by out of memory).- See Also:
- Constant Field Values
-
ERROR_CLOSED
public static final int ERROR_CLOSED
The object is already closed.- See Also:
- Constant Field Values
-
ERROR_UNSUPPORTED_FORMAT
public static final int ERROR_UNSUPPORTED_FORMAT
The file format is not supported.- See Also:
- Constant Field Values
-
ERROR_FILE_CORRUPT
public static final int ERROR_FILE_CORRUPT
The file is corrupt or (for encrypted files) the encryption key is wrong.- See Also:
- Constant Field Values
-
ERROR_FILE_LOCKED
public static final int ERROR_FILE_LOCKED
The file is locked.- See Also:
- Constant Field Values
-
ERROR_SERIALIZATION
public static final int ERROR_SERIALIZATION
An error occurred when serializing or de-serializing.- See Also:
- Constant Field Values
-
ERROR_CHUNK_NOT_FOUND
public static final int ERROR_CHUNK_NOT_FOUND
The application was trying to read data from a chunk that is no longer available.- See Also:
- Constant Field Values
-
ERROR_BLOCK_NOT_FOUND
public static final int ERROR_BLOCK_NOT_FOUND
The block in the stream store was not found.- See Also:
- Constant Field Values
-
ERROR_TRANSACTION_CORRUPT
public static final int ERROR_TRANSACTION_CORRUPT
The transaction store is corrupt.- See Also:
- Constant Field Values
-
ERROR_TRANSACTION_LOCKED
public static final int ERROR_TRANSACTION_LOCKED
An entry is still locked by another transaction.- See Also:
- Constant Field Values
-
ERROR_TOO_MANY_OPEN_TRANSACTIONS
public static final int ERROR_TOO_MANY_OPEN_TRANSACTIONS
There are too many open transactions.- See Also:
- Constant Field Values
-
ERROR_TRANSACTION_ILLEGAL_STATE
public static final int ERROR_TRANSACTION_ILLEGAL_STATE
The transaction store is in an illegal state (for example, not yet initialized).- See Also:
- Constant Field Values
-
ERROR_TRANSACTION_TOO_BIG
public static final int ERROR_TRANSACTION_TOO_BIG
The transaction contains too many changes.- See Also:
- Constant Field Values
-
ERROR_TRANSACTIONS_DEADLOCK
public static final int ERROR_TRANSACTIONS_DEADLOCK
Deadlock discovered and one of transactions involved chosen as victim and rolled back.- See Also:
- Constant Field Values
-
ERROR_UNKNOWN_DATA_TYPE
public static final int ERROR_UNKNOWN_DATA_TYPE
The transaction store can not be initialized because data type is not found in type registry.- See Also:
- Constant Field Values
-
PAGE_TYPE_LEAF
public static final int PAGE_TYPE_LEAF
The type for leaf page.- See Also:
- Constant Field Values
-
PAGE_TYPE_NODE
public static final int PAGE_TYPE_NODE
The type for node page.- See Also:
- Constant Field Values
-
PAGE_COMPRESSED
public static final int PAGE_COMPRESSED
The bit mask for compressed pages (compression level fast).- See Also:
- Constant Field Values
-
PAGE_COMPRESSED_HIGH
public static final int PAGE_COMPRESSED_HIGH
The bit mask for compressed pages (compression level high).- See Also:
- Constant Field Values
-
PAGE_HAS_PAGE_NO
public static final int PAGE_HAS_PAGE_NO
The bit mask for pages with page sequential number.- See Also:
- Constant Field Values
-
MAX_VAR_INT_LEN
public static final int MAX_VAR_INT_LEN
The maximum length of a variable size int.- See Also:
- Constant Field Values
-
MAX_VAR_LONG_LEN
public static final int MAX_VAR_LONG_LEN
The maximum length of a variable size long.- See Also:
- Constant Field Values
-
COMPRESSED_VAR_INT_MAX
public static final int COMPRESSED_VAR_INT_MAX
The maximum integer that needs less space when using variable size encoding (only 3 bytes instead of 4).- See Also:
- Constant Field Values
-
COMPRESSED_VAR_LONG_MAX
public static final long COMPRESSED_VAR_LONG_MAX
The maximum long that needs less space when using variable size encoding (only 7 bytes instead of 8).- See Also:
- Constant Field Values
-
PAGE_LARGE
public static final int PAGE_LARGE
The marker size of a very large page.- See Also:
- Constant Field Values
-
META_CHUNK
public static final java.lang.String META_CHUNK
The prefix for chunks ("chunk."). This, plus the chunk id (hex encoded) is the key, and the serialized chunk metadata is the value.- See Also:
- Constant Field Values
-
META_ROOT
public static final java.lang.String META_ROOT
The prefix for root positions of maps ("root."). This, plus the map id (hex encoded) is the key, and the position (hex encoded) is the value.- See Also:
- Constant Field Values
-
META_NAME
public static final java.lang.String META_NAME
The prefix for names ("name."). This, plus the name of the map, is the key, and the map id (hex encoded) is the value.- See Also:
- Constant Field Values
-
META_MAP
public static final java.lang.String META_MAP
The prefix for maps ("map."). This, plus the map id (hex encoded) is the key, and the serialized in the map metadata is the value.- See Also:
- Constant Field Values
-
-
Method Detail
-
getVarIntLen
public static int getVarIntLen(int x)
Get the length of the variable size int.- Parameters:
x
- the value- Returns:
- the length in bytes
-
getVarLongLen
public static int getVarLongLen(long x)
Get the length of the variable size long.- Parameters:
x
- the value- Returns:
- the length in bytes
-
readVarInt
public static int readVarInt(java.nio.ByteBuffer buff)
Read a variable size int.- Parameters:
buff
- the source buffer- Returns:
- the value
-
readVarIntRest
private static int readVarIntRest(java.nio.ByteBuffer buff, int b)
-
readVarLong
public static long readVarLong(java.nio.ByteBuffer buff)
Read a variable size long.- Parameters:
buff
- the source buffer- Returns:
- the value
-
writeVarInt
public static void writeVarInt(java.io.OutputStream out, int x) throws java.io.IOException
Write a variable size int.- Parameters:
out
- the output streamx
- the value- Throws:
java.io.IOException
- if some data could not be written
-
writeVarInt
public static void writeVarInt(java.nio.ByteBuffer buff, int x)
Write a variable size int.- Parameters:
buff
- the source bufferx
- the value
-
writeStringData
public static void writeStringData(java.nio.ByteBuffer buff, java.lang.String s, int len)
Write characters from a string (without the length).- Parameters:
buff
- the target buffer (must be large enough)s
- the stringlen
- the number of characters
-
readString
public static java.lang.String readString(java.nio.ByteBuffer buff)
Read a string.- Parameters:
buff
- the source buffer- Returns:
- the value
-
readString
public static java.lang.String readString(java.nio.ByteBuffer buff, int len)
Read a string.- Parameters:
buff
- the source bufferlen
- the number of characters- Returns:
- the value
-
writeVarLong
public static void writeVarLong(java.nio.ByteBuffer buff, long x)
Write a variable size long.- Parameters:
buff
- the target bufferx
- the value
-
writeVarLong
public static void writeVarLong(java.io.OutputStream out, long x) throws java.io.IOException
Write a variable size long.- Parameters:
out
- the output streamx
- the value- Throws:
java.io.IOException
- if some data could not be written
-
copyWithGap
public static void copyWithGap(java.lang.Object src, java.lang.Object dst, int oldSize, int gapIndex)
Copy the elements of an array, with a gap.- Parameters:
src
- the source arraydst
- the target arrayoldSize
- the size of the old arraygapIndex
- the index of the gap
-
copyExcept
public static void copyExcept(java.lang.Object src, java.lang.Object dst, int oldSize, int removeIndex)
Copy the elements of an array, and remove one element.- Parameters:
src
- the source arraydst
- the target arrayoldSize
- the size of the old arrayremoveIndex
- the index of the entry to remove
-
readFully
public static void readFully(java.nio.channels.FileChannel file, long pos, java.nio.ByteBuffer dst)
Read from a file channel until the buffer is full. The buffer is rewind after reading.- Parameters:
file
- the file channelpos
- the absolute position within the filedst
- the byte buffer- Throws:
MVStoreException
- if some data could not be read
-
writeFully
public static void writeFully(java.nio.channels.FileChannel file, long pos, java.nio.ByteBuffer src)
Write to a file channel.- Parameters:
file
- the file channelpos
- the absolute position within the filesrc
- the source buffer
-
encodeLength
public static int encodeLength(int len)
Convert the length to a length code 0..31. 31 means more than 1 MB.- Parameters:
len
- the length- Returns:
- the length code
-
getPageChunkId
public static int getPageChunkId(long pos)
Get the chunk id from the position.- Parameters:
pos
- the position- Returns:
- the chunk id
-
getPageMapId
public static int getPageMapId(long tocElement)
Get the map id from the chunk's table of content element.- Parameters:
tocElement
- packed table of content element- Returns:
- the map id
-
getPageMaxLength
public static int getPageMaxLength(long pos)
Get the maximum length for the given page position.- Parameters:
pos
- the position- Returns:
- the maximum length
-
decodePageLength
public static int decodePageLength(int code)
Get the maximum length for the given code. For the code 31, PAGE_LARGE is returned.- Parameters:
code
- encoded page length- Returns:
- the maximum length
-
getPageOffset
public static int getPageOffset(long tocElement)
Get the offset from the position.- Parameters:
tocElement
- packed table of content element- Returns:
- the offset
-
getPageType
public static int getPageType(long pos)
Get the page type from the position.- Parameters:
pos
- the position- Returns:
- the page type (PAGE_TYPE_NODE or PAGE_TYPE_LEAF)
-
isLeafPosition
public static boolean isLeafPosition(long pos)
Determines whether specified file position corresponds to a leaf page- Parameters:
pos
- the position- Returns:
- true if it is a leaf, false otherwise
-
isPageSaved
public static boolean isPageSaved(long pos)
Find out if page was saved.- Parameters:
pos
- the position- Returns:
- true if page has been saved
-
isPageRemoved
static boolean isPageRemoved(long pos)
Find out if page was removed.- Parameters:
pos
- the position- Returns:
- true if page has been removed (no longer accessible from the current root of the tree)
-
getPagePos
public static long getPagePos(int chunkId, int offset, int length, int type)
Get the position of this page. The following information is encoded in the position: the chunk id, the page sequential number, the maximum length, and the type (node or leaf).- Parameters:
chunkId
- the chunk idoffset
- the offsetlength
- the lengthtype
- the page type (1 for node, 0 for leaf)- Returns:
- the position
-
getPagePos
public static long getPagePos(int chunkId, long tocElement)
Convert tocElement into pagePos by replacing mapId with chunkId.- Parameters:
chunkId
- the chunk idtocElement
- the element- Returns:
- the page position
-
getTocElement
public static long getTocElement(int mapId, int offset, int length, int type)
Create table of content element. The following information is encoded in it: the map id, the page offset, the maximum length, and the type (node or leaf).- Parameters:
mapId
- the chunk idoffset
- the offsetlength
- the lengthtype
- the page type (1 for node, 0 for leaf)- Returns:
- the position
-
getCheckValue
public static short getCheckValue(int x)
Calculate a check value for the given integer. A check value is mean to verify the data is consistent with a high probability, but not meant to protect against media failure or deliberate changes.- Parameters:
x
- the value- Returns:
- the check value
-
appendMap
public static java.lang.StringBuilder appendMap(java.lang.StringBuilder buff, java.util.HashMap<java.lang.String,?> map)
Append a map to the string builder, sorted by key.- Parameters:
buff
- the target buffermap
- the map- Returns:
- the string builder
-
appendMapKey
private static java.lang.StringBuilder appendMapKey(java.lang.StringBuilder buff, java.lang.String key)
-
appendMap
public static void appendMap(java.lang.StringBuilder buff, java.lang.String key, java.lang.String value)
Append a key-value pair to the string builder. Keys may not contain a colon. Values that contain a comma or a double quote are enclosed in double quotes, with special characters escaped using a backslash.- Parameters:
buff
- the target bufferkey
- the keyvalue
- the value
-
appendMap
public static void appendMap(java.lang.StringBuilder buff, java.lang.String key, long value)
Append a key-value pair to the string builder. Keys may not contain a colon.- Parameters:
buff
- the target bufferkey
- the keyvalue
- the value
-
appendMap
public static void appendMap(java.lang.StringBuilder buff, java.lang.String key, int value)
Append a key-value pair to the string builder. Keys may not contain a colon.- Parameters:
buff
- the target bufferkey
- the keyvalue
- the value
-
parseMapValue
private static int parseMapValue(java.lang.StringBuilder buff, java.lang.String s, int i, int size)
- Parameters:
buff
- output buffer, should be emptys
- parsed stringi
- offset to parse fromsize
- stop offset (exclusive)- Returns:
- new offset
-
parseMap
public static java.util.HashMap<java.lang.String,java.lang.String> parseMap(java.lang.String s)
Parse a key-value pair list.- Parameters:
s
- the list- Returns:
- the map
- Throws:
MVStoreException
- if parsing failed
-
parseChecksummedMap
static java.util.HashMap<java.lang.String,java.lang.String> parseChecksummedMap(byte[] bytes)
Parse a key-value pair list and checks its checksum.- Parameters:
bytes
- encoded map- Returns:
- the map without mapping for
"fletcher"
, ornull
if checksum is wrong or parameter do not represent a properly formatted map serialization
-
getMapName
public static java.lang.String getMapName(java.lang.String s)
Parse a name from key-value pair list.- Parameters:
s
- the list- Returns:
- value of name item, or
null
- Throws:
MVStoreException
- if parsing failed
-
getFromMap
public static java.lang.String getFromMap(java.lang.String s, java.lang.String key)
Parse a specified pair from key-value pair list.- Parameters:
s
- the listkey
- the name of the key- Returns:
- value of the specified item, or
null
- Throws:
MVStoreException
- if parsing failed
-
getFletcher32
public static int getFletcher32(byte[] bytes, int offset, int length)
Calculate the Fletcher32 checksum.- Parameters:
bytes
- the bytesoffset
- initial offsetlength
- the message length (if odd, 0 is appended)- Returns:
- the checksum
-
checkArgument
public static void checkArgument(boolean test, java.lang.String message, java.lang.Object... arguments)
Throw an IllegalArgumentException if the argument is invalid.- Parameters:
test
- true if the argument is validmessage
- the messagearguments
- the arguments- Throws:
java.lang.IllegalArgumentException
- if the argument is invalid
-
newIllegalArgumentException
public static java.lang.IllegalArgumentException newIllegalArgumentException(java.lang.String message, java.lang.Object... arguments)
Create a new IllegalArgumentException.- Parameters:
message
- the messagearguments
- the arguments- Returns:
- the exception
-
newUnsupportedOperationException
public static java.lang.UnsupportedOperationException newUnsupportedOperationException(java.lang.String message)
Create a new UnsupportedOperationException.- Parameters:
message
- the message- Returns:
- the exception
-
newMVStoreException
public static MVStoreException newMVStoreException(int errorCode, java.lang.String message, java.lang.Object... arguments)
Create a new MVStoreException.- Parameters:
errorCode
- the error codemessage
- the messagearguments
- the arguments- Returns:
- the exception
-
initCause
private static <T extends java.lang.Exception> T initCause(T e, java.lang.Object... arguments)
-
formatMessage
public static java.lang.String formatMessage(int errorCode, java.lang.String message, java.lang.Object... arguments)
Format an error message.- Parameters:
errorCode
- the error codemessage
- the messagearguments
- the arguments- Returns:
- the formatted message
-
readHexLong
public static long readHexLong(java.util.Map<java.lang.String,?> map, java.lang.String key, long defaultValue)
Read a hex long value from a map.- Parameters:
map
- the mapkey
- the keydefaultValue
- if the value is null- Returns:
- the parsed value
- Throws:
MVStoreException
- if parsing fails
-
parseHexLong
public static long parseHexLong(java.lang.String x)
Parse an unsigned, hex long.- Parameters:
x
- the string- Returns:
- the parsed value
- Throws:
MVStoreException
- if parsing fails
-
parseHexInt
public static int parseHexInt(java.lang.String x)
Parse an unsigned, hex long.- Parameters:
x
- the string- Returns:
- the parsed value
- Throws:
MVStoreException
- if parsing fails
-
readHexInt
static int readHexInt(java.util.Map<java.lang.String,?> map, java.lang.String key, int defaultValue)
Read a hex int value from a map.- Parameters:
map
- the mapkey
- the keydefaultValue
- if the value is null- Returns:
- the parsed value
- Throws:
MVStoreException
- if parsing fails
-
parseHexBytes
static byte[] parseHexBytes(java.util.Map<java.lang.String,?> map, java.lang.String key)
Parse the hex-encoded bytes of an entry in the map.- Parameters:
map
- the mapkey
- the key- Returns:
- the byte array, or null if not in the map
-
getConfigParam
static int getConfigParam(java.util.Map<java.lang.String,?> config, java.lang.String key, int defaultValue)
Get the configuration parameter value, or default.- Parameters:
config
- the configurationkey
- the keydefaultValue
- the default- Returns:
- the configured value or default
-
convertToIOException
public static java.io.IOException convertToIOException(java.lang.Throwable e)
Convert an exception to an IO exception.- Parameters:
e
- the root cause- Returns:
- the IO exception
-
-