BlobSync.Helpers.SerializationHelper.WriteBinarySizedBasedSignature C# (CSharp) Method

WriteBinarySizedBasedSignature() public static method

public static WriteBinarySizedBasedSignature ( SizeBasedCompleteSignature sig, Stream s ) : void
sig BlobSync.Datatypes.SizeBasedCompleteSignature
s Stream
return void
        public static void WriteBinarySizedBasedSignature(SizeBasedCompleteSignature sig, Stream s)
        {
            var writer = new BinaryWriter(s);

            int numberOfSizes = sig.Signatures.Keys.Count;

            // 4 bytes. Number of key sizes.
            writer.Write(numberOfSizes);

            foreach (int keySize in sig.Signatures.Keys)
            {
                // write key size.
                writer.Write(keySize);
                var completeSigForKeySize = sig.Signatures[keySize];

                int numberOfEntries = completeSigForKeySize.SignatureList.Length;

                // number of entries for this key size.
                writer.Write(numberOfEntries);

                foreach (var i in completeSigForKeySize.SignatureList)
                {

                    // 8 bytes
                    writer.Write(i.Offset);

                    // 4 bytes
                    writer.Write(i.Size);

                    // 4 bytes.
                    writer.Write(i.BlockNumber);

                    // 8 bytes.
                    writer.Write(i.RollingSig.Sig1);

                    // 8 bytes.
                    writer.Write(i.RollingSig.Sig2);

                    // should be 16 bytes.
                    foreach (byte b in i.MD5Signature)
                    {
                        writer.Write(b);
                    }
                }
            }
        }