/** * Asynchronous sync. Flushes channel between process and leader. * @param path * @param cb a handler for the callback * @param ctx context to be provided to the callback * @throws IllegalArgumentException if an invalid path is specified */ public void sync(final String path, VoidCallback cb, Object ctx){ final String clientPath = path; PathUtils.validatePath(clientPath); final String serverPath = prependChroot(clientPath); RequestHeader h = new RequestHeader(); h.setType(ZooDefs.OpCode.sync); SyncRequest request = new SyncRequest(); SyncResponse response = new SyncResponse(); request.setPath(serverPath); cnxn.queuePacket(h, new ReplyHeader(), request, response, cb, clientPath, serverPath, ctx, null); }
private EventType checkType(Record response) { if (response == null) { return EventType.other; } else if (response instanceof ConnectRequest) { return EventType.write; } else if (response instanceof CreateRequest) { return EventType.write; } else if (response instanceof DeleteRequest) { return EventType.write; } else if (response instanceof SetDataRequest) { return EventType.write; } else if (response instanceof SetACLRequest) { return EventType.write; } else if (response instanceof SetMaxChildrenRequest) { return EventType.write; } else if (response instanceof SetSASLRequest) { return EventType.write; } else if (response instanceof SetWatches) { return EventType.write; } else if (response instanceof SyncRequest) { return EventType.write; } else if (response instanceof ExistsRequest) { return EventType.read; } else if (response instanceof GetDataRequest) { return EventType.read; } else if (response instanceof GetMaxChildrenRequest) { return EventType.read; } else if (response instanceof GetACLRequest) { return EventType.read; } else if (response instanceof GetChildrenRequest) { return EventType.read; } else if (response instanceof GetChildren2Request) { return EventType.read; } else if (response instanceof GetSASLRequest) { return EventType.read; } else { return EventType.other; } }
@Test public void raceTest() throws Exception { ByteArrayOutputStream boas = new ByteArrayOutputStream(); BinaryOutputArchive boa = BinaryOutputArchive.getArchive(boas); GetDataRequest getReq = new GetDataRequest("/testrace", false); getReq.serialize(boa, "request"); ByteBuffer bb = ByteBuffer.wrap(boas.toByteArray()); Request readReq = new Request(null, 0x0, 0, OpCode.getData, bb, new ArrayList<Id>()); boas.reset(); SyncRequest syncReq = new SyncRequest("/testrace"); syncReq.serialize(boa, "request"); bb = ByteBuffer.wrap(boas.toByteArray()); Request writeReq = new Request(null, 0x0, 0, OpCode.sync, bb, new ArrayList<Id>()); processor.addToCommittedRequests(writeReq); processor.addToQueuedRequests(readReq); processor.addToQueuedRequests(writeReq); processor.testStart(); processor.testProcessCommitted(); Assert.assertFalse("Next request processor executed", executedFlag); }
public ISyncRequest() { this(new SyncRequest()); }
public ISyncRequest(String path) { this(new SyncRequest(path)); }
public ISyncRequest(SyncRequest record) { super(record); }