Пример #1
0
        /// <summary>
        /// 添加数据
        /// </summary>
        /// <param name="buffer">数据</param>
        /// <param name="onWrite">添加数据回调委托</param>
        internal WriteRequest(ref AppendBuffer buffer, AutoCSer.Net.TcpServer.ServerCallback <ulong> onWrite)
        {
            this.OnWrite = onWrite;
            SubBuffer.Pool.GetBuffer(ref Buffer, (Size = buffer.Buffer.Length) + sizeof(int));
            System.Buffer.BlockCopy(buffer.Buffer.Array, buffer.Buffer.Start, Buffer.Buffer, Buffer.StartIndex + sizeof(int), Size);

            fixed(byte *bufferFixed = Buffer.GetFixedBuffer()) * (int *)(bufferFixed + Buffer.StartIndex) = Size;
        }
Пример #2
0
        internal void ReadFile(ulong version, long index, AutoCSer.Net.TcpServer.ServerCallback <ReadFileParameter> onRead)
        {
            FileStreamWriter file = Cache.File;

            if (file == null || !file.Read(version, index, onRead))
            {
                onRead.Callback(default(ReadFileParameter));
            }
        }
Пример #3
0
        /// <summary>
        /// 头部写入请求
        /// </summary>
        /// <param name="index"></param>
        internal WriteRequest(int index)
        {
            this.OnWrite = AutoCSer.Net.TcpServer.ServerCallback <ulong> .Null.Default;
            SubBuffer.Pool.GetPool(AutoCSer.Memory.BufferSize.Byte256).Get(ref Buffer);
            fixed(byte *bufferFixed = Buffer.GetFixedBuffer())
            {
                byte *start = bufferFixed + Buffer.StartIndex;

                *(int *)start = Common.PuzzleValue;
                *(int *)(start + sizeof(int))     = (int)AutoCSer.IO.FileHead.DiskBlockFile;
                *(int *)(start + sizeof(int) * 2) = index;
            }

            Size = sizeof(int) * 2;
        }
Пример #4
0
 internal void QueryKeepCallbackStream(OperationParameter.QueryNode parameter, AutoCSer.Net.TcpServer.ServerCallback <IdentityReturnParameter> onQuery)
 {
     Cache.Query(ref parameter.QueryData, onQuery, true);
 }
Пример #5
0
 internal void OperationAsynchronousStream(OperationParameter.ShortPathOperationNode parameter, AutoCSer.Net.TcpServer.ServerCallback <ReturnParameter> onOperation)
 {
     Cache.Operation(ref parameter, onOperation);
 }
Пример #6
0
 internal void OperationAsynchronous(OperationParameter.ShortPathOperationNode parameter, AutoCSer.Net.TcpServer.ServerCallback <ReturnParameter> onOperation)
 {
     Cache.Operation(ref parameter, onOperation);
     //TcpServer.CallQueue.Add(new ServerCall.ShortPathOperationAsynchronous(Cache, ref parameter, onOperation));
 }
Пример #7
0
 internal void OperationAsynchronousStream(OperationParameter.OperationNode parameter, AutoCSer.Net.TcpServer.ServerCallback <ReturnParameter> onOperation)
 {
     Cache.Operation(parameter.Buffer, onOperation);
     //TcpServer.CallQueue.Add(new ServerCall.OperationAsynchronous(Cache, parameter.Buffer, onOperation));
 }
Пример #8
0
 internal void GetCache(AutoCSer.Net.TcpServer.ServerCallback <CacheReturnParameter> onCache)
 {
     new CacheGetter(Cache, onCache);
     //server.CallQueue.Add(new ServerCall.GetCache(Cache, onCache));
 }