// Generated by the protocol buffer compiler.  DO NOT EDIT!

using pb = global::Google.ProtocolBuffers;
using pbc = global::Google.ProtocolBuffers.Collections;
using pbd = global::Google.ProtocolBuffers.Descriptors;
using scg = global::System.Collections.Generic;
namespace Sirikata.Subscription.Protocol._PBJ_Internal {
  
  public static partial class Subscription {
  
    #region Extension registration
    public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
    }
    #endregion
    #region Static variables
    internal static pbd::MessageDescriptor internal__static_Sirikata_Subscription_Protocol__PBJ_Internal_Address__Descriptor;
    internal static pb::FieldAccess.FieldAccessorTable<global::Sirikata.Subscription.Protocol._PBJ_Internal.Address, global::Sirikata.Subscription.Protocol._PBJ_Internal.Address.Builder> internal__static_Sirikata_Subscription_Protocol__PBJ_Internal_Address__FieldAccessorTable;
    internal static pbd::MessageDescriptor internal__static_Sirikata_Subscription_Protocol__PBJ_Internal_Subscribe__Descriptor;
    internal static pb::FieldAccess.FieldAccessorTable<global::Sirikata.Subscription.Protocol._PBJ_Internal.Subscribe, global::Sirikata.Subscription.Protocol._PBJ_Internal.Subscribe.Builder> internal__static_Sirikata_Subscription_Protocol__PBJ_Internal_Subscribe__FieldAccessorTable;
    internal static pbd::MessageDescriptor internal__static_Sirikata_Subscription_Protocol__PBJ_Internal_Broadcast__Descriptor;
    internal static pb::FieldAccess.FieldAccessorTable<global::Sirikata.Subscription.Protocol._PBJ_Internal.Broadcast, global::Sirikata.Subscription.Protocol._PBJ_Internal.Broadcast.Builder> internal__static_Sirikata_Subscription_Protocol__PBJ_Internal_Broadcast__FieldAccessorTable;
    #endregion
    #region Descriptor
    public static pbd::FileDescriptor Descriptor {
      get { return descriptor; }
    }
    private static pbd::FileDescriptor descriptor;
    
    static Subscription() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          "ChJTdWJzY3JpcHRpb24ucHJvdG8SLFNpcmlrYXRhLlN1YnNjcmlwdGlvbi5Q" + 
          "cm90b2NvbC5fUEJKX0ludGVybmFsIiwKB0FkZHJlc3MSEAoIaG9zdG5hbWUY" + 
          "ASABKAkSDwoHc2VydmljZRgCIAEoCSKMAQoJU3Vic2NyaWJlElAKEWJyb2Fk" + 
          "Y2FzdF9hZGRyZXNzGAcgASgLMjUuU2lyaWthdGEuU3Vic2NyaXB0aW9uLlBy" + 
          "b3RvY29sLl9QQkpfSW50ZXJuYWwuQWRkcmVzcxIWCg5icm9hZGNhc3RfbmFt" + 
          "ZRgIIAEoDBIVCg11cGRhdGVfcGVyaW9kGAkgASgQIiMKCUJyb2FkY2FzdBIW" + 
          "Cg5icm9hZGNhc3RfbmFtZRgHIAEoDA==");
      pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
        descriptor = root;
        internal__static_Sirikata_Subscription_Protocol__PBJ_Internal_Address__Descriptor = Descriptor.MessageTypes[0];
        internal__static_Sirikata_Subscription_Protocol__PBJ_Internal_Address__FieldAccessorTable = 
            new pb::FieldAccess.FieldAccessorTable<global::Sirikata.Subscription.Protocol._PBJ_Internal.Address, global::Sirikata.Subscription.Protocol._PBJ_Internal.Address.Builder>(internal__static_Sirikata_Subscription_Protocol__PBJ_Internal_Address__Descriptor,
                new string[] { "Hostname", "Service", });
        internal__static_Sirikata_Subscription_Protocol__PBJ_Internal_Subscribe__Descriptor = Descriptor.MessageTypes[1];
        internal__static_Sirikata_Subscription_Protocol__PBJ_Internal_Subscribe__FieldAccessorTable = 
            new pb::FieldAccess.FieldAccessorTable<global::Sirikata.Subscription.Protocol._PBJ_Internal.Subscribe, global::Sirikata.Subscription.Protocol._PBJ_Internal.Subscribe.Builder>(internal__static_Sirikata_Subscription_Protocol__PBJ_Internal_Subscribe__Descriptor,
                new string[] { "BroadcastAddress", "BroadcastName", "UpdatePeriod", });
        internal__static_Sirikata_Subscription_Protocol__PBJ_Internal_Broadcast__Descriptor = Descriptor.MessageTypes[2];
        internal__static_Sirikata_Subscription_Protocol__PBJ_Internal_Broadcast__FieldAccessorTable = 
            new pb::FieldAccess.FieldAccessorTable<global::Sirikata.Subscription.Protocol._PBJ_Internal.Broadcast, global::Sirikata.Subscription.Protocol._PBJ_Internal.Broadcast.Builder>(internal__static_Sirikata_Subscription_Protocol__PBJ_Internal_Broadcast__Descriptor,
                new string[] { "BroadcastName", });
        return null;
      };
      pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
          new pbd::FileDescriptor[] {
          }, assigner);
    }
    #endregion
    
  }
  #region Messages
  public sealed partial class Address : pb::GeneratedMessage<Address, Address.Builder> {
    private static readonly Address defaultInstance = new Builder().BuildPartial();
    public static Address DefaultInstance {
      get { return defaultInstance; }
    }
    
    public override Address DefaultInstanceForType {
      get { return defaultInstance; }
    }
    
    protected override Address ThisMessage {
      get { return this; }
    }
    
    public static pbd::MessageDescriptor Descriptor {
      get { return global::Sirikata.Subscription.Protocol._PBJ_Internal.Subscription.internal__static_Sirikata_Subscription_Protocol__PBJ_Internal_Address__Descriptor; }
    }
    
    protected override pb::FieldAccess.FieldAccessorTable<Address, Address.Builder> InternalFieldAccessors {
      get { return global::Sirikata.Subscription.Protocol._PBJ_Internal.Subscription.internal__static_Sirikata_Subscription_Protocol__PBJ_Internal_Address__FieldAccessorTable; }
    }
    
    public const int HostnameFieldNumber = 1;
    private bool hasHostname;
    private string hostname_ = "";
    public bool HasHostname {
      get { return hasHostname; }
    }
    public string Hostname {
      get { return hostname_; }
    }
    
    public const int ServiceFieldNumber = 2;
    private bool hasService;
    private string service_ = "";
    public bool HasService {
      get { return hasService; }
    }
    public string Service {
      get { return service_; }
    }
    
    public override bool IsInitialized {
      get {
        return true;
      }
    }
    
    public override void WriteTo(pb::CodedOutputStream output) {
      if (HasHostname) {
        output.WriteString(1, Hostname);
      }
      if (HasService) {
        output.WriteString(2, Service);
      }
      UnknownFields.WriteTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public override int SerializedSize {
      get {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
        
        size = 0;
        if (HasHostname) {
          size += pb::CodedOutputStream.ComputeStringSize(1, Hostname);
        }
        if (HasService) {
          size += pb::CodedOutputStream.ComputeStringSize(2, Service);
        }
        size += UnknownFields.SerializedSize;
        memoizedSerializedSize = size;
        return size;
      }
    }
    
    public static Address ParseFrom(pb::ByteString data) {
      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
    }
    public static Address ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
    }
    public static Address ParseFrom(byte[] data) {
      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
    }
    public static Address ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
    }
    public static Address ParseFrom(global::System.IO.Stream input) {
      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
    }
    public static Address ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
    }
    public static Address ParseDelimitedFrom(global::System.IO.Stream input) {
      return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
    }
    public static Address ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
      return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
    }
    public static Address ParseFrom(pb::CodedInputStream input) {
      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
    }
    public static Address ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
    }
    public static Builder CreateBuilder() { return new Builder(); }
    public override Builder ToBuilder() { return CreateBuilder(this); }
    public override Builder CreateBuilderForType() { return new Builder(); }
    public static Builder CreateBuilder(Address prototype) {
      return (Builder) new Builder().MergeFrom(prototype);
    }
    
    public sealed partial class Builder : pb::GeneratedBuilder<Address, Builder> {
      protected override Builder ThisBuilder {
        get { return this; }
      }
      public Builder() {}
      
      Address result = new Address();
      
      protected override Address MessageBeingBuilt {
        get { return result; }
      }
      
      public override Builder Clear() {
        result = new Address();
        return this;
      }
      
      public override Builder Clone() {
        return new Builder().MergeFrom(result);
      }
      
      public override pbd::MessageDescriptor DescriptorForType {
        get { return global::Sirikata.Subscription.Protocol._PBJ_Internal.Address.Descriptor; }
      }
      
      public override Address DefaultInstanceForType {
        get { return global::Sirikata.Subscription.Protocol._PBJ_Internal.Address.DefaultInstance; }
      }
      
      public override Address BuildPartial() {
        if (result == null) {
          throw new global::System.InvalidOperationException("build() has already been called on this Builder");
        }
        Address returnMe = result;
        result = null;
        return returnMe;
      }
      
      public override Builder MergeFrom(pb::IMessage other) {
        if (other is Address) {
          return MergeFrom((Address) other);
        } else {
          base.MergeFrom(other);
          return this;
        }
      }
      
      public override Builder MergeFrom(Address other) {
        if (other == global::Sirikata.Subscription.Protocol._PBJ_Internal.Address.DefaultInstance) return this;
        if (other.HasHostname) {
          Hostname = other.Hostname;
        }
        if (other.HasService) {
          Service = other.Service;
        }
        this.MergeUnknownFields(other.UnknownFields);
        return this;
      }
      
      public override Builder MergeFrom(pb::CodedInputStream input) {
        return MergeFrom(input, pb::ExtensionRegistry.Empty);
      }
      
      public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
        pb::UnknownFieldSet.Builder unknownFields = null;
        while (true) {
          uint tag = input.ReadTag();
          switch (tag) {
            case 0: {
              if (unknownFields != null) {
                this.UnknownFields = unknownFields.Build();
              }
              return this;
            }
            default: {
              if (pb::WireFormat.IsEndGroupTag(tag)) {
                if (unknownFields != null) {
                  this.UnknownFields = unknownFields.Build();
                }
                return this;
              }
              if (unknownFields == null) {
                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
              }
              ParseUnknownField(input, unknownFields, extensionRegistry, tag);
              break;
            }
            case 10: {
              Hostname = input.ReadString();
              break;
            }
            case 18: {
              Service = input.ReadString();
              break;
            }
          }
        }
      }
      
      
      public bool HasHostname {
        get { return result.HasHostname; }
      }
      public string Hostname {
        get { return result.Hostname; }
        set { SetHostname(value); }
      }
      public Builder SetHostname(string value) {
        pb::ThrowHelper.ThrowIfNull(value, "value");
        result.hasHostname = true;
        result.hostname_ = value;
        return this;
      }
      public Builder ClearHostname() {
        result.hasHostname = false;
        result.hostname_ = "";
        return this;
      }
      
      public bool HasService {
        get { return result.HasService; }
      }
      public string Service {
        get { return result.Service; }
        set { SetService(value); }
      }
      public Builder SetService(string value) {
        pb::ThrowHelper.ThrowIfNull(value, "value");
        result.hasService = true;
        result.service_ = value;
        return this;
      }
      public Builder ClearService() {
        result.hasService = false;
        result.service_ = "";
        return this;
      }
    }
    static Address() {
      object.ReferenceEquals(global::Sirikata.Subscription.Protocol._PBJ_Internal.Subscription.Descriptor, null);
    }
  }
  
  public sealed partial class Subscribe : pb::GeneratedMessage<Subscribe, Subscribe.Builder> {
    private static readonly Subscribe defaultInstance = new Builder().BuildPartial();
    public static Subscribe DefaultInstance {
      get { return defaultInstance; }
    }
    
    public override Subscribe DefaultInstanceForType {
      get { return defaultInstance; }
    }
    
    protected override Subscribe ThisMessage {
      get { return this; }
    }
    
    public static pbd::MessageDescriptor Descriptor {
      get { return global::Sirikata.Subscription.Protocol._PBJ_Internal.Subscription.internal__static_Sirikata_Subscription_Protocol__PBJ_Internal_Subscribe__Descriptor; }
    }
    
    protected override pb::FieldAccess.FieldAccessorTable<Subscribe, Subscribe.Builder> InternalFieldAccessors {
      get { return global::Sirikata.Subscription.Protocol._PBJ_Internal.Subscription.internal__static_Sirikata_Subscription_Protocol__PBJ_Internal_Subscribe__FieldAccessorTable; }
    }
    
    public const int BroadcastAddressFieldNumber = 7;
    private bool hasBroadcastAddress;
    private global::Sirikata.Subscription.Protocol._PBJ_Internal.Address broadcastAddress_ = global::Sirikata.Subscription.Protocol._PBJ_Internal.Address.DefaultInstance;
    public bool HasBroadcastAddress {
      get { return hasBroadcastAddress; }
    }
    public global::Sirikata.Subscription.Protocol._PBJ_Internal.Address BroadcastAddress {
      get { return broadcastAddress_; }
    }
    
    public const int BroadcastNameFieldNumber = 8;
    private bool hasBroadcastName;
    private pb::ByteString broadcastName_ = pb::ByteString.Empty;
    public bool HasBroadcastName {
      get { return hasBroadcastName; }
    }
    public pb::ByteString BroadcastName {
      get { return broadcastName_; }
    }
    
    public const int UpdatePeriodFieldNumber = 9;
    private bool hasUpdatePeriod;
    private long updatePeriod_ = 0;
    public bool HasUpdatePeriod {
      get { return hasUpdatePeriod; }
    }
    public long UpdatePeriod {
      get { return updatePeriod_; }
    }
    
    public override bool IsInitialized {
      get {
        return true;
      }
    }
    
    public override void WriteTo(pb::CodedOutputStream output) {
      if (HasBroadcastAddress) {
        output.WriteMessage(7, BroadcastAddress);
      }
      if (HasBroadcastName) {
        output.WriteBytes(8, BroadcastName);
      }
      if (HasUpdatePeriod) {
        output.WriteSFixed64(9, UpdatePeriod);
      }
      UnknownFields.WriteTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public override int SerializedSize {
      get {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
        
        size = 0;
        if (HasBroadcastAddress) {
          size += pb::CodedOutputStream.ComputeMessageSize(7, BroadcastAddress);
        }
        if (HasBroadcastName) {
          size += pb::CodedOutputStream.ComputeBytesSize(8, BroadcastName);
        }
        if (HasUpdatePeriod) {
          size += pb::CodedOutputStream.ComputeSFixed64Size(9, UpdatePeriod);
        }
        size += UnknownFields.SerializedSize;
        memoizedSerializedSize = size;
        return size;
      }
    }
    
    public static Subscribe ParseFrom(pb::ByteString data) {
      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
    }
    public static Subscribe ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
    }
    public static Subscribe ParseFrom(byte[] data) {
      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
    }
    public static Subscribe ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
    }
    public static Subscribe ParseFrom(global::System.IO.Stream input) {
      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
    }
    public static Subscribe ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
    }
    public static Subscribe ParseDelimitedFrom(global::System.IO.Stream input) {
      return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
    }
    public static Subscribe ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
      return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
    }
    public static Subscribe ParseFrom(pb::CodedInputStream input) {
      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
    }
    public static Subscribe ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
    }
    public static Builder CreateBuilder() { return new Builder(); }
    public override Builder ToBuilder() { return CreateBuilder(this); }
    public override Builder CreateBuilderForType() { return new Builder(); }
    public static Builder CreateBuilder(Subscribe prototype) {
      return (Builder) new Builder().MergeFrom(prototype);
    }
    
    public sealed partial class Builder : pb::GeneratedBuilder<Subscribe, Builder> {
      protected override Builder ThisBuilder {
        get { return this; }
      }
      public Builder() {}
      
      Subscribe result = new Subscribe();
      
      protected override Subscribe MessageBeingBuilt {
        get { return result; }
      }
      
      public override Builder Clear() {
        result = new Subscribe();
        return this;
      }
      
      public override Builder Clone() {
        return new Builder().MergeFrom(result);
      }
      
      public override pbd::MessageDescriptor DescriptorForType {
        get { return global::Sirikata.Subscription.Protocol._PBJ_Internal.Subscribe.Descriptor; }
      }
      
      public override Subscribe DefaultInstanceForType {
        get { return global::Sirikata.Subscription.Protocol._PBJ_Internal.Subscribe.DefaultInstance; }
      }
      
      public override Subscribe BuildPartial() {
        if (result == null) {
          throw new global::System.InvalidOperationException("build() has already been called on this Builder");
        }
        Subscribe returnMe = result;
        result = null;
        return returnMe;
      }
      
      public override Builder MergeFrom(pb::IMessage other) {
        if (other is Subscribe) {
          return MergeFrom((Subscribe) other);
        } else {
          base.MergeFrom(other);
          return this;
        }
      }
      
      public override Builder MergeFrom(Subscribe other) {
        if (other == global::Sirikata.Subscription.Protocol._PBJ_Internal.Subscribe.DefaultInstance) return this;
        if (other.HasBroadcastAddress) {
          MergeBroadcastAddress(other.BroadcastAddress);
        }
        if (other.HasBroadcastName) {
          BroadcastName = other.BroadcastName;
        }
        if (other.HasUpdatePeriod) {
          UpdatePeriod = other.UpdatePeriod;
        }
        this.MergeUnknownFields(other.UnknownFields);
        return this;
      }
      
      public override Builder MergeFrom(pb::CodedInputStream input) {
        return MergeFrom(input, pb::ExtensionRegistry.Empty);
      }
      
      public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
        pb::UnknownFieldSet.Builder unknownFields = null;
        while (true) {
          uint tag = input.ReadTag();
          switch (tag) {
            case 0: {
              if (unknownFields != null) {
                this.UnknownFields = unknownFields.Build();
              }
              return this;
            }
            default: {
              if (pb::WireFormat.IsEndGroupTag(tag)) {
                if (unknownFields != null) {
                  this.UnknownFields = unknownFields.Build();
                }
                return this;
              }
              if (unknownFields == null) {
                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
              }
              ParseUnknownField(input, unknownFields, extensionRegistry, tag);
              break;
            }
            case 58: {
              global::Sirikata.Subscription.Protocol._PBJ_Internal.Address.Builder subBuilder = global::Sirikata.Subscription.Protocol._PBJ_Internal.Address.CreateBuilder();
              if (HasBroadcastAddress) {
                subBuilder.MergeFrom(BroadcastAddress);
              }
              input.ReadMessage(subBuilder, extensionRegistry);
              BroadcastAddress = subBuilder.BuildPartial();
              break;
            }
            case 66: {
              BroadcastName = input.ReadBytes();
              break;
            }
            case 73: {
              UpdatePeriod = input.ReadSFixed64();
              break;
            }
          }
        }
      }
      
      
      public bool HasBroadcastAddress {
       get { return result.HasBroadcastAddress; }
      }
      public global::Sirikata.Subscription.Protocol._PBJ_Internal.Address BroadcastAddress {
        get { return result.BroadcastAddress; }
        set { SetBroadcastAddress(value); }
      }
      public Builder SetBroadcastAddress(global::Sirikata.Subscription.Protocol._PBJ_Internal.Address value) {
        pb::ThrowHelper.ThrowIfNull(value, "value");
        result.hasBroadcastAddress = true;
        result.broadcastAddress_ = value;
        return this;
      }
      public Builder SetBroadcastAddress(global::Sirikata.Subscription.Protocol._PBJ_Internal.Address.Builder builderForValue) {
        pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
        result.hasBroadcastAddress = true;
        result.broadcastAddress_ = builderForValue.Build();
        return this;
      }
      public Builder MergeBroadcastAddress(global::Sirikata.Subscription.Protocol._PBJ_Internal.Address value) {
        pb::ThrowHelper.ThrowIfNull(value, "value");
        if (result.HasBroadcastAddress &&
            result.broadcastAddress_ != global::Sirikata.Subscription.Protocol._PBJ_Internal.Address.DefaultInstance) {
            result.broadcastAddress_ = global::Sirikata.Subscription.Protocol._PBJ_Internal.Address.CreateBuilder(result.broadcastAddress_).MergeFrom(value).BuildPartial();
        } else {
          result.broadcastAddress_ = value;
        }
        result.hasBroadcastAddress = true;
        return this;
      }
      public Builder ClearBroadcastAddress() {
        result.hasBroadcastAddress = false;
        result.broadcastAddress_ = global::Sirikata.Subscription.Protocol._PBJ_Internal.Address.DefaultInstance;
        return this;
      }
      
      public bool HasBroadcastName {
        get { return result.HasBroadcastName; }
      }
      public pb::ByteString BroadcastName {
        get { return result.BroadcastName; }
        set { SetBroadcastName(value); }
      }
      public Builder SetBroadcastName(pb::ByteString value) {
        pb::ThrowHelper.ThrowIfNull(value, "value");
        result.hasBroadcastName = true;
        result.broadcastName_ = value;
        return this;
      }
      public Builder ClearBroadcastName() {
        result.hasBroadcastName = false;
        result.broadcastName_ = pb::ByteString.Empty;
        return this;
      }
      
      public bool HasUpdatePeriod {
        get { return result.HasUpdatePeriod; }
      }
      public long UpdatePeriod {
        get { return result.UpdatePeriod; }
        set { SetUpdatePeriod(value); }
      }
      public Builder SetUpdatePeriod(long value) {
        result.hasUpdatePeriod = true;
        result.updatePeriod_ = value;
        return this;
      }
      public Builder ClearUpdatePeriod() {
        result.hasUpdatePeriod = false;
        result.updatePeriod_ = 0;
        return this;
      }
    }
    static Subscribe() {
      object.ReferenceEquals(global::Sirikata.Subscription.Protocol._PBJ_Internal.Subscription.Descriptor, null);
    }
  }
  
  public sealed partial class Broadcast : pb::GeneratedMessage<Broadcast, Broadcast.Builder> {
    private static readonly Broadcast defaultInstance = new Builder().BuildPartial();
    public static Broadcast DefaultInstance {
      get { return defaultInstance; }
    }
    
    public override Broadcast DefaultInstanceForType {
      get { return defaultInstance; }
    }
    
    protected override Broadcast ThisMessage {
      get { return this; }
    }
    
    public static pbd::MessageDescriptor Descriptor {
      get { return global::Sirikata.Subscription.Protocol._PBJ_Internal.Subscription.internal__static_Sirikata_Subscription_Protocol__PBJ_Internal_Broadcast__Descriptor; }
    }
    
    protected override pb::FieldAccess.FieldAccessorTable<Broadcast, Broadcast.Builder> InternalFieldAccessors {
      get { return global::Sirikata.Subscription.Protocol._PBJ_Internal.Subscription.internal__static_Sirikata_Subscription_Protocol__PBJ_Internal_Broadcast__FieldAccessorTable; }
    }
    
    public const int BroadcastNameFieldNumber = 7;
    private bool hasBroadcastName;
    private pb::ByteString broadcastName_ = pb::ByteString.Empty;
    public bool HasBroadcastName {
      get { return hasBroadcastName; }
    }
    public pb::ByteString BroadcastName {
      get { return broadcastName_; }
    }
    
    public override bool IsInitialized {
      get {
        return true;
      }
    }
    
    public override void WriteTo(pb::CodedOutputStream output) {
      if (HasBroadcastName) {
        output.WriteBytes(7, BroadcastName);
      }
      UnknownFields.WriteTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public override int SerializedSize {
      get {
        int size = memoizedSerializedSize;
        if (size != -1) return size;
        
        size = 0;
        if (HasBroadcastName) {
          size += pb::CodedOutputStream.ComputeBytesSize(7, BroadcastName);
        }
        size += UnknownFields.SerializedSize;
        memoizedSerializedSize = size;
        return size;
      }
    }
    
    public static Broadcast ParseFrom(pb::ByteString data) {
      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
    }
    public static Broadcast ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
    }
    public static Broadcast ParseFrom(byte[] data) {
      return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
    }
    public static Broadcast ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
      return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
    }
    public static Broadcast ParseFrom(global::System.IO.Stream input) {
      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
    }
    public static Broadcast ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
    }
    public static Broadcast ParseDelimitedFrom(global::System.IO.Stream input) {
      return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
    }
    public static Broadcast ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
      return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
    }
    public static Broadcast ParseFrom(pb::CodedInputStream input) {
      return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
    }
    public static Broadcast ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
      return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
    }
    public static Builder CreateBuilder() { return new Builder(); }
    public override Builder ToBuilder() { return CreateBuilder(this); }
    public override Builder CreateBuilderForType() { return new Builder(); }
    public static Builder CreateBuilder(Broadcast prototype) {
      return (Builder) new Builder().MergeFrom(prototype);
    }
    
    public sealed partial class Builder : pb::GeneratedBuilder<Broadcast, Builder> {
      protected override Builder ThisBuilder {
        get { return this; }
      }
      public Builder() {}
      
      Broadcast result = new Broadcast();
      
      protected override Broadcast MessageBeingBuilt {
        get { return result; }
      }
      
      public override Builder Clear() {
        result = new Broadcast();
        return this;
      }
      
      public override Builder Clone() {
        return new Builder().MergeFrom(result);
      }
      
      public override pbd::MessageDescriptor DescriptorForType {
        get { return global::Sirikata.Subscription.Protocol._PBJ_Internal.Broadcast.Descriptor; }
      }
      
      public override Broadcast DefaultInstanceForType {
        get { return global::Sirikata.Subscription.Protocol._PBJ_Internal.Broadcast.DefaultInstance; }
      }
      
      public override Broadcast BuildPartial() {
        if (result == null) {
          throw new global::System.InvalidOperationException("build() has already been called on this Builder");
        }
        Broadcast returnMe = result;
        result = null;
        return returnMe;
      }
      
      public override Builder MergeFrom(pb::IMessage other) {
        if (other is Broadcast) {
          return MergeFrom((Broadcast) other);
        } else {
          base.MergeFrom(other);
          return this;
        }
      }
      
      public override Builder MergeFrom(Broadcast other) {
        if (other == global::Sirikata.Subscription.Protocol._PBJ_Internal.Broadcast.DefaultInstance) return this;
        if (other.HasBroadcastName) {
          BroadcastName = other.BroadcastName;
        }
        this.MergeUnknownFields(other.UnknownFields);
        return this;
      }
      
      public override Builder MergeFrom(pb::CodedInputStream input) {
        return MergeFrom(input, pb::ExtensionRegistry.Empty);
      }
      
      public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
        pb::UnknownFieldSet.Builder unknownFields = null;
        while (true) {
          uint tag = input.ReadTag();
          switch (tag) {
            case 0: {
              if (unknownFields != null) {
                this.UnknownFields = unknownFields.Build();
              }
              return this;
            }
            default: {
              if (pb::WireFormat.IsEndGroupTag(tag)) {
                if (unknownFields != null) {
                  this.UnknownFields = unknownFields.Build();
                }
                return this;
              }
              if (unknownFields == null) {
                unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
              }
              ParseUnknownField(input, unknownFields, extensionRegistry, tag);
              break;
            }
            case 58: {
              BroadcastName = input.ReadBytes();
              break;
            }
          }
        }
      }
      
      
      public bool HasBroadcastName {
        get { return result.HasBroadcastName; }
      }
      public pb::ByteString BroadcastName {
        get { return result.BroadcastName; }
        set { SetBroadcastName(value); }
      }
      public Builder SetBroadcastName(pb::ByteString value) {
        pb::ThrowHelper.ThrowIfNull(value, "value");
        result.hasBroadcastName = true;
        result.broadcastName_ = value;
        return this;
      }
      public Builder ClearBroadcastName() {
        result.hasBroadcastName = false;
        result.broadcastName_ = pb::ByteString.Empty;
        return this;
      }
    }
    static Broadcast() {
      object.ReferenceEquals(global::Sirikata.Subscription.Protocol._PBJ_Internal.Subscription.Descriptor, null);
    }
  }
  
  #endregion
  
}