예제 #1
0
        public byte[] FinalizeAndGetBinaryDataConcurrent()
        {
            BinaryWriter binaryWriter = new BinaryWriter();

            binaryWriter.WriteInt(this._folderCount);
            foreach (SaveEntryFolder folder in this._folders)
            {
                int      parentGlobalId = folder.ParentGlobalId;
                int      globalId       = folder.GlobalId;
                FolderId folderId       = folder.FolderId;
                int      localId        = folderId.LocalId;
                folderId = folder.FolderId;
                SaveFolderExtension extension = folderId.Extension;
                binaryWriter.Write3ByteInt(parentGlobalId);
                binaryWriter.Write3ByteInt(globalId);
                binaryWriter.Write3ByteInt(localId);
                binaryWriter.WriteByte((byte)extension);
            }
            binaryWriter.WriteInt(this._entryCount);
            foreach (BinaryWriter writer in this._writers.Values)
            {
                binaryWriter.AppendData(writer);
            }
            return(binaryWriter.Data);
        }
예제 #2
0
        public byte[] FinalizeAndGetBinaryData()
        {
            BinaryWriter binaryWriter = BinaryWriterFactory.GetBinaryWriter();

            binaryWriter.WriteInt(this._folderCount);
            for (int index = 0; index < this._folderCount; ++index)
            {
                SaveEntryFolder     folder         = this._folders[index];
                int                 parentGlobalId = folder.ParentGlobalId;
                int                 globalId       = folder.GlobalId;
                int                 localId        = folder.FolderId.LocalId;
                SaveFolderExtension extension      = folder.FolderId.Extension;
                binaryWriter.Write3ByteInt(parentGlobalId);
                binaryWriter.Write3ByteInt(globalId);
                binaryWriter.Write3ByteInt(localId);
                binaryWriter.WriteByte((byte)extension);
            }
            binaryWriter.WriteInt(this._entryCount);
            binaryWriter.AppendData(this._writer);
            byte[] data = binaryWriter.Data;
            BinaryWriterFactory.ReleaseBinaryWriter(binaryWriter);
            BinaryWriterFactory.ReleaseBinaryWriter(this._writer);
            this._writer = (BinaryWriter)null;
            return(data);
        }
예제 #3
0
 public FolderId(int localId, SaveFolderExtension extension)
 {
     this.LocalId   = localId;
     this.Extension = extension;
 }