diff options
-rw-r--r-- | same/src/main/java/com/orbekk/same/Client.java | 101 | ||||
-rw-r--r-- | same/src/main/java/com/orbekk/same/ClientService.java | 2 | ||||
-rw-r--r-- | same/src/main/java/com/orbekk/same/Services.java | 1789 | ||||
-rw-r--r-- | same/src/main/java/com/orbekk/same/benchmark/Example.java | 290 | ||||
-rw-r--r-- | same/src/main/java/com/orbekk/same/services.proto | 24 | ||||
-rw-r--r-- | same/src/test/java/com/orbekk/same/ClientTest.java | 10 | ||||
-rw-r--r-- | same/src/test/java/com/orbekk/same/MasterTest.java | 6 |
7 files changed, 2087 insertions, 135 deletions
diff --git a/same/src/main/java/com/orbekk/same/Client.java b/same/src/main/java/com/orbekk/same/Client.java index 53d0ac8..704dc8e 100644 --- a/same/src/main/java/com/orbekk/same/Client.java +++ b/same/src/main/java/com/orbekk/same/Client.java @@ -11,7 +11,11 @@ import java.util.concurrent.Future; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.google.protobuf.RpcCallback; +import com.google.protobuf.RpcController; import com.orbekk.paxos.MasterProposer; +import com.orbekk.same.Services.Empty; +import com.orbekk.same.Services.MasterState; import com.orbekk.same.State.Component; import com.orbekk.util.DelayedOperation; import com.orbekk.util.WorkQueue; @@ -94,58 +98,87 @@ public class Client { private ClientInterface clientInterface = new ClientInterfaceImpl(); - private ClientService serviceImpl = new ClientService() { - @Override - public void setState(String component, String data, long revision) throws Exception { - boolean status = state.update(component, data, revision); + private Services.Client newServiceImpl = new Services.Client() { + @Override public void setState(RpcController controller, + Services.Component request, RpcCallback<Empty> done) { + boolean status = state.update(request.getId(), request.getData(), + request.getRevision()); if (status) { for (StateChangedListener listener : stateListeners) { - listener.stateChanged(state.getComponent(component)); + listener.stateChanged(state.getComponent(request.getId())); } } else { logger.warn("Ignoring update: {) => {}", - state.getComponent(component), - new State.Component(component, revision, data)); - } - } - - @Override - public void notifyNetwork(String networkName, String masterUrl) throws Exception { - logger.info("NotifyNetwork(networkName={}, masterUrl={})", - networkName, masterUrl); - if (networkListener != null) { - networkListener.notifyNetwork(networkName, masterUrl); - } + state.getComponent(request.getId()), + new State.Component(request.getId(), request.getRevision(), + request.getData())); + } } - @Override - public synchronized void masterTakeover(String masterUrl, String networkName, - int masterId) throws Exception { - logger.info("MasterTakeover({}, {}, {})", - new Object[]{masterUrl, networkName, masterId}); - if (masterId <= Client.this.masterId) { - logger.warn("{}:{} tried to take over, but current master is " + - "{}:{}. Ignoring", new Object[]{masterUrl, masterId, - state.getDataOf(".masterUrl"), - Client.this.masterId}); + @Override public void masterTakeover(RpcController controller, + MasterState request, RpcCallback<Empty> done) { + logger.info("MasterTakeover({})", request); + if (request.getMasterId() <= Client.this.masterId) { + logger.warn("{} tried to take over, but current master is " + + "{}:{}. Ignoring", new Object[]{request, + state.getDataOf(".masterUrl"), + Client.this.masterId}); return; } abortMasterElection(); - Client.this.masterUrl = masterUrl; - Client.this.masterId = masterId; + Client.this.masterUrl = request.getMasterUrl(); + Client.this.masterId = request.getMasterId(); connectionState = ConnectionState.STABLE; } - @Override - public void masterDown(int masterId) throws Exception { - if (masterId < Client.this.masterId) { + @Override public void masterDown(RpcController controller, MasterState request, + RpcCallback<Empty> done) { + if (request.getMasterId() < Client.this.masterId) { logger.info("Master {} is down, but current master is {}. Ignoring.", - masterId, Client.this.masterId); + request.getMasterId(), Client.this.masterId); return; } logger.warn("Master down."); connectionState = ConnectionState.UNSTABLE; - tryBecomeMaster(masterId); + tryBecomeMaster(request.getMasterId()); + } + }; + + private ClientService serviceImpl = new ClientService() { + RpcCallback<Empty> noOp = new RpcCallback<Empty>() { + @Override public void run(Empty unused) { + } + }; + + @Override + public void setState(String component, String data, long revision) throws Exception { + Services.Component request = Services.Component.newBuilder() + .setId(component) + .setData(data) + .setRevision(revision) + .build(); + newServiceImpl.setState(null, request, noOp); + } + + @Override + public synchronized void masterTakeover(String masterUrl, String networkName, + int masterId) throws Exception { + Services.MasterState request = Services.MasterState.newBuilder() + .setMasterUrl(masterUrl) + .setNetworkName(networkName) + .setMasterId(masterId) + .build(); + newServiceImpl.masterTakeover(null, request, noOp); + } + + @Override + public void masterDown(int masterId) throws Exception { + Services.MasterState request = Services.MasterState.newBuilder() + .setMasterUrl(masterUrl) + .setNetworkName(state.getDataOf(".networkName")) + .setMasterId(masterId) + .build(); + newServiceImpl.masterDown(null, request, noOp); } }; diff --git a/same/src/main/java/com/orbekk/same/ClientService.java b/same/src/main/java/com/orbekk/same/ClientService.java index 8d460db..97215e0 100644 --- a/same/src/main/java/com/orbekk/same/ClientService.java +++ b/same/src/main/java/com/orbekk/same/ClientService.java @@ -1,8 +1,6 @@ package com.orbekk.same; public interface ClientService { - void notifyNetwork(String networkName, String masterUrl) throws Exception; - void setState(String component, String data, long revision) throws Exception; /** A new master takes over. diff --git a/same/src/main/java/com/orbekk/same/Services.java b/same/src/main/java/com/orbekk/same/Services.java new file mode 100644 index 0000000..90017a6 --- /dev/null +++ b/same/src/main/java/com/orbekk/same/Services.java @@ -0,0 +1,1789 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: src/main/java/com/orbekk/same/services.proto + +package com.orbekk.same; + +public final class Services { + private Services() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + } + public interface EmptyOrBuilder + extends com.google.protobuf.MessageOrBuilder { + } + public static final class Empty extends + com.google.protobuf.GeneratedMessage + implements EmptyOrBuilder { + // Use Empty.newBuilder() to construct. + private Empty(Builder builder) { + super(builder); + } + private Empty(boolean noInit) {} + + private static final Empty defaultInstance; + public static Empty getDefaultInstance() { + return defaultInstance; + } + + public Empty getDefaultInstanceForType() { + return defaultInstance; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.orbekk.same.Services.internal_static_com_orbekk_same_Empty_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.orbekk.same.Services.internal_static_com_orbekk_same_Empty_fieldAccessorTable; + } + + private void initFields() { + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + getUnknownFields().writeTo(output); + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSerializedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + protected java.lang.Object writeReplace() + throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + public static com.orbekk.same.Services.Empty parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return newBuilder().mergeFrom(data).buildParsed(); + } + public static com.orbekk.same.Services.Empty parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return newBuilder().mergeFrom(data, extensionRegistry) + .buildParsed(); + } + public static com.orbekk.same.Services.Empty parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return newBuilder().mergeFrom(data).buildParsed(); + } + public static com.orbekk.same.Services.Empty parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return newBuilder().mergeFrom(data, extensionRegistry) + .buildParsed(); + } + public static com.orbekk.same.Services.Empty parseFrom(java.io.InputStream input) + throws java.io.IOException { + return newBuilder().mergeFrom(input).buildParsed(); + } + public static com.orbekk.same.Services.Empty parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return newBuilder().mergeFrom(input, extensionRegistry) + .buildParsed(); + } + public static com.orbekk.same.Services.Empty parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + Builder builder = newBuilder(); + if (builder.mergeDelimitedFrom(input)) { + return builder.buildParsed(); + } else { + return null; + } + } + public static com.orbekk.same.Services.Empty parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + Builder builder = newBuilder(); + if (builder.mergeDelimitedFrom(input, extensionRegistry)) { + return builder.buildParsed(); + } else { + return null; + } + } + public static com.orbekk.same.Services.Empty parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return newBuilder().mergeFrom(input).buildParsed(); + } + public static com.orbekk.same.Services.Empty parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return newBuilder().mergeFrom(input, extensionRegistry) + .buildParsed(); + } + + public static Builder newBuilder() { return Builder.create(); } + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder(com.orbekk.same.Services.Empty prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder<Builder> + implements com.orbekk.same.Services.EmptyOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.orbekk.same.Services.internal_static_com_orbekk_same_Empty_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.orbekk.same.Services.internal_static_com_orbekk_same_Empty_fieldAccessorTable; + } + + // Construct using com.orbekk.same.Services.Empty.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.orbekk.same.Services.Empty.getDescriptor(); + } + + public com.orbekk.same.Services.Empty getDefaultInstanceForType() { + return com.orbekk.same.Services.Empty.getDefaultInstance(); + } + + public com.orbekk.same.Services.Empty build() { + com.orbekk.same.Services.Empty result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + private com.orbekk.same.Services.Empty buildParsed() + throws com.google.protobuf.InvalidProtocolBufferException { + com.orbekk.same.Services.Empty result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException( + result).asInvalidProtocolBufferException(); + } + return result; + } + + public com.orbekk.same.Services.Empty buildPartial() { + com.orbekk.same.Services.Empty result = new com.orbekk.same.Services.Empty(this); + onBuilt(); + return result; + } + + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.orbekk.same.Services.Empty) { + return mergeFrom((com.orbekk.same.Services.Empty)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.orbekk.same.Services.Empty other) { + if (other == com.orbekk.same.Services.Empty.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder( + this.getUnknownFields()); + while (true) { + int tag = input.readTag(); + switch (tag) { + case 0: + this.setUnknownFields(unknownFields.build()); + onChanged(); + return this; + default: { + if (!parseUnknownField(input, unknownFields, + extensionRegistry, tag)) { + this.setUnknownFields(unknownFields.build()); + onChanged(); + return this; + } + break; + } + } + } + } + + + // @@protoc_insertion_point(builder_scope:com.orbekk.same.Empty) + } + + static { + defaultInstance = new Empty(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:com.orbekk.same.Empty) + } + + public interface ComponentOrBuilder + extends com.google.protobuf.MessageOrBuilder { + + // required string id = 1; + boolean hasId(); + String getId(); + + // required string data = 2; + boolean hasData(); + String getData(); + + // required int64 revision = 3; + boolean hasRevision(); + long getRevision(); + } + public static final class Component extends + com.google.protobuf.GeneratedMessage + implements ComponentOrBuilder { + // Use Component.newBuilder() to construct. + private Component(Builder builder) { + super(builder); + } + private Component(boolean noInit) {} + + private static final Component defaultInstance; + public static Component getDefaultInstance() { + return defaultInstance; + } + + public Component getDefaultInstanceForType() { + return defaultInstance; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.orbekk.same.Services.internal_static_com_orbekk_same_Component_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.orbekk.same.Services.internal_static_com_orbekk_same_Component_fieldAccessorTable; + } + + private int bitField0_; + // required string id = 1; + public static final int ID_FIELD_NUMBER = 1; + private java.lang.Object id_; + public boolean hasId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + public String getId() { + java.lang.Object ref = id_; + if (ref instanceof String) { + return (String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + String s = bs.toStringUtf8(); + if (com.google.protobuf.Internal.isValidUtf8(bs)) { + id_ = s; + } + return s; + } + } + private com.google.protobuf.ByteString getIdBytes() { + java.lang.Object ref = id_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((String) ref); + id_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + // required string data = 2; + public static final int DATA_FIELD_NUMBER = 2; + private java.lang.Object data_; + public boolean hasData() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + public String getData() { + java.lang.Object ref = data_; + if (ref instanceof String) { + return (String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + String s = bs.toStringUtf8(); + if (com.google.protobuf.Internal.isValidUtf8(bs)) { + data_ = s; + } + return s; + } + } + private com.google.protobuf.ByteString getDataBytes() { + java.lang.Object ref = data_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((String) ref); + data_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + // required int64 revision = 3; + public static final int REVISION_FIELD_NUMBER = 3; + private long revision_; + public boolean hasRevision() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + public long getRevision() { + return revision_; + } + + private void initFields() { + id_ = ""; + data_ = ""; + revision_ = 0L; + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + if (!hasId()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasData()) { + memoizedIsInitialized = 0; + return false; + } + if (!hasRevision()) { + memoizedIsInitialized = 0; + return false; + } + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeBytes(1, getIdBytes()); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeBytes(2, getDataBytes()); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeInt64(3, revision_); + } + getUnknownFields().writeTo(output); + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(1, getIdBytes()); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(2, getDataBytes()); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(3, revision_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSerializedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + protected java.lang.Object writeReplace() + throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + public static com.orbekk.same.Services.Component parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return newBuilder().mergeFrom(data).buildParsed(); + } + public static com.orbekk.same.Services.Component parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return newBuilder().mergeFrom(data, extensionRegistry) + .buildParsed(); + } + public static com.orbekk.same.Services.Component parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return newBuilder().mergeFrom(data).buildParsed(); + } + public static com.orbekk.same.Services.Component parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return newBuilder().mergeFrom(data, extensionRegistry) + .buildParsed(); + } + public static com.orbekk.same.Services.Component parseFrom(java.io.InputStream input) + throws java.io.IOException { + return newBuilder().mergeFrom(input).buildParsed(); + } + public static com.orbekk.same.Services.Component parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return newBuilder().mergeFrom(input, extensionRegistry) + .buildParsed(); + } + public static com.orbekk.same.Services.Component parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + Builder builder = newBuilder(); + if (builder.mergeDelimitedFrom(input)) { + return builder.buildParsed(); + } else { + return null; + } + } + public static com.orbekk.same.Services.Component parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + Builder builder = newBuilder(); + if (builder.mergeDelimitedFrom(input, extensionRegistry)) { + return builder.buildParsed(); + } else { + return null; + } + } + public static com.orbekk.same.Services.Component parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return newBuilder().mergeFrom(input).buildParsed(); + } + public static com.orbekk.same.Services.Component parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return newBuilder().mergeFrom(input, extensionRegistry) + .buildParsed(); + } + + public static Builder newBuilder() { return Builder.create(); } + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder(com.orbekk.same.Services.Component prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder<Builder> + implements com.orbekk.same.Services.ComponentOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.orbekk.same.Services.internal_static_com_orbekk_same_Component_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.orbekk.same.Services.internal_static_com_orbekk_same_Component_fieldAccessorTable; + } + + // Construct using com.orbekk.same.Services.Component.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + id_ = ""; + bitField0_ = (bitField0_ & ~0x00000001); + data_ = ""; + bitField0_ = (bitField0_ & ~0x00000002); + revision_ = 0L; + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.orbekk.same.Services.Component.getDescriptor(); + } + + public com.orbekk.same.Services.Component getDefaultInstanceForType() { + return com.orbekk.same.Services.Component.getDefaultInstance(); + } + + public com.orbekk.same.Services.Component build() { + com.orbekk.same.Services.Component result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + private com.orbekk.same.Services.Component buildParsed() + throws com.google.protobuf.InvalidProtocolBufferException { + com.orbekk.same.Services.Component result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException( + result).asInvalidProtocolBufferException(); + } + return result; + } + + public com.orbekk.same.Services.Component buildPartial() { + com.orbekk.same.Services.Component result = new com.orbekk.same.Services.Component(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.id_ = id_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.data_ = data_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + result.revision_ = revision_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.orbekk.same.Services.Component) { + return mergeFrom((com.orbekk.same.Services.Component)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.orbekk.same.Services.Component other) { + if (other == com.orbekk.same.Services.Component.getDefaultInstance()) return this; + if (other.hasId()) { + setId(other.getId()); + } + if (other.hasData()) { + setData(other.getData()); + } + if (other.hasRevision()) { + setRevision(other.getRevision()); + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + if (!hasId()) { + + return false; + } + if (!hasData()) { + + return false; + } + if (!hasRevision()) { + + return false; + } + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder( + this.getUnknownFields()); + while (true) { + int tag = input.readTag(); + switch (tag) { + case 0: + this.setUnknownFields(unknownFields.build()); + onChanged(); + return this; + default: { + if (!parseUnknownField(input, unknownFields, + extensionRegistry, tag)) { + this.setUnknownFields(unknownFields.build()); + onChanged(); + return this; + } + break; + } + case 10: { + bitField0_ |= 0x00000001; + id_ = input.readBytes(); + break; + } + case 18: { + bitField0_ |= 0x00000002; + data_ = input.readBytes(); + break; + } + case 24: { + bitField0_ |= 0x00000004; + revision_ = input.readInt64(); + break; + } + } + } + } + + private int bitField0_; + + // required string id = 1; + private java.lang.Object id_ = ""; + public boolean hasId() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + public String getId() { + java.lang.Object ref = id_; + if (!(ref instanceof String)) { + String s = ((com.google.protobuf.ByteString) ref).toStringUtf8(); + id_ = s; + return s; + } else { + return (String) ref; + } + } + public Builder setId(String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + id_ = value; + onChanged(); + return this; + } + public Builder clearId() { + bitField0_ = (bitField0_ & ~0x00000001); + id_ = getDefaultInstance().getId(); + onChanged(); + return this; + } + void setId(com.google.protobuf.ByteString value) { + bitField0_ |= 0x00000001; + id_ = value; + onChanged(); + } + + // required string data = 2; + private java.lang.Object data_ = ""; + public boolean hasData() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + public String getData() { + java.lang.Object ref = data_; + if (!(ref instanceof String)) { + String s = ((com.google.protobuf.ByteString) ref).toStringUtf8(); + data_ = s; + return s; + } else { + return (String) ref; + } + } + public Builder setData(String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + data_ = value; + onChanged(); + return this; + } + public Builder clearData() { + bitField0_ = (bitField0_ & ~0x00000002); + data_ = getDefaultInstance().getData(); + onChanged(); + return this; + } + void setData(com.google.protobuf.ByteString value) { + bitField0_ |= 0x00000002; + data_ = value; + onChanged(); + } + + // required int64 revision = 3; + private long revision_ ; + public boolean hasRevision() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + public long getRevision() { + return revision_; + } + public Builder setRevision(long value) { + bitField0_ |= 0x00000004; + revision_ = value; + onChanged(); + return this; + } + public Builder clearRevision() { + bitField0_ = (bitField0_ & ~0x00000004); + revision_ = 0L; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:com.orbekk.same.Component) + } + + static { + defaultInstance = new Component(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:com.orbekk.same.Component) + } + + public interface MasterStateOrBuilder + extends com.google.protobuf.MessageOrBuilder { + + // optional string master_url = 1; + boolean hasMasterUrl(); + String getMasterUrl(); + + // optional int32 master_id = 2; + boolean hasMasterId(); + int getMasterId(); + + // optional string network_name = 3; + boolean hasNetworkName(); + String getNetworkName(); + } + public static final class MasterState extends + com.google.protobuf.GeneratedMessage + implements MasterStateOrBuilder { + // Use MasterState.newBuilder() to construct. + private MasterState(Builder builder) { + super(builder); + } + private MasterState(boolean noInit) {} + + private static final MasterState defaultInstance; + public static MasterState getDefaultInstance() { + return defaultInstance; + } + + public MasterState getDefaultInstanceForType() { + return defaultInstance; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.orbekk.same.Services.internal_static_com_orbekk_same_MasterState_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.orbekk.same.Services.internal_static_com_orbekk_same_MasterState_fieldAccessorTable; + } + + private int bitField0_; + // optional string master_url = 1; + public static final int MASTER_URL_FIELD_NUMBER = 1; + private java.lang.Object masterUrl_; + public boolean hasMasterUrl() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + public String getMasterUrl() { + java.lang.Object ref = masterUrl_; + if (ref instanceof String) { + return (String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + String s = bs.toStringUtf8(); + if (com.google.protobuf.Internal.isValidUtf8(bs)) { + masterUrl_ = s; + } + return s; + } + } + private com.google.protobuf.ByteString getMasterUrlBytes() { + java.lang.Object ref = masterUrl_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((String) ref); + masterUrl_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + // optional int32 master_id = 2; + public static final int MASTER_ID_FIELD_NUMBER = 2; + private int masterId_; + public boolean hasMasterId() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + public int getMasterId() { + return masterId_; + } + + // optional string network_name = 3; + public static final int NETWORK_NAME_FIELD_NUMBER = 3; + private java.lang.Object networkName_; + public boolean hasNetworkName() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + public String getNetworkName() { + java.lang.Object ref = networkName_; + if (ref instanceof String) { + return (String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + String s = bs.toStringUtf8(); + if (com.google.protobuf.Internal.isValidUtf8(bs)) { + networkName_ = s; + } + return s; + } + } + private com.google.protobuf.ByteString getNetworkNameBytes() { + java.lang.Object ref = networkName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((String) ref); + networkName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private void initFields() { + masterUrl_ = ""; + masterId_ = 0; + networkName_ = ""; + } + private byte memoizedIsInitialized = -1; + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + memoizedIsInitialized = 1; + return true; + } + + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeBytes(1, getMasterUrlBytes()); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeInt32(2, masterId_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeBytes(3, getNetworkNameBytes()); + } + getUnknownFields().writeTo(output); + } + + private int memoizedSerializedSize = -1; + public int getSerializedSize() { + int size = memoizedSerializedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) == 0x00000001)) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(1, getMasterUrlBytes()); + } + if (((bitField0_ & 0x00000002) == 0x00000002)) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(2, masterId_); + } + if (((bitField0_ & 0x00000004) == 0x00000004)) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(3, getNetworkNameBytes()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSerializedSize = size; + return size; + } + + private static final long serialVersionUID = 0L; + @java.lang.Override + protected java.lang.Object writeReplace() + throws java.io.ObjectStreamException { + return super.writeReplace(); + } + + public static com.orbekk.same.Services.MasterState parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return newBuilder().mergeFrom(data).buildParsed(); + } + public static com.orbekk.same.Services.MasterState parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return newBuilder().mergeFrom(data, extensionRegistry) + .buildParsed(); + } + public static com.orbekk.same.Services.MasterState parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return newBuilder().mergeFrom(data).buildParsed(); + } + public static com.orbekk.same.Services.MasterState parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return newBuilder().mergeFrom(data, extensionRegistry) + .buildParsed(); + } + public static com.orbekk.same.Services.MasterState parseFrom(java.io.InputStream input) + throws java.io.IOException { + return newBuilder().mergeFrom(input).buildParsed(); + } + public static com.orbekk.same.Services.MasterState parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return newBuilder().mergeFrom(input, extensionRegistry) + .buildParsed(); + } + public static com.orbekk.same.Services.MasterState parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + Builder builder = newBuilder(); + if (builder.mergeDelimitedFrom(input)) { + return builder.buildParsed(); + } else { + return null; + } + } + public static com.orbekk.same.Services.MasterState parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + Builder builder = newBuilder(); + if (builder.mergeDelimitedFrom(input, extensionRegistry)) { + return builder.buildParsed(); + } else { + return null; + } + } + public static com.orbekk.same.Services.MasterState parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return newBuilder().mergeFrom(input).buildParsed(); + } + public static com.orbekk.same.Services.MasterState parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return newBuilder().mergeFrom(input, extensionRegistry) + .buildParsed(); + } + + public static Builder newBuilder() { return Builder.create(); } + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder(com.orbekk.same.Services.MasterState prototype) { + return newBuilder().mergeFrom(prototype); + } + public Builder toBuilder() { return newBuilder(this); } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder<Builder> + implements com.orbekk.same.Services.MasterStateOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.orbekk.same.Services.internal_static_com_orbekk_same_MasterState_descriptor; + } + + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.orbekk.same.Services.internal_static_com_orbekk_same_MasterState_fieldAccessorTable; + } + + // Construct using com.orbekk.same.Services.MasterState.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder(BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + } + } + private static Builder create() { + return new Builder(); + } + + public Builder clear() { + super.clear(); + masterUrl_ = ""; + bitField0_ = (bitField0_ & ~0x00000001); + masterId_ = 0; + bitField0_ = (bitField0_ & ~0x00000002); + networkName_ = ""; + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + + public Builder clone() { + return create().mergeFrom(buildPartial()); + } + + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.orbekk.same.Services.MasterState.getDescriptor(); + } + + public com.orbekk.same.Services.MasterState getDefaultInstanceForType() { + return com.orbekk.same.Services.MasterState.getDefaultInstance(); + } + + public com.orbekk.same.Services.MasterState build() { + com.orbekk.same.Services.MasterState result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + private com.orbekk.same.Services.MasterState buildParsed() + throws com.google.protobuf.InvalidProtocolBufferException { + com.orbekk.same.Services.MasterState result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException( + result).asInvalidProtocolBufferException(); + } + return result; + } + + public com.orbekk.same.Services.MasterState buildPartial() { + com.orbekk.same.Services.MasterState result = new com.orbekk.same.Services.MasterState(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.masterUrl_ = masterUrl_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.masterId_ = masterId_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; + } + result.networkName_ = networkName_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; + } + + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.orbekk.same.Services.MasterState) { + return mergeFrom((com.orbekk.same.Services.MasterState)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.orbekk.same.Services.MasterState other) { + if (other == com.orbekk.same.Services.MasterState.getDefaultInstance()) return this; + if (other.hasMasterUrl()) { + setMasterUrl(other.getMasterUrl()); + } + if (other.hasMasterId()) { + setMasterId(other.getMasterId()); + } + if (other.hasNetworkName()) { + setNetworkName(other.getNetworkName()); + } + this.mergeUnknownFields(other.getUnknownFields()); + return this; + } + + public final boolean isInitialized() { + return true; + } + + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + com.google.protobuf.UnknownFieldSet.Builder unknownFields = + com.google.protobuf.UnknownFieldSet.newBuilder( + this.getUnknownFields()); + while (true) { + int tag = input.readTag(); + switch (tag) { + case 0: + this.setUnknownFields(unknownFields.build()); + onChanged(); + return this; + default: { + if (!parseUnknownField(input, unknownFields, + extensionRegistry, tag)) { + this.setUnknownFields(unknownFields.build()); + onChanged(); + return this; + } + break; + } + case 10: { + bitField0_ |= 0x00000001; + masterUrl_ = input.readBytes(); + break; + } + case 16: { + bitField0_ |= 0x00000002; + masterId_ = input.readInt32(); + break; + } + case 26: { + bitField0_ |= 0x00000004; + networkName_ = input.readBytes(); + break; + } + } + } + } + + private int bitField0_; + + // optional string master_url = 1; + private java.lang.Object masterUrl_ = ""; + public boolean hasMasterUrl() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + public String getMasterUrl() { + java.lang.Object ref = masterUrl_; + if (!(ref instanceof String)) { + String s = ((com.google.protobuf.ByteString) ref).toStringUtf8(); + masterUrl_ = s; + return s; + } else { + return (String) ref; + } + } + public Builder setMasterUrl(String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + masterUrl_ = value; + onChanged(); + return this; + } + public Builder clearMasterUrl() { + bitField0_ = (bitField0_ & ~0x00000001); + masterUrl_ = getDefaultInstance().getMasterUrl(); + onChanged(); + return this; + } + void setMasterUrl(com.google.protobuf.ByteString value) { + bitField0_ |= 0x00000001; + masterUrl_ = value; + onChanged(); + } + + // optional int32 master_id = 2; + private int masterId_ ; + public boolean hasMasterId() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + public int getMasterId() { + return masterId_; + } + public Builder setMasterId(int value) { + bitField0_ |= 0x00000002; + masterId_ = value; + onChanged(); + return this; + } + public Builder clearMasterId() { + bitField0_ = (bitField0_ & ~0x00000002); + masterId_ = 0; + onChanged(); + return this; + } + + // optional string network_name = 3; + private java.lang.Object networkName_ = ""; + public boolean hasNetworkName() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + public String getNetworkName() { + java.lang.Object ref = networkName_; + if (!(ref instanceof String)) { + String s = ((com.google.protobuf.ByteString) ref).toStringUtf8(); + networkName_ = s; + return s; + } else { + return (String) ref; + } + } + public Builder setNetworkName(String value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + networkName_ = value; + onChanged(); + return this; + } + public Builder clearNetworkName() { + bitField0_ = (bitField0_ & ~0x00000004); + networkName_ = getDefaultInstance().getNetworkName(); + onChanged(); + return this; + } + void setNetworkName(com.google.protobuf.ByteString value) { + bitField0_ |= 0x00000004; + networkName_ = value; + onChanged(); + } + + // @@protoc_insertion_point(builder_scope:com.orbekk.same.MasterState) + } + + static { + defaultInstance = new MasterState(true); + defaultInstance.initFields(); + } + + // @@protoc_insertion_point(class_scope:com.orbekk.same.MasterState) + } + + public static abstract class Client + implements com.google.protobuf.Service { + protected Client() {} + + public interface Interface { + public abstract void setState( + com.google.protobuf.RpcController controller, + com.orbekk.same.Services.Component request, + com.google.protobuf.RpcCallback<com.orbekk.same.Services.Empty> done); + + public abstract void masterTakeover( + com.google.protobuf.RpcController controller, + com.orbekk.same.Services.MasterState request, + com.google.protobuf.RpcCallback<com.orbekk.same.Services.Empty> done); + + public abstract void masterDown( + com.google.protobuf.RpcController controller, + com.orbekk.same.Services.MasterState request, + com.google.protobuf.RpcCallback<com.orbekk.same.Services.Empty> done); + + } + + public static com.google.protobuf.Service newReflectiveService( + final Interface impl) { + return new Client() { + @java.lang.Override + public void setState( + com.google.protobuf.RpcController controller, + com.orbekk.same.Services.Component request, + com.google.protobuf.RpcCallback<com.orbekk.same.Services.Empty> done) { + impl.setState(controller, request, done); + } + + @java.lang.Override + public void masterTakeover( + com.google.protobuf.RpcController controller, + com.orbekk.same.Services.MasterState request, + com.google.protobuf.RpcCallback<com.orbekk.same.Services.Empty> done) { + impl.masterTakeover(controller, request, done); + } + + @java.lang.Override + public void masterDown( + com.google.protobuf.RpcController controller, + com.orbekk.same.Services.MasterState request, + com.google.protobuf.RpcCallback<com.orbekk.same.Services.Empty> done) { + impl.masterDown(controller, request, done); + } + + }; + } + + public static com.google.protobuf.BlockingService + newReflectiveBlockingService(final BlockingInterface impl) { + return new com.google.protobuf.BlockingService() { + public final com.google.protobuf.Descriptors.ServiceDescriptor + getDescriptorForType() { + return getDescriptor(); + } + + public final com.google.protobuf.Message callBlockingMethod( + com.google.protobuf.Descriptors.MethodDescriptor method, + com.google.protobuf.RpcController controller, + com.google.protobuf.Message request) + throws com.google.protobuf.ServiceException { + if (method.getService() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "Service.callBlockingMethod() given method descriptor for " + + "wrong service type."); + } + switch(method.getIndex()) { + case 0: + return impl.setState(controller, (com.orbekk.same.Services.Component)request); + case 1: + return impl.masterTakeover(controller, (com.orbekk.same.Services.MasterState)request); + case 2: + return impl.masterDown(controller, (com.orbekk.same.Services.MasterState)request); + default: + throw new java.lang.AssertionError("Can't get here."); + } + } + + public final com.google.protobuf.Message + getRequestPrototype( + com.google.protobuf.Descriptors.MethodDescriptor method) { + if (method.getService() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "Service.getRequestPrototype() given method " + + "descriptor for wrong service type."); + } + switch(method.getIndex()) { + case 0: + return com.orbekk.same.Services.Component.getDefaultInstance(); + case 1: + return com.orbekk.same.Services.MasterState.getDefaultInstance(); + case 2: + return com.orbekk.same.Services.MasterState.getDefaultInstance(); + default: + throw new java.lang.AssertionError("Can't get here."); + } + } + + public final com.google.protobuf.Message + getResponsePrototype( + com.google.protobuf.Descriptors.MethodDescriptor method) { + if (method.getService() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "Service.getResponsePrototype() given method " + + "descriptor for wrong service type."); + } + switch(method.getIndex()) { + case 0: + return com.orbekk.same.Services.Empty.getDefaultInstance(); + case 1: + return com.orbekk.same.Services.Empty.getDefaultInstance(); + case 2: + return com.orbekk.same.Services.Empty.getDefaultInstance(); + default: + throw new java.lang.AssertionError("Can't get here."); + } + } + + }; + } + + public abstract void setState( + com.google.protobuf.RpcController controller, + com.orbekk.same.Services.Component request, + com.google.protobuf.RpcCallback<com.orbekk.same.Services.Empty> done); + + public abstract void masterTakeover( + com.google.protobuf.RpcController controller, + com.orbekk.same.Services.MasterState request, + com.google.protobuf.RpcCallback<com.orbekk.same.Services.Empty> done); + + public abstract void masterDown( + com.google.protobuf.RpcController controller, + com.orbekk.same.Services.MasterState request, + com.google.protobuf.RpcCallback<com.orbekk.same.Services.Empty> done); + + public static final + com.google.protobuf.Descriptors.ServiceDescriptor + getDescriptor() { + return com.orbekk.same.Services.getDescriptor().getServices().get(0); + } + public final com.google.protobuf.Descriptors.ServiceDescriptor + getDescriptorForType() { + return getDescriptor(); + } + + public final void callMethod( + com.google.protobuf.Descriptors.MethodDescriptor method, + com.google.protobuf.RpcController controller, + com.google.protobuf.Message request, + com.google.protobuf.RpcCallback< + com.google.protobuf.Message> done) { + if (method.getService() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "Service.callMethod() given method descriptor for wrong " + + "service type."); + } + switch(method.getIndex()) { + case 0: + this.setState(controller, (com.orbekk.same.Services.Component)request, + com.google.protobuf.RpcUtil.<com.orbekk.same.Services.Empty>specializeCallback( + done)); + return; + case 1: + this.masterTakeover(controller, (com.orbekk.same.Services.MasterState)request, + com.google.protobuf.RpcUtil.<com.orbekk.same.Services.Empty>specializeCallback( + done)); + return; + case 2: + this.masterDown(controller, (com.orbekk.same.Services.MasterState)request, + com.google.protobuf.RpcUtil.<com.orbekk.same.Services.Empty>specializeCallback( + done)); + return; + default: + throw new java.lang.AssertionError("Can't get here."); + } + } + + public final com.google.protobuf.Message + getRequestPrototype( + com.google.protobuf.Descriptors.MethodDescriptor method) { + if (method.getService() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "Service.getRequestPrototype() given method " + + "descriptor for wrong service type."); + } + switch(method.getIndex()) { + case 0: + return com.orbekk.same.Services.Component.getDefaultInstance(); + case 1: + return com.orbekk.same.Services.MasterState.getDefaultInstance(); + case 2: + return com.orbekk.same.Services.MasterState.getDefaultInstance(); + default: + throw new java.lang.AssertionError("Can't get here."); + } + } + + public final com.google.protobuf.Message + getResponsePrototype( + com.google.protobuf.Descriptors.MethodDescriptor method) { + if (method.getService() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "Service.getResponsePrototype() given method " + + "descriptor for wrong service type."); + } + switch(method.getIndex()) { + case 0: + return com.orbekk.same.Services.Empty.getDefaultInstance(); + case 1: + return com.orbekk.same.Services.Empty.getDefaultInstance(); + case 2: + return com.orbekk.same.Services.Empty.getDefaultInstance(); + default: + throw new java.lang.AssertionError("Can't get here."); + } + } + + public static Stub newStub( + com.google.protobuf.RpcChannel channel) { + return new Stub(channel); + } + + public static final class Stub extends com.orbekk.same.Services.Client implements Interface { + private Stub(com.google.protobuf.RpcChannel channel) { + this.channel = channel; + } + + private final com.google.protobuf.RpcChannel channel; + + public com.google.protobuf.RpcChannel getChannel() { + return channel; + } + + public void setState( + com.google.protobuf.RpcController controller, + com.orbekk.same.Services.Component request, + com.google.protobuf.RpcCallback<com.orbekk.same.Services.Empty> done) { + channel.callMethod( + getDescriptor().getMethods().get(0), + controller, + request, + com.orbekk.same.Services.Empty.getDefaultInstance(), + com.google.protobuf.RpcUtil.generalizeCallback( + done, + com.orbekk.same.Services.Empty.class, + com.orbekk.same.Services.Empty.getDefaultInstance())); + } + + public void masterTakeover( + com.google.protobuf.RpcController controller, + com.orbekk.same.Services.MasterState request, + com.google.protobuf.RpcCallback<com.orbekk.same.Services.Empty> done) { + channel.callMethod( + getDescriptor().getMethods().get(1), + controller, + request, + com.orbekk.same.Services.Empty.getDefaultInstance(), + com.google.protobuf.RpcUtil.generalizeCallback( + done, + com.orbekk.same.Services.Empty.class, + com.orbekk.same.Services.Empty.getDefaultInstance())); + } + + public void masterDown( + com.google.protobuf.RpcController controller, + com.orbekk.same.Services.MasterState request, + com.google.protobuf.RpcCallback<com.orbekk.same.Services.Empty> done) { + channel.callMethod( + getDescriptor().getMethods().get(2), + controller, + request, + com.orbekk.same.Services.Empty.getDefaultInstance(), + com.google.protobuf.RpcUtil.generalizeCallback( + done, + com.orbekk.same.Services.Empty.class, + com.orbekk.same.Services.Empty.getDefaultInstance())); + } + } + + public static BlockingInterface newBlockingStub( + com.google.protobuf.BlockingRpcChannel channel) { + return new BlockingStub(channel); + } + + public interface BlockingInterface { + public com.orbekk.same.Services.Empty setState( + com.google.protobuf.RpcController controller, + com.orbekk.same.Services.Component request) + throws com.google.protobuf.ServiceException; + + public com.orbekk.same.Services.Empty masterTakeover( + com.google.protobuf.RpcController controller, + com.orbekk.same.Services.MasterState request) + throws com.google.protobuf.ServiceException; + + public com.orbekk.same.Services.Empty masterDown( + com.google.protobuf.RpcController controller, + com.orbekk.same.Services.MasterState request) + throws com.google.protobuf.ServiceException; + } + + private static final class BlockingStub implements BlockingInterface { + private BlockingStub(com.google.protobuf.BlockingRpcChannel channel) { + this.channel = channel; + } + + private final com.google.protobuf.BlockingRpcChannel channel; + + public com.orbekk.same.Services.Empty setState( + com.google.protobuf.RpcController controller, + com.orbekk.same.Services.Component request) + throws com.google.protobuf.ServiceException { + return (com.orbekk.same.Services.Empty) channel.callBlockingMethod( + getDescriptor().getMethods().get(0), + controller, + request, + com.orbekk.same.Services.Empty.getDefaultInstance()); + } + + + public com.orbekk.same.Services.Empty masterTakeover( + com.google.protobuf.RpcController controller, + com.orbekk.same.Services.MasterState request) + throws com.google.protobuf.ServiceException { + return (com.orbekk.same.Services.Empty) channel.callBlockingMethod( + getDescriptor().getMethods().get(1), + controller, + request, + com.orbekk.same.Services.Empty.getDefaultInstance()); + } + + + public com.orbekk.same.Services.Empty masterDown( + com.google.protobuf.RpcController controller, + com.orbekk.same.Services.MasterState request) + throws com.google.protobuf.ServiceException { + return (com.orbekk.same.Services.Empty) channel.callBlockingMethod( + getDescriptor().getMethods().get(2), + controller, + request, + com.orbekk.same.Services.Empty.getDefaultInstance()); + } + + } + } + + private static com.google.protobuf.Descriptors.Descriptor + internal_static_com_orbekk_same_Empty_descriptor; + private static + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_com_orbekk_same_Empty_fieldAccessorTable; + private static com.google.protobuf.Descriptors.Descriptor + internal_static_com_orbekk_same_Component_descriptor; + private static + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_com_orbekk_same_Component_fieldAccessorTable; + private static com.google.protobuf.Descriptors.Descriptor + internal_static_com_orbekk_same_MasterState_descriptor; + private static + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_com_orbekk_same_MasterState_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n,src/main/java/com/orbekk/same/services" + + ".proto\022\017com.orbekk.same\"\007\n\005Empty\"7\n\tComp" + + "onent\022\n\n\002id\030\001 \002(\t\022\014\n\004data\030\002 \002(\t\022\020\n\010revis" + + "ion\030\003 \002(\003\"J\n\013MasterState\022\022\n\nmaster_url\030\001" + + " \001(\t\022\021\n\tmaster_id\030\002 \001(\005\022\024\n\014network_name\030" + + "\003 \001(\t2\324\001\n\006Client\022>\n\010SetState\022\032.com.orbek" + + "k.same.Component\032\026.com.orbekk.same.Empty" + + "\022F\n\016MasterTakeover\022\034.com.orbekk.same.Mas" + + "terState\032\026.com.orbekk.same.Empty\022B\n\nMast" + + "erDown\022\034.com.orbekk.same.MasterState\032\026.c", + "om.orbekk.same.EmptyB\003\210\001\001" + }; + com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = + new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() { + public com.google.protobuf.ExtensionRegistry assignDescriptors( + com.google.protobuf.Descriptors.FileDescriptor root) { + descriptor = root; + internal_static_com_orbekk_same_Empty_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_com_orbekk_same_Empty_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_com_orbekk_same_Empty_descriptor, + new java.lang.String[] { }, + com.orbekk.same.Services.Empty.class, + com.orbekk.same.Services.Empty.Builder.class); + internal_static_com_orbekk_same_Component_descriptor = + getDescriptor().getMessageTypes().get(1); + internal_static_com_orbekk_same_Component_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_com_orbekk_same_Component_descriptor, + new java.lang.String[] { "Id", "Data", "Revision", }, + com.orbekk.same.Services.Component.class, + com.orbekk.same.Services.Component.Builder.class); + internal_static_com_orbekk_same_MasterState_descriptor = + getDescriptor().getMessageTypes().get(2); + internal_static_com_orbekk_same_MasterState_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_com_orbekk_same_MasterState_descriptor, + new java.lang.String[] { "MasterUrl", "MasterId", "NetworkName", }, + com.orbekk.same.Services.MasterState.class, + com.orbekk.same.Services.MasterState.Builder.class); + return null; + } + }; + com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }, assigner); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/same/src/main/java/com/orbekk/same/benchmark/Example.java b/same/src/main/java/com/orbekk/same/benchmark/Example.java index c71ed0a..5b75620 100644 --- a/same/src/main/java/com/orbekk/same/benchmark/Example.java +++ b/same/src/main/java/com/orbekk/same/benchmark/Example.java @@ -8,11 +8,27 @@ public final class Example { public static void registerAllExtensions( com.google.protobuf.ExtensionRegistry registry) { } + public interface DataOrBuilder + extends com.google.protobuf.MessageOrBuilder { + + // optional string message = 1; + boolean hasMessage(); + String getMessage(); + + // optional int32 arg1 = 2; + boolean hasArg1(); + int getArg1(); + + // optional int32 arg2 = 3; + boolean hasArg2(); + int getArg2(); + } public static final class Data extends - com.google.protobuf.GeneratedMessage { + com.google.protobuf.GeneratedMessage + implements DataOrBuilder { // Use Data.newBuilder() to construct. - private Data() { - initFields(); + private Data(Builder builder) { + super(builder); } private Data(boolean noInit) {} @@ -35,44 +51,84 @@ public final class Example { return com.orbekk.same.benchmark.Example.internal_static_com_orbekk_same_benchmark_Data_fieldAccessorTable; } + private int bitField0_; // optional string message = 1; public static final int MESSAGE_FIELD_NUMBER = 1; - private boolean hasMessage; - private java.lang.String message_ = ""; - public boolean hasMessage() { return hasMessage; } - public java.lang.String getMessage() { return message_; } + private java.lang.Object message_; + public boolean hasMessage() { + return ((bitField0_ & 0x00000001) == 0x00000001); + } + public String getMessage() { + java.lang.Object ref = message_; + if (ref instanceof String) { + return (String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + String s = bs.toStringUtf8(); + if (com.google.protobuf.Internal.isValidUtf8(bs)) { + message_ = s; + } + return s; + } + } + private com.google.protobuf.ByteString getMessageBytes() { + java.lang.Object ref = message_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8((String) ref); + message_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } // optional int32 arg1 = 2; public static final int ARG1_FIELD_NUMBER = 2; - private boolean hasArg1; - private int arg1_ = 0; - public boolean hasArg1() { return hasArg1; } - public int getArg1() { return arg1_; } + private int arg1_; + public boolean hasArg1() { + return ((bitField0_ & 0x00000002) == 0x00000002); + } + public int getArg1() { + return arg1_; + } // optional int32 arg2 = 3; public static final int ARG2_FIELD_NUMBER = 3; - private boolean hasArg2; - private int arg2_ = 0; - public boolean hasArg2() { return hasArg2; } - public int getArg2() { return arg2_; } + private int arg2_; + public boolean hasArg2() { + return ((bitField0_ & 0x00000004) == 0x00000004); + } + public int getArg2() { + return arg2_; + } private void initFields() { + message_ = ""; + arg1_ = 0; + arg2_ = 0; } + private byte memoizedIsInitialized = -1; public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized != -1) return isInitialized == 1; + + memoizedIsInitialized = 1; return true; } public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException { getSerializedSize(); - if (hasMessage()) { - output.writeString(1, getMessage()); + if (((bitField0_ & 0x00000001) == 0x00000001)) { + output.writeBytes(1, getMessageBytes()); } - if (hasArg1()) { - output.writeInt32(2, getArg1()); + if (((bitField0_ & 0x00000002) == 0x00000002)) { + output.writeInt32(2, arg1_); } - if (hasArg2()) { - output.writeInt32(3, getArg2()); + if (((bitField0_ & 0x00000004) == 0x00000004)) { + output.writeInt32(3, arg2_); } getUnknownFields().writeTo(output); } @@ -83,23 +139,30 @@ public final class Example { if (size != -1) return size; size = 0; - if (hasMessage()) { + if (((bitField0_ & 0x00000001) == 0x00000001)) { size += com.google.protobuf.CodedOutputStream - .computeStringSize(1, getMessage()); + .computeBytesSize(1, getMessageBytes()); } - if (hasArg1()) { + if (((bitField0_ & 0x00000002) == 0x00000002)) { size += com.google.protobuf.CodedOutputStream - .computeInt32Size(2, getArg1()); + .computeInt32Size(2, arg1_); } - if (hasArg2()) { + if (((bitField0_ & 0x00000004) == 0x00000004)) { size += com.google.protobuf.CodedOutputStream - .computeInt32Size(3, getArg2()); + .computeInt32Size(3, arg2_); } size += getUnknownFields().getSerializedSize(); memoizedSerializedSize = size; return size; } + private static final long serialVersionUID = 0L; + @java.lang.Override + protected java.lang.Object writeReplace() + throws java.io.ObjectStreamException { + return super.writeReplace(); + } + public static com.orbekk.same.benchmark.Example.Data parseFrom( com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException { @@ -174,34 +237,55 @@ public final class Example { } public Builder toBuilder() { return newBuilder(this); } + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } public static final class Builder extends - com.google.protobuf.GeneratedMessage.Builder<Builder> { - private com.orbekk.same.benchmark.Example.Data result; + com.google.protobuf.GeneratedMessage.Builder<Builder> + implements com.orbekk.same.benchmark.Example.DataOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.orbekk.same.benchmark.Example.internal_static_com_orbekk_same_benchmark_Data_descriptor; + } - // Construct using com.orbekk.same.benchmark.Example.Data.newBuilder() - private Builder() {} + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.orbekk.same.benchmark.Example.internal_static_com_orbekk_same_benchmark_Data_fieldAccessorTable; + } - private static Builder create() { - Builder builder = new Builder(); - builder.result = new com.orbekk.same.benchmark.Example.Data(); - return builder; + // Construct using com.orbekk.same.benchmark.Example.Data.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); } - protected com.orbekk.same.benchmark.Example.Data internalGetResult() { - return result; + private Builder(BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) { + } + } + private static Builder create() { + return new Builder(); } public Builder clear() { - if (result == null) { - throw new IllegalStateException( - "Cannot call clear() after build()."); - } - result = new com.orbekk.same.benchmark.Example.Data(); + super.clear(); + message_ = ""; + bitField0_ = (bitField0_ & ~0x00000001); + arg1_ = 0; + bitField0_ = (bitField0_ & ~0x00000002); + arg2_ = 0; + bitField0_ = (bitField0_ & ~0x00000004); return this; } public Builder clone() { - return create().mergeFrom(result); + return create().mergeFrom(buildPartial()); } public com.google.protobuf.Descriptors.Descriptor @@ -213,33 +297,43 @@ public final class Example { return com.orbekk.same.benchmark.Example.Data.getDefaultInstance(); } - public boolean isInitialized() { - return result.isInitialized(); - } public com.orbekk.same.benchmark.Example.Data build() { - if (result != null && !isInitialized()) { + com.orbekk.same.benchmark.Example.Data result = buildPartial(); + if (!result.isInitialized()) { throw newUninitializedMessageException(result); } - return buildPartial(); + return result; } private com.orbekk.same.benchmark.Example.Data buildParsed() throws com.google.protobuf.InvalidProtocolBufferException { - if (!isInitialized()) { + com.orbekk.same.benchmark.Example.Data result = buildPartial(); + if (!result.isInitialized()) { throw newUninitializedMessageException( result).asInvalidProtocolBufferException(); } - return buildPartial(); + return result; } public com.orbekk.same.benchmark.Example.Data buildPartial() { - if (result == null) { - throw new IllegalStateException( - "build() has already been called on this Builder."); + com.orbekk.same.benchmark.Example.Data result = new com.orbekk.same.benchmark.Example.Data(this); + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) == 0x00000001)) { + to_bitField0_ |= 0x00000001; + } + result.message_ = message_; + if (((from_bitField0_ & 0x00000002) == 0x00000002)) { + to_bitField0_ |= 0x00000002; + } + result.arg1_ = arg1_; + if (((from_bitField0_ & 0x00000004) == 0x00000004)) { + to_bitField0_ |= 0x00000004; } - com.orbekk.same.benchmark.Example.Data returnMe = result; - result = null; - return returnMe; + result.arg2_ = arg2_; + result.bitField0_ = to_bitField0_; + onBuilt(); + return result; } public Builder mergeFrom(com.google.protobuf.Message other) { @@ -266,6 +360,10 @@ public final class Example { return this; } + public final boolean isInitialized() { + return true; + } + public Builder mergeFrom( com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) @@ -278,86 +376,113 @@ public final class Example { switch (tag) { case 0: this.setUnknownFields(unknownFields.build()); + onChanged(); return this; default: { if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) { this.setUnknownFields(unknownFields.build()); + onChanged(); return this; } break; } case 10: { - setMessage(input.readString()); + bitField0_ |= 0x00000001; + message_ = input.readBytes(); break; } case 16: { - setArg1(input.readInt32()); + bitField0_ |= 0x00000002; + arg1_ = input.readInt32(); break; } case 24: { - setArg2(input.readInt32()); + bitField0_ |= 0x00000004; + arg2_ = input.readInt32(); break; } } } } + private int bitField0_; // optional string message = 1; + private java.lang.Object message_ = ""; public boolean hasMessage() { - return result.hasMessage(); - } - public java.lang.String getMessage() { - return result.getMessage(); + return ((bitField0_ & 0x00000001) == 0x00000001); + } + public String getMessage() { + java.lang.Object ref = message_; + if (!(ref instanceof String)) { + String s = ((com.google.protobuf.ByteString) ref).toStringUtf8(); + message_ = s; + return s; + } else { + return (String) ref; + } } - public Builder setMessage(java.lang.String value) { + public Builder setMessage(String value) { if (value == null) { throw new NullPointerException(); } - result.hasMessage = true; - result.message_ = value; + bitField0_ |= 0x00000001; + message_ = value; + onChanged(); return this; } public Builder clearMessage() { - result.hasMessage = false; - result.message_ = getDefaultInstance().getMessage(); + bitField0_ = (bitField0_ & ~0x00000001); + message_ = getDefaultInstance().getMessage(); + onChanged(); return this; } + void setMessage(com.google.protobuf.ByteString value) { + bitField0_ |= 0x00000001; + message_ = value; + onChanged(); + } // optional int32 arg1 = 2; + private int arg1_ ; public boolean hasArg1() { - return result.hasArg1(); + return ((bitField0_ & 0x00000002) == 0x00000002); } public int getArg1() { - return result.getArg1(); + return arg1_; } public Builder setArg1(int value) { - result.hasArg1 = true; - result.arg1_ = value; + bitField0_ |= 0x00000002; + arg1_ = value; + onChanged(); return this; } public Builder clearArg1() { - result.hasArg1 = false; - result.arg1_ = 0; + bitField0_ = (bitField0_ & ~0x00000002); + arg1_ = 0; + onChanged(); return this; } // optional int32 arg2 = 3; + private int arg2_ ; public boolean hasArg2() { - return result.hasArg2(); + return ((bitField0_ & 0x00000004) == 0x00000004); } public int getArg2() { - return result.getArg2(); + return arg2_; } public Builder setArg2(int value) { - result.hasArg2 = true; - result.arg2_ = value; + bitField0_ |= 0x00000004; + arg2_ = value; + onChanged(); return this; } public Builder clearArg2() { - result.hasArg2 = false; - result.arg2_ = 0; + bitField0_ = (bitField0_ & ~0x00000004); + arg2_ = 0; + onChanged(); return this; } @@ -366,7 +491,6 @@ public final class Example { static { defaultInstance = new Data(true); - com.orbekk.same.benchmark.Example.internalForceInit(); defaultInstance.initFields(); } @@ -388,7 +512,7 @@ public final class Example { public static com.google.protobuf.Service newReflectiveService( final Interface impl) { return new Service() { - @Override + @java.lang.Override public void methodA( com.google.protobuf.RpcController controller, com.orbekk.same.benchmark.Example.Data request, @@ -637,7 +761,5 @@ public final class Example { }, assigner); } - public static void internalForceInit() {} - // @@protoc_insertion_point(outer_class_scope) } diff --git a/same/src/main/java/com/orbekk/same/services.proto b/same/src/main/java/com/orbekk/same/services.proto new file mode 100644 index 0000000..0ecba66 --- /dev/null +++ b/same/src/main/java/com/orbekk/same/services.proto @@ -0,0 +1,24 @@ +package com.orbekk.same; + +option java_generic_services = true; + +message Empty { +} + +message Component { + required string id = 1; + required string data = 2; + required int64 revision = 3; +} + +message MasterState { + optional string master_url = 1; + optional int32 master_id = 2; + optional string network_name = 3; +} + +service Client { + rpc SetState (Component) returns (Empty); + rpc MasterTakeover (MasterState) returns (Empty); + rpc MasterDown (MasterState) returns (Empty); +} diff --git a/same/src/test/java/com/orbekk/same/ClientTest.java b/same/src/test/java/com/orbekk/same/ClientTest.java index 6c617be..d494fe7 100644 --- a/same/src/test/java/com/orbekk/same/ClientTest.java +++ b/same/src/test/java/com/orbekk/same/ClientTest.java @@ -33,7 +33,7 @@ public class ClientTest { } @Test public void connectedUpdateWorks() throws Exception { - clientS.masterTakeover("master", null, 1); + clientS.masterTakeover("master", "MyNetwork", 1); ClientInterface clientI = client.getInterface(); State.Component component = new State.Component( "TestVariable", 1, "meow"); @@ -49,14 +49,6 @@ public class ClientTest { assertEquals("Test data", state.getDataOf("TestState")); } - @Test public void testNetworkListener() throws Exception { - NetworkNotificationListener listener = - mock(NetworkNotificationListener.class); - client.setNetworkListener(listener); - clientS.notifyNetwork("MyNetwork", "MasterUrl"); - verify(listener).notifyNetwork("MyNetwork", "MasterUrl"); - } - @Test public void stateListenerReceivesUpdate() throws Exception { StateChangedListener listener = mock(StateChangedListener.class); client.getInterface().addStateListener(listener); diff --git a/same/src/test/java/com/orbekk/same/MasterTest.java b/same/src/test/java/com/orbekk/same/MasterTest.java index f369d06..39bee1f 100644 --- a/same/src/test/java/com/orbekk/same/MasterTest.java +++ b/same/src/test/java/com/orbekk/same/MasterTest.java @@ -18,12 +18,6 @@ public class MasterTest { public static class UnreachableClient implements ClientService { @Override - public void notifyNetwork(String networkName, String masterUrl) - throws Exception { - throw new Exception("Unreachable client"); - } - - @Override public void setState(String component, String data, long revision) throws Exception { throw new Exception("Unreachable client"); |