Skip to content

Instantly share code, notes, and snippets.

@utaal
Created December 10, 2014 17:14
Show Gist options
  • Select an option

  • Save utaal/3de8ccb84ba215a76759 to your computer and use it in GitHub Desktop.

Select an option

Save utaal/3de8ccb84ba215a76759 to your computer and use it in GitHub Desktop.
Naiad serialization
// ------------------------------------------------------------------------------
// <autogenerated>
// This code was generated by a tool.
// Mono Runtime Version: 4.0.30319.17020
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </autogenerated>
// ------------------------------------------------------------------------------
namespace Microsoft.Research.Naiad.Serialization.AutoGenerated {
public class RenamedStruct : Microsoft.Research.Naiad.Serialization.NaiadSerialization<DCModel.RenamedStruct> {
public bool Serialize(ref Microsoft.Research.Naiad.Serialization.SubArray<byte> destination, DCModel.RenamedStruct value) {
int bytesRemaining = destination.Array.Length - destination.Count;
if ((bytesRemaining <= 0)) {
return false;
}
unsafe { fixed (byte* destinationPtr = &destination.Array[destination.Count]) {
System.Byte* currentPosition = destinationPtr;
if ((value.field14 == null)) {
if ((bytesRemaining < 4)) {
return false;
}
*(System.Int32*)currentPosition = -1;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
} else {
if ((bytesRemaining < (sizeof(int) + (value.field14.Length * sizeof(char))))) {
return false;
}
*(System.Int32*)currentPosition = value.field14.Length;
currentPosition = (currentPosition + sizeof(System.Int32));
for (int __iteration_0 = 0; (__iteration_0 < value.field14.Length); __iteration_0 = (__iteration_0 + 1)) {
*(((char*)currentPosition) + __iteration_0) = value.field14[__iteration_0];
}
currentPosition = (currentPosition + (value.field14.Length * sizeof(char)));
bytesRemaining = (bytesRemaining - (sizeof(int) + (value.field14.Length * sizeof(char))));
}
if ((bytesRemaining < 4)) {
return false;
}
*(System.Int32*)currentPosition = value.field7;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((value.field4 == null)) {
if ((bytesRemaining < 4)) {
return false;
}
*(System.Int32*)currentPosition = -1;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
} else {
if ((bytesRemaining < (sizeof(int) + (value.field4.Length * sizeof(char))))) {
return false;
}
*(System.Int32*)currentPosition = value.field4.Length;
currentPosition = (currentPosition + sizeof(System.Int32));
for (int __iteration_1 = 0; (__iteration_1 < value.field4.Length); __iteration_1 = (__iteration_1 + 1)) {
*(((char*)currentPosition) + __iteration_1) = value.field4[__iteration_1];
}
currentPosition = (currentPosition + (value.field4.Length * sizeof(char)));
bytesRemaining = (bytesRemaining - (sizeof(int) + (value.field4.Length * sizeof(char))));
}
if ((bytesRemaining < 4)) {
return false;
}
*(System.Int32*)currentPosition = value.field8;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((bytesRemaining < 4)) {
return false;
}
*(System.Int32*)currentPosition = value.field9;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((value.field15 == null)) {
if ((bytesRemaining < 4)) {
return false;
}
*(System.Int32*)currentPosition = -1;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
} else {
if ((bytesRemaining < (sizeof(int) + (value.field15.Length * sizeof(char))))) {
return false;
}
*(System.Int32*)currentPosition = value.field15.Length;
currentPosition = (currentPosition + sizeof(System.Int32));
for (int __iteration_2 = 0; (__iteration_2 < value.field15.Length); __iteration_2 = (__iteration_2 + 1)) {
*(((char*)currentPosition) + __iteration_2) = value.field15[__iteration_2];
}
currentPosition = (currentPosition + (value.field15.Length * sizeof(char)));
bytesRemaining = (bytesRemaining - (sizeof(int) + (value.field15.Length * sizeof(char))));
}
if ((bytesRemaining < 4)) {
return false;
}
*(System.Int32*)currentPosition = value.field10;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((bytesRemaining < 4)) {
return false;
}
*(System.Int32*)currentPosition = value.field17;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((value.field5 == null)) {
if ((bytesRemaining < 4)) {
return false;
}
*(System.Int32*)currentPosition = -1;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
} else {
if ((bytesRemaining < (sizeof(int) + (value.field5.Length * sizeof(char))))) {
return false;
}
*(System.Int32*)currentPosition = value.field5.Length;
currentPosition = (currentPosition + sizeof(System.Int32));
for (int __iteration_3 = 0; (__iteration_3 < value.field5.Length); __iteration_3 = (__iteration_3 + 1)) {
*(((char*)currentPosition) + __iteration_3) = value.field5[__iteration_3];
}
currentPosition = (currentPosition + (value.field5.Length * sizeof(char)));
bytesRemaining = (bytesRemaining - (sizeof(int) + (value.field5.Length * sizeof(char))));
}
if ((bytesRemaining < 4)) {
return false;
}
*(System.Int32*)currentPosition = value.field6;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((value.field3 == null)) {
if ((bytesRemaining < 4)) {
return false;
}
*(System.Int32*)currentPosition = -1;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
} else {
if ((bytesRemaining < (sizeof(int) + (value.field3.Length * sizeof(char))))) {
return false;
}
*(System.Int32*)currentPosition = value.field3.Length;
currentPosition = (currentPosition + sizeof(System.Int32));
for (int __iteration_4 = 0; (__iteration_4 < value.field3.Length); __iteration_4 = (__iteration_4 + 1)) {
*(((char*)currentPosition) + __iteration_4) = value.field3[__iteration_4];
}
currentPosition = (currentPosition + (value.field3.Length * sizeof(char)));
bytesRemaining = (bytesRemaining - (sizeof(int) + (value.field3.Length * sizeof(char))));
}
if ((value.field11 == null)) {
if ((bytesRemaining < 4)) {
return false;
}
*(System.Int32*)currentPosition = -1;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
} else {
if ((bytesRemaining < (sizeof(int) + (value.field11.Length * sizeof(char))))) {
return false;
}
*(System.Int32*)currentPosition = value.field11.Length;
currentPosition = (currentPosition + sizeof(System.Int32));
for (int __iteration_5 = 0; (__iteration_5 < value.field11.Length); __iteration_5 = (__iteration_5 + 1)) {
*(((char*)currentPosition) + __iteration_5) = value.field11[__iteration_5];
}
currentPosition = (currentPosition + (value.field11.Length * sizeof(char)));
bytesRemaining = (bytesRemaining - (sizeof(int) + (value.field11.Length * sizeof(char))));
}
if ((value.field12 == null)) {
if ((bytesRemaining < 4)) {
return false;
}
*(System.Int32*)currentPosition = -1;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
} else {
if ((bytesRemaining < (sizeof(int) + (value.field12.Length * sizeof(char))))) {
return false;
}
*(System.Int32*)currentPosition = value.field12.Length;
currentPosition = (currentPosition + sizeof(System.Int32));
for (int __iteration_6 = 0; (__iteration_6 < value.field12.Length); __iteration_6 = (__iteration_6 + 1)) {
*(((char*)currentPosition) + __iteration_6) = value.field12[__iteration_6];
}
currentPosition = (currentPosition + (value.field12.Length * sizeof(char)));
bytesRemaining = (bytesRemaining - (sizeof(int) + (value.field12.Length * sizeof(char))));
}
if ((value.field13 == null)) {
if ((bytesRemaining < 4)) {
return false;
}
*(System.Int32*)currentPosition = -1;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
} else {
if ((bytesRemaining < (sizeof(int) + (value.field13.Length * sizeof(char))))) {
return false;
}
*(System.Int32*)currentPosition = value.field13.Length;
currentPosition = (currentPosition + sizeof(System.Int32));
for (int __iteration_7 = 0; (__iteration_7 < value.field13.Length); __iteration_7 = (__iteration_7 + 1)) {
*(((char*)currentPosition) + __iteration_7) = value.field13[__iteration_7];
}
currentPosition = (currentPosition + (value.field13.Length * sizeof(char)));
bytesRemaining = (bytesRemaining - (sizeof(int) + (value.field13.Length * sizeof(char))));
}
if ((value.field2 == null)) {
if ((bytesRemaining < 4)) {
return false;
}
*(System.Int32*)currentPosition = -1;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
} else {
if ((bytesRemaining < (sizeof(int) + (value.field2.Length * sizeof(char))))) {
return false;
}
*(System.Int32*)currentPosition = value.field2.Length;
currentPosition = (currentPosition + sizeof(System.Int32));
for (int __iteration_8 = 0; (__iteration_8 < value.field2.Length); __iteration_8 = (__iteration_8 + 1)) {
*(((char*)currentPosition) + __iteration_8) = value.field2[__iteration_8];
}
currentPosition = (currentPosition + (value.field2.Length * sizeof(char)));
bytesRemaining = (bytesRemaining - (sizeof(int) + (value.field2.Length * sizeof(char))));
}
if ((bytesRemaining < 8)) {
return false;
}
*(System.Int64*)currentPosition = value.field1;
currentPosition = (currentPosition + 8);
bytesRemaining = (bytesRemaining - 8);
if ((value.field16 == null)) {
if ((bytesRemaining < 4)) {
return false;
}
*(System.Int32*)currentPosition = -1;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
} else {
if ((bytesRemaining < (sizeof(int) + (value.field16.Length * sizeof(char))))) {
return false;
}
*(System.Int32*)currentPosition = value.field16.Length;
currentPosition = (currentPosition + sizeof(System.Int32));
for (int __iteration_9 = 0; (__iteration_9 < value.field16.Length); __iteration_9 = (__iteration_9 + 1)) {
*(((char*)currentPosition) + __iteration_9) = value.field16[__iteration_9];
}
currentPosition = (currentPosition + (value.field16.Length * sizeof(char)));
bytesRemaining = (bytesRemaining - (sizeof(int) + (value.field16.Length * sizeof(char))));
}
} }
destination.Count = destination.Array.Length - bytesRemaining;
return true;
}
public bool TryDeserialize(ref Microsoft.Research.Naiad.Serialization.RecvBuffer source, out DCModel.RenamedStruct value) {
int bytesRemaining = source.End - source.CurrentPos;
if ((bytesRemaining == 0)) {
value = default(DCModel.RenamedStruct);
return false;
}
unsafe { fixed (byte* sourcePtr = &source.Buffer[source.CurrentPos]) {
System.Byte* currentPosition = sourcePtr;
value = new DCModel.RenamedStruct();
int __length_10;
__length_10 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((__length_10 == -1)) {
value.field14 = null;
} else {
value.field14 = new string(((System.Char*)(currentPosition)), 0, __length_10);
currentPosition = (currentPosition + (__length_10 * sizeof(char)));
bytesRemaining = (bytesRemaining - (__length_10 * sizeof(char)));
}
value.field7 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
int __length_11;
__length_11 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((__length_11 == -1)) {
value.field4 = null;
} else {
value.field4 = new string(((System.Char*)(currentPosition)), 0, __length_11);
currentPosition = (currentPosition + (__length_11 * sizeof(char)));
bytesRemaining = (bytesRemaining - (__length_11 * sizeof(char)));
}
value.field8 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
value.field9 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
int __length_12;
__length_12 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((__length_12 == -1)) {
value.field15 = null;
} else {
value.field15 = new string(((System.Char*)(currentPosition)), 0, __length_12);
currentPosition = (currentPosition + (__length_12 * sizeof(char)));
bytesRemaining = (bytesRemaining - (__length_12 * sizeof(char)));
}
value.field10 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
value.field17 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
int __length_13;
__length_13 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((__length_13 == -1)) {
value.field5 = null;
} else {
value.field5 = new string(((System.Char*)(currentPosition)), 0, __length_13);
currentPosition = (currentPosition + (__length_13 * sizeof(char)));
bytesRemaining = (bytesRemaining - (__length_13 * sizeof(char)));
}
value.field6 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
int __length_14;
__length_14 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((__length_14 == -1)) {
value.field3 = null;
} else {
value.field3 = new string(((System.Char*)(currentPosition)), 0, __length_14);
currentPosition = (currentPosition + (__length_14 * sizeof(char)));
bytesRemaining = (bytesRemaining - (__length_14 * sizeof(char)));
}
int __length_15;
__length_15 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((__length_15 == -1)) {
value.field11 = null;
} else {
value.field11 = new string(((System.Char*)(currentPosition)), 0, __length_15);
currentPosition = (currentPosition + (__length_15 * sizeof(char)));
bytesRemaining = (bytesRemaining - (__length_15 * sizeof(char)));
}
int __length_16;
__length_16 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((__length_16 == -1)) {
value.field12 = null;
} else {
value.field12 = new string(((System.Char*)(currentPosition)), 0, __length_16);
currentPosition = (currentPosition + (__length_16 * sizeof(char)));
bytesRemaining = (bytesRemaining - (__length_16 * sizeof(char)));
}
int __length_17;
__length_17 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((__length_17 == -1)) {
value.field13 = null;
} else {
value.field13 = new string(((System.Char*)(currentPosition)), 0, __length_17);
currentPosition = (currentPosition + (__length_17 * sizeof(char)));
bytesRemaining = (bytesRemaining - (__length_17 * sizeof(char)));
}
int __length_18;
__length_18 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((__length_18 == -1)) {
value.field2 = null;
} else {
value.field2 = new string(((System.Char*)(currentPosition)), 0, __length_18);
currentPosition = (currentPosition + (__length_18 * sizeof(char)));
bytesRemaining = (bytesRemaining - (__length_18 * sizeof(char)));
}
value.field1 = *(System.Int64*)currentPosition;
currentPosition = (currentPosition + 8);
bytesRemaining = (bytesRemaining - 8);
int __length_19;
__length_19 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((__length_19 == -1)) {
value.field16 = null;
} else {
value.field16 = new string(((System.Char*)(currentPosition)), 0, __length_19);
currentPosition = (currentPosition + (__length_19 * sizeof(char)));
bytesRemaining = (bytesRemaining - (__length_19 * sizeof(char)));
}
} }
source.CurrentPos = source.End - bytesRemaining;
return true;
}
public int TrySerializeMany(ref Microsoft.Research.Naiad.Serialization.SubArray<byte> destination, System.ArraySegment<DCModel.RenamedStruct> values) {
int bytesRemaining = destination.Array.Length - destination.Count;
if ((bytesRemaining <= 0)) {
return 0;
}
int numWritten = 0;
unsafe { fixed (byte* destinationPtr = &destination.Array[destination.Count]) {
System.Byte* currentPosition = destinationPtr;
for (int i = 0
; i < values.Count; ++i, ++numWritten
) {
DCModel.RenamedStruct value = values.Array[i + values.Offset];
if ((value.field14 == null)) {
if ((bytesRemaining < 4)) {
return numWritten;
}
*(System.Int32*)currentPosition = -1;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
} else {
if ((bytesRemaining < (sizeof(int) + (value.field14.Length * sizeof(char))))) {
return numWritten;
}
*(System.Int32*)currentPosition = value.field14.Length;
currentPosition = (currentPosition + sizeof(System.Int32));
for (int __iteration_20 = 0; (__iteration_20 < value.field14.Length); __iteration_20 = (__iteration_20 + 1)) {
*(((char*)currentPosition) + __iteration_20) = value.field14[__iteration_20];
}
currentPosition = (currentPosition + (value.field14.Length * sizeof(char)));
bytesRemaining = (bytesRemaining - (sizeof(int) + (value.field14.Length * sizeof(char))));
}
if ((bytesRemaining < 4)) {
return numWritten;
}
*(System.Int32*)currentPosition = value.field7;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((value.field4 == null)) {
if ((bytesRemaining < 4)) {
return numWritten;
}
*(System.Int32*)currentPosition = -1;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
} else {
if ((bytesRemaining < (sizeof(int) + (value.field4.Length * sizeof(char))))) {
return numWritten;
}
*(System.Int32*)currentPosition = value.field4.Length;
currentPosition = (currentPosition + sizeof(System.Int32));
for (int __iteration_21 = 0; (__iteration_21 < value.field4.Length); __iteration_21 = (__iteration_21 + 1)) {
*(((char*)currentPosition) + __iteration_21) = value.field4[__iteration_21];
}
currentPosition = (currentPosition + (value.field4.Length * sizeof(char)));
bytesRemaining = (bytesRemaining - (sizeof(int) + (value.field4.Length * sizeof(char))));
}
if ((bytesRemaining < 4)) {
return numWritten;
}
*(System.Int32*)currentPosition = value.field8;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((bytesRemaining < 4)) {
return numWritten;
}
*(System.Int32*)currentPosition = value.field9;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((value.field15 == null)) {
if ((bytesRemaining < 4)) {
return numWritten;
}
*(System.Int32*)currentPosition = -1;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
} else {
if ((bytesRemaining < (sizeof(int) + (value.field15.Length * sizeof(char))))) {
return numWritten;
}
*(System.Int32*)currentPosition = value.field15.Length;
currentPosition = (currentPosition + sizeof(System.Int32));
for (int __iteration_22 = 0; (__iteration_22 < value.field15.Length); __iteration_22 = (__iteration_22 + 1)) {
*(((char*)currentPosition) + __iteration_22) = value.field15[__iteration_22];
}
currentPosition = (currentPosition + (value.field15.Length * sizeof(char)));
bytesRemaining = (bytesRemaining - (sizeof(int) + (value.field15.Length * sizeof(char))));
}
if ((bytesRemaining < 4)) {
return numWritten;
}
*(System.Int32*)currentPosition = value.field10;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((bytesRemaining < 4)) {
return numWritten;
}
*(System.Int32*)currentPosition = value.field17;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((value.field5 == null)) {
if ((bytesRemaining < 4)) {
return numWritten;
}
*(System.Int32*)currentPosition = -1;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
} else {
if ((bytesRemaining < (sizeof(int) + (value.field5.Length * sizeof(char))))) {
return numWritten;
}
*(System.Int32*)currentPosition = value.field5.Length;
currentPosition = (currentPosition + sizeof(System.Int32));
for (int __iteration_23 = 0; (__iteration_23 < value.field5.Length); __iteration_23 = (__iteration_23 + 1)) {
*(((char*)currentPosition) + __iteration_23) = value.field5[__iteration_23];
}
currentPosition = (currentPosition + (value.field5.Length * sizeof(char)));
bytesRemaining = (bytesRemaining - (sizeof(int) + (value.field5.Length * sizeof(char))));
}
if ((bytesRemaining < 4)) {
return numWritten;
}
*(System.Int32*)currentPosition = value.field6;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((value.field3 == null)) {
if ((bytesRemaining < 4)) {
return numWritten;
}
*(System.Int32*)currentPosition = -1;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
} else {
if ((bytesRemaining < (sizeof(int) + (value.field3.Length * sizeof(char))))) {
return numWritten;
}
*(System.Int32*)currentPosition = value.field3.Length;
currentPosition = (currentPosition + sizeof(System.Int32));
for (int __iteration_24 = 0; (__iteration_24 < value.field3.Length); __iteration_24 = (__iteration_24 + 1)) {
*(((char*)currentPosition) + __iteration_24) = value.field3[__iteration_24];
}
currentPosition = (currentPosition + (value.field3.Length * sizeof(char)));
bytesRemaining = (bytesRemaining - (sizeof(int) + (value.field3.Length * sizeof(char))));
}
if ((value.field11 == null)) {
if ((bytesRemaining < 4)) {
return numWritten;
}
*(System.Int32*)currentPosition = -1;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
} else {
if ((bytesRemaining < (sizeof(int) + (value.field11.Length * sizeof(char))))) {
return numWritten;
}
*(System.Int32*)currentPosition = value.field11.Length;
currentPosition = (currentPosition + sizeof(System.Int32));
for (int __iteration_25 = 0; (__iteration_25 < value.field11.Length); __iteration_25 = (__iteration_25 + 1)) {
*(((char*)currentPosition) + __iteration_25) = value.field11[__iteration_25];
}
currentPosition = (currentPosition + (value.field11.Length * sizeof(char)));
bytesRemaining = (bytesRemaining - (sizeof(int) + (value.field11.Length * sizeof(char))));
}
if ((value.field12 == null)) {
if ((bytesRemaining < 4)) {
return numWritten;
}
*(System.Int32*)currentPosition = -1;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
} else {
if ((bytesRemaining < (sizeof(int) + (value.field12.Length * sizeof(char))))) {
return numWritten;
}
*(System.Int32*)currentPosition = value.field12.Length;
currentPosition = (currentPosition + sizeof(System.Int32));
for (int __iteration_26 = 0; (__iteration_26 < value.field12.Length); __iteration_26 = (__iteration_26 + 1)) {
*(((char*)currentPosition) + __iteration_26) = value.field12[__iteration_26];
}
currentPosition = (currentPosition + (value.field12.Length * sizeof(char)));
bytesRemaining = (bytesRemaining - (sizeof(int) + (value.field12.Length * sizeof(char))));
}
if ((value.field13 == null)) {
if ((bytesRemaining < 4)) {
return numWritten;
}
*(System.Int32*)currentPosition = -1;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
} else {
if ((bytesRemaining < (sizeof(int) + (value.field13.Length * sizeof(char))))) {
return numWritten;
}
*(System.Int32*)currentPosition = value.field13.Length;
currentPosition = (currentPosition + sizeof(System.Int32));
for (int __iteration_27 = 0; (__iteration_27 < value.field13.Length); __iteration_27 = (__iteration_27 + 1)) {
*(((char*)currentPosition) + __iteration_27) = value.field13[__iteration_27];
}
currentPosition = (currentPosition + (value.field13.Length * sizeof(char)));
bytesRemaining = (bytesRemaining - (sizeof(int) + (value.field13.Length * sizeof(char))));
}
if ((value.field2 == null)) {
if ((bytesRemaining < 4)) {
return numWritten;
}
*(System.Int32*)currentPosition = -1;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
} else {
if ((bytesRemaining < (sizeof(int) + (value.field2.Length * sizeof(char))))) {
return numWritten;
}
*(System.Int32*)currentPosition = value.field2.Length;
currentPosition = (currentPosition + sizeof(System.Int32));
for (int __iteration_28 = 0; (__iteration_28 < value.field2.Length); __iteration_28 = (__iteration_28 + 1)) {
*(((char*)currentPosition) + __iteration_28) = value.field2[__iteration_28];
}
currentPosition = (currentPosition + (value.field2.Length * sizeof(char)));
bytesRemaining = (bytesRemaining - (sizeof(int) + (value.field2.Length * sizeof(char))));
}
if ((bytesRemaining < 8)) {
return numWritten;
}
*(System.Int64*)currentPosition = value.field1;
currentPosition = (currentPosition + 8);
bytesRemaining = (bytesRemaining - 8);
if ((value.field16 == null)) {
if ((bytesRemaining < 4)) {
return numWritten;
}
*(System.Int32*)currentPosition = -1;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
} else {
if ((bytesRemaining < (sizeof(int) + (value.field16.Length * sizeof(char))))) {
return numWritten;
}
*(System.Int32*)currentPosition = value.field16.Length;
currentPosition = (currentPosition + sizeof(System.Int32));
for (int __iteration_29 = 0; (__iteration_29 < value.field16.Length); __iteration_29 = (__iteration_29 + 1)) {
*(((char*)currentPosition) + __iteration_29) = value.field16[__iteration_29];
}
currentPosition = (currentPosition + (value.field16.Length * sizeof(char)));
bytesRemaining = (bytesRemaining - (sizeof(int) + (value.field16.Length * sizeof(char))));
}
destination.Count = destination.Array.Length - bytesRemaining;
}
} }
return numWritten;
}
public int TryDeserializeMany(ref Microsoft.Research.Naiad.Serialization.RecvBuffer source, System.ArraySegment<DCModel.RenamedStruct> target) {
int bytesRemaining = source.End - source.CurrentPos;
if ((bytesRemaining == 0)) {
return 0;
}
unsafe { fixed (byte* sourcePtr = &source.Buffer[source.CurrentPos]) {
System.Byte* currentPosition = sourcePtr;
source.CurrentPos = source.End - bytesRemaining;
for (int i = 0
; i < target.Count; ++i
) {
if ((bytesRemaining == 0)) {
source.CurrentPos = source.End;
return i;
}
target.Array[i + target.Offset] = new DCModel.RenamedStruct();
int __length_30;
__length_30 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((__length_30 == -1)) {
target.Array[i + target.Offset].field14 = null;
} else {
target.Array[i + target.Offset].field14 = new string(((System.Char*)(currentPosition)), 0, __length_30);
currentPosition = (currentPosition + (__length_30 * sizeof(char)));
bytesRemaining = (bytesRemaining - (__length_30 * sizeof(char)));
}
target.Array[i + target.Offset].field7 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
int __length_31;
__length_31 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((__length_31 == -1)) {
target.Array[i + target.Offset].field4 = null;
} else {
target.Array[i + target.Offset].field4 = new string(((System.Char*)(currentPosition)), 0, __length_31);
currentPosition = (currentPosition + (__length_31 * sizeof(char)));
bytesRemaining = (bytesRemaining - (__length_31 * sizeof(char)));
}
target.Array[i + target.Offset].field8 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
target.Array[i + target.Offset].field9 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
int __length_32;
__length_32 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((__length_32 == -1)) {
target.Array[i + target.Offset].field15 = null;
} else {
target.Array[i + target.Offset].field15 = new string(((System.Char*)(currentPosition)), 0, __length_32);
currentPosition = (currentPosition + (__length_32 * sizeof(char)));
bytesRemaining = (bytesRemaining - (__length_32 * sizeof(char)));
}
target.Array[i + target.Offset].field10 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
target.Array[i + target.Offset].field17 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
int __length_33;
__length_33 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((__length_33 == -1)) {
target.Array[i + target.Offset].field5 = null;
} else {
target.Array[i + target.Offset].field5 = new string(((System.Char*)(currentPosition)), 0, __length_33);
currentPosition = (currentPosition + (__length_33 * sizeof(char)));
bytesRemaining = (bytesRemaining - (__length_33 * sizeof(char)));
}
target.Array[i + target.Offset].field6 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
int __length_34;
__length_34 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((__length_34 == -1)) {
target.Array[i + target.Offset].field3 = null;
} else {
target.Array[i + target.Offset].field3 = new string(((System.Char*)(currentPosition)), 0, __length_34);
currentPosition = (currentPosition + (__length_34 * sizeof(char)));
bytesRemaining = (bytesRemaining - (__length_34 * sizeof(char)));
}
int __length_35;
__length_35 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((__length_35 == -1)) {
target.Array[i + target.Offset].field11 = null;
} else {
target.Array[i + target.Offset].field11 = new string(((System.Char*)(currentPosition)), 0, __length_35);
currentPosition = (currentPosition + (__length_35 * sizeof(char)));
bytesRemaining = (bytesRemaining - (__length_35 * sizeof(char)));
}
int __length_36;
__length_36 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((__length_36 == -1)) {
target.Array[i + target.Offset].field12 = null;
} else {
target.Array[i + target.Offset].field12 = new string(((System.Char*)(currentPosition)), 0, __length_36);
currentPosition = (currentPosition + (__length_36 * sizeof(char)));
bytesRemaining = (bytesRemaining - (__length_36 * sizeof(char)));
}
int __length_37;
__length_37 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((__length_37 == -1)) {
target.Array[i + target.Offset].field13 = null;
} else {
target.Array[i + target.Offset].field13 = new string(((System.Char*)(currentPosition)), 0, __length_37);
currentPosition = (currentPosition + (__length_37 * sizeof(char)));
bytesRemaining = (bytesRemaining - (__length_37 * sizeof(char)));
}
int __length_38;
__length_38 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((__length_38 == -1)) {
target.Array[i + target.Offset].field2 = null;
} else {
target.Array[i + target.Offset].field2 = new string(((System.Char*)(currentPosition)), 0, __length_38);
currentPosition = (currentPosition + (__length_38 * sizeof(char)));
bytesRemaining = (bytesRemaining - (__length_38 * sizeof(char)));
}
target.Array[i + target.Offset].field1 = *(System.Int64*)currentPosition;
currentPosition = (currentPosition + 8);
bytesRemaining = (bytesRemaining - 8);
int __length_39;
__length_39 = *(System.Int32*)currentPosition;
currentPosition = (currentPosition + 4);
bytesRemaining = (bytesRemaining - 4);
if ((__length_39 == -1)) {
target.Array[i + target.Offset].field16 = null;
} else {
target.Array[i + target.Offset].field16 = new string(((System.Char*)(currentPosition)), 0, __length_39);
currentPosition = (currentPosition + (__length_39 * sizeof(char)));
bytesRemaining = (bytesRemaining - (__length_39 * sizeof(char)));
}
}
} }
source.CurrentPos = source.End - bytesRemaining;
return target.Count;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Research.Naiad;
namespace DCModel
{
public struct RenamedStruct : IEquatable<RenamedStruct>
{
public long field1;
public string field2;
public string field3;
public string field4;
public string field5;
public int field6;
public int field7;
public int field8;
public int field9;
public int field10;
// Payload
public string field11;
public string field12;
public string field13;
public string field14;
public string field15;
public string field16;
// Filled by SessionBuilder
public int field17;
public override int GetHashCode()
{
int r = 191;
r = 31 * r + (int)(field1 ^ (field1 >> 32));
r = 31 * r + field7;
r = 31 * r + field8;
r = 31 * r + field9;
r = 31 * r + field10;
r = 31 * r + field6;
r = 31 * r + field14.GetHashCode();
r = 31 * r + field4.GetHashCode();
r = 31 * r + field15.GetHashCode();
r = 31 * r + field5.GetHashCode();
r = 31 * r + field3.GetHashCode();
r = 31 * r + field11.GetHashCode();
r = 31 * r + field12.GetHashCode();
r = 31 * r + field13.GetHashCode();
r = 31 * r + field2.GetHashCode();
r = 31 * r + field16.GetHashCode();
return r;
}
public bool Equals(RenamedStruct that)
{
return this.field1 == that.field1 &&
this.field2 == that.field2 &&
this.field3 == that.field3 &&
this.field4 == that.field4 &&
this.field5 == that.field5 &&
this.field6 == that.field6 &&
this.field7 == that.field7 &&
this.field8 == that.field8 &&
this.field9 == that.field9 &&
this.field10 == that.field10 &&
this.field11 == that.field11 &&
this.field12 == that.field12 &&
this.field13 == that.field13 &&
this.field14 == that.field14 &&
this.field15 == that.field15 &&
this.field16 == that.field16;
}
public RenamedStruct(
long field1,
string field2,
string field3,
string field4,
string field5,
int field6,
int field7,
int field8,
int field9,
int field10,
string field11,
string field12,
string field13,
string field14,
string field15,
string field16) {
this.field1 = field1;
this.field2 = field2;
this.field3 = field3;
this.field4 = field4;
this.field5 = field5;
this.field6 = field6;
this.field7 = field7;
this.field8 = field8;
this.field9 = field9;
this.field10 = field10;
this.field11 = field11;
this.field12 = field12;
this.field13 = field13;
this.field14 = field14;
this.field15 = field15;
this.field16 = field16;
this.field17 = -1;
}
// TODO: decide what to do with null field15/field16
public static RenamedStruct[] createAndSetNull(string csvLine) {
RenamedStruct[] entries = RenamedStruct.create (csvLine);
for(int i = 0; i < entries.Length; i++) {
var entry = entries [i];
if (entry.field15 == null)
entry.field15 = "null";
if (entry.field16 == null)
entry.field16 = "1";
}
return entries;
}
public static RenamedStruct[] create(string csvLine) {
string[] values = csvLine.Split(',');
int i = 0;
long field1 = Convert.ToInt64(values[i++]);
string field2 = values[i++];
string field3 = values[i++];
int type = Convert.ToInt32(values[i++]);
string field4 = values[i++];
string field5 = values[i++];
// 0 = SENT; 2 = RECV; 4 = QUERY; 5 = REPLY
// isSession: query || reply
if (type == 0 || type == 2) {
int field7 = Convert.ToInt32(values[i++]);
int field8 = Convert.ToInt32(values[i++]);
int field9 = Convert.ToInt32(values[i++]);
int field10 = Convert.ToInt32(values[i++]);
string field11 = "";
string field12 = "";
string field13 = "";
string field14 = "";
string field15 = "";
string field16 = "";
if (i < values.Length) {
field11 = values[i++];
field12 = values[i++];
field13 = values[i++];
field14 = values[i++];
field15 = values[i++];
field16 = values[i++];
}
return new RenamedStruct[1]{ new RenamedStruct(field1, field2, field3, field4, field5, type, field7, field8, field9,
field10, field11, field12, field13, field14, field15, field16)};
}
return new RenamedStruct[0] {};
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment