// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: proto/sessions/ioMappings.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.Sessions {

  /// <summary>Holder for reflection information generated from proto/sessions/ioMappings.proto</summary>
  public static partial class IoMappingsReflection {

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

    static IoMappingsReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "Ch9wcm90by9zZXNzaW9ucy9pb01hcHBpbmdzLnByb3RvEg11YmlpLnNlc3Np",
            "b25zGhxwcm90by9kZXZpY2VzL3RvcGljTXV4LnByb3RvGh5wcm90by9kZXZp",
            "Y2VzL3RvcGljRGVtdXgucHJvdG8idQoRVG9waWNJbnB1dE1hcHBpbmcSEgoK",
            "aW5wdXRfbmFtZRgBIAEoCRIPCgV0b3BpYxgCIAEoCUgAEisKCXRvcGljX211",
            "eBgDIAEoCzIWLnViaWkuZGV2aWNlcy5Ub3BpY011eEgAQg4KDHRvcGljX3Nv",
            "dXJjZSJLChVUb3BpY0lucHV0TWFwcGluZ0xpc3QSMgoIZWxlbWVudHMYASAD",
            "KAsyIC51YmlpLnNlc3Npb25zLlRvcGljSW5wdXRNYXBwaW5nIoABChJUb3Bp",
            "Y091dHB1dE1hcHBpbmcSEwoLb3V0cHV0X25hbWUYASABKAkSDwoFdG9waWMY",
            "AiABKAlIABIvCgt0b3BpY19kZW11eBgDIAEoCzIYLnViaWkuZGV2aWNlcy5U",
            "b3BpY0RlbXV4SABCEwoRdG9waWNfZGVzdGluYXRpb24iTQoWVG9waWNPdXRw",
            "dXRNYXBwaW5nTGlzdBIzCghlbGVtZW50cxgBIAMoCzIhLnViaWkuc2Vzc2lv",
            "bnMuVG9waWNPdXRwdXRNYXBwaW5nIr8BCglJT01hcHBpbmcSHAoUcHJvY2Vz",
            "c2luZ19tb2R1bGVfaWQYASABKAkSOAoOaW5wdXRfbWFwcGluZ3MYAiADKAsy",
            "IC51YmlpLnNlc3Npb25zLlRvcGljSW5wdXRNYXBwaW5nEjoKD291dHB1dF9t",
            "YXBwaW5ncxgDIAMoCzIhLnViaWkuc2Vzc2lvbnMuVG9waWNPdXRwdXRNYXBw",
            "aW5nEh4KFnByb2Nlc3NpbmdfbW9kdWxlX25hbWUYBCABKAkiOwoNSU9NYXBw",
            "aW5nTGlzdBIqCghlbGVtZW50cxgBIAMoCzIYLnViaWkuc2Vzc2lvbnMuSU9N",
            "YXBwaW5nYgZwcm90bzM="));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { global::Ubii.Devices.TopicMuxReflection.Descriptor, global::Ubii.Devices.TopicDemuxReflection.Descriptor, },
          new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::Ubii.Sessions.TopicInputMapping), global::Ubii.Sessions.TopicInputMapping.Parser, new[]{ "InputName", "Topic", "TopicMux" }, new[]{ "TopicSource" }, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Ubii.Sessions.TopicInputMappingList), global::Ubii.Sessions.TopicInputMappingList.Parser, new[]{ "Elements" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Ubii.Sessions.TopicOutputMapping), global::Ubii.Sessions.TopicOutputMapping.Parser, new[]{ "OutputName", "Topic", "TopicDemux" }, new[]{ "TopicDestination" }, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Ubii.Sessions.TopicOutputMappingList), global::Ubii.Sessions.TopicOutputMappingList.Parser, new[]{ "Elements" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Ubii.Sessions.IOMapping), global::Ubii.Sessions.IOMapping.Parser, new[]{ "ProcessingModuleId", "InputMappings", "OutputMappings", "ProcessingModuleName" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Ubii.Sessions.IOMappingList), global::Ubii.Sessions.IOMappingList.Parser, new[]{ "Elements" }, null, null, null)
          }));
    }
    #endregion

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

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

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public TopicInputMapping(TopicInputMapping other) : this() {
      inputName_ = other.inputName_;
      switch (other.TopicSourceCase) {
        case TopicSourceOneofCase.Topic:
          Topic = other.Topic;
          break;
        case TopicSourceOneofCase.TopicMux:
          TopicMux = other.TopicMux.Clone();
          break;
      }

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

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

    /// <summary>Field number for the "input_name" field.</summary>
    public const int InputNameFieldNumber = 1;
    private string inputName_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string InputName {
      get { return inputName_; }
      set {
        inputName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "topic" field.</summary>
    public const int TopicFieldNumber = 2;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string Topic {
      get { return topicSourceCase_ == TopicSourceOneofCase.Topic ? (string) topicSource_ : ""; }
      set {
        topicSource_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
        topicSourceCase_ = TopicSourceOneofCase.Topic;
      }
    }

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

    private object topicSource_;
    /// <summary>Enum of possible cases for the "topic_source" oneof.</summary>
    public enum TopicSourceOneofCase {
      None = 0,
      Topic = 2,
      TopicMux = 3,
    }
    private TopicSourceOneofCase topicSourceCase_ = TopicSourceOneofCase.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public TopicSourceOneofCase TopicSourceCase {
      get { return topicSourceCase_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void ClearTopicSource() {
      topicSourceCase_ = TopicSourceOneofCase.None;
      topicSource_ = null;
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(TopicInputMapping other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (InputName != other.InputName) return false;
      if (Topic != other.Topic) return false;
      if (!object.Equals(TopicMux, other.TopicMux)) return false;
      if (TopicSourceCase != other.TopicSourceCase) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (InputName.Length != 0) hash ^= InputName.GetHashCode();
      if (topicSourceCase_ == TopicSourceOneofCase.Topic) hash ^= Topic.GetHashCode();
      if (topicSourceCase_ == TopicSourceOneofCase.TopicMux) hash ^= TopicMux.GetHashCode();
      hash ^= (int) topicSourceCase_;
      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 (InputName.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(InputName);
      }
      if (topicSourceCase_ == TopicSourceOneofCase.Topic) {
        output.WriteRawTag(18);
        output.WriteString(Topic);
      }
      if (topicSourceCase_ == TopicSourceOneofCase.TopicMux) {
        output.WriteRawTag(26);
        output.WriteMessage(TopicMux);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (InputName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(InputName);
      }
      if (topicSourceCase_ == TopicSourceOneofCase.Topic) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Topic);
      }
      if (topicSourceCase_ == TopicSourceOneofCase.TopicMux) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(TopicMux);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(TopicInputMapping other) {
      if (other == null) {
        return;
      }
      if (other.InputName.Length != 0) {
        InputName = other.InputName;
      }
      switch (other.TopicSourceCase) {
        case TopicSourceOneofCase.Topic:
          Topic = other.Topic;
          break;
        case TopicSourceOneofCase.TopicMux:
          if (TopicMux == null) {
            TopicMux = new global::Ubii.Devices.TopicMux();
          }
          TopicMux.MergeFrom(other.TopicMux);
          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: {
            InputName = input.ReadString();
            break;
          }
          case 18: {
            Topic = input.ReadString();
            break;
          }
          case 26: {
            global::Ubii.Devices.TopicMux subBuilder = new global::Ubii.Devices.TopicMux();
            if (topicSourceCase_ == TopicSourceOneofCase.TopicMux) {
              subBuilder.MergeFrom(TopicMux);
            }
            input.ReadMessage(subBuilder);
            TopicMux = subBuilder;
            break;
          }
        }
      }
    }

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Ubii.Sessions.IoMappingsReflection.Descriptor.MessageTypes[1]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public TopicInputMappingList(TopicInputMappingList other) : this() {
      elements_ = other.elements_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

    /// <summary>Field number for the "elements" field.</summary>
    public const int ElementsFieldNumber = 1;
    private static readonly pb::FieldCodec<global::Ubii.Sessions.TopicInputMapping> _repeated_elements_codec
        = pb::FieldCodec.ForMessage(10, global::Ubii.Sessions.TopicInputMapping.Parser);
    private readonly pbc::RepeatedField<global::Ubii.Sessions.TopicInputMapping> elements_ = new pbc::RepeatedField<global::Ubii.Sessions.TopicInputMapping>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::Ubii.Sessions.TopicInputMapping> Elements {
      get { return elements_; }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(TopicInputMappingList other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!elements_.Equals(other.elements_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      hash ^= elements_.GetHashCode();
      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) {
      elements_.WriteTo(output, _repeated_elements_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      size += elements_.CalculateSize(_repeated_elements_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(TopicInputMappingList other) {
      if (other == null) {
        return;
      }
      elements_.Add(other.elements_);
      _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: {
            elements_.AddEntriesFrom(input, _repeated_elements_codec);
            break;
          }
        }
      }
    }

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Ubii.Sessions.IoMappingsReflection.Descriptor.MessageTypes[2]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public TopicOutputMapping(TopicOutputMapping other) : this() {
      outputName_ = other.outputName_;
      switch (other.TopicDestinationCase) {
        case TopicDestinationOneofCase.Topic:
          Topic = other.Topic;
          break;
        case TopicDestinationOneofCase.TopicDemux:
          TopicDemux = other.TopicDemux.Clone();
          break;
      }

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

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

    /// <summary>Field number for the "output_name" field.</summary>
    public const int OutputNameFieldNumber = 1;
    private string outputName_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string OutputName {
      get { return outputName_; }
      set {
        outputName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "topic" field.</summary>
    public const int TopicFieldNumber = 2;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string Topic {
      get { return topicDestinationCase_ == TopicDestinationOneofCase.Topic ? (string) topicDestination_ : ""; }
      set {
        topicDestination_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
        topicDestinationCase_ = TopicDestinationOneofCase.Topic;
      }
    }

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

    private object topicDestination_;
    /// <summary>Enum of possible cases for the "topic_destination" oneof.</summary>
    public enum TopicDestinationOneofCase {
      None = 0,
      Topic = 2,
      TopicDemux = 3,
    }
    private TopicDestinationOneofCase topicDestinationCase_ = TopicDestinationOneofCase.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public TopicDestinationOneofCase TopicDestinationCase {
      get { return topicDestinationCase_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void ClearTopicDestination() {
      topicDestinationCase_ = TopicDestinationOneofCase.None;
      topicDestination_ = null;
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(TopicOutputMapping other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (OutputName != other.OutputName) return false;
      if (Topic != other.Topic) return false;
      if (!object.Equals(TopicDemux, other.TopicDemux)) return false;
      if (TopicDestinationCase != other.TopicDestinationCase) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (OutputName.Length != 0) hash ^= OutputName.GetHashCode();
      if (topicDestinationCase_ == TopicDestinationOneofCase.Topic) hash ^= Topic.GetHashCode();
      if (topicDestinationCase_ == TopicDestinationOneofCase.TopicDemux) hash ^= TopicDemux.GetHashCode();
      hash ^= (int) topicDestinationCase_;
      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 (OutputName.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(OutputName);
      }
      if (topicDestinationCase_ == TopicDestinationOneofCase.Topic) {
        output.WriteRawTag(18);
        output.WriteString(Topic);
      }
      if (topicDestinationCase_ == TopicDestinationOneofCase.TopicDemux) {
        output.WriteRawTag(26);
        output.WriteMessage(TopicDemux);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (OutputName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(OutputName);
      }
      if (topicDestinationCase_ == TopicDestinationOneofCase.Topic) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Topic);
      }
      if (topicDestinationCase_ == TopicDestinationOneofCase.TopicDemux) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(TopicDemux);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(TopicOutputMapping other) {
      if (other == null) {
        return;
      }
      if (other.OutputName.Length != 0) {
        OutputName = other.OutputName;
      }
      switch (other.TopicDestinationCase) {
        case TopicDestinationOneofCase.Topic:
          Topic = other.Topic;
          break;
        case TopicDestinationOneofCase.TopicDemux:
          if (TopicDemux == null) {
            TopicDemux = new global::Ubii.Devices.TopicDemux();
          }
          TopicDemux.MergeFrom(other.TopicDemux);
          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: {
            OutputName = input.ReadString();
            break;
          }
          case 18: {
            Topic = input.ReadString();
            break;
          }
          case 26: {
            global::Ubii.Devices.TopicDemux subBuilder = new global::Ubii.Devices.TopicDemux();
            if (topicDestinationCase_ == TopicDestinationOneofCase.TopicDemux) {
              subBuilder.MergeFrom(TopicDemux);
            }
            input.ReadMessage(subBuilder);
            TopicDemux = subBuilder;
            break;
          }
        }
      }
    }

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Ubii.Sessions.IoMappingsReflection.Descriptor.MessageTypes[3]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public TopicOutputMappingList(TopicOutputMappingList other) : this() {
      elements_ = other.elements_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

    /// <summary>Field number for the "elements" field.</summary>
    public const int ElementsFieldNumber = 1;
    private static readonly pb::FieldCodec<global::Ubii.Sessions.TopicOutputMapping> _repeated_elements_codec
        = pb::FieldCodec.ForMessage(10, global::Ubii.Sessions.TopicOutputMapping.Parser);
    private readonly pbc::RepeatedField<global::Ubii.Sessions.TopicOutputMapping> elements_ = new pbc::RepeatedField<global::Ubii.Sessions.TopicOutputMapping>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::Ubii.Sessions.TopicOutputMapping> Elements {
      get { return elements_; }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(TopicOutputMappingList other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!elements_.Equals(other.elements_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      hash ^= elements_.GetHashCode();
      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) {
      elements_.WriteTo(output, _repeated_elements_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      size += elements_.CalculateSize(_repeated_elements_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(TopicOutputMappingList other) {
      if (other == null) {
        return;
      }
      elements_.Add(other.elements_);
      _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: {
            elements_.AddEntriesFrom(input, _repeated_elements_codec);
            break;
          }
        }
      }
    }

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Ubii.Sessions.IoMappingsReflection.Descriptor.MessageTypes[4]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public IOMapping(IOMapping other) : this() {
      processingModuleId_ = other.processingModuleId_;
      inputMappings_ = other.inputMappings_.Clone();
      outputMappings_ = other.outputMappings_.Clone();
      processingModuleName_ = other.processingModuleName_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

    /// <summary>Field number for the "processing_module_id" field.</summary>
    public const int ProcessingModuleIdFieldNumber = 1;
    private string processingModuleId_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string ProcessingModuleId {
      get { return processingModuleId_; }
      set {
        processingModuleId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "input_mappings" field.</summary>
    public const int InputMappingsFieldNumber = 2;
    private static readonly pb::FieldCodec<global::Ubii.Sessions.TopicInputMapping> _repeated_inputMappings_codec
        = pb::FieldCodec.ForMessage(18, global::Ubii.Sessions.TopicInputMapping.Parser);
    private readonly pbc::RepeatedField<global::Ubii.Sessions.TopicInputMapping> inputMappings_ = new pbc::RepeatedField<global::Ubii.Sessions.TopicInputMapping>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::Ubii.Sessions.TopicInputMapping> InputMappings {
      get { return inputMappings_; }
    }

    /// <summary>Field number for the "output_mappings" field.</summary>
    public const int OutputMappingsFieldNumber = 3;
    private static readonly pb::FieldCodec<global::Ubii.Sessions.TopicOutputMapping> _repeated_outputMappings_codec
        = pb::FieldCodec.ForMessage(26, global::Ubii.Sessions.TopicOutputMapping.Parser);
    private readonly pbc::RepeatedField<global::Ubii.Sessions.TopicOutputMapping> outputMappings_ = new pbc::RepeatedField<global::Ubii.Sessions.TopicOutputMapping>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::Ubii.Sessions.TopicOutputMapping> OutputMappings {
      get { return outputMappings_; }
    }

    /// <summary>Field number for the "processing_module_name" field.</summary>
    public const int ProcessingModuleNameFieldNumber = 4;
    private string processingModuleName_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string ProcessingModuleName {
      get { return processingModuleName_; }
      set {
        processingModuleName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(IOMapping other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (ProcessingModuleId != other.ProcessingModuleId) return false;
      if(!inputMappings_.Equals(other.inputMappings_)) return false;
      if(!outputMappings_.Equals(other.outputMappings_)) return false;
      if (ProcessingModuleName != other.ProcessingModuleName) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (ProcessingModuleId.Length != 0) hash ^= ProcessingModuleId.GetHashCode();
      hash ^= inputMappings_.GetHashCode();
      hash ^= outputMappings_.GetHashCode();
      if (ProcessingModuleName.Length != 0) hash ^= ProcessingModuleName.GetHashCode();
      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 (ProcessingModuleId.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(ProcessingModuleId);
      }
      inputMappings_.WriteTo(output, _repeated_inputMappings_codec);
      outputMappings_.WriteTo(output, _repeated_outputMappings_codec);
      if (ProcessingModuleName.Length != 0) {
        output.WriteRawTag(34);
        output.WriteString(ProcessingModuleName);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (ProcessingModuleId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(ProcessingModuleId);
      }
      size += inputMappings_.CalculateSize(_repeated_inputMappings_codec);
      size += outputMappings_.CalculateSize(_repeated_outputMappings_codec);
      if (ProcessingModuleName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(ProcessingModuleName);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(IOMapping other) {
      if (other == null) {
        return;
      }
      if (other.ProcessingModuleId.Length != 0) {
        ProcessingModuleId = other.ProcessingModuleId;
      }
      inputMappings_.Add(other.inputMappings_);
      outputMappings_.Add(other.outputMappings_);
      if (other.ProcessingModuleName.Length != 0) {
        ProcessingModuleName = other.ProcessingModuleName;
      }
      _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: {
            ProcessingModuleId = input.ReadString();
            break;
          }
          case 18: {
            inputMappings_.AddEntriesFrom(input, _repeated_inputMappings_codec);
            break;
          }
          case 26: {
            outputMappings_.AddEntriesFrom(input, _repeated_outputMappings_codec);
            break;
          }
          case 34: {
            ProcessingModuleName = input.ReadString();
            break;
          }
        }
      }
    }

  }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::Ubii.Sessions.IoMappingsReflection.Descriptor.MessageTypes[5]; }
    }

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public IOMappingList(IOMappingList other) : this() {
      elements_ = other.elements_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

    /// <summary>Field number for the "elements" field.</summary>
    public const int ElementsFieldNumber = 1;
    private static readonly pb::FieldCodec<global::Ubii.Sessions.IOMapping> _repeated_elements_codec
        = pb::FieldCodec.ForMessage(10, global::Ubii.Sessions.IOMapping.Parser);
    private readonly pbc::RepeatedField<global::Ubii.Sessions.IOMapping> elements_ = new pbc::RepeatedField<global::Ubii.Sessions.IOMapping>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::Ubii.Sessions.IOMapping> Elements {
      get { return elements_; }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(IOMappingList other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if(!elements_.Equals(other.elements_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      hash ^= elements_.GetHashCode();
      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) {
      elements_.WriteTo(output, _repeated_elements_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      size += elements_.CalculateSize(_repeated_elements_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(IOMappingList other) {
      if (other == null) {
        return;
      }
      elements_.Add(other.elements_);
      _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: {
            elements_.AddEntriesFrom(input, _repeated_elements_codec);
            break;
          }
        }
      }
    }

  }

  #endregion

}

#endregion Designer generated code
