Example #1
0
            /// <summary>
            /// Tries to read a previously written object.
            /// </summary>
            /// <param name="already">The available object if it exists.</param>
            /// <returns>
            /// The read state. When <see cref="ReadState.Success"/> is false, the object must be read
            /// and <see cref="ReadState.SetReadResult(T)"/> must be called.
            /// </returns>
            public ReadState TryRead(out T already)
            {
                byte b = _r.ReadByte();

                switch (b)
                {
                case 0: already = default(T); return(new ReadState());

                case 1: already = _objects[_r.ReadNonNegativeSmallInt32()]; return(new ReadState(1));

                default: already = default(T); return(new ReadState(this, b));
                }
            }
Example #2
0
 public DeserializerContext(ICKBinaryReader reader)
 {
     Version          = reader.ReadNonNegativeSmallInt32();
     Reader           = reader;
     TraitContextPool = new CKBinaryReader.ObjectPool <CKTraitContext>(Reader);
     TraitPool        = new CKBinaryReader.ObjectPool <CKTrait>(Reader);
 }
 internal SymmetricKey(ISystemClock clock, ICKBinaryReader r)
     : base(clock, r)
 {
     r.ReadByte();
     _key = r.ReadBytes(r.ReadNonNegativeSmallInt32());
 }