Beispiel #1
0
        public T ReadRecurrant <T>(Husker <T> husker)
        {
            int id = reader.ReadInt32();

            if (id < recurrant_objects.Count)
            {
                return(recurrant_objects[id].Convert <T>());
            }

            recurrant_objects.Add(null);
            T value = husker.Hydrate(this);

            recurrant_objects[id] = value;
            return(value);
        }
Beispiel #2
0
        public void WriteRecurrant <T>(T value, Husker <T> husker)
        {
            int id;

            if (recurrant_objects.TryGetValue(value, out id))
            {
                writer.Write(id);
            }
            else
            {
                id = next_id++;

                writer.Write(id);
                recurrant_objects.Add(value, id);

                husker.Dehydrate(this, value);
            }
        }
Beispiel #3
0
 public ListHusker(Husker <T> h)
 {
     husker = h;
 }