Ejemplo n.º 1
0
            public override Object unpack(ITransport transport)
            {
                int       length = (int)Int32.unpack(transport);
                HeteroMap map    = new HeteroMap(length);

                for (int i = 0; i < length; i++)
                {
                    int            keypid    = (int)Int32.unpack(transport);
                    AbstractPacker keypacker = getPacker(keypid);
                    Object         key       = keypacker.unpack(transport);

                    int            valpid    = (int)Int32.unpack(transport);
                    AbstractPacker valpacker = getPacker(valpid);
                    Object         val       = valpacker.unpack(transport);

                    map.Add(key, keypacker, val, valpacker);
                }
                return(map);
            }
Ejemplo n.º 2
0
            public override void pack(Object obj, ITransport transport)
            {
                HeteroMap map = (HeteroMap)obj;

                if (map == null)
                {
                    Int32.pack(0, transport);
                }
                else
                {
                    Int32.pack(map.Count, transport);
                    foreach (DictionaryEntry e in map)
                    {
                        AbstractPacker keypacker = map.getKeyPacker(e.Key);
                        AbstractPacker valpacker = map.getValuePacker(e.Key);

                        Int32.pack(keypacker.getId(), transport);
                        keypacker.pack(e.Key, transport);

                        Int32.pack(valpacker.getId(), transport);
                        valpacker.pack(e.Value, transport);
                    }
                }
            }
Ejemplo n.º 3
0
 public SetOf(int id, AbstractPacker type)
 {
     this.type = type;
     this.id   = id;
 }
Ejemplo n.º 4
0
 public MapOf(int id, AbstractPacker keytype, AbstractPacker valtype)
 {
     this.keytype = keytype;
     this.valtype = valtype;
     this.id      = id;
 }
Ejemplo n.º 5
0
 private void Awake()
 {
     _packer = GetComponent <AbstractPacker>();
 }