Diffusion .NET API  5.9.24
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Properties Events Pages
PushTechnology.ClientInterface.Data.IDataType Interface Reference

Represents a data type that is specified for a particular value type. It provides methods to convert values to and from binary. Diffusion provides several IDataTypes implementations. More...

Inheritance diagram for PushTechnology.ClientInterface.Data.IDataType:
PushTechnology.ClientInterface.Data.IDataType< TValue > PushTechnology.ClientInterface.Data.Binary.IBinaryDataType PushTechnology.ClientInterface.Data.JSON.IJSONDataType

Public Member Functions

void WriteValue (object value, Stream outputStream)
 Serializes a value to binary. More...
 
object ReadValue (byte[] input, int offset, int length)
 Parses a value from a binary data segment. More...
 
object ReadValue (byte[] input)
 Parses a value from a binary. More...
 
object ReadValue (IBytes bytes)
 Parses a value from binary. More...
 
void Validate (object value)
 Checks whether a value is valid. More...
 
IDeltaType DeltaType (string typeName)
 Returns a IDeltaType by name. More...
 
IDeltaType DeltaType (Type valueDeltaType)
 Returns a IDeltaType by type. More...
 

Properties

string TypeName [get]
 Returns the external type identifier. More...
 

Detailed Description

Represents a data type that is specified for a particular value type. It provides methods to convert values to and from binary. Diffusion provides several IDataTypes implementations.

Value types should provide a string representation and define reasonable equality.

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 IDeltaType for each type of delta it supports via DeltaType(string) and DeltaType(Type).



Since 5.8

Member Function Documentation

IDeltaType PushTechnology.ClientInterface.Data.IDataType.DeltaType ( string  typeName)

Returns a IDeltaType by name.

Parameters
typeNameThe delta type name as returned by IDeltaType.Name.
Returns
The delta type.
Exceptions
ArgumentExceptionThis data type does not provide a IDeltaType with the given name.
IDeltaType PushTechnology.ClientInterface.Data.IDataType.DeltaType ( Type  valueDeltaType)

Returns a IDeltaType by type.

Parameters
valueDeltaTypeThe delta value type.
Returns
The delta type.
Exceptions
ArgumentExceptionThis data type does not provide a IDeltaType for the given type or it provides more than one IDeltaType but none is preferred.
object PushTechnology.ClientInterface.Data.IDataType.ReadValue ( byte[]  input,
int  offset,
int  length 
)

Parses a value from a binary data segment.

Parameters
inputThe binary data. The implementation may re-use the array to avoid copying. The caller must ensure the array is not modified.
offsetThe starting index of the data segment.
lengthThe length of the data segment.
Returns
The value object.

Implemented in PushTechnology.ClientInterface.Data.IDataType< TValue >.

object PushTechnology.ClientInterface.Data.IDataType.ReadValue ( byte[]  input)

Parses a value from a binary.

This is equivalent to ReadValue(input,0,input.Length).

Parameters
inputThe binary data. The implementation may re-use the array to avoid copying. The caller must ensure the array is not modified.
Returns
The value object.

Implemented in PushTechnology.ClientInterface.Data.IDataType< TValue >.

object PushTechnology.ClientInterface.Data.IDataType.ReadValue ( IBytes  bytes)

Parses a value from binary.

This is equivalent to ReadValue(bytes.ToByteArray()).

Parameters
bytesThe binary data.
Returns
The value object.

Implemented in PushTechnology.ClientInterface.Data.IDataType< TValue >.

void PushTechnology.ClientInterface.Data.IDataType.Validate ( object  value)

Checks whether a value is valid.

A DataType implementation is not required to check the binary data supplied to ReadValue(byte[],int,int). This method can be used the check the value at a later time.

Parameters
valueThe value object to check for validity.
Exceptions
InvalidDataExceptionThe given value is invalid.
void PushTechnology.ClientInterface.Data.IDataType.WriteValue ( object  value,
Stream  outputStream 
)

Serializes a value to binary.

Parameters
valueThe value object.
outputStreamThe output stream.

Property Documentation

string PushTechnology.ClientInterface.Data.IDataType.TypeName
get

Returns the external type identifier.


The documentation for this interface was generated from the following file: