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, 13748👍, 0💬
Popular Posts:
Smack is an Open Source XMPP (Jabber) client library for instant messaging and presence. A pure Java...
JDK 11 jdk.jlink.jmod is the JMOD file for JDK 11 JLink tool, which can be invoked by the "jlink" co...
What is the jaxp\SourceValidator.jav aprovided in the Apache Xerces package? I have Apache Xerces 2....
itextpdf.jar is a component in iText 5 Java library to provide core functionalities. iText Java libr...
What Is HttpComponents commons-httpclient-3.1.j ar?HttpComponents commons-httpclient-3.1.j aris the ...