// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: proto/services/serviceReply.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021
#region Designer generated code

using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace Ubii.Services {

  /// <summary>Holder for reflection information generated from proto/services/serviceReply.proto</summary>
  public static partial class ServiceReplyReflection {

    #region Descriptor
    /// <summary>File descriptor for proto/services/serviceReply.proto</summary>
    public static pbr::FileDescriptor Descriptor {
      get { return descriptor; }
    }
    private static pbr::FileDescriptor descriptor;

    static ServiceReplyReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "CiFwcm90by9zZXJ2aWNlcy9zZXJ2aWNlUmVwbHkucHJvdG8SDXViaWkuc2Vy",
            "dmljZXMaG3Byb3RvL2dlbmVyYWwvc3VjY2Vzcy5wcm90bxoZcHJvdG8vZ2Vu",
            "ZXJhbC9lcnJvci5wcm90bxo5cHJvdG8vdG9waWNEYXRhL3RvcGljRGF0YVJl",
            "Y29yZC9kYXRhU3RydWN0dXJlL2xpc3RzLnByb3RvGhpwcm90by9jbGllbnRz",
            "L2NsaWVudC5wcm90bxoacHJvdG8vZGV2aWNlcy9kZXZpY2UucHJvdG8aHHBy",
            "b3RvL2RldmljZXMvdG9waWNNdXgucHJvdG8aHnByb3RvL2RldmljZXMvdG9w",
            "aWNEZW11eC5wcm90bxoacHJvdG8vc2VydmVycy9zZXJ2ZXIucHJvdG8aHHBy",
            "b3RvL3Nlc3Npb25zL3Nlc3Npb24ucHJvdG8aHHByb3RvL3NlcnZpY2VzL3Nl",
            "cnZpY2UucHJvdG8aJ3Byb3RvL3Byb2Nlc3NpbmcvcHJvY2Vzc2luZ01vZHVs",
            "ZS5wcm90bxopcHJvdG8vcHJvY2Vzc2luZy9sb2Nrc3RlcFByb2Nlc3Npbmcu",
            "cHJvdG8i2wcKDFNlcnZpY2VSZXBseRIoCgdzdWNjZXNzGAEgASgLMhUudWJp",
            "aS5nZW5lcmFsLlN1Y2Nlc3NIABIkCgVlcnJvchgCIAEoCzITLnViaWkuZ2Vu",
            "ZXJhbC5FcnJvckgAEiYKBmNsaWVudBgDIAEoCzIULnViaWkuY2xpZW50cy5D",
            "bGllbnRIABImCgZkZXZpY2UYBCABKAsyFC51YmlpLmRldmljZXMuRGV2aWNl",
            "SAASJgoGc2VydmVyGAUgASgLMhQudWJpaS5zZXJ2ZXJzLlNlcnZlckgAEikK",
            "B3Nlc3Npb24YBiABKAsyFi51YmlpLnNlc3Npb25zLlNlc3Npb25IABIyCgxz",
            "ZXNzaW9uX2xpc3QYByABKAsyGi51YmlpLnNlc3Npb25zLlNlc3Npb25MaXN0",
            "SAASPgoRcHJvY2Vzc2luZ19tb2R1bGUYCCABKAsyIS51YmlpLnByb2Nlc3Np",
            "bmcuUHJvY2Vzc2luZ01vZHVsZUgAEkcKFnByb2Nlc3NpbmdfbW9kdWxlX2xp",
            "c3QYCSABKAsyJS51YmlpLnByb2Nlc3NpbmcuUHJvY2Vzc2luZ01vZHVsZUxp",
            "c3RIABI1CgtzdHJpbmdfbGlzdBgKIAEoCzIeLnViaWkuZGF0YVN0cnVjdHVy",
            "ZS5TdHJpbmdMaXN0SAASKwoJdG9waWNfbXV4GAsgASgLMhYudWJpaS5kZXZp",
            "Y2VzLlRvcGljTXV4SAASNAoOdG9waWNfbXV4X2xpc3QYDCABKAsyGi51Ymlp",
            "LmRldmljZXMuVG9waWNNdXhMaXN0SAASLwoLdG9waWNfZGVtdXgYDSABKAsy",
            "GC51YmlpLmRldmljZXMuVG9waWNEZW11eEgAEjgKEHRvcGljX2RlbXV4X2xp",
            "c3QYDiABKAsyHC51YmlpLmRldmljZXMuVG9waWNEZW11eExpc3RIABIvCgtj",
            "bGllbnRfbGlzdBgPIAEoCzIYLnViaWkuY2xpZW50cy5DbGllbnRMaXN0SAAS",
            "LwoLZGV2aWNlX2xpc3QYECABKAsyGC51YmlpLmRldmljZXMuRGV2aWNlTGlz",
            "dEgAEikKB3NlcnZpY2UYESABKAsyFi51YmlpLnNlcnZpY2VzLlNlcnZpY2VI",
            "ABIyCgxzZXJ2aWNlX2xpc3QYEiABKAsyGi51YmlpLnNlcnZpY2VzLlNlcnZp",
            "Y2VMaXN0SAASTQoZbG9ja3N0ZXBfcHJvY2Vzc2luZ19yZXBseRgTIAEoCzIo",
            "LnViaWkucHJvY2Vzc2luZy5Mb2Nrc3RlcFByb2Nlc3NpbmdSZXBseUgAQgYK",
            "BHR5cGViBnByb3RvMw=="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { global::Ubii.General.SuccessReflection.Descriptor, global::Ubii.General.ErrorReflection.Descriptor, global::Ubii.DataStructure.ListsReflection.Descriptor, global::Ubii.Clients.ClientReflection.Descriptor, global::Ubii.Devices.DeviceReflection.Descriptor, global::Ubii.Devices.TopicMuxReflection.Descriptor, global::Ubii.Devices.TopicDemuxReflection.Descriptor, global::Ubii.Servers.ServerReflection.Descriptor, global::Ubii.Sessions.SessionReflection.Descriptor, global::Ubii.Services.ServiceReflection.Descriptor, global::Ubii.Processing.ProcessingModuleReflection.Descriptor, global::Ubii.Processing.LockstepProcessingReflection.Descriptor, },
          new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::Ubii.Services.ServiceReply), global::Ubii.Services.ServiceReply.Parser, new[]{ "Success", "Error", "Client", "Device", "Server", "Session", "SessionList", "ProcessingModule", "ProcessingModuleList", "StringList", "TopicMux", "TopicMuxList", "TopicDemux", "TopicDemuxList", "ClientList", "DeviceList", "Service", "ServiceList", "LockstepProcessingReply" }, new[]{ "Type" }, null, null)
          }));
    }
    #endregion

  }
  #region Messages
  public sealed partial class ServiceReply : pb::IMessage<ServiceReply> {
    private static readonly pb::MessageParser<ServiceReply> _parser = new pb::MessageParser<ServiceReply>(() => new ServiceReply());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pb::MessageParser<ServiceReply> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Ubii.Services.ServiceReplyReflection.Descriptor.MessageTypes[0]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public ServiceReply() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public ServiceReply(ServiceReply other) : this() {
      switch (other.TypeCase) {
        case TypeOneofCase.Success:
          Success = other.Success.Clone();
          break;
        case TypeOneofCase.Error:
          Error = other.Error.Clone();
          break;
        case TypeOneofCase.Client:
          Client = other.Client.Clone();
          break;
        case TypeOneofCase.Device:
          Device = other.Device.Clone();
          break;
        case TypeOneofCase.Server:
          Server = other.Server.Clone();
          break;
        case TypeOneofCase.Session:
          Session = other.Session.Clone();
          break;
        case TypeOneofCase.SessionList:
          SessionList = other.SessionList.Clone();
          break;
        case TypeOneofCase.ProcessingModule:
          ProcessingModule = other.ProcessingModule.Clone();
          break;
        case TypeOneofCase.ProcessingModuleList:
          ProcessingModuleList = other.ProcessingModuleList.Clone();
          break;
        case TypeOneofCase.StringList:
          StringList = other.StringList.Clone();
          break;
        case TypeOneofCase.TopicMux:
          TopicMux = other.TopicMux.Clone();
          break;
        case TypeOneofCase.TopicMuxList:
          TopicMuxList = other.TopicMuxList.Clone();
          break;
        case TypeOneofCase.TopicDemux:
          TopicDemux = other.TopicDemux.Clone();
          break;
        case TypeOneofCase.TopicDemuxList:
          TopicDemuxList = other.TopicDemuxList.Clone();
          break;
        case TypeOneofCase.ClientList:
          ClientList = other.ClientList.Clone();
          break;
        case TypeOneofCase.DeviceList:
          DeviceList = other.DeviceList.Clone();
          break;
        case TypeOneofCase.Service:
          Service = other.Service.Clone();
          break;
        case TypeOneofCase.ServiceList:
          ServiceList = other.ServiceList.Clone();
          break;
        case TypeOneofCase.LockstepProcessingReply:
          LockstepProcessingReply = other.LockstepProcessingReply.Clone();
          break;
      }

      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public ServiceReply Clone() {
      return new ServiceReply(this);
    }

    /// <summary>Field number for the "success" field.</summary>
    public const int SuccessFieldNumber = 1;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Ubii.General.Success Success {
      get { return typeCase_ == TypeOneofCase.Success ? (global::Ubii.General.Success) type_ : null; }
      set {
        type_ = value;
        typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Success;
      }
    }

    /// <summary>Field number for the "error" field.</summary>
    public const int ErrorFieldNumber = 2;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Ubii.General.Error Error {
      get { return typeCase_ == TypeOneofCase.Error ? (global::Ubii.General.Error) type_ : null; }
      set {
        type_ = value;
        typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Error;
      }
    }

    /// <summary>Field number for the "client" field.</summary>
    public const int ClientFieldNumber = 3;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Ubii.Clients.Client Client {
      get { return typeCase_ == TypeOneofCase.Client ? (global::Ubii.Clients.Client) type_ : null; }
      set {
        type_ = value;
        typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Client;
      }
    }

    /// <summary>Field number for the "device" field.</summary>
    public const int DeviceFieldNumber = 4;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Ubii.Devices.Device Device {
      get { return typeCase_ == TypeOneofCase.Device ? (global::Ubii.Devices.Device) type_ : null; }
      set {
        type_ = value;
        typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Device;
      }
    }

    /// <summary>Field number for the "server" field.</summary>
    public const int ServerFieldNumber = 5;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Ubii.Servers.Server Server {
      get { return typeCase_ == TypeOneofCase.Server ? (global::Ubii.Servers.Server) type_ : null; }
      set {
        type_ = value;
        typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Server;
      }
    }

    /// <summary>Field number for the "session" field.</summary>
    public const int SessionFieldNumber = 6;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Ubii.Sessions.Session Session {
      get { return typeCase_ == TypeOneofCase.Session ? (global::Ubii.Sessions.Session) type_ : null; }
      set {
        type_ = value;
        typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Session;
      }
    }

    /// <summary>Field number for the "session_list" field.</summary>
    public const int SessionListFieldNumber = 7;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Ubii.Sessions.SessionList SessionList {
      get { return typeCase_ == TypeOneofCase.SessionList ? (global::Ubii.Sessions.SessionList) type_ : null; }
      set {
        type_ = value;
        typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.SessionList;
      }
    }

    /// <summary>Field number for the "processing_module" field.</summary>
    public const int ProcessingModuleFieldNumber = 8;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Ubii.Processing.ProcessingModule ProcessingModule {
      get { return typeCase_ == TypeOneofCase.ProcessingModule ? (global::Ubii.Processing.ProcessingModule) type_ : null; }
      set {
        type_ = value;
        typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.ProcessingModule;
      }
    }

    /// <summary>Field number for the "processing_module_list" field.</summary>
    public const int ProcessingModuleListFieldNumber = 9;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Ubii.Processing.ProcessingModuleList ProcessingModuleList {
      get { return typeCase_ == TypeOneofCase.ProcessingModuleList ? (global::Ubii.Processing.ProcessingModuleList) type_ : null; }
      set {
        type_ = value;
        typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.ProcessingModuleList;
      }
    }

    /// <summary>Field number for the "string_list" field.</summary>
    public const int StringListFieldNumber = 10;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Ubii.DataStructure.StringList StringList {
      get { return typeCase_ == TypeOneofCase.StringList ? (global::Ubii.DataStructure.StringList) type_ : null; }
      set {
        type_ = value;
        typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.StringList;
      }
    }

    /// <summary>Field number for the "topic_mux" field.</summary>
    public const int TopicMuxFieldNumber = 11;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Ubii.Devices.TopicMux TopicMux {
      get { return typeCase_ == TypeOneofCase.TopicMux ? (global::Ubii.Devices.TopicMux) type_ : null; }
      set {
        type_ = value;
        typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.TopicMux;
      }
    }

    /// <summary>Field number for the "topic_mux_list" field.</summary>
    public const int TopicMuxListFieldNumber = 12;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Ubii.Devices.TopicMuxList TopicMuxList {
      get { return typeCase_ == TypeOneofCase.TopicMuxList ? (global::Ubii.Devices.TopicMuxList) type_ : null; }
      set {
        type_ = value;
        typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.TopicMuxList;
      }
    }

    /// <summary>Field number for the "topic_demux" field.</summary>
    public const int TopicDemuxFieldNumber = 13;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Ubii.Devices.TopicDemux TopicDemux {
      get { return typeCase_ == TypeOneofCase.TopicDemux ? (global::Ubii.Devices.TopicDemux) type_ : null; }
      set {
        type_ = value;
        typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.TopicDemux;
      }
    }

    /// <summary>Field number for the "topic_demux_list" field.</summary>
    public const int TopicDemuxListFieldNumber = 14;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Ubii.Devices.TopicDemuxList TopicDemuxList {
      get { return typeCase_ == TypeOneofCase.TopicDemuxList ? (global::Ubii.Devices.TopicDemuxList) type_ : null; }
      set {
        type_ = value;
        typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.TopicDemuxList;
      }
    }

    /// <summary>Field number for the "client_list" field.</summary>
    public const int ClientListFieldNumber = 15;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Ubii.Clients.ClientList ClientList {
      get { return typeCase_ == TypeOneofCase.ClientList ? (global::Ubii.Clients.ClientList) type_ : null; }
      set {
        type_ = value;
        typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.ClientList;
      }
    }

    /// <summary>Field number for the "device_list" field.</summary>
    public const int DeviceListFieldNumber = 16;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Ubii.Devices.DeviceList DeviceList {
      get { return typeCase_ == TypeOneofCase.DeviceList ? (global::Ubii.Devices.DeviceList) type_ : null; }
      set {
        type_ = value;
        typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.DeviceList;
      }
    }

    /// <summary>Field number for the "service" field.</summary>
    public const int ServiceFieldNumber = 17;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Ubii.Services.Service Service {
      get { return typeCase_ == TypeOneofCase.Service ? (global::Ubii.Services.Service) type_ : null; }
      set {
        type_ = value;
        typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.Service;
      }
    }

    /// <summary>Field number for the "service_list" field.</summary>
    public const int ServiceListFieldNumber = 18;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Ubii.Services.ServiceList ServiceList {
      get { return typeCase_ == TypeOneofCase.ServiceList ? (global::Ubii.Services.ServiceList) type_ : null; }
      set {
        type_ = value;
        typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.ServiceList;
      }
    }

    /// <summary>Field number for the "lockstep_processing_reply" field.</summary>
    public const int LockstepProcessingReplyFieldNumber = 19;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Ubii.Processing.LockstepProcessingReply LockstepProcessingReply {
      get { return typeCase_ == TypeOneofCase.LockstepProcessingReply ? (global::Ubii.Processing.LockstepProcessingReply) type_ : null; }
      set {
        type_ = value;
        typeCase_ = value == null ? TypeOneofCase.None : TypeOneofCase.LockstepProcessingReply;
      }
    }

    private object type_;
    /// <summary>Enum of possible cases for the "type" oneof.</summary>
    public enum TypeOneofCase {
      None = 0,
      Success = 1,
      Error = 2,
      Client = 3,
      Device = 4,
      Server = 5,
      Session = 6,
      SessionList = 7,
      ProcessingModule = 8,
      ProcessingModuleList = 9,
      StringList = 10,
      TopicMux = 11,
      TopicMuxList = 12,
      TopicDemux = 13,
      TopicDemuxList = 14,
      ClientList = 15,
      DeviceList = 16,
      Service = 17,
      ServiceList = 18,
      LockstepProcessingReply = 19,
    }
    private TypeOneofCase typeCase_ = TypeOneofCase.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public TypeOneofCase TypeCase {
      get { return typeCase_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void ClearType() {
      typeCase_ = TypeOneofCase.None;
      type_ = null;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override bool Equals(object other) {
      return Equals(other as ServiceReply);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(ServiceReply other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(Success, other.Success)) return false;
      if (!object.Equals(Error, other.Error)) return false;
      if (!object.Equals(Client, other.Client)) return false;
      if (!object.Equals(Device, other.Device)) return false;
      if (!object.Equals(Server, other.Server)) return false;
      if (!object.Equals(Session, other.Session)) return false;
      if (!object.Equals(SessionList, other.SessionList)) return false;
      if (!object.Equals(ProcessingModule, other.ProcessingModule)) return false;
      if (!object.Equals(ProcessingModuleList, other.ProcessingModuleList)) return false;
      if (!object.Equals(StringList, other.StringList)) return false;
      if (!object.Equals(TopicMux, other.TopicMux)) return false;
      if (!object.Equals(TopicMuxList, other.TopicMuxList)) return false;
      if (!object.Equals(TopicDemux, other.TopicDemux)) return false;
      if (!object.Equals(TopicDemuxList, other.TopicDemuxList)) return false;
      if (!object.Equals(ClientList, other.ClientList)) return false;
      if (!object.Equals(DeviceList, other.DeviceList)) return false;
      if (!object.Equals(Service, other.Service)) return false;
      if (!object.Equals(ServiceList, other.ServiceList)) return false;
      if (!object.Equals(LockstepProcessingReply, other.LockstepProcessingReply)) return false;
      if (TypeCase != other.TypeCase) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (typeCase_ == TypeOneofCase.Success) hash ^= Success.GetHashCode();
      if (typeCase_ == TypeOneofCase.Error) hash ^= Error.GetHashCode();
      if (typeCase_ == TypeOneofCase.Client) hash ^= Client.GetHashCode();
      if (typeCase_ == TypeOneofCase.Device) hash ^= Device.GetHashCode();
      if (typeCase_ == TypeOneofCase.Server) hash ^= Server.GetHashCode();
      if (typeCase_ == TypeOneofCase.Session) hash ^= Session.GetHashCode();
      if (typeCase_ == TypeOneofCase.SessionList) hash ^= SessionList.GetHashCode();
      if (typeCase_ == TypeOneofCase.ProcessingModule) hash ^= ProcessingModule.GetHashCode();
      if (typeCase_ == TypeOneofCase.ProcessingModuleList) hash ^= ProcessingModuleList.GetHashCode();
      if (typeCase_ == TypeOneofCase.StringList) hash ^= StringList.GetHashCode();
      if (typeCase_ == TypeOneofCase.TopicMux) hash ^= TopicMux.GetHashCode();
      if (typeCase_ == TypeOneofCase.TopicMuxList) hash ^= TopicMuxList.GetHashCode();
      if (typeCase_ == TypeOneofCase.TopicDemux) hash ^= TopicDemux.GetHashCode();
      if (typeCase_ == TypeOneofCase.TopicDemuxList) hash ^= TopicDemuxList.GetHashCode();
      if (typeCase_ == TypeOneofCase.ClientList) hash ^= ClientList.GetHashCode();
      if (typeCase_ == TypeOneofCase.DeviceList) hash ^= DeviceList.GetHashCode();
      if (typeCase_ == TypeOneofCase.Service) hash ^= Service.GetHashCode();
      if (typeCase_ == TypeOneofCase.ServiceList) hash ^= ServiceList.GetHashCode();
      if (typeCase_ == TypeOneofCase.LockstepProcessingReply) hash ^= LockstepProcessingReply.GetHashCode();
      hash ^= (int) typeCase_;
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void WriteTo(pb::CodedOutputStream output) {
      if (typeCase_ == TypeOneofCase.Success) {
        output.WriteRawTag(10);
        output.WriteMessage(Success);
      }
      if (typeCase_ == TypeOneofCase.Error) {
        output.WriteRawTag(18);
        output.WriteMessage(Error);
      }
      if (typeCase_ == TypeOneofCase.Client) {
        output.WriteRawTag(26);
        output.WriteMessage(Client);
      }
      if (typeCase_ == TypeOneofCase.Device) {
        output.WriteRawTag(34);
        output.WriteMessage(Device);
      }
      if (typeCase_ == TypeOneofCase.Server) {
        output.WriteRawTag(42);
        output.WriteMessage(Server);
      }
      if (typeCase_ == TypeOneofCase.Session) {
        output.WriteRawTag(50);
        output.WriteMessage(Session);
      }
      if (typeCase_ == TypeOneofCase.SessionList) {
        output.WriteRawTag(58);
        output.WriteMessage(SessionList);
      }
      if (typeCase_ == TypeOneofCase.ProcessingModule) {
        output.WriteRawTag(66);
        output.WriteMessage(ProcessingModule);
      }
      if (typeCase_ == TypeOneofCase.ProcessingModuleList) {
        output.WriteRawTag(74);
        output.WriteMessage(ProcessingModuleList);
      }
      if (typeCase_ == TypeOneofCase.StringList) {
        output.WriteRawTag(82);
        output.WriteMessage(StringList);
      }
      if (typeCase_ == TypeOneofCase.TopicMux) {
        output.WriteRawTag(90);
        output.WriteMessage(TopicMux);
      }
      if (typeCase_ == TypeOneofCase.TopicMuxList) {
        output.WriteRawTag(98);
        output.WriteMessage(TopicMuxList);
      }
      if (typeCase_ == TypeOneofCase.TopicDemux) {
        output.WriteRawTag(106);
        output.WriteMessage(TopicDemux);
      }
      if (typeCase_ == TypeOneofCase.TopicDemuxList) {
        output.WriteRawTag(114);
        output.WriteMessage(TopicDemuxList);
      }
      if (typeCase_ == TypeOneofCase.ClientList) {
        output.WriteRawTag(122);
        output.WriteMessage(ClientList);
      }
      if (typeCase_ == TypeOneofCase.DeviceList) {
        output.WriteRawTag(130, 1);
        output.WriteMessage(DeviceList);
      }
      if (typeCase_ == TypeOneofCase.Service) {
        output.WriteRawTag(138, 1);
        output.WriteMessage(Service);
      }
      if (typeCase_ == TypeOneofCase.ServiceList) {
        output.WriteRawTag(146, 1);
        output.WriteMessage(ServiceList);
      }
      if (typeCase_ == TypeOneofCase.LockstepProcessingReply) {
        output.WriteRawTag(154, 1);
        output.WriteMessage(LockstepProcessingReply);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (typeCase_ == TypeOneofCase.Success) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Success);
      }
      if (typeCase_ == TypeOneofCase.Error) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Error);
      }
      if (typeCase_ == TypeOneofCase.Client) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Client);
      }
      if (typeCase_ == TypeOneofCase.Device) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Device);
      }
      if (typeCase_ == TypeOneofCase.Server) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Server);
      }
      if (typeCase_ == TypeOneofCase.Session) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Session);
      }
      if (typeCase_ == TypeOneofCase.SessionList) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(SessionList);
      }
      if (typeCase_ == TypeOneofCase.ProcessingModule) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(ProcessingModule);
      }
      if (typeCase_ == TypeOneofCase.ProcessingModuleList) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(ProcessingModuleList);
      }
      if (typeCase_ == TypeOneofCase.StringList) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(StringList);
      }
      if (typeCase_ == TypeOneofCase.TopicMux) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(TopicMux);
      }
      if (typeCase_ == TypeOneofCase.TopicMuxList) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(TopicMuxList);
      }
      if (typeCase_ == TypeOneofCase.TopicDemux) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(TopicDemux);
      }
      if (typeCase_ == TypeOneofCase.TopicDemuxList) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(TopicDemuxList);
      }
      if (typeCase_ == TypeOneofCase.ClientList) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(ClientList);
      }
      if (typeCase_ == TypeOneofCase.DeviceList) {
        size += 2 + pb::CodedOutputStream.ComputeMessageSize(DeviceList);
      }
      if (typeCase_ == TypeOneofCase.Service) {
        size += 2 + pb::CodedOutputStream.ComputeMessageSize(Service);
      }
      if (typeCase_ == TypeOneofCase.ServiceList) {
        size += 2 + pb::CodedOutputStream.ComputeMessageSize(ServiceList);
      }
      if (typeCase_ == TypeOneofCase.LockstepProcessingReply) {
        size += 2 + pb::CodedOutputStream.ComputeMessageSize(LockstepProcessingReply);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(ServiceReply other) {
      if (other == null) {
        return;
      }
      switch (other.TypeCase) {
        case TypeOneofCase.Success:
          if (Success == null) {
            Success = new global::Ubii.General.Success();
          }
          Success.MergeFrom(other.Success);
          break;
        case TypeOneofCase.Error:
          if (Error == null) {
            Error = new global::Ubii.General.Error();
          }
          Error.MergeFrom(other.Error);
          break;
        case TypeOneofCase.Client:
          if (Client == null) {
            Client = new global::Ubii.Clients.Client();
          }
          Client.MergeFrom(other.Client);
          break;
        case TypeOneofCase.Device:
          if (Device == null) {
            Device = new global::Ubii.Devices.Device();
          }
          Device.MergeFrom(other.Device);
          break;
        case TypeOneofCase.Server:
          if (Server == null) {
            Server = new global::Ubii.Servers.Server();
          }
          Server.MergeFrom(other.Server);
          break;
        case TypeOneofCase.Session:
          if (Session == null) {
            Session = new global::Ubii.Sessions.Session();
          }
          Session.MergeFrom(other.Session);
          break;
        case TypeOneofCase.SessionList:
          if (SessionList == null) {
            SessionList = new global::Ubii.Sessions.SessionList();
          }
          SessionList.MergeFrom(other.SessionList);
          break;
        case TypeOneofCase.ProcessingModule:
          if (ProcessingModule == null) {
            ProcessingModule = new global::Ubii.Processing.ProcessingModule();
          }
          ProcessingModule.MergeFrom(other.ProcessingModule);
          break;
        case TypeOneofCase.ProcessingModuleList:
          if (ProcessingModuleList == null) {
            ProcessingModuleList = new global::Ubii.Processing.ProcessingModuleList();
          }
          ProcessingModuleList.MergeFrom(other.ProcessingModuleList);
          break;
        case TypeOneofCase.StringList:
          if (StringList == null) {
            StringList = new global::Ubii.DataStructure.StringList();
          }
          StringList.MergeFrom(other.StringList);
          break;
        case TypeOneofCase.TopicMux:
          if (TopicMux == null) {
            TopicMux = new global::Ubii.Devices.TopicMux();
          }
          TopicMux.MergeFrom(other.TopicMux);
          break;
        case TypeOneofCase.TopicMuxList:
          if (TopicMuxList == null) {
            TopicMuxList = new global::Ubii.Devices.TopicMuxList();
          }
          TopicMuxList.MergeFrom(other.TopicMuxList);
          break;
        case TypeOneofCase.TopicDemux:
          if (TopicDemux == null) {
            TopicDemux = new global::Ubii.Devices.TopicDemux();
          }
          TopicDemux.MergeFrom(other.TopicDemux);
          break;
        case TypeOneofCase.TopicDemuxList:
          if (TopicDemuxList == null) {
            TopicDemuxList = new global::Ubii.Devices.TopicDemuxList();
          }
          TopicDemuxList.MergeFrom(other.TopicDemuxList);
          break;
        case TypeOneofCase.ClientList:
          if (ClientList == null) {
            ClientList = new global::Ubii.Clients.ClientList();
          }
          ClientList.MergeFrom(other.ClientList);
          break;
        case TypeOneofCase.DeviceList:
          if (DeviceList == null) {
            DeviceList = new global::Ubii.Devices.DeviceList();
          }
          DeviceList.MergeFrom(other.DeviceList);
          break;
        case TypeOneofCase.Service:
          if (Service == null) {
            Service = new global::Ubii.Services.Service();
          }
          Service.MergeFrom(other.Service);
          break;
        case TypeOneofCase.ServiceList:
          if (ServiceList == null) {
            ServiceList = new global::Ubii.Services.ServiceList();
          }
          ServiceList.MergeFrom(other.ServiceList);
          break;
        case TypeOneofCase.LockstepProcessingReply:
          if (LockstepProcessingReply == null) {
            LockstepProcessingReply = new global::Ubii.Processing.LockstepProcessingReply();
          }
          LockstepProcessingReply.MergeFrom(other.LockstepProcessingReply);
          break;
      }

      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(pb::CodedInputStream input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
        switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 10: {
            global::Ubii.General.Success subBuilder = new global::Ubii.General.Success();
            if (typeCase_ == TypeOneofCase.Success) {
              subBuilder.MergeFrom(Success);
            }
            input.ReadMessage(subBuilder);
            Success = subBuilder;
            break;
          }
          case 18: {
            global::Ubii.General.Error subBuilder = new global::Ubii.General.Error();
            if (typeCase_ == TypeOneofCase.Error) {
              subBuilder.MergeFrom(Error);
            }
            input.ReadMessage(subBuilder);
            Error = subBuilder;
            break;
          }
          case 26: {
            global::Ubii.Clients.Client subBuilder = new global::Ubii.Clients.Client();
            if (typeCase_ == TypeOneofCase.Client) {
              subBuilder.MergeFrom(Client);
            }
            input.ReadMessage(subBuilder);
            Client = subBuilder;
            break;
          }
          case 34: {
            global::Ubii.Devices.Device subBuilder = new global::Ubii.Devices.Device();
            if (typeCase_ == TypeOneofCase.Device) {
              subBuilder.MergeFrom(Device);
            }
            input.ReadMessage(subBuilder);
            Device = subBuilder;
            break;
          }
          case 42: {
            global::Ubii.Servers.Server subBuilder = new global::Ubii.Servers.Server();
            if (typeCase_ == TypeOneofCase.Server) {
              subBuilder.MergeFrom(Server);
            }
            input.ReadMessage(subBuilder);
            Server = subBuilder;
            break;
          }
          case 50: {
            global::Ubii.Sessions.Session subBuilder = new global::Ubii.Sessions.Session();
            if (typeCase_ == TypeOneofCase.Session) {
              subBuilder.MergeFrom(Session);
            }
            input.ReadMessage(subBuilder);
            Session = subBuilder;
            break;
          }
          case 58: {
            global::Ubii.Sessions.SessionList subBuilder = new global::Ubii.Sessions.SessionList();
            if (typeCase_ == TypeOneofCase.SessionList) {
              subBuilder.MergeFrom(SessionList);
            }
            input.ReadMessage(subBuilder);
            SessionList = subBuilder;
            break;
          }
          case 66: {
            global::Ubii.Processing.ProcessingModule subBuilder = new global::Ubii.Processing.ProcessingModule();
            if (typeCase_ == TypeOneofCase.ProcessingModule) {
              subBuilder.MergeFrom(ProcessingModule);
            }
            input.ReadMessage(subBuilder);
            ProcessingModule = subBuilder;
            break;
          }
          case 74: {
            global::Ubii.Processing.ProcessingModuleList subBuilder = new global::Ubii.Processing.ProcessingModuleList();
            if (typeCase_ == TypeOneofCase.ProcessingModuleList) {
              subBuilder.MergeFrom(ProcessingModuleList);
            }
            input.ReadMessage(subBuilder);
            ProcessingModuleList = subBuilder;
            break;
          }
          case 82: {
            global::Ubii.DataStructure.StringList subBuilder = new global::Ubii.DataStructure.StringList();
            if (typeCase_ == TypeOneofCase.StringList) {
              subBuilder.MergeFrom(StringList);
            }
            input.ReadMessage(subBuilder);
            StringList = subBuilder;
            break;
          }
          case 90: {
            global::Ubii.Devices.TopicMux subBuilder = new global::Ubii.Devices.TopicMux();
            if (typeCase_ == TypeOneofCase.TopicMux) {
              subBuilder.MergeFrom(TopicMux);
            }
            input.ReadMessage(subBuilder);
            TopicMux = subBuilder;
            break;
          }
          case 98: {
            global::Ubii.Devices.TopicMuxList subBuilder = new global::Ubii.Devices.TopicMuxList();
            if (typeCase_ == TypeOneofCase.TopicMuxList) {
              subBuilder.MergeFrom(TopicMuxList);
            }
            input.ReadMessage(subBuilder);
            TopicMuxList = subBuilder;
            break;
          }
          case 106: {
            global::Ubii.Devices.TopicDemux subBuilder = new global::Ubii.Devices.TopicDemux();
            if (typeCase_ == TypeOneofCase.TopicDemux) {
              subBuilder.MergeFrom(TopicDemux);
            }
            input.ReadMessage(subBuilder);
            TopicDemux = subBuilder;
            break;
          }
          case 114: {
            global::Ubii.Devices.TopicDemuxList subBuilder = new global::Ubii.Devices.TopicDemuxList();
            if (typeCase_ == TypeOneofCase.TopicDemuxList) {
              subBuilder.MergeFrom(TopicDemuxList);
            }
            input.ReadMessage(subBuilder);
            TopicDemuxList = subBuilder;
            break;
          }
          case 122: {
            global::Ubii.Clients.ClientList subBuilder = new global::Ubii.Clients.ClientList();
            if (typeCase_ == TypeOneofCase.ClientList) {
              subBuilder.MergeFrom(ClientList);
            }
            input.ReadMessage(subBuilder);
            ClientList = subBuilder;
            break;
          }
          case 130: {
            global::Ubii.Devices.DeviceList subBuilder = new global::Ubii.Devices.DeviceList();
            if (typeCase_ == TypeOneofCase.DeviceList) {
              subBuilder.MergeFrom(DeviceList);
            }
            input.ReadMessage(subBuilder);
            DeviceList = subBuilder;
            break;
          }
          case 138: {
            global::Ubii.Services.Service subBuilder = new global::Ubii.Services.Service();
            if (typeCase_ == TypeOneofCase.Service) {
              subBuilder.MergeFrom(Service);
            }
            input.ReadMessage(subBuilder);
            Service = subBuilder;
            break;
          }
          case 146: {
            global::Ubii.Services.ServiceList subBuilder = new global::Ubii.Services.ServiceList();
            if (typeCase_ == TypeOneofCase.ServiceList) {
              subBuilder.MergeFrom(ServiceList);
            }
            input.ReadMessage(subBuilder);
            ServiceList = subBuilder;
            break;
          }
          case 154: {
            global::Ubii.Processing.LockstepProcessingReply subBuilder = new global::Ubii.Processing.LockstepProcessingReply();
            if (typeCase_ == TypeOneofCase.LockstepProcessingReply) {
              subBuilder.MergeFrom(LockstepProcessingReply);
            }
            input.ReadMessage(subBuilder);
            LockstepProcessingReply = subBuilder;
            break;
          }
        }
      }
    }

  }

  #endregion

}

#endregion Designer generated code
