Search in sources :

Example 6 with SetDataResponse

use of org.apache.zookeeper.proto.SetDataResponse in project zookeeper by apache.

the class MultiResponse method deserialize.

@Override
public void deserialize(InputArchive archive, String tag) throws IOException {
    results = new ArrayList<OpResult>();
    archive.startRecord(tag);
    MultiHeader h = new MultiHeader();
    h.deserialize(archive, tag);
    while (!h.getDone()) {
        switch(h.getType()) {
            case ZooDefs.OpCode.create:
                CreateResponse cr = new CreateResponse();
                cr.deserialize(archive, tag);
                results.add(new OpResult.CreateResult(cr.getPath()));
                break;
            case ZooDefs.OpCode.create2:
                Create2Response cr2 = new Create2Response();
                cr2.deserialize(archive, tag);
                results.add(new OpResult.CreateResult(cr2.getPath(), cr2.getStat()));
                break;
            case ZooDefs.OpCode.delete:
                results.add(new OpResult.DeleteResult());
                break;
            case ZooDefs.OpCode.setData:
                SetDataResponse sdr = new SetDataResponse();
                sdr.deserialize(archive, tag);
                results.add(new OpResult.SetDataResult(sdr.getStat()));
                break;
            case ZooDefs.OpCode.check:
                results.add(new OpResult.CheckResult());
                break;
            case ZooDefs.OpCode.error:
                //FIXME: need way to more cleanly serialize/deserialize exceptions
                ErrorResponse er = new ErrorResponse();
                er.deserialize(archive, tag);
                results.add(new OpResult.ErrorResult(er.getErr()));
                break;
            default:
                throw new IOException("Invalid type " + h.getType() + " in MultiResponse");
        }
        h.deserialize(archive, tag);
    }
    archive.endRecord(tag);
}
Also used : CreateResponse(org.apache.zookeeper.proto.CreateResponse) IOException(java.io.IOException) Create2Response(org.apache.zookeeper.proto.Create2Response) SetDataResponse(org.apache.zookeeper.proto.SetDataResponse) MultiHeader(org.apache.zookeeper.proto.MultiHeader) ErrorResponse(org.apache.zookeeper.proto.ErrorResponse)

Example 7 with SetDataResponse

use of org.apache.zookeeper.proto.SetDataResponse in project zookeeper by apache.

the class MultiResponse method serialize.

@Override
public void serialize(OutputArchive archive, String tag) throws IOException {
    archive.startRecord(this, tag);
    for (OpResult result : results) {
        int err = result.getType() == ZooDefs.OpCode.error ? ((OpResult.ErrorResult) result).getErr() : 0;
        new MultiHeader(result.getType(), false, err).serialize(archive, tag);
        switch(result.getType()) {
            case ZooDefs.OpCode.create:
                new CreateResponse(((OpResult.CreateResult) result).getPath()).serialize(archive, tag);
                break;
            case ZooDefs.OpCode.create2:
                OpResult.CreateResult createResult = (OpResult.CreateResult) result;
                new Create2Response(createResult.getPath(), createResult.getStat()).serialize(archive, tag);
                break;
            case ZooDefs.OpCode.delete:
            case ZooDefs.OpCode.check:
                break;
            case ZooDefs.OpCode.setData:
                new SetDataResponse(((OpResult.SetDataResult) result).getStat()).serialize(archive, tag);
                break;
            case ZooDefs.OpCode.error:
                new ErrorResponse(((OpResult.ErrorResult) result).getErr()).serialize(archive, tag);
                break;
            default:
                throw new IOException("Invalid type " + result.getType() + " in MultiResponse");
        }
    }
    new MultiHeader(-1, true, -1).serialize(archive, tag);
    archive.endRecord(this, tag);
}
Also used : CreateResponse(org.apache.zookeeper.proto.CreateResponse) IOException(java.io.IOException) Create2Response(org.apache.zookeeper.proto.Create2Response) SetDataResponse(org.apache.zookeeper.proto.SetDataResponse) MultiHeader(org.apache.zookeeper.proto.MultiHeader) ErrorResponse(org.apache.zookeeper.proto.ErrorResponse)

Aggregations

SetDataResponse (org.apache.zookeeper.proto.SetDataResponse)7 ReplyHeader (org.apache.zookeeper.proto.ReplyHeader)5 RequestHeader (org.apache.zookeeper.proto.RequestHeader)4 IOException (java.io.IOException)3 Create2Response (org.apache.zookeeper.proto.Create2Response)3 CreateResponse (org.apache.zookeeper.proto.CreateResponse)3 ExistsRequest (org.apache.zookeeper.proto.ExistsRequest)3 ErrorResponse (org.apache.zookeeper.proto.ErrorResponse)2 MultiHeader (org.apache.zookeeper.proto.MultiHeader)2 SetDataRequest (org.apache.zookeeper.proto.SetDataRequest)2 ByteBuffer (java.nio.ByteBuffer)1 List (java.util.List)1 Record (org.apache.jute.Record)1 KeeperException (org.apache.zookeeper.KeeperException)1 Code (org.apache.zookeeper.KeeperException.Code)1 SessionMovedException (org.apache.zookeeper.KeeperException.SessionMovedException)1 MultiResponse (org.apache.zookeeper.MultiResponse)1 OpResult (org.apache.zookeeper.OpResult)1 CheckResult (org.apache.zookeeper.OpResult.CheckResult)1 CreateResult (org.apache.zookeeper.OpResult.CreateResult)1