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 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 package file, apache-zookeeper-3.8.0.tar.gz.
You can download apache-zookeeper-3.8.0.tar.gz as described in the previous tutorial and go to the "zookeeper-server" sub-folder to view Apache ZooKeeper Server Source Code files.
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.8.0-fyi.zip File size: 885581 bytes Release date: 2022-02-25 Download
⇒ Apache ZooKeeper Jute Source Code
⇐ Download and Install Apache ZooKeeper Source Package
2022-11-16, 13885👍, 0💬
Popular Posts:
How to perform XML Schema validation with sax\Writer.java provided in the Apache Xerces package? You...
JDK 17 jdk.localedata.jmod is the JMOD file for JDK 17 Localedata module. JDK 17 Locale Data module ...
Where to find answers to frequently asked questions on Download and Installing of Older Versions? He...
JDK 11 jdk.xml.dom.jmod is the JMOD file for JDK 11 XML DOM module. JDK 11 XML DOM module compiled c...
JRE 8 plugin.jar is the JAR file for JRE 8 Java Control Panel Plugin interface and tools. JRE (Java ...