Example #1
0
        private static PacketArray CreateArrayOfDatasets(params PacketDataset[] datasets)
        {
            PacketArray pa = new PacketArray();

            foreach (PacketDataset d in datasets)
            {
                pa.Add(new Packet(d, PacketType.Dataset));
            }
            return(pa);
        }
Example #2
0
        private static PacketArray CreateArrayOfArrayOfAtomics()
        {
            PacketArray packetArrayOfArrays = new PacketArray();

            packetArrayOfArrays.Add(new Packet(CreateArrayOfAtomics(), PacketType.Array));
            packetArrayOfArrays.Add(new Packet(CreateArrayOfAtomics(), PacketType.Array));
            packetArrayOfArrays.Add(new Packet(CreateArrayOfAtomics(), PacketType.Array));

            return(packetArrayOfArrays);
        }
Example #3
0
        private static PacketArray CreateArrayOfStrings()
        {
            PacketArray packetArrayOfAtomics = new PacketArray();

            packetArrayOfAtomics.Add(new Packet("Hey", PacketType.Atomic));
            packetArrayOfAtomics.Add(new Packet("Ho", PacketType.Atomic));
            packetArrayOfAtomics.Add(new Packet("Hey", PacketType.Atomic));
            packetArrayOfAtomics.Add(new Packet("Ho", PacketType.Atomic));

            return(packetArrayOfAtomics);
        }
Example #4
0
        private static PacketArray CreateArrayOfAtomics()
        {
            PacketArray packetArrayOfAtomics = new PacketArray();

            packetArrayOfAtomics.Add(new Packet((int)1, PacketType.Atomic));
            packetArrayOfAtomics.Add(new Packet((int)2, PacketType.Atomic));
            packetArrayOfAtomics.Add(new Packet((int)3, PacketType.Atomic));
            packetArrayOfAtomics.Add(new Packet((int)4, PacketType.Atomic));

            return(packetArrayOfAtomics);
        }
Example #5
0
        public static PacketArray AtomicArrayFrom(IDataRowReader reader)
        {
            PacketArray array = new PacketArray();

            using (ReaderGuard rg = new ReaderGuard(reader))
            {
                while (reader.HasNext())
                {
                    array.Add(new Packet(reader.ReadNext().FetchField(0), PacketType.Atomic));
                }
            }

            return(array);
        }
Example #6
0
        public static PacketArray DatasetArrayFrom(IDataRowReader reader)
        {
            PacketArray array = new PacketArray();

            using (ReaderGuard rg = new ReaderGuard(reader))
            {
                while (reader.HasNext())
                {
                    array.Add(new Packet(DatasetFromRow(reader.Headers, reader.ReadNext()), PacketType.Dataset));
                }
            }

            return(array);
        }
Example #7
0
        public static object Decode(PacketArray pa, Type t)
        {
            RaiseException.WhenTrue(t.IsArrayOf <object>(), "Cannot deserialize array of objects '{0}'!", t);
            RaiseException.WhenTrue(t.IsGenericListOf <object>(), "Cannot deserialize list of objects '{0}'!", t);

            ICollectionBuilder collectionBuilder = CreateCollectionBuilder(pa, t);

            foreach (Packet p in pa.Values)
            {
                object element = Decoder.Decode(p, collectionBuilder.ElementType);
                collectionBuilder.AddElement(element);
            }

            return(collectionBuilder.Build());
        }
Example #8
0
 private static ICollectionBuilder CreateCollectionBuilder(PacketArray pa, Type t)
 {
     //TODO: think about pluggable extensibility for collection types
     //TODO: think about builder pooling
     if (t.IsArray)
     {
         return(new ArrayBuilder(t, pa.Count));
     }
     else if (t.IsGenericList())
     {
         return(new GenericListBuilder(t));
     }
     else
     {
         RaiseException.WhenTrue(true, "Unknown collection type: '{0}'! Only arrays and List<> are supported.", t.FullName);
         return(null);
     }
 }
Example #9
0
        public Packet Execute()
        {
            PacketArray array = DataRowConverter.DatasetArrayFrom(reader);

            return(new Packet(array, PacketType.Array));
        }
Example #10
0
 public MapData(IntPtr BasePtr)
 {
     m_pMapData = BasePtr;
     _Data      = new PacketArray((IntPtr)(m_pMapData.ToInt32() + 8));
 }