DBreeze.Storage.Backup.WriteBackupElement C# (CSharp) Method

WriteBackupElement() private method

Represents incremental backup of protocol 1
private WriteBackupElement ( ulong fileNumber, byte type, long pos, byte data ) : void
fileNumber ulong
type byte 0 - table file, 1 - rollback file, 2 - rollbackhelper, 3 - recreate table file, 5 - removing complete table
pos long
data byte
return void
        internal void WriteBackupElement(ulong fileNumber, byte type, long pos, byte[] data)
        {
            lock (lock_ibp_fs)
            {
                this.GetFileStream();

                uint size = 0;
                byte[] toSave = null;

                switch (type)
                {
                    case 0:
                    case 1:

                        //8(fileNumber)+1(type)+8(position)+data.Length
                        size = Convert.ToUInt32(8 + 1 + 8 + data.Length);
                        toSave = size.To_4_bytes_array_BigEndian().ConcatMany(fileNumber.To_8_bytes_array_BigEndian(),
                            new byte[] { type },
                            pos.To_8_bytes_array_BigEndian(),
                            data);
                        break;
                    case 2:

                        //Now we save new information into rollback
                        size = Convert.ToUInt32(8 + 1 + 8 + data.Length);
                        toSave = size.To_4_bytes_array_BigEndian().ConcatMany(fileNumber.To_8_bytes_array_BigEndian(),
                            new byte[] { 2 },
                            ((long)0).To_8_bytes_array_BigEndian(),
                            data);
                        break;
                    case 3: //recreate table file
                    case 5: //removing complete table

                        //8(fileNumber)+1(type)
                        size = 9;
                        toSave = size.To_4_bytes_array_BigEndian()
                            .ConcatMany(
                            fileNumber.To_8_bytes_array_BigEndian(),
                            new byte[] { type }
                            );
                        break;

                }

                wasWritten = true;
                fs.Write(toSave, 0, toSave.Length);
            }

            //Console.WriteLine(String.Format("{0}> FN: {1} - {2}; at {3} q {4}", writeTime.ToString("dd.MM.yyyy HH:mm:ss"), fileNumber, type.ToString(), pos.ToString(),
            //    data.Length.ToString()));
        }