// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: stream_out/chromecast/cast_channel.proto

#ifndef GOOGLE_PROTOBUF_INCLUDED_stream_5fout_2fchromecast_2fcast_5fchannel_2eproto
#define GOOGLE_PROTOBUF_INCLUDED_stream_5fout_2fchromecast_2fcast_5fchannel_2eproto

#include <limits>
#include <string>

#include <google/protobuf/port_def.inc>
#if PROTOBUF_VERSION < 3021000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers. Please update
#error your headers.
#endif
#if 3021012 < PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers. Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/port_undef.inc>
#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/metadata_lite.h>
#include <google/protobuf/message_lite.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/generated_enum_util.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
#define PROTOBUF_INTERNAL_EXPORT_stream_5fout_2fchromecast_2fcast_5fchannel_2eproto
PROTOBUF_NAMESPACE_OPEN
namespace internal {
class AnyMetadata;
}  // namespace internal
PROTOBUF_NAMESPACE_CLOSE

// Internal implementation detail -- do not use these members.
struct TableStruct_stream_5fout_2fchromecast_2fcast_5fchannel_2eproto {
  static const uint32_t offsets[];
};
namespace castchannel {
class AuthChallenge;
struct AuthChallengeDefaultTypeInternal;
extern AuthChallengeDefaultTypeInternal _AuthChallenge_default_instance_;
class AuthError;
struct AuthErrorDefaultTypeInternal;
extern AuthErrorDefaultTypeInternal _AuthError_default_instance_;
class AuthResponse;
struct AuthResponseDefaultTypeInternal;
extern AuthResponseDefaultTypeInternal _AuthResponse_default_instance_;
class CastMessage;
struct CastMessageDefaultTypeInternal;
extern CastMessageDefaultTypeInternal _CastMessage_default_instance_;
class DeviceAuthMessage;
struct DeviceAuthMessageDefaultTypeInternal;
extern DeviceAuthMessageDefaultTypeInternal _DeviceAuthMessage_default_instance_;
}  // namespace castchannel
PROTOBUF_NAMESPACE_OPEN
template<> ::castchannel::AuthChallenge* Arena::CreateMaybeMessage<::castchannel::AuthChallenge>(Arena*);
template<> ::castchannel::AuthError* Arena::CreateMaybeMessage<::castchannel::AuthError>(Arena*);
template<> ::castchannel::AuthResponse* Arena::CreateMaybeMessage<::castchannel::AuthResponse>(Arena*);
template<> ::castchannel::CastMessage* Arena::CreateMaybeMessage<::castchannel::CastMessage>(Arena*);
template<> ::castchannel::DeviceAuthMessage* Arena::CreateMaybeMessage<::castchannel::DeviceAuthMessage>(Arena*);
PROTOBUF_NAMESPACE_CLOSE
namespace castchannel {

enum CastMessage_ProtocolVersion : int {
  CastMessage_ProtocolVersion_CASTV2_1_0 = 0
};
bool CastMessage_ProtocolVersion_IsValid(int value);
constexpr CastMessage_ProtocolVersion CastMessage_ProtocolVersion_ProtocolVersion_MIN = CastMessage_ProtocolVersion_CASTV2_1_0;
constexpr CastMessage_ProtocolVersion CastMessage_ProtocolVersion_ProtocolVersion_MAX = CastMessage_ProtocolVersion_CASTV2_1_0;
constexpr int CastMessage_ProtocolVersion_ProtocolVersion_ARRAYSIZE = CastMessage_ProtocolVersion_ProtocolVersion_MAX + 1;

const std::string& CastMessage_ProtocolVersion_Name(CastMessage_ProtocolVersion value);
template<typename T>
inline const std::string& CastMessage_ProtocolVersion_Name(T enum_t_value) {
  static_assert(::std::is_same<T, CastMessage_ProtocolVersion>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function CastMessage_ProtocolVersion_Name.");
  return CastMessage_ProtocolVersion_Name(static_cast<CastMessage_ProtocolVersion>(enum_t_value));
}
bool CastMessage_ProtocolVersion_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, CastMessage_ProtocolVersion* value);
enum CastMessage_PayloadType : int {
  CastMessage_PayloadType_STRING = 0,
  CastMessage_PayloadType_BINARY = 1
};
bool CastMessage_PayloadType_IsValid(int value);
constexpr CastMessage_PayloadType CastMessage_PayloadType_PayloadType_MIN = CastMessage_PayloadType_STRING;
constexpr CastMessage_PayloadType CastMessage_PayloadType_PayloadType_MAX = CastMessage_PayloadType_BINARY;
constexpr int CastMessage_PayloadType_PayloadType_ARRAYSIZE = CastMessage_PayloadType_PayloadType_MAX + 1;

const std::string& CastMessage_PayloadType_Name(CastMessage_PayloadType value);
template<typename T>
inline const std::string& CastMessage_PayloadType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, CastMessage_PayloadType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function CastMessage_PayloadType_Name.");
  return CastMessage_PayloadType_Name(static_cast<CastMessage_PayloadType>(enum_t_value));
}
bool CastMessage_PayloadType_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, CastMessage_PayloadType* value);
enum AuthError_ErrorType : int {
  AuthError_ErrorType_INTERNAL_ERROR = 0,
  AuthError_ErrorType_NO_TLS = 1
};
bool AuthError_ErrorType_IsValid(int value);
constexpr AuthError_ErrorType AuthError_ErrorType_ErrorType_MIN = AuthError_ErrorType_INTERNAL_ERROR;
constexpr AuthError_ErrorType AuthError_ErrorType_ErrorType_MAX = AuthError_ErrorType_NO_TLS;
constexpr int AuthError_ErrorType_ErrorType_ARRAYSIZE = AuthError_ErrorType_ErrorType_MAX + 1;

const std::string& AuthError_ErrorType_Name(AuthError_ErrorType value);
template<typename T>
inline const std::string& AuthError_ErrorType_Name(T enum_t_value) {
  static_assert(::std::is_same<T, AuthError_ErrorType>::value ||
    ::std::is_integral<T>::value,
    "Incorrect type passed to function AuthError_ErrorType_Name.");
  return AuthError_ErrorType_Name(static_cast<AuthError_ErrorType>(enum_t_value));
}
bool AuthError_ErrorType_Parse(
    ::PROTOBUF_NAMESPACE_ID::ConstStringParam name, AuthError_ErrorType* value);
// ===================================================================

class CastMessage final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:castchannel.CastMessage) */ {
 public:
  inline CastMessage() : CastMessage(nullptr) {}
  ~CastMessage() override;
  explicit PROTOBUF_CONSTEXPR CastMessage(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  CastMessage(const CastMessage& from);
  CastMessage(CastMessage&& from) noexcept
    : CastMessage() {
    *this = ::std::move(from);
  }

  inline CastMessage& operator=(const CastMessage& from) {
    CopyFrom(from);
    return *this;
  }
  inline CastMessage& operator=(CastMessage&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString);
  }
  inline std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<std::string>();
  }

  static const CastMessage& default_instance() {
    return *internal_default_instance();
  }
  static inline const CastMessage* internal_default_instance() {
    return reinterpret_cast<const CastMessage*>(
               &_CastMessage_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  friend void swap(CastMessage& a, CastMessage& b) {
    a.Swap(&b);
  }
  inline void Swap(CastMessage* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(CastMessage* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  CastMessage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<CastMessage>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const CastMessage& from);
  void MergeFrom(const CastMessage& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(CastMessage* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "castchannel.CastMessage";
  }
  protected:
  explicit CastMessage(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  typedef CastMessage_ProtocolVersion ProtocolVersion;
  static constexpr ProtocolVersion CASTV2_1_0 =
    CastMessage_ProtocolVersion_CASTV2_1_0;
  static inline bool ProtocolVersion_IsValid(int value) {
    return CastMessage_ProtocolVersion_IsValid(value);
  }
  static constexpr ProtocolVersion ProtocolVersion_MIN =
    CastMessage_ProtocolVersion_ProtocolVersion_MIN;
  static constexpr ProtocolVersion ProtocolVersion_MAX =
    CastMessage_ProtocolVersion_ProtocolVersion_MAX;
  static constexpr int ProtocolVersion_ARRAYSIZE =
    CastMessage_ProtocolVersion_ProtocolVersion_ARRAYSIZE;
  template<typename T>
  static inline const std::string& ProtocolVersion_Name(T enum_t_value) {
    static_assert(::std::is_same<T, ProtocolVersion>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function ProtocolVersion_Name.");
    return CastMessage_ProtocolVersion_Name(enum_t_value);
  }
  static inline bool ProtocolVersion_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
      ProtocolVersion* value) {
    return CastMessage_ProtocolVersion_Parse(name, value);
  }

  typedef CastMessage_PayloadType PayloadType;
  static constexpr PayloadType STRING =
    CastMessage_PayloadType_STRING;
  static constexpr PayloadType BINARY =
    CastMessage_PayloadType_BINARY;
  static inline bool PayloadType_IsValid(int value) {
    return CastMessage_PayloadType_IsValid(value);
  }
  static constexpr PayloadType PayloadType_MIN =
    CastMessage_PayloadType_PayloadType_MIN;
  static constexpr PayloadType PayloadType_MAX =
    CastMessage_PayloadType_PayloadType_MAX;
  static constexpr int PayloadType_ARRAYSIZE =
    CastMessage_PayloadType_PayloadType_ARRAYSIZE;
  template<typename T>
  static inline const std::string& PayloadType_Name(T enum_t_value) {
    static_assert(::std::is_same<T, PayloadType>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function PayloadType_Name.");
    return CastMessage_PayloadType_Name(enum_t_value);
  }
  static inline bool PayloadType_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
      PayloadType* value) {
    return CastMessage_PayloadType_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  enum : int {
    kSourceIdFieldNumber = 2,
    kDestinationIdFieldNumber = 3,
    kNamespaceFieldNumber = 4,
    kPayloadUtf8FieldNumber = 6,
    kPayloadBinaryFieldNumber = 7,
    kProtocolVersionFieldNumber = 1,
    kPayloadTypeFieldNumber = 5,
  };
  // required string source_id = 2;
  bool has_source_id() const;
  private:
  bool _internal_has_source_id() const;
  public:
  void clear_source_id();
  const std::string& source_id() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_source_id(ArgT0&& arg0, ArgT... args);
  std::string* mutable_source_id();
  PROTOBUF_NODISCARD std::string* release_source_id();
  void set_allocated_source_id(std::string* source_id);
  private:
  const std::string& _internal_source_id() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_source_id(const std::string& value);
  std::string* _internal_mutable_source_id();
  public:

  // required string destination_id = 3;
  bool has_destination_id() const;
  private:
  bool _internal_has_destination_id() const;
  public:
  void clear_destination_id();
  const std::string& destination_id() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_destination_id(ArgT0&& arg0, ArgT... args);
  std::string* mutable_destination_id();
  PROTOBUF_NODISCARD std::string* release_destination_id();
  void set_allocated_destination_id(std::string* destination_id);
  private:
  const std::string& _internal_destination_id() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_destination_id(const std::string& value);
  std::string* _internal_mutable_destination_id();
  public:

  // required string namespace = 4;
  bool has_namespace_() const;
  private:
  bool _internal_has_namespace_() const;
  public:
  void clear_namespace_();
  const std::string& namespace_() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_namespace_(ArgT0&& arg0, ArgT... args);
  std::string* mutable_namespace_();
  PROTOBUF_NODISCARD std::string* release_namespace_();
  void set_allocated_namespace_(std::string* namespace_);
  private:
  const std::string& _internal_namespace_() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_namespace_(const std::string& value);
  std::string* _internal_mutable_namespace_();
  public:

  // optional string payload_utf8 = 6;
  bool has_payload_utf8() const;
  private:
  bool _internal_has_payload_utf8() const;
  public:
  void clear_payload_utf8();
  const std::string& payload_utf8() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_payload_utf8(ArgT0&& arg0, ArgT... args);
  std::string* mutable_payload_utf8();
  PROTOBUF_NODISCARD std::string* release_payload_utf8();
  void set_allocated_payload_utf8(std::string* payload_utf8);
  private:
  const std::string& _internal_payload_utf8() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_payload_utf8(const std::string& value);
  std::string* _internal_mutable_payload_utf8();
  public:

  // optional bytes payload_binary = 7;
  bool has_payload_binary() const;
  private:
  bool _internal_has_payload_binary() const;
  public:
  void clear_payload_binary();
  const std::string& payload_binary() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_payload_binary(ArgT0&& arg0, ArgT... args);
  std::string* mutable_payload_binary();
  PROTOBUF_NODISCARD std::string* release_payload_binary();
  void set_allocated_payload_binary(std::string* payload_binary);
  private:
  const std::string& _internal_payload_binary() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_payload_binary(const std::string& value);
  std::string* _internal_mutable_payload_binary();
  public:

  // required .castchannel.CastMessage.ProtocolVersion protocol_version = 1;
  bool has_protocol_version() const;
  private:
  bool _internal_has_protocol_version() const;
  public:
  void clear_protocol_version();
  ::castchannel::CastMessage_ProtocolVersion protocol_version() const;
  void set_protocol_version(::castchannel::CastMessage_ProtocolVersion value);
  private:
  ::castchannel::CastMessage_ProtocolVersion _internal_protocol_version() const;
  void _internal_set_protocol_version(::castchannel::CastMessage_ProtocolVersion value);
  public:

  // required .castchannel.CastMessage.PayloadType payload_type = 5;
  bool has_payload_type() const;
  private:
  bool _internal_has_payload_type() const;
  public:
  void clear_payload_type();
  ::castchannel::CastMessage_PayloadType payload_type() const;
  void set_payload_type(::castchannel::CastMessage_PayloadType value);
  private:
  ::castchannel::CastMessage_PayloadType _internal_payload_type() const;
  void _internal_set_payload_type(::castchannel::CastMessage_PayloadType value);
  public:

  // @@protoc_insertion_point(class_scope:castchannel.CastMessage)
 private:
  class _Internal;

  // helper for ByteSizeLong()
  size_t RequiredFieldsByteSizeFallback() const;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr source_id_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr destination_id_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr namespace__;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr payload_utf8_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr payload_binary_;
    int protocol_version_;
    int payload_type_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_stream_5fout_2fchromecast_2fcast_5fchannel_2eproto;
};
// -------------------------------------------------------------------

class AuthChallenge final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:castchannel.AuthChallenge) */ {
 public:
  inline AuthChallenge() : AuthChallenge(nullptr) {}
  ~AuthChallenge() override;
  explicit PROTOBUF_CONSTEXPR AuthChallenge(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  AuthChallenge(const AuthChallenge& from);
  AuthChallenge(AuthChallenge&& from) noexcept
    : AuthChallenge() {
    *this = ::std::move(from);
  }

  inline AuthChallenge& operator=(const AuthChallenge& from) {
    CopyFrom(from);
    return *this;
  }
  inline AuthChallenge& operator=(AuthChallenge&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString);
  }
  inline std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<std::string>();
  }

  static const AuthChallenge& default_instance() {
    return *internal_default_instance();
  }
  static inline const AuthChallenge* internal_default_instance() {
    return reinterpret_cast<const AuthChallenge*>(
               &_AuthChallenge_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    1;

  friend void swap(AuthChallenge& a, AuthChallenge& b) {
    a.Swap(&b);
  }
  inline void Swap(AuthChallenge* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AuthChallenge* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  AuthChallenge* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<AuthChallenge>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const AuthChallenge& from);
  void MergeFrom(const AuthChallenge& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(AuthChallenge* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "castchannel.AuthChallenge";
  }
  protected:
  explicit AuthChallenge(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  // @@protoc_insertion_point(class_scope:castchannel.AuthChallenge)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_stream_5fout_2fchromecast_2fcast_5fchannel_2eproto;
};
// -------------------------------------------------------------------

class AuthResponse final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:castchannel.AuthResponse) */ {
 public:
  inline AuthResponse() : AuthResponse(nullptr) {}
  ~AuthResponse() override;
  explicit PROTOBUF_CONSTEXPR AuthResponse(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  AuthResponse(const AuthResponse& from);
  AuthResponse(AuthResponse&& from) noexcept
    : AuthResponse() {
    *this = ::std::move(from);
  }

  inline AuthResponse& operator=(const AuthResponse& from) {
    CopyFrom(from);
    return *this;
  }
  inline AuthResponse& operator=(AuthResponse&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString);
  }
  inline std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<std::string>();
  }

  static const AuthResponse& default_instance() {
    return *internal_default_instance();
  }
  static inline const AuthResponse* internal_default_instance() {
    return reinterpret_cast<const AuthResponse*>(
               &_AuthResponse_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    2;

  friend void swap(AuthResponse& a, AuthResponse& b) {
    a.Swap(&b);
  }
  inline void Swap(AuthResponse* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AuthResponse* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  AuthResponse* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<AuthResponse>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const AuthResponse& from);
  void MergeFrom(const AuthResponse& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(AuthResponse* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "castchannel.AuthResponse";
  }
  protected:
  explicit AuthResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kSignatureFieldNumber = 1,
    kClientAuthCertificateFieldNumber = 2,
  };
  // required bytes signature = 1;
  bool has_signature() const;
  private:
  bool _internal_has_signature() const;
  public:
  void clear_signature();
  const std::string& signature() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_signature(ArgT0&& arg0, ArgT... args);
  std::string* mutable_signature();
  PROTOBUF_NODISCARD std::string* release_signature();
  void set_allocated_signature(std::string* signature);
  private:
  const std::string& _internal_signature() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_signature(const std::string& value);
  std::string* _internal_mutable_signature();
  public:

  // required bytes client_auth_certificate = 2;
  bool has_client_auth_certificate() const;
  private:
  bool _internal_has_client_auth_certificate() const;
  public:
  void clear_client_auth_certificate();
  const std::string& client_auth_certificate() const;
  template <typename ArgT0 = const std::string&, typename... ArgT>
  void set_client_auth_certificate(ArgT0&& arg0, ArgT... args);
  std::string* mutable_client_auth_certificate();
  PROTOBUF_NODISCARD std::string* release_client_auth_certificate();
  void set_allocated_client_auth_certificate(std::string* client_auth_certificate);
  private:
  const std::string& _internal_client_auth_certificate() const;
  inline PROTOBUF_ALWAYS_INLINE void _internal_set_client_auth_certificate(const std::string& value);
  std::string* _internal_mutable_client_auth_certificate();
  public:

  // @@protoc_insertion_point(class_scope:castchannel.AuthResponse)
 private:
  class _Internal;

  // helper for ByteSizeLong()
  size_t RequiredFieldsByteSizeFallback() const;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr signature_;
    ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr client_auth_certificate_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_stream_5fout_2fchromecast_2fcast_5fchannel_2eproto;
};
// -------------------------------------------------------------------

class AuthError final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:castchannel.AuthError) */ {
 public:
  inline AuthError() : AuthError(nullptr) {}
  ~AuthError() override;
  explicit PROTOBUF_CONSTEXPR AuthError(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  AuthError(const AuthError& from);
  AuthError(AuthError&& from) noexcept
    : AuthError() {
    *this = ::std::move(from);
  }

  inline AuthError& operator=(const AuthError& from) {
    CopyFrom(from);
    return *this;
  }
  inline AuthError& operator=(AuthError&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString);
  }
  inline std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<std::string>();
  }

  static const AuthError& default_instance() {
    return *internal_default_instance();
  }
  static inline const AuthError* internal_default_instance() {
    return reinterpret_cast<const AuthError*>(
               &_AuthError_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    3;

  friend void swap(AuthError& a, AuthError& b) {
    a.Swap(&b);
  }
  inline void Swap(AuthError* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(AuthError* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  AuthError* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<AuthError>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const AuthError& from);
  void MergeFrom(const AuthError& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(AuthError* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "castchannel.AuthError";
  }
  protected:
  explicit AuthError(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  typedef AuthError_ErrorType ErrorType;
  static constexpr ErrorType INTERNAL_ERROR =
    AuthError_ErrorType_INTERNAL_ERROR;
  static constexpr ErrorType NO_TLS =
    AuthError_ErrorType_NO_TLS;
  static inline bool ErrorType_IsValid(int value) {
    return AuthError_ErrorType_IsValid(value);
  }
  static constexpr ErrorType ErrorType_MIN =
    AuthError_ErrorType_ErrorType_MIN;
  static constexpr ErrorType ErrorType_MAX =
    AuthError_ErrorType_ErrorType_MAX;
  static constexpr int ErrorType_ARRAYSIZE =
    AuthError_ErrorType_ErrorType_ARRAYSIZE;
  template<typename T>
  static inline const std::string& ErrorType_Name(T enum_t_value) {
    static_assert(::std::is_same<T, ErrorType>::value ||
      ::std::is_integral<T>::value,
      "Incorrect type passed to function ErrorType_Name.");
    return AuthError_ErrorType_Name(enum_t_value);
  }
  static inline bool ErrorType_Parse(::PROTOBUF_NAMESPACE_ID::ConstStringParam name,
      ErrorType* value) {
    return AuthError_ErrorType_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  enum : int {
    kErrorTypeFieldNumber = 1,
  };
  // required .castchannel.AuthError.ErrorType error_type = 1;
  bool has_error_type() const;
  private:
  bool _internal_has_error_type() const;
  public:
  void clear_error_type();
  ::castchannel::AuthError_ErrorType error_type() const;
  void set_error_type(::castchannel::AuthError_ErrorType value);
  private:
  ::castchannel::AuthError_ErrorType _internal_error_type() const;
  void _internal_set_error_type(::castchannel::AuthError_ErrorType value);
  public:

  // @@protoc_insertion_point(class_scope:castchannel.AuthError)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    int error_type_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_stream_5fout_2fchromecast_2fcast_5fchannel_2eproto;
};
// -------------------------------------------------------------------

class DeviceAuthMessage final :
    public ::PROTOBUF_NAMESPACE_ID::MessageLite /* @@protoc_insertion_point(class_definition:castchannel.DeviceAuthMessage) */ {
 public:
  inline DeviceAuthMessage() : DeviceAuthMessage(nullptr) {}
  ~DeviceAuthMessage() override;
  explicit PROTOBUF_CONSTEXPR DeviceAuthMessage(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized);

  DeviceAuthMessage(const DeviceAuthMessage& from);
  DeviceAuthMessage(DeviceAuthMessage&& from) noexcept
    : DeviceAuthMessage() {
    *this = ::std::move(from);
  }

  inline DeviceAuthMessage& operator=(const DeviceAuthMessage& from) {
    CopyFrom(from);
    return *this;
  }
  inline DeviceAuthMessage& operator=(DeviceAuthMessage&& from) noexcept {
    if (this == &from) return *this;
    if (GetOwningArena() == from.GetOwningArena()
  #ifdef PROTOBUF_FORCE_COPY_IN_MOVE
        && GetOwningArena() != nullptr
  #endif  // !PROTOBUF_FORCE_COPY_IN_MOVE
    ) {
      InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }

  inline const std::string& unknown_fields() const {
    return _internal_metadata_.unknown_fields<std::string>(::PROTOBUF_NAMESPACE_ID::internal::GetEmptyString);
  }
  inline std::string* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields<std::string>();
  }

  static const DeviceAuthMessage& default_instance() {
    return *internal_default_instance();
  }
  static inline const DeviceAuthMessage* internal_default_instance() {
    return reinterpret_cast<const DeviceAuthMessage*>(
               &_DeviceAuthMessage_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    4;

  friend void swap(DeviceAuthMessage& a, DeviceAuthMessage& b) {
    a.Swap(&b);
  }
  inline void Swap(DeviceAuthMessage* other) {
    if (other == this) return;
  #ifdef PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() != nullptr &&
        GetOwningArena() == other->GetOwningArena()) {
   #else  // PROTOBUF_FORCE_COPY_IN_SWAP
    if (GetOwningArena() == other->GetOwningArena()) {
  #endif  // !PROTOBUF_FORCE_COPY_IN_SWAP
      InternalSwap(other);
    } else {
      ::PROTOBUF_NAMESPACE_ID::internal::GenericSwap(this, other);
    }
  }
  void UnsafeArenaSwap(DeviceAuthMessage* other) {
    if (other == this) return;
    GOOGLE_DCHECK(GetOwningArena() == other->GetOwningArena());
    InternalSwap(other);
  }

  // implements Message ----------------------------------------------

  DeviceAuthMessage* New(::PROTOBUF_NAMESPACE_ID::Arena* arena = nullptr) const final {
    return CreateMaybeMessage<DeviceAuthMessage>(arena);
  }
  void CheckTypeAndMergeFrom(const ::PROTOBUF_NAMESPACE_ID::MessageLite& from)  final;
  void CopyFrom(const DeviceAuthMessage& from);
  void MergeFrom(const DeviceAuthMessage& from);
  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  const char* _InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) final;
  uint8_t* _InternalSerialize(
      uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const final;
  int GetCachedSize() const final { return _impl_._cached_size_.Get(); }

  private:
  void SharedCtor(::PROTOBUF_NAMESPACE_ID::Arena* arena, bool is_message_owned);
  void SharedDtor();
  void SetCachedSize(int size) const;
  void InternalSwap(DeviceAuthMessage* other);

  private:
  friend class ::PROTOBUF_NAMESPACE_ID::internal::AnyMetadata;
  static ::PROTOBUF_NAMESPACE_ID::StringPiece FullMessageName() {
    return "castchannel.DeviceAuthMessage";
  }
  protected:
  explicit DeviceAuthMessage(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                       bool is_message_owned = false);
  public:

  std::string GetTypeName() const final;

  // nested types ----------------------------------------------------

  // accessors -------------------------------------------------------

  enum : int {
    kChallengeFieldNumber = 1,
    kResponseFieldNumber = 2,
    kErrorFieldNumber = 3,
  };
  // optional .castchannel.AuthChallenge challenge = 1;
  bool has_challenge() const;
  private:
  bool _internal_has_challenge() const;
  public:
  void clear_challenge();
  const ::castchannel::AuthChallenge& challenge() const;
  PROTOBUF_NODISCARD ::castchannel::AuthChallenge* release_challenge();
  ::castchannel::AuthChallenge* mutable_challenge();
  void set_allocated_challenge(::castchannel::AuthChallenge* challenge);
  private:
  const ::castchannel::AuthChallenge& _internal_challenge() const;
  ::castchannel::AuthChallenge* _internal_mutable_challenge();
  public:
  void unsafe_arena_set_allocated_challenge(
      ::castchannel::AuthChallenge* challenge);
  ::castchannel::AuthChallenge* unsafe_arena_release_challenge();

  // optional .castchannel.AuthResponse response = 2;
  bool has_response() const;
  private:
  bool _internal_has_response() const;
  public:
  void clear_response();
  const ::castchannel::AuthResponse& response() const;
  PROTOBUF_NODISCARD ::castchannel::AuthResponse* release_response();
  ::castchannel::AuthResponse* mutable_response();
  void set_allocated_response(::castchannel::AuthResponse* response);
  private:
  const ::castchannel::AuthResponse& _internal_response() const;
  ::castchannel::AuthResponse* _internal_mutable_response();
  public:
  void unsafe_arena_set_allocated_response(
      ::castchannel::AuthResponse* response);
  ::castchannel::AuthResponse* unsafe_arena_release_response();

  // optional .castchannel.AuthError error = 3;
  bool has_error() const;
  private:
  bool _internal_has_error() const;
  public:
  void clear_error();
  const ::castchannel::AuthError& error() const;
  PROTOBUF_NODISCARD ::castchannel::AuthError* release_error();
  ::castchannel::AuthError* mutable_error();
  void set_allocated_error(::castchannel::AuthError* error);
  private:
  const ::castchannel::AuthError& _internal_error() const;
  ::castchannel::AuthError* _internal_mutable_error();
  public:
  void unsafe_arena_set_allocated_error(
      ::castchannel::AuthError* error);
  ::castchannel::AuthError* unsafe_arena_release_error();

  // @@protoc_insertion_point(class_scope:castchannel.DeviceAuthMessage)
 private:
  class _Internal;

  template <typename T> friend class ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper;
  typedef void InternalArenaConstructable_;
  typedef void DestructorSkippable_;
  struct Impl_ {
    ::PROTOBUF_NAMESPACE_ID::internal::HasBits<1> _has_bits_;
    mutable ::PROTOBUF_NAMESPACE_ID::internal::CachedSize _cached_size_;
    ::castchannel::AuthChallenge* challenge_;
    ::castchannel::AuthResponse* response_;
    ::castchannel::AuthError* error_;
  };
  union { Impl_ _impl_; };
  friend struct ::TableStruct_stream_5fout_2fchromecast_2fcast_5fchannel_2eproto;
};
// ===================================================================


// ===================================================================

#ifdef __GNUC__
  #pragma GCC diagnostic push
  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
#endif  // __GNUC__
// CastMessage

// required .castchannel.CastMessage.ProtocolVersion protocol_version = 1;
inline bool CastMessage::_internal_has_protocol_version() const {
  bool value = (_impl_._has_bits_[0] & 0x00000020u) != 0;
  return value;
}
inline bool CastMessage::has_protocol_version() const {
  return _internal_has_protocol_version();
}
inline void CastMessage::clear_protocol_version() {
  _impl_.protocol_version_ = 0;
  _impl_._has_bits_[0] &= ~0x00000020u;
}
inline ::castchannel::CastMessage_ProtocolVersion CastMessage::_internal_protocol_version() const {
  return static_cast< ::castchannel::CastMessage_ProtocolVersion >(_impl_.protocol_version_);
}
inline ::castchannel::CastMessage_ProtocolVersion CastMessage::protocol_version() const {
  // @@protoc_insertion_point(field_get:castchannel.CastMessage.protocol_version)
  return _internal_protocol_version();
}
inline void CastMessage::_internal_set_protocol_version(::castchannel::CastMessage_ProtocolVersion value) {
  assert(::castchannel::CastMessage_ProtocolVersion_IsValid(value));
  _impl_._has_bits_[0] |= 0x00000020u;
  _impl_.protocol_version_ = value;
}
inline void CastMessage::set_protocol_version(::castchannel::CastMessage_ProtocolVersion value) {
  _internal_set_protocol_version(value);
  // @@protoc_insertion_point(field_set:castchannel.CastMessage.protocol_version)
}

// required string source_id = 2;
inline bool CastMessage::_internal_has_source_id() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool CastMessage::has_source_id() const {
  return _internal_has_source_id();
}
inline void CastMessage::clear_source_id() {
  _impl_.source_id_.ClearToEmpty();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const std::string& CastMessage::source_id() const {
  // @@protoc_insertion_point(field_get:castchannel.CastMessage.source_id)
  return _internal_source_id();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void CastMessage::set_source_id(ArgT0&& arg0, ArgT... args) {
 _impl_._has_bits_[0] |= 0x00000001u;
 _impl_.source_id_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:castchannel.CastMessage.source_id)
}
inline std::string* CastMessage::mutable_source_id() {
  std::string* _s = _internal_mutable_source_id();
  // @@protoc_insertion_point(field_mutable:castchannel.CastMessage.source_id)
  return _s;
}
inline const std::string& CastMessage::_internal_source_id() const {
  return _impl_.source_id_.Get();
}
inline void CastMessage::_internal_set_source_id(const std::string& value) {
  _impl_._has_bits_[0] |= 0x00000001u;
  _impl_.source_id_.Set(value, GetArenaForAllocation());
}
inline std::string* CastMessage::_internal_mutable_source_id() {
  _impl_._has_bits_[0] |= 0x00000001u;
  return _impl_.source_id_.Mutable(GetArenaForAllocation());
}
inline std::string* CastMessage::release_source_id() {
  // @@protoc_insertion_point(field_release:castchannel.CastMessage.source_id)
  if (!_internal_has_source_id()) {
    return nullptr;
  }
  _impl_._has_bits_[0] &= ~0x00000001u;
  auto* p = _impl_.source_id_.Release();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.source_id_.IsDefault()) {
    _impl_.source_id_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void CastMessage::set_allocated_source_id(std::string* source_id) {
  if (source_id != nullptr) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.source_id_.SetAllocated(source_id, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.source_id_.IsDefault()) {
    _impl_.source_id_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:castchannel.CastMessage.source_id)
}

// required string destination_id = 3;
inline bool CastMessage::_internal_has_destination_id() const {
  bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool CastMessage::has_destination_id() const {
  return _internal_has_destination_id();
}
inline void CastMessage::clear_destination_id() {
  _impl_.destination_id_.ClearToEmpty();
  _impl_._has_bits_[0] &= ~0x00000002u;
}
inline const std::string& CastMessage::destination_id() const {
  // @@protoc_insertion_point(field_get:castchannel.CastMessage.destination_id)
  return _internal_destination_id();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void CastMessage::set_destination_id(ArgT0&& arg0, ArgT... args) {
 _impl_._has_bits_[0] |= 0x00000002u;
 _impl_.destination_id_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:castchannel.CastMessage.destination_id)
}
inline std::string* CastMessage::mutable_destination_id() {
  std::string* _s = _internal_mutable_destination_id();
  // @@protoc_insertion_point(field_mutable:castchannel.CastMessage.destination_id)
  return _s;
}
inline const std::string& CastMessage::_internal_destination_id() const {
  return _impl_.destination_id_.Get();
}
inline void CastMessage::_internal_set_destination_id(const std::string& value) {
  _impl_._has_bits_[0] |= 0x00000002u;
  _impl_.destination_id_.Set(value, GetArenaForAllocation());
}
inline std::string* CastMessage::_internal_mutable_destination_id() {
  _impl_._has_bits_[0] |= 0x00000002u;
  return _impl_.destination_id_.Mutable(GetArenaForAllocation());
}
inline std::string* CastMessage::release_destination_id() {
  // @@protoc_insertion_point(field_release:castchannel.CastMessage.destination_id)
  if (!_internal_has_destination_id()) {
    return nullptr;
  }
  _impl_._has_bits_[0] &= ~0x00000002u;
  auto* p = _impl_.destination_id_.Release();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.destination_id_.IsDefault()) {
    _impl_.destination_id_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void CastMessage::set_allocated_destination_id(std::string* destination_id) {
  if (destination_id != nullptr) {
    _impl_._has_bits_[0] |= 0x00000002u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000002u;
  }
  _impl_.destination_id_.SetAllocated(destination_id, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.destination_id_.IsDefault()) {
    _impl_.destination_id_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:castchannel.CastMessage.destination_id)
}

// required string namespace = 4;
inline bool CastMessage::_internal_has_namespace_() const {
  bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0;
  return value;
}
inline bool CastMessage::has_namespace_() const {
  return _internal_has_namespace_();
}
inline void CastMessage::clear_namespace_() {
  _impl_.namespace__.ClearToEmpty();
  _impl_._has_bits_[0] &= ~0x00000004u;
}
inline const std::string& CastMessage::namespace_() const {
  // @@protoc_insertion_point(field_get:castchannel.CastMessage.namespace)
  return _internal_namespace_();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void CastMessage::set_namespace_(ArgT0&& arg0, ArgT... args) {
 _impl_._has_bits_[0] |= 0x00000004u;
 _impl_.namespace__.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:castchannel.CastMessage.namespace)
}
inline std::string* CastMessage::mutable_namespace_() {
  std::string* _s = _internal_mutable_namespace_();
  // @@protoc_insertion_point(field_mutable:castchannel.CastMessage.namespace)
  return _s;
}
inline const std::string& CastMessage::_internal_namespace_() const {
  return _impl_.namespace__.Get();
}
inline void CastMessage::_internal_set_namespace_(const std::string& value) {
  _impl_._has_bits_[0] |= 0x00000004u;
  _impl_.namespace__.Set(value, GetArenaForAllocation());
}
inline std::string* CastMessage::_internal_mutable_namespace_() {
  _impl_._has_bits_[0] |= 0x00000004u;
  return _impl_.namespace__.Mutable(GetArenaForAllocation());
}
inline std::string* CastMessage::release_namespace_() {
  // @@protoc_insertion_point(field_release:castchannel.CastMessage.namespace)
  if (!_internal_has_namespace_()) {
    return nullptr;
  }
  _impl_._has_bits_[0] &= ~0x00000004u;
  auto* p = _impl_.namespace__.Release();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.namespace__.IsDefault()) {
    _impl_.namespace__.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void CastMessage::set_allocated_namespace_(std::string* namespace_) {
  if (namespace_ != nullptr) {
    _impl_._has_bits_[0] |= 0x00000004u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000004u;
  }
  _impl_.namespace__.SetAllocated(namespace_, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.namespace__.IsDefault()) {
    _impl_.namespace__.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:castchannel.CastMessage.namespace)
}

// required .castchannel.CastMessage.PayloadType payload_type = 5;
inline bool CastMessage::_internal_has_payload_type() const {
  bool value = (_impl_._has_bits_[0] & 0x00000040u) != 0;
  return value;
}
inline bool CastMessage::has_payload_type() const {
  return _internal_has_payload_type();
}
inline void CastMessage::clear_payload_type() {
  _impl_.payload_type_ = 0;
  _impl_._has_bits_[0] &= ~0x00000040u;
}
inline ::castchannel::CastMessage_PayloadType CastMessage::_internal_payload_type() const {
  return static_cast< ::castchannel::CastMessage_PayloadType >(_impl_.payload_type_);
}
inline ::castchannel::CastMessage_PayloadType CastMessage::payload_type() const {
  // @@protoc_insertion_point(field_get:castchannel.CastMessage.payload_type)
  return _internal_payload_type();
}
inline void CastMessage::_internal_set_payload_type(::castchannel::CastMessage_PayloadType value) {
  assert(::castchannel::CastMessage_PayloadType_IsValid(value));
  _impl_._has_bits_[0] |= 0x00000040u;
  _impl_.payload_type_ = value;
}
inline void CastMessage::set_payload_type(::castchannel::CastMessage_PayloadType value) {
  _internal_set_payload_type(value);
  // @@protoc_insertion_point(field_set:castchannel.CastMessage.payload_type)
}

// optional string payload_utf8 = 6;
inline bool CastMessage::_internal_has_payload_utf8() const {
  bool value = (_impl_._has_bits_[0] & 0x00000008u) != 0;
  return value;
}
inline bool CastMessage::has_payload_utf8() const {
  return _internal_has_payload_utf8();
}
inline void CastMessage::clear_payload_utf8() {
  _impl_.payload_utf8_.ClearToEmpty();
  _impl_._has_bits_[0] &= ~0x00000008u;
}
inline const std::string& CastMessage::payload_utf8() const {
  // @@protoc_insertion_point(field_get:castchannel.CastMessage.payload_utf8)
  return _internal_payload_utf8();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void CastMessage::set_payload_utf8(ArgT0&& arg0, ArgT... args) {
 _impl_._has_bits_[0] |= 0x00000008u;
 _impl_.payload_utf8_.Set(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:castchannel.CastMessage.payload_utf8)
}
inline std::string* CastMessage::mutable_payload_utf8() {
  std::string* _s = _internal_mutable_payload_utf8();
  // @@protoc_insertion_point(field_mutable:castchannel.CastMessage.payload_utf8)
  return _s;
}
inline const std::string& CastMessage::_internal_payload_utf8() const {
  return _impl_.payload_utf8_.Get();
}
inline void CastMessage::_internal_set_payload_utf8(const std::string& value) {
  _impl_._has_bits_[0] |= 0x00000008u;
  _impl_.payload_utf8_.Set(value, GetArenaForAllocation());
}
inline std::string* CastMessage::_internal_mutable_payload_utf8() {
  _impl_._has_bits_[0] |= 0x00000008u;
  return _impl_.payload_utf8_.Mutable(GetArenaForAllocation());
}
inline std::string* CastMessage::release_payload_utf8() {
  // @@protoc_insertion_point(field_release:castchannel.CastMessage.payload_utf8)
  if (!_internal_has_payload_utf8()) {
    return nullptr;
  }
  _impl_._has_bits_[0] &= ~0x00000008u;
  auto* p = _impl_.payload_utf8_.Release();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.payload_utf8_.IsDefault()) {
    _impl_.payload_utf8_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void CastMessage::set_allocated_payload_utf8(std::string* payload_utf8) {
  if (payload_utf8 != nullptr) {
    _impl_._has_bits_[0] |= 0x00000008u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000008u;
  }
  _impl_.payload_utf8_.SetAllocated(payload_utf8, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.payload_utf8_.IsDefault()) {
    _impl_.payload_utf8_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:castchannel.CastMessage.payload_utf8)
}

// optional bytes payload_binary = 7;
inline bool CastMessage::_internal_has_payload_binary() const {
  bool value = (_impl_._has_bits_[0] & 0x00000010u) != 0;
  return value;
}
inline bool CastMessage::has_payload_binary() const {
  return _internal_has_payload_binary();
}
inline void CastMessage::clear_payload_binary() {
  _impl_.payload_binary_.ClearToEmpty();
  _impl_._has_bits_[0] &= ~0x00000010u;
}
inline const std::string& CastMessage::payload_binary() const {
  // @@protoc_insertion_point(field_get:castchannel.CastMessage.payload_binary)
  return _internal_payload_binary();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void CastMessage::set_payload_binary(ArgT0&& arg0, ArgT... args) {
 _impl_._has_bits_[0] |= 0x00000010u;
 _impl_.payload_binary_.SetBytes(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:castchannel.CastMessage.payload_binary)
}
inline std::string* CastMessage::mutable_payload_binary() {
  std::string* _s = _internal_mutable_payload_binary();
  // @@protoc_insertion_point(field_mutable:castchannel.CastMessage.payload_binary)
  return _s;
}
inline const std::string& CastMessage::_internal_payload_binary() const {
  return _impl_.payload_binary_.Get();
}
inline void CastMessage::_internal_set_payload_binary(const std::string& value) {
  _impl_._has_bits_[0] |= 0x00000010u;
  _impl_.payload_binary_.Set(value, GetArenaForAllocation());
}
inline std::string* CastMessage::_internal_mutable_payload_binary() {
  _impl_._has_bits_[0] |= 0x00000010u;
  return _impl_.payload_binary_.Mutable(GetArenaForAllocation());
}
inline std::string* CastMessage::release_payload_binary() {
  // @@protoc_insertion_point(field_release:castchannel.CastMessage.payload_binary)
  if (!_internal_has_payload_binary()) {
    return nullptr;
  }
  _impl_._has_bits_[0] &= ~0x00000010u;
  auto* p = _impl_.payload_binary_.Release();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.payload_binary_.IsDefault()) {
    _impl_.payload_binary_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void CastMessage::set_allocated_payload_binary(std::string* payload_binary) {
  if (payload_binary != nullptr) {
    _impl_._has_bits_[0] |= 0x00000010u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000010u;
  }
  _impl_.payload_binary_.SetAllocated(payload_binary, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.payload_binary_.IsDefault()) {
    _impl_.payload_binary_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:castchannel.CastMessage.payload_binary)
}

// -------------------------------------------------------------------

// AuthChallenge

// -------------------------------------------------------------------

// AuthResponse

// required bytes signature = 1;
inline bool AuthResponse::_internal_has_signature() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool AuthResponse::has_signature() const {
  return _internal_has_signature();
}
inline void AuthResponse::clear_signature() {
  _impl_.signature_.ClearToEmpty();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const std::string& AuthResponse::signature() const {
  // @@protoc_insertion_point(field_get:castchannel.AuthResponse.signature)
  return _internal_signature();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void AuthResponse::set_signature(ArgT0&& arg0, ArgT... args) {
 _impl_._has_bits_[0] |= 0x00000001u;
 _impl_.signature_.SetBytes(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:castchannel.AuthResponse.signature)
}
inline std::string* AuthResponse::mutable_signature() {
  std::string* _s = _internal_mutable_signature();
  // @@protoc_insertion_point(field_mutable:castchannel.AuthResponse.signature)
  return _s;
}
inline const std::string& AuthResponse::_internal_signature() const {
  return _impl_.signature_.Get();
}
inline void AuthResponse::_internal_set_signature(const std::string& value) {
  _impl_._has_bits_[0] |= 0x00000001u;
  _impl_.signature_.Set(value, GetArenaForAllocation());
}
inline std::string* AuthResponse::_internal_mutable_signature() {
  _impl_._has_bits_[0] |= 0x00000001u;
  return _impl_.signature_.Mutable(GetArenaForAllocation());
}
inline std::string* AuthResponse::release_signature() {
  // @@protoc_insertion_point(field_release:castchannel.AuthResponse.signature)
  if (!_internal_has_signature()) {
    return nullptr;
  }
  _impl_._has_bits_[0] &= ~0x00000001u;
  auto* p = _impl_.signature_.Release();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.signature_.IsDefault()) {
    _impl_.signature_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void AuthResponse::set_allocated_signature(std::string* signature) {
  if (signature != nullptr) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.signature_.SetAllocated(signature, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.signature_.IsDefault()) {
    _impl_.signature_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:castchannel.AuthResponse.signature)
}

// required bytes client_auth_certificate = 2;
inline bool AuthResponse::_internal_has_client_auth_certificate() const {
  bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0;
  return value;
}
inline bool AuthResponse::has_client_auth_certificate() const {
  return _internal_has_client_auth_certificate();
}
inline void AuthResponse::clear_client_auth_certificate() {
  _impl_.client_auth_certificate_.ClearToEmpty();
  _impl_._has_bits_[0] &= ~0x00000002u;
}
inline const std::string& AuthResponse::client_auth_certificate() const {
  // @@protoc_insertion_point(field_get:castchannel.AuthResponse.client_auth_certificate)
  return _internal_client_auth_certificate();
}
template <typename ArgT0, typename... ArgT>
inline PROTOBUF_ALWAYS_INLINE
void AuthResponse::set_client_auth_certificate(ArgT0&& arg0, ArgT... args) {
 _impl_._has_bits_[0] |= 0x00000002u;
 _impl_.client_auth_certificate_.SetBytes(static_cast<ArgT0 &&>(arg0), args..., GetArenaForAllocation());
  // @@protoc_insertion_point(field_set:castchannel.AuthResponse.client_auth_certificate)
}
inline std::string* AuthResponse::mutable_client_auth_certificate() {
  std::string* _s = _internal_mutable_client_auth_certificate();
  // @@protoc_insertion_point(field_mutable:castchannel.AuthResponse.client_auth_certificate)
  return _s;
}
inline const std::string& AuthResponse::_internal_client_auth_certificate() const {
  return _impl_.client_auth_certificate_.Get();
}
inline void AuthResponse::_internal_set_client_auth_certificate(const std::string& value) {
  _impl_._has_bits_[0] |= 0x00000002u;
  _impl_.client_auth_certificate_.Set(value, GetArenaForAllocation());
}
inline std::string* AuthResponse::_internal_mutable_client_auth_certificate() {
  _impl_._has_bits_[0] |= 0x00000002u;
  return _impl_.client_auth_certificate_.Mutable(GetArenaForAllocation());
}
inline std::string* AuthResponse::release_client_auth_certificate() {
  // @@protoc_insertion_point(field_release:castchannel.AuthResponse.client_auth_certificate)
  if (!_internal_has_client_auth_certificate()) {
    return nullptr;
  }
  _impl_._has_bits_[0] &= ~0x00000002u;
  auto* p = _impl_.client_auth_certificate_.Release();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.client_auth_certificate_.IsDefault()) {
    _impl_.client_auth_certificate_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  return p;
}
inline void AuthResponse::set_allocated_client_auth_certificate(std::string* client_auth_certificate) {
  if (client_auth_certificate != nullptr) {
    _impl_._has_bits_[0] |= 0x00000002u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000002u;
  }
  _impl_.client_auth_certificate_.SetAllocated(client_auth_certificate, GetArenaForAllocation());
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (_impl_.client_auth_certificate_.IsDefault()) {
    _impl_.client_auth_certificate_.Set("", GetArenaForAllocation());
  }
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  // @@protoc_insertion_point(field_set_allocated:castchannel.AuthResponse.client_auth_certificate)
}

// -------------------------------------------------------------------

// AuthError

// required .castchannel.AuthError.ErrorType error_type = 1;
inline bool AuthError::_internal_has_error_type() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  return value;
}
inline bool AuthError::has_error_type() const {
  return _internal_has_error_type();
}
inline void AuthError::clear_error_type() {
  _impl_.error_type_ = 0;
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline ::castchannel::AuthError_ErrorType AuthError::_internal_error_type() const {
  return static_cast< ::castchannel::AuthError_ErrorType >(_impl_.error_type_);
}
inline ::castchannel::AuthError_ErrorType AuthError::error_type() const {
  // @@protoc_insertion_point(field_get:castchannel.AuthError.error_type)
  return _internal_error_type();
}
inline void AuthError::_internal_set_error_type(::castchannel::AuthError_ErrorType value) {
  assert(::castchannel::AuthError_ErrorType_IsValid(value));
  _impl_._has_bits_[0] |= 0x00000001u;
  _impl_.error_type_ = value;
}
inline void AuthError::set_error_type(::castchannel::AuthError_ErrorType value) {
  _internal_set_error_type(value);
  // @@protoc_insertion_point(field_set:castchannel.AuthError.error_type)
}

// -------------------------------------------------------------------

// DeviceAuthMessage

// optional .castchannel.AuthChallenge challenge = 1;
inline bool DeviceAuthMessage::_internal_has_challenge() const {
  bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.challenge_ != nullptr);
  return value;
}
inline bool DeviceAuthMessage::has_challenge() const {
  return _internal_has_challenge();
}
inline void DeviceAuthMessage::clear_challenge() {
  if (_impl_.challenge_ != nullptr) _impl_.challenge_->Clear();
  _impl_._has_bits_[0] &= ~0x00000001u;
}
inline const ::castchannel::AuthChallenge& DeviceAuthMessage::_internal_challenge() const {
  const ::castchannel::AuthChallenge* p = _impl_.challenge_;
  return p != nullptr ? *p : reinterpret_cast<const ::castchannel::AuthChallenge&>(
      ::castchannel::_AuthChallenge_default_instance_);
}
inline const ::castchannel::AuthChallenge& DeviceAuthMessage::challenge() const {
  // @@protoc_insertion_point(field_get:castchannel.DeviceAuthMessage.challenge)
  return _internal_challenge();
}
inline void DeviceAuthMessage::unsafe_arena_set_allocated_challenge(
    ::castchannel::AuthChallenge* challenge) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.challenge_);
  }
  _impl_.challenge_ = challenge;
  if (challenge) {
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:castchannel.DeviceAuthMessage.challenge)
}
inline ::castchannel::AuthChallenge* DeviceAuthMessage::release_challenge() {
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::castchannel::AuthChallenge* temp = _impl_.challenge_;
  _impl_.challenge_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::castchannel::AuthChallenge* DeviceAuthMessage::unsafe_arena_release_challenge() {
  // @@protoc_insertion_point(field_release:castchannel.DeviceAuthMessage.challenge)
  _impl_._has_bits_[0] &= ~0x00000001u;
  ::castchannel::AuthChallenge* temp = _impl_.challenge_;
  _impl_.challenge_ = nullptr;
  return temp;
}
inline ::castchannel::AuthChallenge* DeviceAuthMessage::_internal_mutable_challenge() {
  _impl_._has_bits_[0] |= 0x00000001u;
  if (_impl_.challenge_ == nullptr) {
    auto* p = CreateMaybeMessage<::castchannel::AuthChallenge>(GetArenaForAllocation());
    _impl_.challenge_ = p;
  }
  return _impl_.challenge_;
}
inline ::castchannel::AuthChallenge* DeviceAuthMessage::mutable_challenge() {
  ::castchannel::AuthChallenge* _msg = _internal_mutable_challenge();
  // @@protoc_insertion_point(field_mutable:castchannel.DeviceAuthMessage.challenge)
  return _msg;
}
inline void DeviceAuthMessage::set_allocated_challenge(::castchannel::AuthChallenge* challenge) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.challenge_;
  }
  if (challenge) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(challenge);
    if (message_arena != submessage_arena) {
      challenge = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, challenge, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000001u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000001u;
  }
  _impl_.challenge_ = challenge;
  // @@protoc_insertion_point(field_set_allocated:castchannel.DeviceAuthMessage.challenge)
}

// optional .castchannel.AuthResponse response = 2;
inline bool DeviceAuthMessage::_internal_has_response() const {
  bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.response_ != nullptr);
  return value;
}
inline bool DeviceAuthMessage::has_response() const {
  return _internal_has_response();
}
inline void DeviceAuthMessage::clear_response() {
  if (_impl_.response_ != nullptr) _impl_.response_->Clear();
  _impl_._has_bits_[0] &= ~0x00000002u;
}
inline const ::castchannel::AuthResponse& DeviceAuthMessage::_internal_response() const {
  const ::castchannel::AuthResponse* p = _impl_.response_;
  return p != nullptr ? *p : reinterpret_cast<const ::castchannel::AuthResponse&>(
      ::castchannel::_AuthResponse_default_instance_);
}
inline const ::castchannel::AuthResponse& DeviceAuthMessage::response() const {
  // @@protoc_insertion_point(field_get:castchannel.DeviceAuthMessage.response)
  return _internal_response();
}
inline void DeviceAuthMessage::unsafe_arena_set_allocated_response(
    ::castchannel::AuthResponse* response) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.response_);
  }
  _impl_.response_ = response;
  if (response) {
    _impl_._has_bits_[0] |= 0x00000002u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000002u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:castchannel.DeviceAuthMessage.response)
}
inline ::castchannel::AuthResponse* DeviceAuthMessage::release_response() {
  _impl_._has_bits_[0] &= ~0x00000002u;
  ::castchannel::AuthResponse* temp = _impl_.response_;
  _impl_.response_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::castchannel::AuthResponse* DeviceAuthMessage::unsafe_arena_release_response() {
  // @@protoc_insertion_point(field_release:castchannel.DeviceAuthMessage.response)
  _impl_._has_bits_[0] &= ~0x00000002u;
  ::castchannel::AuthResponse* temp = _impl_.response_;
  _impl_.response_ = nullptr;
  return temp;
}
inline ::castchannel::AuthResponse* DeviceAuthMessage::_internal_mutable_response() {
  _impl_._has_bits_[0] |= 0x00000002u;
  if (_impl_.response_ == nullptr) {
    auto* p = CreateMaybeMessage<::castchannel::AuthResponse>(GetArenaForAllocation());
    _impl_.response_ = p;
  }
  return _impl_.response_;
}
inline ::castchannel::AuthResponse* DeviceAuthMessage::mutable_response() {
  ::castchannel::AuthResponse* _msg = _internal_mutable_response();
  // @@protoc_insertion_point(field_mutable:castchannel.DeviceAuthMessage.response)
  return _msg;
}
inline void DeviceAuthMessage::set_allocated_response(::castchannel::AuthResponse* response) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.response_;
  }
  if (response) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(response);
    if (message_arena != submessage_arena) {
      response = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, response, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000002u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000002u;
  }
  _impl_.response_ = response;
  // @@protoc_insertion_point(field_set_allocated:castchannel.DeviceAuthMessage.response)
}

// optional .castchannel.AuthError error = 3;
inline bool DeviceAuthMessage::_internal_has_error() const {
  bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0;
  PROTOBUF_ASSUME(!value || _impl_.error_ != nullptr);
  return value;
}
inline bool DeviceAuthMessage::has_error() const {
  return _internal_has_error();
}
inline void DeviceAuthMessage::clear_error() {
  if (_impl_.error_ != nullptr) _impl_.error_->Clear();
  _impl_._has_bits_[0] &= ~0x00000004u;
}
inline const ::castchannel::AuthError& DeviceAuthMessage::_internal_error() const {
  const ::castchannel::AuthError* p = _impl_.error_;
  return p != nullptr ? *p : reinterpret_cast<const ::castchannel::AuthError&>(
      ::castchannel::_AuthError_default_instance_);
}
inline const ::castchannel::AuthError& DeviceAuthMessage::error() const {
  // @@protoc_insertion_point(field_get:castchannel.DeviceAuthMessage.error)
  return _internal_error();
}
inline void DeviceAuthMessage::unsafe_arena_set_allocated_error(
    ::castchannel::AuthError* error) {
  if (GetArenaForAllocation() == nullptr) {
    delete reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(_impl_.error_);
  }
  _impl_.error_ = error;
  if (error) {
    _impl_._has_bits_[0] |= 0x00000004u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000004u;
  }
  // @@protoc_insertion_point(field_unsafe_arena_set_allocated:castchannel.DeviceAuthMessage.error)
}
inline ::castchannel::AuthError* DeviceAuthMessage::release_error() {
  _impl_._has_bits_[0] &= ~0x00000004u;
  ::castchannel::AuthError* temp = _impl_.error_;
  _impl_.error_ = nullptr;
#ifdef PROTOBUF_FORCE_COPY_IN_RELEASE
  auto* old =  reinterpret_cast<::PROTOBUF_NAMESPACE_ID::MessageLite*>(temp);
  temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  if (GetArenaForAllocation() == nullptr) { delete old; }
#else  // PROTOBUF_FORCE_COPY_IN_RELEASE
  if (GetArenaForAllocation() != nullptr) {
    temp = ::PROTOBUF_NAMESPACE_ID::internal::DuplicateIfNonNull(temp);
  }
#endif  // !PROTOBUF_FORCE_COPY_IN_RELEASE
  return temp;
}
inline ::castchannel::AuthError* DeviceAuthMessage::unsafe_arena_release_error() {
  // @@protoc_insertion_point(field_release:castchannel.DeviceAuthMessage.error)
  _impl_._has_bits_[0] &= ~0x00000004u;
  ::castchannel::AuthError* temp = _impl_.error_;
  _impl_.error_ = nullptr;
  return temp;
}
inline ::castchannel::AuthError* DeviceAuthMessage::_internal_mutable_error() {
  _impl_._has_bits_[0] |= 0x00000004u;
  if (_impl_.error_ == nullptr) {
    auto* p = CreateMaybeMessage<::castchannel::AuthError>(GetArenaForAllocation());
    _impl_.error_ = p;
  }
  return _impl_.error_;
}
inline ::castchannel::AuthError* DeviceAuthMessage::mutable_error() {
  ::castchannel::AuthError* _msg = _internal_mutable_error();
  // @@protoc_insertion_point(field_mutable:castchannel.DeviceAuthMessage.error)
  return _msg;
}
inline void DeviceAuthMessage::set_allocated_error(::castchannel::AuthError* error) {
  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
  if (message_arena == nullptr) {
    delete _impl_.error_;
  }
  if (error) {
    ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
        ::PROTOBUF_NAMESPACE_ID::Arena::InternalGetOwningArena(error);
    if (message_arena != submessage_arena) {
      error = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
          message_arena, error, submessage_arena);
    }
    _impl_._has_bits_[0] |= 0x00000004u;
  } else {
    _impl_._has_bits_[0] &= ~0x00000004u;
  }
  _impl_.error_ = error;
  // @@protoc_insertion_point(field_set_allocated:castchannel.DeviceAuthMessage.error)
}

#ifdef __GNUC__
  #pragma GCC diagnostic pop
#endif  // __GNUC__
// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------

// -------------------------------------------------------------------


// @@protoc_insertion_point(namespace_scope)

}  // namespace castchannel

PROTOBUF_NAMESPACE_OPEN

template <> struct is_proto_enum< ::castchannel::CastMessage_ProtocolVersion> : ::std::true_type {};
template <> struct is_proto_enum< ::castchannel::CastMessage_PayloadType> : ::std::true_type {};
template <> struct is_proto_enum< ::castchannel::AuthError_ErrorType> : ::std::true_type {};

PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)

#include <google/protobuf/port_undef.inc>
#endif  // GOOGLE_PROTOBUF_INCLUDED_GOOGLE_PROTOBUF_INCLUDED_stream_5fout_2fchromecast_2fcast_5fchannel_2eproto
