Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
Apache ZooKeeper 3.7.0 Server Source Code
Apache ZooKeeper is an open-source server which enables highly
reliable distributed coordination.
Apache ZooKeeper Server Source Code files are provided in the source packge (apache-zookeeper-3.7.0.tar.gz). You can download it at Apache ZooKeeper Website.
You can also browse Apache ZooKeeper Server Source Code below:
✍: FYIcenter.com
⏎ org/apache/zookeeper/MultiOperationRecord.java
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.zookeeper; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.apache.jute.InputArchive; import org.apache.jute.OutputArchive; import org.apache.jute.Record; import org.apache.zookeeper.proto.CheckVersionRequest; import org.apache.zookeeper.proto.CreateRequest; import org.apache.zookeeper.proto.CreateTTLRequest; import org.apache.zookeeper.proto.DeleteRequest; import org.apache.zookeeper.proto.GetChildrenRequest; import org.apache.zookeeper.proto.GetDataRequest; import org.apache.zookeeper.proto.MultiHeader; import org.apache.zookeeper.proto.SetDataRequest; /** * Encodes a composite operation. In the wire format, each operation * consists of a single MultiHeader followed by the appropriate request. * Each of these MultiHeaders has a type which indicates * the type of the following operation or a negative number if no more operations * are included. * All of the operations must be from the same OpKind. */ public class MultiOperationRecord implements Record, Iterable<Op> { private List<Op> ops = new ArrayList<Op>(); private Op.OpKind opKind = null; public MultiOperationRecord() { } public MultiOperationRecord(Iterable<Op> ops) throws IllegalArgumentException { for (Op op : ops) { setOrCheckOpKind(op.getKind()); add(op); } } @Override public Iterator<Op> iterator() { return ops.iterator(); } public void add(Op op) throws IllegalArgumentException { setOrCheckOpKind(op.getKind()); ops.add(op); } public int size() { return ops.size(); } /** * Returns the kind of the operations contained by the record. * @return The OpKind value of all the elements in the record. */ public Op.OpKind getOpKind() { return opKind; } private void setOrCheckOpKind(Op.OpKind ok) throws IllegalArgumentException { if (opKind == null) { opKind = ok; } else if (ok != opKind) { throw new IllegalArgumentException("Mixing read and write operations (transactions)" + " is not allowed in a multi request."); } } @Override public void serialize(OutputArchive archive, String tag) throws IOException { archive.startRecord(this, tag); for (Op op : ops) { MultiHeader h = new MultiHeader(op.getType(), false, -1); h.serialize(archive, tag); switch (op.getType()) { case ZooDefs.OpCode.create: case ZooDefs.OpCode.create2: case ZooDefs.OpCode.createTTL: case ZooDefs.OpCode.createContainer: case ZooDefs.OpCode.delete: case ZooDefs.OpCode.setData: case ZooDefs.OpCode.check: case ZooDefs.OpCode.getChildren: case ZooDefs.OpCode.getData: op.toRequestRecord().serialize(archive, tag); break; default: throw new IOException("Invalid type of op"); } } new MultiHeader(-1, true, -1).serialize(archive, tag); archive.endRecord(this, tag); } @Override public void deserialize(InputArchive archive, String tag) throws IOException { archive.startRecord(tag); MultiHeader h = new MultiHeader(); h.deserialize(archive, tag); try { while (!h.getDone()) { switch (h.getType()) { case ZooDefs.OpCode.create: case ZooDefs.OpCode.create2: case ZooDefs.OpCode.createContainer: CreateRequest cr = new CreateRequest(); cr.deserialize(archive, tag); add(Op.create(cr.getPath(), cr.getData(), cr.getAcl(), cr.getFlags())); break; case ZooDefs.OpCode.createTTL: CreateTTLRequest crTtl = new CreateTTLRequest(); crTtl.deserialize(archive, tag); add(Op.create(crTtl.getPath(), crTtl.getData(), crTtl.getAcl(), crTtl.getFlags(), crTtl.getTtl())); break; case ZooDefs.OpCode.delete: DeleteRequest dr = new DeleteRequest(); dr.deserialize(archive, tag); add(Op.delete(dr.getPath(), dr.getVersion())); break; case ZooDefs.OpCode.setData: SetDataRequest sdr = new SetDataRequest(); sdr.deserialize(archive, tag); add(Op.setData(sdr.getPath(), sdr.getData(), sdr.getVersion())); break; case ZooDefs.OpCode.check: CheckVersionRequest cvr = new CheckVersionRequest(); cvr.deserialize(archive, tag); add(Op.check(cvr.getPath(), cvr.getVersion())); break; case ZooDefs.OpCode.getChildren: GetChildrenRequest gcr = new GetChildrenRequest(); gcr.deserialize(archive, tag); add(Op.getChildren(gcr.getPath())); break; case ZooDefs.OpCode.getData: GetDataRequest gdr = new GetDataRequest(); gdr.deserialize(archive, tag); add(Op.getData(gdr.getPath())); break; default: throw new IOException("Invalid type of op"); } h.deserialize(archive, tag); } } catch (IllegalArgumentException e) { throw new IOException("Mixing different kind of ops"); } archive.endRecord(tag); } @Override public boolean equals(Object o) { if (this == o) { return true; } if (!(o instanceof MultiOperationRecord)) { return false; } MultiOperationRecord that = (MultiOperationRecord) o; if (ops != null) { Iterator<Op> other = that.ops.iterator(); for (Op op : ops) { boolean hasMoreData = other.hasNext(); if (!hasMoreData) { return false; } Op otherOp = other.next(); if (!op.equals(otherOp)) { return false; } } return !other.hasNext(); } else { return that.ops == null; } } @Override public int hashCode() { int h = 1023; for (Op op : ops) { h = h * 25 + op.hashCode(); } return h; } }
⏎ org/apache/zookeeper/MultiOperationRecord.java
Or download all of them as a single archive file:
File name: zookeeper-server-3.7.0-fyi.zip File size: 871011 bytes Release date: 2021-05-17 Download
⇒ Apache ZooKeeper 3.7.0 Jute Source Code
⇐ Download Apache ZooKeeper 3.7.0 Source Package
2022-11-16, 25688👍, 0💬
Popular Posts:
How to run "jar" command from JDK tools.jar file? "jar" is the JAR (Java Archive) file management co...
Woodstox 6.4.0 Source Code Files are provided at the Woodstox GitHub Website . You can download them...
The JSR 105 XML Digital Signature 1.0.1 FCS implementation provides an API and implementation that a...
kernel.jar is a component in iText Java library to provide low-level functionalities. iText Java lib...
Jackson is "the Java JSON library" or "the best JSON parser for Java". Or simply as "JSON for Java"....