#\r
def PackGuid(GuidStructureValue):\r
GuidString = GuidStructureStringToGuidString(GuidStructureValue)\r
- Guid = GuidString.split('-')\r
- Buffer = pack('=LHHBBBBBBBB', \r
- int(Guid[0], 16), \r
- int(Guid[1], 16), \r
- int(Guid[2], 16), \r
- int(Guid[3][-4:-2], 16), \r
- int(Guid[3][-2:], 16),\r
- int(Guid[4][-12:-10], 16),\r
- int(Guid[4][-10:-8], 16),\r
- int(Guid[4][-8:-6], 16),\r
- int(Guid[4][-6:-4], 16),\r
- int(Guid[4][-4:-2], 16),\r
- int(Guid[4][-2:], 16)\r
- )\r
- return Buffer\r
-\r
- if self.ItemSize == 8:\r
- PackStr = "=Q"\r
- elif self.ItemSize == 4:\r
- PackStr = "=L"\r
- elif self.ItemSize == 2:\r
- PackStr = "=H"\r
- elif self.ItemSize == 1:\r
- PackStr = "=B"\r
- elif self.ItemSize == 0:\r
- PackStr = "=B"\r
- elif self.ItemSize == 16:\r
- # pack Guid\r
- PackStr = ''\r
- else:\r
- # should not reach here\r
- assert(False)\r
+ return PackGUID(GuidString.split('-'))\r
+\r
+ PackStr = PACK_CODE_BY_SIZE[self.ItemSize]\r
\r
Buffer = ''\r
for Datas in self.RawDataList:\r
return self.ListSize\r
\r
def PackData(self):\r
- if self.ItemSize == 8:\r
- PackStr = "=Q"\r
- elif self.ItemSize == 4:\r
- PackStr = "=L"\r
- elif self.ItemSize == 2:\r
- PackStr = "=H"\r
- elif self.ItemSize == 1:\r
- PackStr = "=B"\r
- elif self.ItemSize == 0:\r
- PackStr = "=B"\r
- else:\r
- assert(False)\r
+ PackStr = PACK_CODE_BY_SIZE[self.ItemSize]\r
\r
Buffer = ''\r
for DataList in self.RawDataList:\r
# Construct the database buffer\r
Guid = "{0x3c7d193c, 0x682c, 0x4c14, 0xa6, 0x8f, 0x55, 0x2d, 0xea, 0x4f, 0x43, 0x7e}"\r
Guid = StringArrayToList(Guid)\r
- Buffer = pack('=LHHBBBBBBBB', \r
- Guid[0], \r
- Guid[1], \r
- Guid[2], \r
- Guid[3], \r
- Guid[4], \r
- Guid[5],\r
- Guid[6],\r
- Guid[7],\r
- Guid[8],\r
- Guid[9],\r
- Guid[10],\r
- )\r
+ Buffer = PackByteFormatGUID(Guid)\r
\r
b = pack("=L", DATABASE_VERSION)\r
Buffer += b\r