Exemplo n.º 1
0
static void Test(uint32 dataFlags)
{
   ByteBuffer b;
   b.SetDataFlags(dataFlags);
   printf("Test dataFlags=" XINT32_FORMAT_SPEC" ----- sizeof(ByteBuffer)=%i, endian-swap is %s\n", dataFlags, (int) sizeof(b), b.IsEndianSwapEnabled()?"Enabled":"Disabled");
   {
      b.AppendInt8(0x01);
      b.AppendInt16(0x0405);
      b.AppendInt32(0x0708090a);
      b.AppendInt64(0x1122334455667788LL);
      b.AppendFloat(3.14159f);
      b.AppendDouble(6.28);
      b.AppendString("Howdy");
      b.AppendString("Pardner");
      b.AppendPoint(Point(-1.1f, -2.2f));
      b.AppendRect(Rect(10.1f, 20.2f, 30.3f, 40.4f));
      b.AppendString("----");
      const int8  i8s[]  = {1,2,3,4};     b.AppendInt8s(i8s, ARRAYITEMS(i8s));
      const int16 i16s[] = {5,6,7,8};     b.AppendInt16s(i16s, ARRAYITEMS(i16s));
      const int32 i32s[] = {9,10,11,12};  b.AppendInt32s(i32s, ARRAYITEMS(i32s));
      const int64 i64s[] = {13,14,15,16}; b.AppendInt64s(i64s, ARRAYITEMS(i64s));
      const float ifls[] = {17.9,18.9,19.9,20.9}; b.AppendFloats(ifls, ARRAYITEMS(ifls));
      const double idbs[] = {21.9,22.9,23.9,24.9}; b.AppendDoubles(idbs, ARRAYITEMS(idbs));
      const String strs[] = {"25", "26", "27", "28"}; b.AppendStrings(strs, ARRAYITEMS(strs));
      const Point pts[] = {Point(29,30),Point(31,32),Point(32,33),Point(33,34)}; b.AppendPoints(pts, ARRAYITEMS(pts));
      const Rect rcs[] = {Rect(35,36,37,38),Rect(39,40,41,42)}; b.AppendRects(rcs, ARRAYITEMS(rcs));
   }

   PrintHexBytes(b);

   uint32 offset = 0, nr;
   printf("int8=0x%x\n", b.ReadInt8(offset));
   printf("int16=0x%x\n", b.ReadInt16(offset));
   printf("int32=0x" XINT32_FORMAT_SPEC"\n", b.ReadInt32(offset));
   printf("int64=0x" XINT64_FORMAT_SPEC"\n", b.ReadInt64(offset));
   printf("float=%f\n", b.ReadFloat(offset));
   printf("double=%f\n", b.ReadDouble(offset));
   printf("string1=[%s]\n", b.ReadString(offset)());
   printf("string2=[%s]\n", b.ReadString(offset)());
   Point p = b.ReadPoint(offset); printf("Point=%f,%f\n", p.x(), p.y());
   Rect r = b.ReadRect(offset); printf("Rect=%f,%f,%f,%f\n", r.left(), r.top(), r.Width(), r.Height());
   printf("string3=[%s]\n", b.ReadString(offset)());  // should be "----"
   int8  i8s[4]  = {0}; nr = b.ReadInt8s(i8s, ARRAYITEMS(i8s), offset); 
   printf("i8s="); for (uint32 i=0; i<nr; i++) printf(" %i", i8s[i]); printf("\n");
   int16 i16s[4] = {0}; nr = b.ReadInt16s(i16s, ARRAYITEMS(i16s), offset);
   printf("i16s="); for (uint32 i=0; i<nr; i++) printf(" %i", i16s[i]); printf("\n");
   int32 i32s[4] = {0}; nr = b.ReadInt32s(i32s, ARRAYITEMS(i32s), offset);
   printf("i32s="); for (uint32 i=0; i<nr; i++) printf(" " INT32_FORMAT_SPEC, i32s[i]); printf("\n");
   int64 i64s[4] = {0}; nr = b.ReadInt64s(i64s, ARRAYITEMS(i64s), offset);
   printf("i64s="); for (uint32 i=0; i<nr; i++) printf(" " INT64_FORMAT_SPEC, i64s[i]); printf("\n");
   float ifls[4] = {0}; nr = b.ReadFloats(ifls, ARRAYITEMS(ifls), offset);
   printf("ifls="); for (uint32 i=0; i<nr; i++) printf(" %f", ifls[i]); printf("\n");
   double idbs[4] = {0}; nr = b.ReadDoubles(idbs, ARRAYITEMS(idbs), offset);
   printf("idbs="); for (uint32 i=0; i<nr; i++) printf(" %f", idbs[i]); printf("\n");
   String strs[4];      nr = b.ReadStrings(strs, ARRAYITEMS(strs), offset);
   printf("strs="); for (uint32 i=0; i<nr; i++) printf(" [%s]", strs[i]()); printf("\n");
   Point pts[4];        nr = b.ReadPoints(pts, ARRAYITEMS(pts), offset);
   printf("pts="); for (uint32 i=0; i<nr; i++) printf(" [%f,%f]", pts[i][0], pts[i][1]); printf("\n");
   Rect rcs[4];         nr = b.ReadRects(rcs, ARRAYITEMS(rcs), offset);
   printf("rcs="); for (uint32 i=0; i<nr; i++) printf(" [%f,%f,%f,%f]", rcs[i][0], rcs[i][1], rcs[i][2], rcs[i][3]); printf("\n");
}