new DataType()
A data type is specified for a particular value type. It provides methods to convert values to and from binary. Diffusion provides several diffusion.datatypes.DataType implementations.
A data type can optionally support incremental changes to values, represented by one or more types of delta. A delta is the difference between two values. For large or composite values that change in small steps, it is more efficient to transmit an initial value followed by a delta for each change than to transmit a complete value for each change. The data type provides an implementation of diffusion.datatypes.DeltaType for each type of delta it supports via diffusion.datatypes.DataType#deltaType.
- Since:
-
- 5.7
Methods
-
canReadAs(valueType)
-
Test whether this data type is compatible with
valueType
. Compatibility with avalueType
means than any valid binary representation of avalue
can be read as an instance ofvalueType
.Every data type should be compatible with the following:
Value Type
– the class corresponding to the data type's value type.
For a data type with a value type of
X
,readAs(X, buffer)
is equivalent toreadValue(buffer)
.Parameters:
Name Type Description valueType
function the type to check
- Since:
-
- 6.0
Returns:
true
if a binary representation created by this data type can read as an instance ofvalueType
- Type
- Boolean
-
deltaType( [name] [, delta])
-
Obtain a diffusion.datatypes.DeltaType by name or delta type.
Parameters:
Name Type Argument Description name
String <optional>
The name, as returned by diffusion.datatypes.DeltaType#name
delta
Object <optional>
The delta, from which a type-appropriate delta support will be derived
Returns:
the delta support
Examples
// Get by name var deltas = datatype.deltaType("binary");
// Get by type var deltas = datatype.deltaType(delta);
-
name()
-
The external type identifier.
Returns:
The name of this datatype.
- Type
- String
-
readAs(valueType, buffer [, offset] [, length])
-
Create a value of a compatible class from binary.
Parameters:
Name Type Argument Default Description valueType
function the type of the result
buffer
Buffer the binary data
offset
Number <optional>
0 the offset to read data from the buffer
length
Number <optional>
buffer.length the length of data to read from the buffer
- Since:
-
- 6.0
Throws:
Error if
valueType
is incompatible with this data type, orbuffer
does not represent a valid value.Returns:
the value in the form of the specified type
- Type
- Object
-
readValue(input [, offset] [, length])
-
Parse a value from binary.
Parameters:
Name Type Argument Description input
Buffer The binary data
offset
Number <optional>
The offset to start reading from the provided buffer
length
Number <optional>
The length of the data to read
Throws:
Error if the data is invalid for this type
Returns:
An instance of this data type value
- Type
- Object
-
writeValue(value)
-
Serialise a value to binary
Parameters:
Name Type Description value
Object The value to serialise
Throws:
Error if the value can not be serialised
Returns:
The serialised value as a buffer
- Type
- Buffer