.Net 3.5 Extensions

 

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();