Table of contents
To assist programming with with Turbo Exchanges message classes, the DLL has a number of class extensions. The examples here use the RecoveryJob message class, and a MessageWrapper class.
Add the following Using directive to your class, to make them available:
using turboExchange;
.SerializeToProtoBytes()
Serialize the message class into a Protocol Buffer byte[] array
wrap._payload = recoveryJob.SerializeToProtoBytes();
.DeserializeProtoBytes()
Deserialize Protocol Buffer byte[] array into a message class
var recoveryJob = wrap._payload.DeserializeProtoBytes<turboExchange.Messages.turboMessage.RecoveryJob>();
.GetProtoClassType()
Gets the clsss Type of a _messageType
Type ProtoClass = _messageType.GetProtoClassType
.GetProtoMessageType()
Gets the _messageType of a Protobuffer Message class.
var recoveryJob = new turboExchange.Messages.turboMessage.RecoveryJob(); wrap._messageType = recoveryJob.GetProtoMessageType();
.ToProtoDateTime()
Converts a DateTime to a long. (seconds since year 2000)
recoveryJob._etaTime = DateTime.Now().ToProtoDateTime();
.ToDateTime()
Converts long to DateTime (seconds since year 2000)
DateTime eta = recoveryJob._etaTime.ToDateTime();
.ProtoClone()
Clone a message class, into another instance.
var recoveryJobClone = recoveryJob.ProtoClone();
.ProtoCloneSanitize()
Clone MessageWrapper class, and remove message routing options (sourceID,DestID,Receipt,RPC)
var wrapClone = wrap.ProtoCloneSanitize();
