Value converters - SolalPirelli/ThriftSharp GitHub Wiki
Thrift doesn't have many primitive types, which means some types of data have to be transmitted in less-than-ideal ways. However, it doesn't have to stay that way after transmission.
Enter value converters. They allow you to implement a converter from a Thrift type to another type.
These converters can be applied to struct fields, method return types, method parameters and method exceptions using the Converter
named parameter like so:
// inside a class
[ThriftField( 1, true, "date", Converter = typeof( ThriftUnixDateConverter )]
public DateTime Date { get; set; }
Converter name | From type | To type | Description |
---|---|---|---|
ThriftUnixDateConverter | i32 | DateTime |
32-bit Unix timestamp |
ThriftUnixDate64Converter | i64 | DateTime |
64-bit Unix timestamp |
ThriftJavaDateConverter | i64 | DateTime |
64-bit Java timestamp |
ThriftUnixDateOffsetConverter | i32 | DateTimeOffset |
32-bit Unix timestamp |
ThriftUnixLongDateOffsetConverter | i64 | DateTimeOffset |
64-bit Unix timestamp |
ThriftJavaDateOffsetConverter | i64 | DateTimeOffset |
64-bit Java timestamp |
N.B.: An Unix timestamp is the number of seconds from 01.01.1970 00:00:00 UTC
. A Java timestamp is the same with milliseconds.
Implement the IThriftValueConverter<TFrom, TTo>
interface.
It contains two methods: TTo Convert( TFrom value )
and TFrom ConvertBack( TTo value )
.