/// <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; }
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)); } }
/// <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; }
internal void QueryKeepCallbackStream(OperationParameter.QueryNode parameter, AutoCSer.Net.TcpServer.ServerCallback <IdentityReturnParameter> onQuery) { Cache.Query(ref parameter.QueryData, onQuery, true); }
internal void OperationAsynchronousStream(OperationParameter.ShortPathOperationNode parameter, AutoCSer.Net.TcpServer.ServerCallback <ReturnParameter> onOperation) { Cache.Operation(ref parameter, onOperation); }
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)); }
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)); }
internal void GetCache(AutoCSer.Net.TcpServer.ServerCallback <CacheReturnParameter> onCache) { new CacheGetter(Cache, onCache); //server.CallQueue.Add(new ServerCall.GetCache(Cache, onCache)); }