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

  /// <summary>Holder for reflection information generated from proto/processing/processingModule.proto</summary>
  public static partial class ProcessingModuleReflection {

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

    static ProcessingModuleReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "Cidwcm90by9wcm9jZXNzaW5nL3Byb2Nlc3NpbmdNb2R1bGUucHJvdG8SD3Vi",
            "aWkucHJvY2Vzc2luZyL0AgoOUHJvY2Vzc2luZ01vZGUSPgoJZnJlcXVlbmN5",
            "GAEgASgLMikudWJpaS5wcm9jZXNzaW5nLlByb2Nlc3NpbmdNb2RlLkZyZXF1",
            "ZW5jeUgAEjwKCGxvY2tzdGVwGAIgASgLMigudWJpaS5wcm9jZXNzaW5nLlBy",
            "b2Nlc3NpbmdNb2RlLkxvY2tzdGVwSAASSgoQdHJpZ2dlcl9vbl9pbnB1dBgD",
            "IAEoCzIuLnViaWkucHJvY2Vzc2luZy5Qcm9jZXNzaW5nTW9kZS5UcmlnZ2Vy",
            "T25JbnB1dEgAGhoKCUZyZXF1ZW5jeRINCgVoZXJ0ehgBIAEoBRosCghMb2Nr",
            "c3RlcBIgChhwcm9jZXNzX3JlcXVlc3RfZW5kcG9pbnQYASABKAkaRgoOVHJp",
            "Z2dlck9uSW5wdXQSFAoMbWluX2RlbGF5X21zGAEgASgFEh4KFmFsbF9pbnB1",
            "dHNfbmVlZF91cGRhdGUYAiABKAhCBgoEbW9kZSI5CghNb2R1bGVJTxIVCg1p",
            "bnRlcm5hbF9uYW1lGAEgASgJEhYKDm1lc3NhZ2VfZm9ybWF0GAIgASgJIpwF",
            "ChBQcm9jZXNzaW5nTW9kdWxlEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkS",
            "DwoHYXV0aG9ycxgDIAMoCRIMCgR0YWdzGAQgAygJEhMKC2Rlc2NyaXB0aW9u",
            "GAUgASgJEg8KB25vZGVfaWQYBiABKAkSEgoKc2Vzc2lvbl9pZBgHIAEoCRI4",
            "CgZzdGF0dXMYCCABKA4yKC51YmlpLnByb2Nlc3NpbmcuUHJvY2Vzc2luZ01v",
            "ZHVsZS5TdGF0dXMSOAoPcHJvY2Vzc2luZ19tb2RlGAkgASgLMh8udWJpaS5w",
            "cm9jZXNzaW5nLlByb2Nlc3NpbmdNb2RlEikKBmlucHV0cxgKIAMoCzIZLnVi",
            "aWkucHJvY2Vzc2luZy5Nb2R1bGVJTxIqCgdvdXRwdXRzGAsgAygLMhkudWJp",
            "aS5wcm9jZXNzaW5nLk1vZHVsZUlPEjwKCGxhbmd1YWdlGAwgASgOMioudWJp",
            "aS5wcm9jZXNzaW5nLlByb2Nlc3NpbmdNb2R1bGUuTGFuZ3VhZ2USIQoZb25f",
            "cHJvY2Vzc2luZ19zdHJpbmdpZmllZBgNIAEoCRIeChZvbl9jcmVhdGVkX3N0",
            "cmluZ2lmaWVkGA4gASgJEh0KFW9uX2hhbHRlZF9zdHJpbmdpZmllZBgPIAEo",
            "CRIgChhvbl9kZXN0cm95ZWRfc3RyaW5naWZpZWQYECABKAkiUQoGU3RhdHVz",
            "Eg8KC0lOSVRJQUxJWkVEEAASCwoHQ1JFQVRFRBABEg4KClBST0NFU1NJTkcQ",
            "AhIKCgZIQUxURUQQAxINCglERVNUUk9ZRUQQBCI1CghMYW5ndWFnZRIHCgND",
            "UFAQABIGCgJQWRABEgYKAkpTEAISBgoCQ1MQAxIICgRKQVZBEAQiSwoUUHJv",
            "Y2Vzc2luZ01vZHVsZUxpc3QSMwoIZWxlbWVudHMYASADKAsyIS51YmlpLnBy",
            "b2Nlc3NpbmcuUHJvY2Vzc2luZ01vZHVsZWIGcHJvdG8z"));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { },
          new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::Ubii.Processing.ProcessingMode), global::Ubii.Processing.ProcessingMode.Parser, new[]{ "Frequency", "Lockstep", "TriggerOnInput" }, new[]{ "Mode" }, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Ubii.Processing.ProcessingMode.Types.Frequency), global::Ubii.Processing.ProcessingMode.Types.Frequency.Parser, new[]{ "Hertz" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Ubii.Processing.ProcessingMode.Types.Lockstep), global::Ubii.Processing.ProcessingMode.Types.Lockstep.Parser, new[]{ "ProcessRequestEndpoint" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Ubii.Processing.ProcessingMode.Types.TriggerOnInput), global::Ubii.Processing.ProcessingMode.Types.TriggerOnInput.Parser, new[]{ "MinDelayMs", "AllInputsNeedUpdate" }, null, null, null)}),
            new pbr::GeneratedClrTypeInfo(typeof(global::Ubii.Processing.ModuleIO), global::Ubii.Processing.ModuleIO.Parser, new[]{ "InternalName", "MessageFormat" }, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Ubii.Processing.ProcessingModule), global::Ubii.Processing.ProcessingModule.Parser, new[]{ "Id", "Name", "Authors", "Tags", "Description", "NodeId", "SessionId", "Status", "ProcessingMode", "Inputs", "Outputs", "Language", "OnProcessingStringified", "OnCreatedStringified", "OnHaltedStringified", "OnDestroyedStringified" }, null, new[]{ typeof(global::Ubii.Processing.ProcessingModule.Types.Status), typeof(global::Ubii.Processing.ProcessingModule.Types.Language) }, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::Ubii.Processing.ProcessingModuleList), global::Ubii.Processing.ProcessingModuleList.Parser, new[]{ "Elements" }, null, null, null)
          }));
    }
    #endregion

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

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

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public ProcessingMode(ProcessingMode other) : this() {
      switch (other.ModeCase) {
        case ModeOneofCase.Frequency:
          Frequency = other.Frequency.Clone();
          break;
        case ModeOneofCase.Lockstep:
          Lockstep = other.Lockstep.Clone();
          break;
        case ModeOneofCase.TriggerOnInput:
          TriggerOnInput = other.TriggerOnInput.Clone();
          break;
      }

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

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

    /// <summary>Field number for the "frequency" field.</summary>
    public const int FrequencyFieldNumber = 1;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Ubii.Processing.ProcessingMode.Types.Frequency Frequency {
      get { return modeCase_ == ModeOneofCase.Frequency ? (global::Ubii.Processing.ProcessingMode.Types.Frequency) mode_ : null; }
      set {
        mode_ = value;
        modeCase_ = value == null ? ModeOneofCase.None : ModeOneofCase.Frequency;
      }
    }

    /// <summary>Field number for the "lockstep" field.</summary>
    public const int LockstepFieldNumber = 2;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Ubii.Processing.ProcessingMode.Types.Lockstep Lockstep {
      get { return modeCase_ == ModeOneofCase.Lockstep ? (global::Ubii.Processing.ProcessingMode.Types.Lockstep) mode_ : null; }
      set {
        mode_ = value;
        modeCase_ = value == null ? ModeOneofCase.None : ModeOneofCase.Lockstep;
      }
    }

    /// <summary>Field number for the "trigger_on_input" field.</summary>
    public const int TriggerOnInputFieldNumber = 3;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Ubii.Processing.ProcessingMode.Types.TriggerOnInput TriggerOnInput {
      get { return modeCase_ == ModeOneofCase.TriggerOnInput ? (global::Ubii.Processing.ProcessingMode.Types.TriggerOnInput) mode_ : null; }
      set {
        mode_ = value;
        modeCase_ = value == null ? ModeOneofCase.None : ModeOneofCase.TriggerOnInput;
      }
    }

    private object mode_;
    /// <summary>Enum of possible cases for the "mode" oneof.</summary>
    public enum ModeOneofCase {
      None = 0,
      Frequency = 1,
      Lockstep = 2,
      TriggerOnInput = 3,
    }
    private ModeOneofCase modeCase_ = ModeOneofCase.None;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public ModeOneofCase ModeCase {
      get { return modeCase_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void ClearMode() {
      modeCase_ = ModeOneofCase.None;
      mode_ = null;
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(ProcessingMode other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!object.Equals(Frequency, other.Frequency)) return false;
      if (!object.Equals(Lockstep, other.Lockstep)) return false;
      if (!object.Equals(TriggerOnInput, other.TriggerOnInput)) return false;
      if (ModeCase != other.ModeCase) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (modeCase_ == ModeOneofCase.Frequency) hash ^= Frequency.GetHashCode();
      if (modeCase_ == ModeOneofCase.Lockstep) hash ^= Lockstep.GetHashCode();
      if (modeCase_ == ModeOneofCase.TriggerOnInput) hash ^= TriggerOnInput.GetHashCode();
      hash ^= (int) modeCase_;
      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 (modeCase_ == ModeOneofCase.Frequency) {
        output.WriteRawTag(10);
        output.WriteMessage(Frequency);
      }
      if (modeCase_ == ModeOneofCase.Lockstep) {
        output.WriteRawTag(18);
        output.WriteMessage(Lockstep);
      }
      if (modeCase_ == ModeOneofCase.TriggerOnInput) {
        output.WriteRawTag(26);
        output.WriteMessage(TriggerOnInput);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (modeCase_ == ModeOneofCase.Frequency) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Frequency);
      }
      if (modeCase_ == ModeOneofCase.Lockstep) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(Lockstep);
      }
      if (modeCase_ == ModeOneofCase.TriggerOnInput) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(TriggerOnInput);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(ProcessingMode other) {
      if (other == null) {
        return;
      }
      switch (other.ModeCase) {
        case ModeOneofCase.Frequency:
          if (Frequency == null) {
            Frequency = new global::Ubii.Processing.ProcessingMode.Types.Frequency();
          }
          Frequency.MergeFrom(other.Frequency);
          break;
        case ModeOneofCase.Lockstep:
          if (Lockstep == null) {
            Lockstep = new global::Ubii.Processing.ProcessingMode.Types.Lockstep();
          }
          Lockstep.MergeFrom(other.Lockstep);
          break;
        case ModeOneofCase.TriggerOnInput:
          if (TriggerOnInput == null) {
            TriggerOnInput = new global::Ubii.Processing.ProcessingMode.Types.TriggerOnInput();
          }
          TriggerOnInput.MergeFrom(other.TriggerOnInput);
          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.Processing.ProcessingMode.Types.Frequency subBuilder = new global::Ubii.Processing.ProcessingMode.Types.Frequency();
            if (modeCase_ == ModeOneofCase.Frequency) {
              subBuilder.MergeFrom(Frequency);
            }
            input.ReadMessage(subBuilder);
            Frequency = subBuilder;
            break;
          }
          case 18: {
            global::Ubii.Processing.ProcessingMode.Types.Lockstep subBuilder = new global::Ubii.Processing.ProcessingMode.Types.Lockstep();
            if (modeCase_ == ModeOneofCase.Lockstep) {
              subBuilder.MergeFrom(Lockstep);
            }
            input.ReadMessage(subBuilder);
            Lockstep = subBuilder;
            break;
          }
          case 26: {
            global::Ubii.Processing.ProcessingMode.Types.TriggerOnInput subBuilder = new global::Ubii.Processing.ProcessingMode.Types.TriggerOnInput();
            if (modeCase_ == ModeOneofCase.TriggerOnInput) {
              subBuilder.MergeFrom(TriggerOnInput);
            }
            input.ReadMessage(subBuilder);
            TriggerOnInput = subBuilder;
            break;
          }
        }
      }
    }

    #region Nested types
    /// <summary>Container for nested types declared in the ProcessingMode message type.</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static partial class Types {
      public sealed partial class Frequency : pb::IMessage<Frequency> {
        private static readonly pb::MessageParser<Frequency> _parser = new pb::MessageParser<Frequency>(() => new Frequency());
        private pb::UnknownFieldSet _unknownFields;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pb::MessageParser<Frequency> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor {
          get { return global::Ubii.Processing.ProcessingMode.Descriptor.NestedTypes[0]; }
        }

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

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

        partial void OnConstruction();

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

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

        /// <summary>Field number for the "hertz" field.</summary>
        public const int HertzFieldNumber = 1;
        private int hertz_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int Hertz {
          get { return hertz_; }
          set {
            hertz_ = value;
          }
        }

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

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

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

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize() {
          int size = 0;
          if (Hertz != 0) {
            size += 1 + pb::CodedOutputStream.ComputeInt32Size(Hertz);
          }
          if (_unknownFields != null) {
            size += _unknownFields.CalculateSize();
          }
          return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(Frequency other) {
          if (other == null) {
            return;
          }
          if (other.Hertz != 0) {
            Hertz = other.Hertz;
          }
          _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 8: {
                Hertz = input.ReadInt32();
                break;
              }
            }
          }
        }

      }

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

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor {
          get { return global::Ubii.Processing.ProcessingMode.Descriptor.NestedTypes[1]; }
        }

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

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

        partial void OnConstruction();

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

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

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

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

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

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

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

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(Lockstep other) {
          if (other == null) {
            return;
          }
          if (other.ProcessRequestEndpoint.Length != 0) {
            ProcessRequestEndpoint = other.ProcessRequestEndpoint;
          }
          _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: {
                ProcessRequestEndpoint = input.ReadString();
                break;
              }
            }
          }
        }

      }

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

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public static pbr::MessageDescriptor Descriptor {
          get { return global::Ubii.Processing.ProcessingMode.Descriptor.NestedTypes[2]; }
        }

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

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

        partial void OnConstruction();

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

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

        /// <summary>Field number for the "min_delay_ms" field.</summary>
        public const int MinDelayMsFieldNumber = 1;
        private int minDelayMs_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int MinDelayMs {
          get { return minDelayMs_; }
          set {
            minDelayMs_ = value;
          }
        }

        /// <summary>Field number for the "all_inputs_need_update" field.</summary>
        public const int AllInputsNeedUpdateFieldNumber = 2;
        private bool allInputsNeedUpdate_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public bool AllInputsNeedUpdate {
          get { return allInputsNeedUpdate_; }
          set {
            allInputsNeedUpdate_ = value;
          }
        }

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

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

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public override int GetHashCode() {
          int hash = 1;
          if (MinDelayMs != 0) hash ^= MinDelayMs.GetHashCode();
          if (AllInputsNeedUpdate != false) hash ^= AllInputsNeedUpdate.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 (MinDelayMs != 0) {
            output.WriteRawTag(8);
            output.WriteInt32(MinDelayMs);
          }
          if (AllInputsNeedUpdate != false) {
            output.WriteRawTag(16);
            output.WriteBool(AllInputsNeedUpdate);
          }
          if (_unknownFields != null) {
            _unknownFields.WriteTo(output);
          }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public int CalculateSize() {
          int size = 0;
          if (MinDelayMs != 0) {
            size += 1 + pb::CodedOutputStream.ComputeInt32Size(MinDelayMs);
          }
          if (AllInputsNeedUpdate != false) {
            size += 1 + 1;
          }
          if (_unknownFields != null) {
            size += _unknownFields.CalculateSize();
          }
          return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        public void MergeFrom(TriggerOnInput other) {
          if (other == null) {
            return;
          }
          if (other.MinDelayMs != 0) {
            MinDelayMs = other.MinDelayMs;
          }
          if (other.AllInputsNeedUpdate != false) {
            AllInputsNeedUpdate = other.AllInputsNeedUpdate;
          }
          _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 8: {
                MinDelayMs = input.ReadInt32();
                break;
              }
              case 16: {
                AllInputsNeedUpdate = input.ReadBool();
                break;
              }
            }
          }
        }

      }

    }
    #endregion

  }

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

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

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

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

    partial void OnConstruction();

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

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

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

    /// <summary>Field number for the "message_format" field.</summary>
    public const int MessageFormatFieldNumber = 2;
    private string messageFormat_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string MessageFormat {
      get { return messageFormat_; }
      set {
        messageFormat_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (InternalName.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(InternalName);
      }
      if (MessageFormat.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(MessageFormat);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(ModuleIO other) {
      if (other == null) {
        return;
      }
      if (other.InternalName.Length != 0) {
        InternalName = other.InternalName;
      }
      if (other.MessageFormat.Length != 0) {
        MessageFormat = other.MessageFormat;
      }
      _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: {
            InternalName = input.ReadString();
            break;
          }
          case 18: {
            MessageFormat = input.ReadString();
            break;
          }
        }
      }
    }

  }

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

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

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

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

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public ProcessingModule(ProcessingModule other) : this() {
      id_ = other.id_;
      name_ = other.name_;
      authors_ = other.authors_.Clone();
      tags_ = other.tags_.Clone();
      description_ = other.description_;
      nodeId_ = other.nodeId_;
      sessionId_ = other.sessionId_;
      status_ = other.status_;
      processingMode_ = other.processingMode_ != null ? other.processingMode_.Clone() : null;
      inputs_ = other.inputs_.Clone();
      outputs_ = other.outputs_.Clone();
      language_ = other.language_;
      onProcessingStringified_ = other.onProcessingStringified_;
      onCreatedStringified_ = other.onCreatedStringified_;
      onHaltedStringified_ = other.onHaltedStringified_;
      onDestroyedStringified_ = other.onDestroyedStringified_;
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

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

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

    /// <summary>Field number for the "name" field.</summary>
    public const int NameFieldNumber = 2;
    private string name_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string Name {
      get { return name_; }
      set {
        name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "authors" field.</summary>
    public const int AuthorsFieldNumber = 3;
    private static readonly pb::FieldCodec<string> _repeated_authors_codec
        = pb::FieldCodec.ForString(26);
    private readonly pbc::RepeatedField<string> authors_ = new pbc::RepeatedField<string>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<string> Authors {
      get { return authors_; }
    }

    /// <summary>Field number for the "tags" field.</summary>
    public const int TagsFieldNumber = 4;
    private static readonly pb::FieldCodec<string> _repeated_tags_codec
        = pb::FieldCodec.ForString(34);
    private readonly pbc::RepeatedField<string> tags_ = new pbc::RepeatedField<string>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<string> Tags {
      get { return tags_; }
    }

    /// <summary>Field number for the "description" field.</summary>
    public const int DescriptionFieldNumber = 5;
    private string description_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string Description {
      get { return description_; }
      set {
        description_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "node_id" field.</summary>
    public const int NodeIdFieldNumber = 6;
    private string nodeId_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string NodeId {
      get { return nodeId_; }
      set {
        nodeId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "session_id" field.</summary>
    public const int SessionIdFieldNumber = 7;
    private string sessionId_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string SessionId {
      get { return sessionId_; }
      set {
        sessionId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "status" field.</summary>
    public const int StatusFieldNumber = 8;
    private global::Ubii.Processing.ProcessingModule.Types.Status status_ = 0;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Ubii.Processing.ProcessingModule.Types.Status Status {
      get { return status_; }
      set {
        status_ = value;
      }
    }

    /// <summary>Field number for the "processing_mode" field.</summary>
    public const int ProcessingModeFieldNumber = 9;
    private global::Ubii.Processing.ProcessingMode processingMode_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Ubii.Processing.ProcessingMode ProcessingMode {
      get { return processingMode_; }
      set {
        processingMode_ = value;
      }
    }

    /// <summary>Field number for the "inputs" field.</summary>
    public const int InputsFieldNumber = 10;
    private static readonly pb::FieldCodec<global::Ubii.Processing.ModuleIO> _repeated_inputs_codec
        = pb::FieldCodec.ForMessage(82, global::Ubii.Processing.ModuleIO.Parser);
    private readonly pbc::RepeatedField<global::Ubii.Processing.ModuleIO> inputs_ = new pbc::RepeatedField<global::Ubii.Processing.ModuleIO>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::Ubii.Processing.ModuleIO> Inputs {
      get { return inputs_; }
    }

    /// <summary>Field number for the "outputs" field.</summary>
    public const int OutputsFieldNumber = 11;
    private static readonly pb::FieldCodec<global::Ubii.Processing.ModuleIO> _repeated_outputs_codec
        = pb::FieldCodec.ForMessage(90, global::Ubii.Processing.ModuleIO.Parser);
    private readonly pbc::RepeatedField<global::Ubii.Processing.ModuleIO> outputs_ = new pbc::RepeatedField<global::Ubii.Processing.ModuleIO>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public pbc::RepeatedField<global::Ubii.Processing.ModuleIO> Outputs {
      get { return outputs_; }
    }

    /// <summary>Field number for the "language" field.</summary>
    public const int LanguageFieldNumber = 12;
    private global::Ubii.Processing.ProcessingModule.Types.Language language_ = 0;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public global::Ubii.Processing.ProcessingModule.Types.Language Language {
      get { return language_; }
      set {
        language_ = value;
      }
    }

    /// <summary>Field number for the "on_processing_stringified" field.</summary>
    public const int OnProcessingStringifiedFieldNumber = 13;
    private string onProcessingStringified_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string OnProcessingStringified {
      get { return onProcessingStringified_; }
      set {
        onProcessingStringified_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "on_created_stringified" field.</summary>
    public const int OnCreatedStringifiedFieldNumber = 14;
    private string onCreatedStringified_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string OnCreatedStringified {
      get { return onCreatedStringified_; }
      set {
        onCreatedStringified_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "on_halted_stringified" field.</summary>
    public const int OnHaltedStringifiedFieldNumber = 15;
    private string onHaltedStringified_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string OnHaltedStringified {
      get { return onHaltedStringified_; }
      set {
        onHaltedStringified_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

    /// <summary>Field number for the "on_destroyed_stringified" field.</summary>
    public const int OnDestroyedStringifiedFieldNumber = 16;
    private string onDestroyedStringified_ = "";
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public string OnDestroyedStringified {
      get { return onDestroyedStringified_; }
      set {
        onDestroyedStringified_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
      }
    }

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(ProcessingModule other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (Id != other.Id) return false;
      if (Name != other.Name) return false;
      if(!authors_.Equals(other.authors_)) return false;
      if(!tags_.Equals(other.tags_)) return false;
      if (Description != other.Description) return false;
      if (NodeId != other.NodeId) return false;
      if (SessionId != other.SessionId) return false;
      if (Status != other.Status) return false;
      if (!object.Equals(ProcessingMode, other.ProcessingMode)) return false;
      if(!inputs_.Equals(other.inputs_)) return false;
      if(!outputs_.Equals(other.outputs_)) return false;
      if (Language != other.Language) return false;
      if (OnProcessingStringified != other.OnProcessingStringified) return false;
      if (OnCreatedStringified != other.OnCreatedStringified) return false;
      if (OnHaltedStringified != other.OnHaltedStringified) return false;
      if (OnDestroyedStringified != other.OnDestroyedStringified) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public override int GetHashCode() {
      int hash = 1;
      if (Id.Length != 0) hash ^= Id.GetHashCode();
      if (Name.Length != 0) hash ^= Name.GetHashCode();
      hash ^= authors_.GetHashCode();
      hash ^= tags_.GetHashCode();
      if (Description.Length != 0) hash ^= Description.GetHashCode();
      if (NodeId.Length != 0) hash ^= NodeId.GetHashCode();
      if (SessionId.Length != 0) hash ^= SessionId.GetHashCode();
      if (Status != 0) hash ^= Status.GetHashCode();
      if (processingMode_ != null) hash ^= ProcessingMode.GetHashCode();
      hash ^= inputs_.GetHashCode();
      hash ^= outputs_.GetHashCode();
      if (Language != 0) hash ^= Language.GetHashCode();
      if (OnProcessingStringified.Length != 0) hash ^= OnProcessingStringified.GetHashCode();
      if (OnCreatedStringified.Length != 0) hash ^= OnCreatedStringified.GetHashCode();
      if (OnHaltedStringified.Length != 0) hash ^= OnHaltedStringified.GetHashCode();
      if (OnDestroyedStringified.Length != 0) hash ^= OnDestroyedStringified.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 (Id.Length != 0) {
        output.WriteRawTag(10);
        output.WriteString(Id);
      }
      if (Name.Length != 0) {
        output.WriteRawTag(18);
        output.WriteString(Name);
      }
      authors_.WriteTo(output, _repeated_authors_codec);
      tags_.WriteTo(output, _repeated_tags_codec);
      if (Description.Length != 0) {
        output.WriteRawTag(42);
        output.WriteString(Description);
      }
      if (NodeId.Length != 0) {
        output.WriteRawTag(50);
        output.WriteString(NodeId);
      }
      if (SessionId.Length != 0) {
        output.WriteRawTag(58);
        output.WriteString(SessionId);
      }
      if (Status != 0) {
        output.WriteRawTag(64);
        output.WriteEnum((int) Status);
      }
      if (processingMode_ != null) {
        output.WriteRawTag(74);
        output.WriteMessage(ProcessingMode);
      }
      inputs_.WriteTo(output, _repeated_inputs_codec);
      outputs_.WriteTo(output, _repeated_outputs_codec);
      if (Language != 0) {
        output.WriteRawTag(96);
        output.WriteEnum((int) Language);
      }
      if (OnProcessingStringified.Length != 0) {
        output.WriteRawTag(106);
        output.WriteString(OnProcessingStringified);
      }
      if (OnCreatedStringified.Length != 0) {
        output.WriteRawTag(114);
        output.WriteString(OnCreatedStringified);
      }
      if (OnHaltedStringified.Length != 0) {
        output.WriteRawTag(122);
        output.WriteString(OnHaltedStringified);
      }
      if (OnDestroyedStringified.Length != 0) {
        output.WriteRawTag(130, 1);
        output.WriteString(OnDestroyedStringified);
      }
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public int CalculateSize() {
      int size = 0;
      if (Id.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Id);
      }
      if (Name.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
      }
      size += authors_.CalculateSize(_repeated_authors_codec);
      size += tags_.CalculateSize(_repeated_tags_codec);
      if (Description.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(Description);
      }
      if (NodeId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(NodeId);
      }
      if (SessionId.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(SessionId);
      }
      if (Status != 0) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Status);
      }
      if (processingMode_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(ProcessingMode);
      }
      size += inputs_.CalculateSize(_repeated_inputs_codec);
      size += outputs_.CalculateSize(_repeated_outputs_codec);
      if (Language != 0) {
        size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Language);
      }
      if (OnProcessingStringified.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(OnProcessingStringified);
      }
      if (OnCreatedStringified.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(OnCreatedStringified);
      }
      if (OnHaltedStringified.Length != 0) {
        size += 1 + pb::CodedOutputStream.ComputeStringSize(OnHaltedStringified);
      }
      if (OnDestroyedStringified.Length != 0) {
        size += 2 + pb::CodedOutputStream.ComputeStringSize(OnDestroyedStringified);
      }
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public void MergeFrom(ProcessingModule other) {
      if (other == null) {
        return;
      }
      if (other.Id.Length != 0) {
        Id = other.Id;
      }
      if (other.Name.Length != 0) {
        Name = other.Name;
      }
      authors_.Add(other.authors_);
      tags_.Add(other.tags_);
      if (other.Description.Length != 0) {
        Description = other.Description;
      }
      if (other.NodeId.Length != 0) {
        NodeId = other.NodeId;
      }
      if (other.SessionId.Length != 0) {
        SessionId = other.SessionId;
      }
      if (other.Status != 0) {
        Status = other.Status;
      }
      if (other.processingMode_ != null) {
        if (processingMode_ == null) {
          processingMode_ = new global::Ubii.Processing.ProcessingMode();
        }
        ProcessingMode.MergeFrom(other.ProcessingMode);
      }
      inputs_.Add(other.inputs_);
      outputs_.Add(other.outputs_);
      if (other.Language != 0) {
        Language = other.Language;
      }
      if (other.OnProcessingStringified.Length != 0) {
        OnProcessingStringified = other.OnProcessingStringified;
      }
      if (other.OnCreatedStringified.Length != 0) {
        OnCreatedStringified = other.OnCreatedStringified;
      }
      if (other.OnHaltedStringified.Length != 0) {
        OnHaltedStringified = other.OnHaltedStringified;
      }
      if (other.OnDestroyedStringified.Length != 0) {
        OnDestroyedStringified = other.OnDestroyedStringified;
      }
      _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: {
            Id = input.ReadString();
            break;
          }
          case 18: {
            Name = input.ReadString();
            break;
          }
          case 26: {
            authors_.AddEntriesFrom(input, _repeated_authors_codec);
            break;
          }
          case 34: {
            tags_.AddEntriesFrom(input, _repeated_tags_codec);
            break;
          }
          case 42: {
            Description = input.ReadString();
            break;
          }
          case 50: {
            NodeId = input.ReadString();
            break;
          }
          case 58: {
            SessionId = input.ReadString();
            break;
          }
          case 64: {
            status_ = (global::Ubii.Processing.ProcessingModule.Types.Status) input.ReadEnum();
            break;
          }
          case 74: {
            if (processingMode_ == null) {
              processingMode_ = new global::Ubii.Processing.ProcessingMode();
            }
            input.ReadMessage(processingMode_);
            break;
          }
          case 82: {
            inputs_.AddEntriesFrom(input, _repeated_inputs_codec);
            break;
          }
          case 90: {
            outputs_.AddEntriesFrom(input, _repeated_outputs_codec);
            break;
          }
          case 96: {
            language_ = (global::Ubii.Processing.ProcessingModule.Types.Language) input.ReadEnum();
            break;
          }
          case 106: {
            OnProcessingStringified = input.ReadString();
            break;
          }
          case 114: {
            OnCreatedStringified = input.ReadString();
            break;
          }
          case 122: {
            OnHaltedStringified = input.ReadString();
            break;
          }
          case 130: {
            OnDestroyedStringified = input.ReadString();
            break;
          }
        }
      }
    }

    #region Nested types
    /// <summary>Container for nested types declared in the ProcessingModule message type.</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public static partial class Types {
      public enum Status {
        [pbr::OriginalName("INITIALIZED")] Initialized = 0,
        [pbr::OriginalName("CREATED")] Created = 1,
        [pbr::OriginalName("PROCESSING")] Processing = 2,
        [pbr::OriginalName("HALTED")] Halted = 3,
        [pbr::OriginalName("DESTROYED")] Destroyed = 4,
      }

      public enum Language {
        [pbr::OriginalName("CPP")] Cpp = 0,
        [pbr::OriginalName("PY")] Py = 1,
        [pbr::OriginalName("JS")] Js = 2,
        [pbr::OriginalName("CS")] Cs = 3,
        [pbr::OriginalName("JAVA")] Java = 4,
      }

    }
    #endregion

  }

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

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

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

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

    partial void OnConstruction();

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

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

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

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

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    public bool Equals(ProcessingModuleList 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(ProcessingModuleList 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
