// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: proto/services/serviceRequest.proto

#ifndef PROTOBUF_INCLUDED_proto_2fservices_2fserviceRequest_2eproto
#define PROTOBUF_INCLUDED_proto_2fservices_2fserviceRequest_2eproto

#include <string>

#include <google/protobuf/stubs/common.h>

#if GOOGLE_PROTOBUF_VERSION < 3006001
#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 3006001 < GOOGLE_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/io/coded_stream.h>
#include <google/protobuf/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_table_driven.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/inlined_string_field.h>
#include <google/protobuf/metadata.h>
#include <google/protobuf/message.h>
#include <google/protobuf/repeated_field.h>  // IWYU pragma: export
#include <google/protobuf/extension_set.h>  // IWYU pragma: export
#include <google/protobuf/unknown_field_set.h>
#include "proto/clients/client.pb.h"
#include "proto/devices/device.pb.h"
#include "proto/devices/topicMux.pb.h"
#include "proto/devices/topicDemux.pb.h"
#include "proto/sessions/session.pb.h"
#include "proto/services/request/topicSubscription.pb.h"
#include "proto/processing/processingModule.pb.h"
#include "proto/processing/lockstepProcessing.pb.h"
// @@protoc_insertion_point(includes)
#define PROTOBUF_INTERNAL_EXPORT_protobuf_proto_2fservices_2fserviceRequest_2eproto 

namespace protobuf_proto_2fservices_2fserviceRequest_2eproto {
// Internal implementation detail -- do not use these members.
struct TableStruct {
  static const ::google::protobuf::internal::ParseTableField entries[];
  static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
  static const ::google::protobuf::internal::ParseTable schema[1];
  static const ::google::protobuf::internal::FieldMetadata field_metadata[];
  static const ::google::protobuf::internal::SerializationTable serialization_table[];
  static const ::google::protobuf::uint32 offsets[];
};
void AddDescriptors();
}  // namespace protobuf_proto_2fservices_2fserviceRequest_2eproto
namespace ubii {
namespace services {
class ServiceRequest;
class ServiceRequestDefaultTypeInternal;
extern ServiceRequestDefaultTypeInternal _ServiceRequest_default_instance_;
}  // namespace services
}  // namespace ubii
namespace google {
namespace protobuf {
template<> ::ubii::services::ServiceRequest* Arena::CreateMaybeMessage<::ubii::services::ServiceRequest>(Arena*);
}  // namespace protobuf
}  // namespace google
namespace ubii {
namespace services {

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

class ServiceRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:ubii.services.ServiceRequest) */ {
 public:
  ServiceRequest();
  virtual ~ServiceRequest();

  ServiceRequest(const ServiceRequest& from);

  inline ServiceRequest& operator=(const ServiceRequest& from) {
    CopyFrom(from);
    return *this;
  }
  #if LANG_CXX11
  ServiceRequest(ServiceRequest&& from) noexcept
    : ServiceRequest() {
    *this = ::std::move(from);
  }

  inline ServiceRequest& operator=(ServiceRequest&& from) noexcept {
    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
      if (this != &from) InternalSwap(&from);
    } else {
      CopyFrom(from);
    }
    return *this;
  }
  #endif
  static const ::google::protobuf::Descriptor* descriptor();
  static const ServiceRequest& default_instance();

  enum TypeCase {
    kClient = 2,
    kDevice = 3,
    kTopicSubscription = 4,
    kSession = 5,
    kSessionList = 6,
    kProcessingModule = 7,
    kProcessingModuleList = 8,
    kTopicMux = 9,
    kTopicMuxList = 10,
    kTopicDemux = 11,
    kTopicDemuxList = 12,
    kClientList = 13,
    kDeviceList = 14,
    kLockstepProcessingRequest = 15,
    TYPE_NOT_SET = 0,
  };

  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
  static inline const ServiceRequest* internal_default_instance() {
    return reinterpret_cast<const ServiceRequest*>(
               &_ServiceRequest_default_instance_);
  }
  static constexpr int kIndexInFileMessages =
    0;

  void Swap(ServiceRequest* other);
  friend void swap(ServiceRequest& a, ServiceRequest& b) {
    a.Swap(&b);
  }

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

  inline ServiceRequest* New() const final {
    return CreateMaybeMessage<ServiceRequest>(NULL);
  }

  ServiceRequest* New(::google::protobuf::Arena* arena) const final {
    return CreateMaybeMessage<ServiceRequest>(arena);
  }
  void CopyFrom(const ::google::protobuf::Message& from) final;
  void MergeFrom(const ::google::protobuf::Message& from) final;
  void CopyFrom(const ServiceRequest& from);
  void MergeFrom(const ServiceRequest& from);
  void Clear() final;
  bool IsInitialized() const final;

  size_t ByteSizeLong() const final;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input) final;
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const final;
  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
      bool deterministic, ::google::protobuf::uint8* target) const final;
  int GetCachedSize() const final { return _cached_size_.Get(); }

  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const final;
  void InternalSwap(ServiceRequest* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return NULL;
  }
  inline void* MaybeArenaPtr() const {
    return NULL;
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const final;

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

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

  // string topic = 1;
  void clear_topic();
  static const int kTopicFieldNumber = 1;
  const ::std::string& topic() const;
  void set_topic(const ::std::string& value);
  #if LANG_CXX11
  void set_topic(::std::string&& value);
  #endif
  void set_topic(const char* value);
  void set_topic(const char* value, size_t size);
  ::std::string* mutable_topic();
  ::std::string* release_topic();
  void set_allocated_topic(::std::string* topic);

  // .ubii.clients.Client client = 2;
  bool has_client() const;
  void clear_client();
  static const int kClientFieldNumber = 2;
  private:
  const ::ubii::clients::Client& _internal_client() const;
  public:
  const ::ubii::clients::Client& client() const;
  ::ubii::clients::Client* release_client();
  ::ubii::clients::Client* mutable_client();
  void set_allocated_client(::ubii::clients::Client* client);

  // .ubii.devices.Device device = 3;
  bool has_device() const;
  void clear_device();
  static const int kDeviceFieldNumber = 3;
  private:
  const ::ubii::devices::Device& _internal_device() const;
  public:
  const ::ubii::devices::Device& device() const;
  ::ubii::devices::Device* release_device();
  ::ubii::devices::Device* mutable_device();
  void set_allocated_device(::ubii::devices::Device* device);

  // .ubii.services.request.TopicSubscription topic_subscription = 4;
  bool has_topic_subscription() const;
  void clear_topic_subscription();
  static const int kTopicSubscriptionFieldNumber = 4;
  private:
  const ::ubii::services::request::TopicSubscription& _internal_topic_subscription() const;
  public:
  const ::ubii::services::request::TopicSubscription& topic_subscription() const;
  ::ubii::services::request::TopicSubscription* release_topic_subscription();
  ::ubii::services::request::TopicSubscription* mutable_topic_subscription();
  void set_allocated_topic_subscription(::ubii::services::request::TopicSubscription* topic_subscription);

  // .ubii.sessions.Session session = 5;
  bool has_session() const;
  void clear_session();
  static const int kSessionFieldNumber = 5;
  private:
  const ::ubii::sessions::Session& _internal_session() const;
  public:
  const ::ubii::sessions::Session& session() const;
  ::ubii::sessions::Session* release_session();
  ::ubii::sessions::Session* mutable_session();
  void set_allocated_session(::ubii::sessions::Session* session);

  // .ubii.sessions.SessionList session_list = 6;
  bool has_session_list() const;
  void clear_session_list();
  static const int kSessionListFieldNumber = 6;
  private:
  const ::ubii::sessions::SessionList& _internal_session_list() const;
  public:
  const ::ubii::sessions::SessionList& session_list() const;
  ::ubii::sessions::SessionList* release_session_list();
  ::ubii::sessions::SessionList* mutable_session_list();
  void set_allocated_session_list(::ubii::sessions::SessionList* session_list);

  // .ubii.processing.ProcessingModule processing_module = 7;
  bool has_processing_module() const;
  void clear_processing_module();
  static const int kProcessingModuleFieldNumber = 7;
  private:
  const ::ubii::processing::ProcessingModule& _internal_processing_module() const;
  public:
  const ::ubii::processing::ProcessingModule& processing_module() const;
  ::ubii::processing::ProcessingModule* release_processing_module();
  ::ubii::processing::ProcessingModule* mutable_processing_module();
  void set_allocated_processing_module(::ubii::processing::ProcessingModule* processing_module);

  // .ubii.processing.ProcessingModuleList processing_module_list = 8;
  bool has_processing_module_list() const;
  void clear_processing_module_list();
  static const int kProcessingModuleListFieldNumber = 8;
  private:
  const ::ubii::processing::ProcessingModuleList& _internal_processing_module_list() const;
  public:
  const ::ubii::processing::ProcessingModuleList& processing_module_list() const;
  ::ubii::processing::ProcessingModuleList* release_processing_module_list();
  ::ubii::processing::ProcessingModuleList* mutable_processing_module_list();
  void set_allocated_processing_module_list(::ubii::processing::ProcessingModuleList* processing_module_list);

  // .ubii.devices.TopicMux topic_mux = 9;
  bool has_topic_mux() const;
  void clear_topic_mux();
  static const int kTopicMuxFieldNumber = 9;
  private:
  const ::ubii::devices::TopicMux& _internal_topic_mux() const;
  public:
  const ::ubii::devices::TopicMux& topic_mux() const;
  ::ubii::devices::TopicMux* release_topic_mux();
  ::ubii::devices::TopicMux* mutable_topic_mux();
  void set_allocated_topic_mux(::ubii::devices::TopicMux* topic_mux);

  // .ubii.devices.TopicMuxList topic_mux_list = 10;
  bool has_topic_mux_list() const;
  void clear_topic_mux_list();
  static const int kTopicMuxListFieldNumber = 10;
  private:
  const ::ubii::devices::TopicMuxList& _internal_topic_mux_list() const;
  public:
  const ::ubii::devices::TopicMuxList& topic_mux_list() const;
  ::ubii::devices::TopicMuxList* release_topic_mux_list();
  ::ubii::devices::TopicMuxList* mutable_topic_mux_list();
  void set_allocated_topic_mux_list(::ubii::devices::TopicMuxList* topic_mux_list);

  // .ubii.devices.TopicDemux topic_demux = 11;
  bool has_topic_demux() const;
  void clear_topic_demux();
  static const int kTopicDemuxFieldNumber = 11;
  private:
  const ::ubii::devices::TopicDemux& _internal_topic_demux() const;
  public:
  const ::ubii::devices::TopicDemux& topic_demux() const;
  ::ubii::devices::TopicDemux* release_topic_demux();
  ::ubii::devices::TopicDemux* mutable_topic_demux();
  void set_allocated_topic_demux(::ubii::devices::TopicDemux* topic_demux);

  // .ubii.devices.TopicDemuxList topic_demux_list = 12;
  bool has_topic_demux_list() const;
  void clear_topic_demux_list();
  static const int kTopicDemuxListFieldNumber = 12;
  private:
  const ::ubii::devices::TopicDemuxList& _internal_topic_demux_list() const;
  public:
  const ::ubii::devices::TopicDemuxList& topic_demux_list() const;
  ::ubii::devices::TopicDemuxList* release_topic_demux_list();
  ::ubii::devices::TopicDemuxList* mutable_topic_demux_list();
  void set_allocated_topic_demux_list(::ubii::devices::TopicDemuxList* topic_demux_list);

  // .ubii.clients.ClientList client_list = 13;
  bool has_client_list() const;
  void clear_client_list();
  static const int kClientListFieldNumber = 13;
  private:
  const ::ubii::clients::ClientList& _internal_client_list() const;
  public:
  const ::ubii::clients::ClientList& client_list() const;
  ::ubii::clients::ClientList* release_client_list();
  ::ubii::clients::ClientList* mutable_client_list();
  void set_allocated_client_list(::ubii::clients::ClientList* client_list);

  // .ubii.devices.DeviceList device_list = 14;
  bool has_device_list() const;
  void clear_device_list();
  static const int kDeviceListFieldNumber = 14;
  private:
  const ::ubii::devices::DeviceList& _internal_device_list() const;
  public:
  const ::ubii::devices::DeviceList& device_list() const;
  ::ubii::devices::DeviceList* release_device_list();
  ::ubii::devices::DeviceList* mutable_device_list();
  void set_allocated_device_list(::ubii::devices::DeviceList* device_list);

  // .ubii.processing.LockstepProcessingRequest lockstep_processing_request = 15;
  bool has_lockstep_processing_request() const;
  void clear_lockstep_processing_request();
  static const int kLockstepProcessingRequestFieldNumber = 15;
  private:
  const ::ubii::processing::LockstepProcessingRequest& _internal_lockstep_processing_request() const;
  public:
  const ::ubii::processing::LockstepProcessingRequest& lockstep_processing_request() const;
  ::ubii::processing::LockstepProcessingRequest* release_lockstep_processing_request();
  ::ubii::processing::LockstepProcessingRequest* mutable_lockstep_processing_request();
  void set_allocated_lockstep_processing_request(::ubii::processing::LockstepProcessingRequest* lockstep_processing_request);

  void clear_type();
  TypeCase type_case() const;
  // @@protoc_insertion_point(class_scope:ubii.services.ServiceRequest)
 private:
  void set_has_client();
  void set_has_device();
  void set_has_topic_subscription();
  void set_has_session();
  void set_has_session_list();
  void set_has_processing_module();
  void set_has_processing_module_list();
  void set_has_topic_mux();
  void set_has_topic_mux_list();
  void set_has_topic_demux();
  void set_has_topic_demux_list();
  void set_has_client_list();
  void set_has_device_list();
  void set_has_lockstep_processing_request();

  inline bool has_type() const;
  inline void clear_has_type();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::internal::ArenaStringPtr topic_;
  union TypeUnion {
    TypeUnion() {}
    ::ubii::clients::Client* client_;
    ::ubii::devices::Device* device_;
    ::ubii::services::request::TopicSubscription* topic_subscription_;
    ::ubii::sessions::Session* session_;
    ::ubii::sessions::SessionList* session_list_;
    ::ubii::processing::ProcessingModule* processing_module_;
    ::ubii::processing::ProcessingModuleList* processing_module_list_;
    ::ubii::devices::TopicMux* topic_mux_;
    ::ubii::devices::TopicMuxList* topic_mux_list_;
    ::ubii::devices::TopicDemux* topic_demux_;
    ::ubii::devices::TopicDemuxList* topic_demux_list_;
    ::ubii::clients::ClientList* client_list_;
    ::ubii::devices::DeviceList* device_list_;
    ::ubii::processing::LockstepProcessingRequest* lockstep_processing_request_;
  } type_;
  mutable ::google::protobuf::internal::CachedSize _cached_size_;
  ::google::protobuf::uint32 _oneof_case_[1];

  friend struct ::protobuf_proto_2fservices_2fserviceRequest_2eproto::TableStruct;
};
// ===================================================================


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

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

// string topic = 1;
inline void ServiceRequest::clear_topic() {
  topic_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline const ::std::string& ServiceRequest::topic() const {
  // @@protoc_insertion_point(field_get:ubii.services.ServiceRequest.topic)
  return topic_.GetNoArena();
}
inline void ServiceRequest::set_topic(const ::std::string& value) {
  
  topic_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:ubii.services.ServiceRequest.topic)
}
#if LANG_CXX11
inline void ServiceRequest::set_topic(::std::string&& value) {
  
  topic_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:ubii.services.ServiceRequest.topic)
}
#endif
inline void ServiceRequest::set_topic(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  topic_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:ubii.services.ServiceRequest.topic)
}
inline void ServiceRequest::set_topic(const char* value, size_t size) {
  
  topic_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:ubii.services.ServiceRequest.topic)
}
inline ::std::string* ServiceRequest::mutable_topic() {
  
  // @@protoc_insertion_point(field_mutable:ubii.services.ServiceRequest.topic)
  return topic_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* ServiceRequest::release_topic() {
  // @@protoc_insertion_point(field_release:ubii.services.ServiceRequest.topic)
  
  return topic_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void ServiceRequest::set_allocated_topic(::std::string* topic) {
  if (topic != NULL) {
    
  } else {
    
  }
  topic_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), topic);
  // @@protoc_insertion_point(field_set_allocated:ubii.services.ServiceRequest.topic)
}

// .ubii.clients.Client client = 2;
inline bool ServiceRequest::has_client() const {
  return type_case() == kClient;
}
inline void ServiceRequest::set_has_client() {
  _oneof_case_[0] = kClient;
}
inline const ::ubii::clients::Client& ServiceRequest::_internal_client() const {
  return *type_.client_;
}
inline ::ubii::clients::Client* ServiceRequest::release_client() {
  // @@protoc_insertion_point(field_release:ubii.services.ServiceRequest.client)
  if (has_client()) {
    clear_has_type();
      ::ubii::clients::Client* temp = type_.client_;
    type_.client_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::ubii::clients::Client& ServiceRequest::client() const {
  // @@protoc_insertion_point(field_get:ubii.services.ServiceRequest.client)
  return has_client()
      ? *type_.client_
      : *reinterpret_cast< ::ubii::clients::Client*>(&::ubii::clients::_Client_default_instance_);
}
inline ::ubii::clients::Client* ServiceRequest::mutable_client() {
  if (!has_client()) {
    clear_type();
    set_has_client();
    type_.client_ = CreateMaybeMessage< ::ubii::clients::Client >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:ubii.services.ServiceRequest.client)
  return type_.client_;
}

// .ubii.devices.Device device = 3;
inline bool ServiceRequest::has_device() const {
  return type_case() == kDevice;
}
inline void ServiceRequest::set_has_device() {
  _oneof_case_[0] = kDevice;
}
inline const ::ubii::devices::Device& ServiceRequest::_internal_device() const {
  return *type_.device_;
}
inline ::ubii::devices::Device* ServiceRequest::release_device() {
  // @@protoc_insertion_point(field_release:ubii.services.ServiceRequest.device)
  if (has_device()) {
    clear_has_type();
      ::ubii::devices::Device* temp = type_.device_;
    type_.device_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::ubii::devices::Device& ServiceRequest::device() const {
  // @@protoc_insertion_point(field_get:ubii.services.ServiceRequest.device)
  return has_device()
      ? *type_.device_
      : *reinterpret_cast< ::ubii::devices::Device*>(&::ubii::devices::_Device_default_instance_);
}
inline ::ubii::devices::Device* ServiceRequest::mutable_device() {
  if (!has_device()) {
    clear_type();
    set_has_device();
    type_.device_ = CreateMaybeMessage< ::ubii::devices::Device >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:ubii.services.ServiceRequest.device)
  return type_.device_;
}

// .ubii.services.request.TopicSubscription topic_subscription = 4;
inline bool ServiceRequest::has_topic_subscription() const {
  return type_case() == kTopicSubscription;
}
inline void ServiceRequest::set_has_topic_subscription() {
  _oneof_case_[0] = kTopicSubscription;
}
inline const ::ubii::services::request::TopicSubscription& ServiceRequest::_internal_topic_subscription() const {
  return *type_.topic_subscription_;
}
inline ::ubii::services::request::TopicSubscription* ServiceRequest::release_topic_subscription() {
  // @@protoc_insertion_point(field_release:ubii.services.ServiceRequest.topic_subscription)
  if (has_topic_subscription()) {
    clear_has_type();
      ::ubii::services::request::TopicSubscription* temp = type_.topic_subscription_;
    type_.topic_subscription_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::ubii::services::request::TopicSubscription& ServiceRequest::topic_subscription() const {
  // @@protoc_insertion_point(field_get:ubii.services.ServiceRequest.topic_subscription)
  return has_topic_subscription()
      ? *type_.topic_subscription_
      : *reinterpret_cast< ::ubii::services::request::TopicSubscription*>(&::ubii::services::request::_TopicSubscription_default_instance_);
}
inline ::ubii::services::request::TopicSubscription* ServiceRequest::mutable_topic_subscription() {
  if (!has_topic_subscription()) {
    clear_type();
    set_has_topic_subscription();
    type_.topic_subscription_ = CreateMaybeMessage< ::ubii::services::request::TopicSubscription >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:ubii.services.ServiceRequest.topic_subscription)
  return type_.topic_subscription_;
}

// .ubii.sessions.Session session = 5;
inline bool ServiceRequest::has_session() const {
  return type_case() == kSession;
}
inline void ServiceRequest::set_has_session() {
  _oneof_case_[0] = kSession;
}
inline const ::ubii::sessions::Session& ServiceRequest::_internal_session() const {
  return *type_.session_;
}
inline ::ubii::sessions::Session* ServiceRequest::release_session() {
  // @@protoc_insertion_point(field_release:ubii.services.ServiceRequest.session)
  if (has_session()) {
    clear_has_type();
      ::ubii::sessions::Session* temp = type_.session_;
    type_.session_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::ubii::sessions::Session& ServiceRequest::session() const {
  // @@protoc_insertion_point(field_get:ubii.services.ServiceRequest.session)
  return has_session()
      ? *type_.session_
      : *reinterpret_cast< ::ubii::sessions::Session*>(&::ubii::sessions::_Session_default_instance_);
}
inline ::ubii::sessions::Session* ServiceRequest::mutable_session() {
  if (!has_session()) {
    clear_type();
    set_has_session();
    type_.session_ = CreateMaybeMessage< ::ubii::sessions::Session >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:ubii.services.ServiceRequest.session)
  return type_.session_;
}

// .ubii.sessions.SessionList session_list = 6;
inline bool ServiceRequest::has_session_list() const {
  return type_case() == kSessionList;
}
inline void ServiceRequest::set_has_session_list() {
  _oneof_case_[0] = kSessionList;
}
inline const ::ubii::sessions::SessionList& ServiceRequest::_internal_session_list() const {
  return *type_.session_list_;
}
inline ::ubii::sessions::SessionList* ServiceRequest::release_session_list() {
  // @@protoc_insertion_point(field_release:ubii.services.ServiceRequest.session_list)
  if (has_session_list()) {
    clear_has_type();
      ::ubii::sessions::SessionList* temp = type_.session_list_;
    type_.session_list_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::ubii::sessions::SessionList& ServiceRequest::session_list() const {
  // @@protoc_insertion_point(field_get:ubii.services.ServiceRequest.session_list)
  return has_session_list()
      ? *type_.session_list_
      : *reinterpret_cast< ::ubii::sessions::SessionList*>(&::ubii::sessions::_SessionList_default_instance_);
}
inline ::ubii::sessions::SessionList* ServiceRequest::mutable_session_list() {
  if (!has_session_list()) {
    clear_type();
    set_has_session_list();
    type_.session_list_ = CreateMaybeMessage< ::ubii::sessions::SessionList >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:ubii.services.ServiceRequest.session_list)
  return type_.session_list_;
}

// .ubii.processing.ProcessingModule processing_module = 7;
inline bool ServiceRequest::has_processing_module() const {
  return type_case() == kProcessingModule;
}
inline void ServiceRequest::set_has_processing_module() {
  _oneof_case_[0] = kProcessingModule;
}
inline const ::ubii::processing::ProcessingModule& ServiceRequest::_internal_processing_module() const {
  return *type_.processing_module_;
}
inline ::ubii::processing::ProcessingModule* ServiceRequest::release_processing_module() {
  // @@protoc_insertion_point(field_release:ubii.services.ServiceRequest.processing_module)
  if (has_processing_module()) {
    clear_has_type();
      ::ubii::processing::ProcessingModule* temp = type_.processing_module_;
    type_.processing_module_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::ubii::processing::ProcessingModule& ServiceRequest::processing_module() const {
  // @@protoc_insertion_point(field_get:ubii.services.ServiceRequest.processing_module)
  return has_processing_module()
      ? *type_.processing_module_
      : *reinterpret_cast< ::ubii::processing::ProcessingModule*>(&::ubii::processing::_ProcessingModule_default_instance_);
}
inline ::ubii::processing::ProcessingModule* ServiceRequest::mutable_processing_module() {
  if (!has_processing_module()) {
    clear_type();
    set_has_processing_module();
    type_.processing_module_ = CreateMaybeMessage< ::ubii::processing::ProcessingModule >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:ubii.services.ServiceRequest.processing_module)
  return type_.processing_module_;
}

// .ubii.processing.ProcessingModuleList processing_module_list = 8;
inline bool ServiceRequest::has_processing_module_list() const {
  return type_case() == kProcessingModuleList;
}
inline void ServiceRequest::set_has_processing_module_list() {
  _oneof_case_[0] = kProcessingModuleList;
}
inline const ::ubii::processing::ProcessingModuleList& ServiceRequest::_internal_processing_module_list() const {
  return *type_.processing_module_list_;
}
inline ::ubii::processing::ProcessingModuleList* ServiceRequest::release_processing_module_list() {
  // @@protoc_insertion_point(field_release:ubii.services.ServiceRequest.processing_module_list)
  if (has_processing_module_list()) {
    clear_has_type();
      ::ubii::processing::ProcessingModuleList* temp = type_.processing_module_list_;
    type_.processing_module_list_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::ubii::processing::ProcessingModuleList& ServiceRequest::processing_module_list() const {
  // @@protoc_insertion_point(field_get:ubii.services.ServiceRequest.processing_module_list)
  return has_processing_module_list()
      ? *type_.processing_module_list_
      : *reinterpret_cast< ::ubii::processing::ProcessingModuleList*>(&::ubii::processing::_ProcessingModuleList_default_instance_);
}
inline ::ubii::processing::ProcessingModuleList* ServiceRequest::mutable_processing_module_list() {
  if (!has_processing_module_list()) {
    clear_type();
    set_has_processing_module_list();
    type_.processing_module_list_ = CreateMaybeMessage< ::ubii::processing::ProcessingModuleList >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:ubii.services.ServiceRequest.processing_module_list)
  return type_.processing_module_list_;
}

// .ubii.devices.TopicMux topic_mux = 9;
inline bool ServiceRequest::has_topic_mux() const {
  return type_case() == kTopicMux;
}
inline void ServiceRequest::set_has_topic_mux() {
  _oneof_case_[0] = kTopicMux;
}
inline const ::ubii::devices::TopicMux& ServiceRequest::_internal_topic_mux() const {
  return *type_.topic_mux_;
}
inline ::ubii::devices::TopicMux* ServiceRequest::release_topic_mux() {
  // @@protoc_insertion_point(field_release:ubii.services.ServiceRequest.topic_mux)
  if (has_topic_mux()) {
    clear_has_type();
      ::ubii::devices::TopicMux* temp = type_.topic_mux_;
    type_.topic_mux_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::ubii::devices::TopicMux& ServiceRequest::topic_mux() const {
  // @@protoc_insertion_point(field_get:ubii.services.ServiceRequest.topic_mux)
  return has_topic_mux()
      ? *type_.topic_mux_
      : *reinterpret_cast< ::ubii::devices::TopicMux*>(&::ubii::devices::_TopicMux_default_instance_);
}
inline ::ubii::devices::TopicMux* ServiceRequest::mutable_topic_mux() {
  if (!has_topic_mux()) {
    clear_type();
    set_has_topic_mux();
    type_.topic_mux_ = CreateMaybeMessage< ::ubii::devices::TopicMux >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:ubii.services.ServiceRequest.topic_mux)
  return type_.topic_mux_;
}

// .ubii.devices.TopicMuxList topic_mux_list = 10;
inline bool ServiceRequest::has_topic_mux_list() const {
  return type_case() == kTopicMuxList;
}
inline void ServiceRequest::set_has_topic_mux_list() {
  _oneof_case_[0] = kTopicMuxList;
}
inline const ::ubii::devices::TopicMuxList& ServiceRequest::_internal_topic_mux_list() const {
  return *type_.topic_mux_list_;
}
inline ::ubii::devices::TopicMuxList* ServiceRequest::release_topic_mux_list() {
  // @@protoc_insertion_point(field_release:ubii.services.ServiceRequest.topic_mux_list)
  if (has_topic_mux_list()) {
    clear_has_type();
      ::ubii::devices::TopicMuxList* temp = type_.topic_mux_list_;
    type_.topic_mux_list_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::ubii::devices::TopicMuxList& ServiceRequest::topic_mux_list() const {
  // @@protoc_insertion_point(field_get:ubii.services.ServiceRequest.topic_mux_list)
  return has_topic_mux_list()
      ? *type_.topic_mux_list_
      : *reinterpret_cast< ::ubii::devices::TopicMuxList*>(&::ubii::devices::_TopicMuxList_default_instance_);
}
inline ::ubii::devices::TopicMuxList* ServiceRequest::mutable_topic_mux_list() {
  if (!has_topic_mux_list()) {
    clear_type();
    set_has_topic_mux_list();
    type_.topic_mux_list_ = CreateMaybeMessage< ::ubii::devices::TopicMuxList >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:ubii.services.ServiceRequest.topic_mux_list)
  return type_.topic_mux_list_;
}

// .ubii.devices.TopicDemux topic_demux = 11;
inline bool ServiceRequest::has_topic_demux() const {
  return type_case() == kTopicDemux;
}
inline void ServiceRequest::set_has_topic_demux() {
  _oneof_case_[0] = kTopicDemux;
}
inline const ::ubii::devices::TopicDemux& ServiceRequest::_internal_topic_demux() const {
  return *type_.topic_demux_;
}
inline ::ubii::devices::TopicDemux* ServiceRequest::release_topic_demux() {
  // @@protoc_insertion_point(field_release:ubii.services.ServiceRequest.topic_demux)
  if (has_topic_demux()) {
    clear_has_type();
      ::ubii::devices::TopicDemux* temp = type_.topic_demux_;
    type_.topic_demux_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::ubii::devices::TopicDemux& ServiceRequest::topic_demux() const {
  // @@protoc_insertion_point(field_get:ubii.services.ServiceRequest.topic_demux)
  return has_topic_demux()
      ? *type_.topic_demux_
      : *reinterpret_cast< ::ubii::devices::TopicDemux*>(&::ubii::devices::_TopicDemux_default_instance_);
}
inline ::ubii::devices::TopicDemux* ServiceRequest::mutable_topic_demux() {
  if (!has_topic_demux()) {
    clear_type();
    set_has_topic_demux();
    type_.topic_demux_ = CreateMaybeMessage< ::ubii::devices::TopicDemux >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:ubii.services.ServiceRequest.topic_demux)
  return type_.topic_demux_;
}

// .ubii.devices.TopicDemuxList topic_demux_list = 12;
inline bool ServiceRequest::has_topic_demux_list() const {
  return type_case() == kTopicDemuxList;
}
inline void ServiceRequest::set_has_topic_demux_list() {
  _oneof_case_[0] = kTopicDemuxList;
}
inline const ::ubii::devices::TopicDemuxList& ServiceRequest::_internal_topic_demux_list() const {
  return *type_.topic_demux_list_;
}
inline ::ubii::devices::TopicDemuxList* ServiceRequest::release_topic_demux_list() {
  // @@protoc_insertion_point(field_release:ubii.services.ServiceRequest.topic_demux_list)
  if (has_topic_demux_list()) {
    clear_has_type();
      ::ubii::devices::TopicDemuxList* temp = type_.topic_demux_list_;
    type_.topic_demux_list_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::ubii::devices::TopicDemuxList& ServiceRequest::topic_demux_list() const {
  // @@protoc_insertion_point(field_get:ubii.services.ServiceRequest.topic_demux_list)
  return has_topic_demux_list()
      ? *type_.topic_demux_list_
      : *reinterpret_cast< ::ubii::devices::TopicDemuxList*>(&::ubii::devices::_TopicDemuxList_default_instance_);
}
inline ::ubii::devices::TopicDemuxList* ServiceRequest::mutable_topic_demux_list() {
  if (!has_topic_demux_list()) {
    clear_type();
    set_has_topic_demux_list();
    type_.topic_demux_list_ = CreateMaybeMessage< ::ubii::devices::TopicDemuxList >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:ubii.services.ServiceRequest.topic_demux_list)
  return type_.topic_demux_list_;
}

// .ubii.clients.ClientList client_list = 13;
inline bool ServiceRequest::has_client_list() const {
  return type_case() == kClientList;
}
inline void ServiceRequest::set_has_client_list() {
  _oneof_case_[0] = kClientList;
}
inline const ::ubii::clients::ClientList& ServiceRequest::_internal_client_list() const {
  return *type_.client_list_;
}
inline ::ubii::clients::ClientList* ServiceRequest::release_client_list() {
  // @@protoc_insertion_point(field_release:ubii.services.ServiceRequest.client_list)
  if (has_client_list()) {
    clear_has_type();
      ::ubii::clients::ClientList* temp = type_.client_list_;
    type_.client_list_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::ubii::clients::ClientList& ServiceRequest::client_list() const {
  // @@protoc_insertion_point(field_get:ubii.services.ServiceRequest.client_list)
  return has_client_list()
      ? *type_.client_list_
      : *reinterpret_cast< ::ubii::clients::ClientList*>(&::ubii::clients::_ClientList_default_instance_);
}
inline ::ubii::clients::ClientList* ServiceRequest::mutable_client_list() {
  if (!has_client_list()) {
    clear_type();
    set_has_client_list();
    type_.client_list_ = CreateMaybeMessage< ::ubii::clients::ClientList >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:ubii.services.ServiceRequest.client_list)
  return type_.client_list_;
}

// .ubii.devices.DeviceList device_list = 14;
inline bool ServiceRequest::has_device_list() const {
  return type_case() == kDeviceList;
}
inline void ServiceRequest::set_has_device_list() {
  _oneof_case_[0] = kDeviceList;
}
inline const ::ubii::devices::DeviceList& ServiceRequest::_internal_device_list() const {
  return *type_.device_list_;
}
inline ::ubii::devices::DeviceList* ServiceRequest::release_device_list() {
  // @@protoc_insertion_point(field_release:ubii.services.ServiceRequest.device_list)
  if (has_device_list()) {
    clear_has_type();
      ::ubii::devices::DeviceList* temp = type_.device_list_;
    type_.device_list_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::ubii::devices::DeviceList& ServiceRequest::device_list() const {
  // @@protoc_insertion_point(field_get:ubii.services.ServiceRequest.device_list)
  return has_device_list()
      ? *type_.device_list_
      : *reinterpret_cast< ::ubii::devices::DeviceList*>(&::ubii::devices::_DeviceList_default_instance_);
}
inline ::ubii::devices::DeviceList* ServiceRequest::mutable_device_list() {
  if (!has_device_list()) {
    clear_type();
    set_has_device_list();
    type_.device_list_ = CreateMaybeMessage< ::ubii::devices::DeviceList >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:ubii.services.ServiceRequest.device_list)
  return type_.device_list_;
}

// .ubii.processing.LockstepProcessingRequest lockstep_processing_request = 15;
inline bool ServiceRequest::has_lockstep_processing_request() const {
  return type_case() == kLockstepProcessingRequest;
}
inline void ServiceRequest::set_has_lockstep_processing_request() {
  _oneof_case_[0] = kLockstepProcessingRequest;
}
inline const ::ubii::processing::LockstepProcessingRequest& ServiceRequest::_internal_lockstep_processing_request() const {
  return *type_.lockstep_processing_request_;
}
inline ::ubii::processing::LockstepProcessingRequest* ServiceRequest::release_lockstep_processing_request() {
  // @@protoc_insertion_point(field_release:ubii.services.ServiceRequest.lockstep_processing_request)
  if (has_lockstep_processing_request()) {
    clear_has_type();
      ::ubii::processing::LockstepProcessingRequest* temp = type_.lockstep_processing_request_;
    type_.lockstep_processing_request_ = NULL;
    return temp;
  } else {
    return NULL;
  }
}
inline const ::ubii::processing::LockstepProcessingRequest& ServiceRequest::lockstep_processing_request() const {
  // @@protoc_insertion_point(field_get:ubii.services.ServiceRequest.lockstep_processing_request)
  return has_lockstep_processing_request()
      ? *type_.lockstep_processing_request_
      : *reinterpret_cast< ::ubii::processing::LockstepProcessingRequest*>(&::ubii::processing::_LockstepProcessingRequest_default_instance_);
}
inline ::ubii::processing::LockstepProcessingRequest* ServiceRequest::mutable_lockstep_processing_request() {
  if (!has_lockstep_processing_request()) {
    clear_type();
    set_has_lockstep_processing_request();
    type_.lockstep_processing_request_ = CreateMaybeMessage< ::ubii::processing::LockstepProcessingRequest >(
        GetArenaNoVirtual());
  }
  // @@protoc_insertion_point(field_mutable:ubii.services.ServiceRequest.lockstep_processing_request)
  return type_.lockstep_processing_request_;
}

inline bool ServiceRequest::has_type() const {
  return type_case() != TYPE_NOT_SET;
}
inline void ServiceRequest::clear_has_type() {
  _oneof_case_[0] = TYPE_NOT_SET;
}
inline ServiceRequest::TypeCase ServiceRequest::type_case() const {
  return ServiceRequest::TypeCase(_oneof_case_[0]);
}
#ifdef __GNUC__
  #pragma GCC diagnostic pop
#endif  // __GNUC__

// @@protoc_insertion_point(namespace_scope)

}  // namespace services
}  // namespace ubii

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_INCLUDED_proto_2fservices_2fserviceRequest_2eproto
