/** Convenience ctor */ internal Packet(RequestHeader requestHeader, ReplyHeader replyHeader, Record request, Record response, ZooKeeper.WatchRegistration watchRegistration) : this(requestHeader, replyHeader, request, response, watchRegistration, false) { }
internal Packet queuePacket(RequestHeader h, ReplyHeader rep, Record request, Record response, string clientPath, string serverPath, ZooKeeper.WatchRegistration watchRegistration) { Packet packet; // Note that we do not generate the Xid for the packet yet. It is // generated later at send-time, by an implementation of // ClientCnxnSocket::doIO(), // where the packet is actually sent. lock (outgoingQueue) { packet = new Packet(h, rep, request, response, watchRegistration); packet.clientPath = clientPath; packet.serverPath = serverPath; if (!getState().isAlive() || closing.Value) { conLossPacket(packet); } else { // If the client is asking to close the session then // mark as closing if (h.get_Type() == (int)ZooDefs.OpCode.closeSession) { closing.Value = true; } outgoingQueue.AddLast(packet); } } clientCnxnSocket.wakeupCnxn(); return(packet); }
public async Task <ReplyHeader> submitRequest(RequestHeader h, Record request, Record response, ZooKeeper.WatchRegistration watchRegistration) { ReplyHeader rep = new ReplyHeader(); Packet packet = queuePacket(h, rep, request, response, null, null, watchRegistration); await packet.PacketTask.ConfigureAwait(false); return(rep); }
internal Packet(RequestHeader requestHeader, ReplyHeader replyHeader, Record request, Record response, ZooKeeper.WatchRegistration watchRegistration, bool readOnly) { this.requestHeader = requestHeader; this.replyHeader = replyHeader; this.request = request; this.response = response; this.readOnly = readOnly; this.watchRegistration = watchRegistration; }
internal Packet(RequestHeader requestHeader, ReplyHeader replyHeader, Record request, Record response, ZooKeeper.WatchRegistration watchRegistration, bool readOnly) : base(TaskCreationOptions.RunContinuationsAsynchronously) { this.requestHeader = requestHeader; this.replyHeader = replyHeader; this.request = request; this.response = response; this.readOnly = readOnly; this.watchRegistration = watchRegistration; }
internal Packet(RequestHeader header, ReplyHeader replyHeader, IRecord request, IRecord response, byte[] data, ZooKeeper.WatchRegistration watchRegistration, string serverPath, string clientPath) { this.header = header; this.replyHeader = replyHeader; this.request = request; this.response = response; this.serverPath = serverPath; this.clientPath = clientPath; if (data != null) { this.data = data; } else { try { using (MemoryStream ms = new MemoryStream()) using (EndianBinaryWriter writer = new EndianBinaryWriter(EndianBitConverter.Big, ms, Encoding.UTF8)) { BinaryOutputArchive boa = BinaryOutputArchive.getArchive(writer); boa.WriteInt(-1, "len"); // We'll fill this in later header.Serialize(boa, "header"); if (request != null) { request.Serialize(boa, "request"); } ms.Position = 0; writer.Write(ms.ToArray().Length - 4); this.data = ms.ToArray(); } } catch (IOException e) { LOG.Warn("Ignoring unexpected exception", e); } } this.watchRegistration = watchRegistration; }