[gst-debugger] Add generated files to repository



commit 365d4853c2e58c1e18ab7a4f2b169f93fecc4126
Author: Marcin Kolny <marcin kolny gmail com>
Date:   Sun Oct 8 20:34:15 2017 +0100

    Add generated files to repository
    
    So protobuf is not required to build the project

 .gitignore                         |    4 -
 meson.build                        |    6 +-
 src/common/gstdebugger.pb-c.c      | 3698 +++++++
 src/common/gstdebugger.pb-c.h      | 1266 +++
 src/common/meson.build             |   20 +-
 src/gst-debugger/gstdebugger.pb.cc |18567 ++++++++++++++++++++++++++++++++++++
 src/gst-debugger/gstdebugger.pb.h  |10153 ++++++++++++++++++++
 src/gst-debugger/meson.build       |   10 +-
 src/meson.build                    |    8 +
 tools/generate-proto.py            |   18 +
 10 files changed, 33715 insertions(+), 35 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index fd8c8f5..b97a9db 100644
--- a/.gitignore
+++ b/.gitignore
@@ -49,10 +49,6 @@ Makefile
 /src/gst-debugger/gst-debugger-resources.h
 
 # /src/common
-/src/common/gstdebugger.pb-c.c
-/src/common/gstdebugger.pb-c.h
-/src/common/gstdebugger.pb.cc
-/src/common/gstdebugger.pb.h
 /src/common/libgst-debugger-common-0.1.pc
 
 # intltool/gettext
diff --git a/meson.build b/meson.build
index 8a733f7..c93b0b9 100644
--- a/meson.build
+++ b/meson.build
@@ -13,6 +13,7 @@ gst_apiversion = '1.0'
 
 # Modules
 gnome = import('gnome')
+python = import('python3')
 
 # Dependencies
 glib_version = '2.41.1'
@@ -31,12 +32,9 @@ protobuf_dep = dependency('protobuf', version : '>=2.6.1')
 boost_dep = dependency('boost', modules : ['filesystem', 'system'], version : '>=1.55')
 thread_dep = dependency('threads')
 
-# Dependency apps
-protoc_c = find_program('protoc-c')
-
 # Configuration file
 conf = configuration_data()
-conf.set_quoted('PACKAGE_NAME', 'gnome-paint')
+conf.set_quoted('PACKAGE_NAME', 'gst-debugger')
 conf.set_quoted('VERSION', meson.project_version())
 conf.set_quoted('GST_DEBUGGER_LOCALEDIR', join_paths(get_option('prefix'), get_option('datadir'), 'locale'))
 conf.set('GETTEXT_PACKAGE', 'PACKAGE_NAME')
diff --git a/src/common/gstdebugger.pb-c.c b/src/common/gstdebugger.pb-c.c
new file mode 100644
index 0000000..97bceeb
--- /dev/null
+++ b/src/common/gstdebugger.pb-c.c
@@ -0,0 +1,3698 @@
+/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
+/* Generated from: gstdebugger.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "gstdebugger.pb-c.h"
+void   gst_debugger__value__init
+                     (GstDebugger__Value         *message)
+{
+  static GstDebugger__Value init_value = GST_DEBUGGER__VALUE__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__value__get_packed_size
+                     (const GstDebugger__Value *message)
+{
+  assert(message->base.descriptor == &gst_debugger__value__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__value__pack
+                     (const GstDebugger__Value *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__value__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__value__pack_to_buffer
+                     (const GstDebugger__Value *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__value__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__Value *
+       gst_debugger__value__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__Value *)
+     protobuf_c_message_unpack (&gst_debugger__value__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__value__free_unpacked
+                     (GstDebugger__Value *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__value__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__property_info__init
+                     (GstDebugger__PropertyInfo         *message)
+{
+  static GstDebugger__PropertyInfo init_value = GST_DEBUGGER__PROPERTY_INFO__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__property_info__get_packed_size
+                     (const GstDebugger__PropertyInfo *message)
+{
+  assert(message->base.descriptor == &gst_debugger__property_info__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__property_info__pack
+                     (const GstDebugger__PropertyInfo *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__property_info__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__property_info__pack_to_buffer
+                     (const GstDebugger__PropertyInfo *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__property_info__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__PropertyInfo *
+       gst_debugger__property_info__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__PropertyInfo *)
+     protobuf_c_message_unpack (&gst_debugger__property_info__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__property_info__free_unpacked
+                     (GstDebugger__PropertyInfo *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__property_info__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__property_value__init
+                     (GstDebugger__PropertyValue         *message)
+{
+  static GstDebugger__PropertyValue init_value = GST_DEBUGGER__PROPERTY_VALUE__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__property_value__get_packed_size
+                     (const GstDebugger__PropertyValue *message)
+{
+  assert(message->base.descriptor == &gst_debugger__property_value__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__property_value__pack
+                     (const GstDebugger__PropertyValue *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__property_value__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__property_value__pack_to_buffer
+                     (const GstDebugger__PropertyValue *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__property_value__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__PropertyValue *
+       gst_debugger__property_value__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__PropertyValue *)
+     protobuf_c_message_unpack (&gst_debugger__property_value__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__property_value__free_unpacked
+                     (GstDebugger__PropertyValue *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__property_value__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__property_request__init
+                     (GstDebugger__PropertyRequest         *message)
+{
+  static GstDebugger__PropertyRequest init_value = GST_DEBUGGER__PROPERTY_REQUEST__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__property_request__get_packed_size
+                     (const GstDebugger__PropertyRequest *message)
+{
+  assert(message->base.descriptor == &gst_debugger__property_request__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__property_request__pack
+                     (const GstDebugger__PropertyRequest *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__property_request__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__property_request__pack_to_buffer
+                     (const GstDebugger__PropertyRequest *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__property_request__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__PropertyRequest *
+       gst_debugger__property_request__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__PropertyRequest *)
+     protobuf_c_message_unpack (&gst_debugger__property_request__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__property_request__free_unpacked
+                     (GstDebugger__PropertyRequest *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__property_request__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__message_info__init
+                     (GstDebugger__MessageInfo         *message)
+{
+  static GstDebugger__MessageInfo init_value = GST_DEBUGGER__MESSAGE_INFO__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__message_info__get_packed_size
+                     (const GstDebugger__MessageInfo *message)
+{
+  assert(message->base.descriptor == &gst_debugger__message_info__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__message_info__pack
+                     (const GstDebugger__MessageInfo *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__message_info__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__message_info__pack_to_buffer
+                     (const GstDebugger__MessageInfo *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__message_info__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__MessageInfo *
+       gst_debugger__message_info__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__MessageInfo *)
+     protobuf_c_message_unpack (&gst_debugger__message_info__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__message_info__free_unpacked
+                     (GstDebugger__MessageInfo *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__message_info__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__event_info__init
+                     (GstDebugger__EventInfo         *message)
+{
+  static GstDebugger__EventInfo init_value = GST_DEBUGGER__EVENT_INFO__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__event_info__get_packed_size
+                     (const GstDebugger__EventInfo *message)
+{
+  assert(message->base.descriptor == &gst_debugger__event_info__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__event_info__pack
+                     (const GstDebugger__EventInfo *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__event_info__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__event_info__pack_to_buffer
+                     (const GstDebugger__EventInfo *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__event_info__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__EventInfo *
+       gst_debugger__event_info__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__EventInfo *)
+     protobuf_c_message_unpack (&gst_debugger__event_info__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__event_info__free_unpacked
+                     (GstDebugger__EventInfo *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__event_info__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__query_info__init
+                     (GstDebugger__QueryInfo         *message)
+{
+  static GstDebugger__QueryInfo init_value = GST_DEBUGGER__QUERY_INFO__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__query_info__get_packed_size
+                     (const GstDebugger__QueryInfo *message)
+{
+  assert(message->base.descriptor == &gst_debugger__query_info__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__query_info__pack
+                     (const GstDebugger__QueryInfo *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__query_info__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__query_info__pack_to_buffer
+                     (const GstDebugger__QueryInfo *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__query_info__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__QueryInfo *
+       gst_debugger__query_info__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__QueryInfo *)
+     protobuf_c_message_unpack (&gst_debugger__query_info__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__query_info__free_unpacked
+                     (GstDebugger__QueryInfo *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__query_info__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__buffer_info__init
+                     (GstDebugger__BufferInfo         *message)
+{
+  static GstDebugger__BufferInfo init_value = GST_DEBUGGER__BUFFER_INFO__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__buffer_info__get_packed_size
+                     (const GstDebugger__BufferInfo *message)
+{
+  assert(message->base.descriptor == &gst_debugger__buffer_info__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__buffer_info__pack
+                     (const GstDebugger__BufferInfo *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__buffer_info__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__buffer_info__pack_to_buffer
+                     (const GstDebugger__BufferInfo *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__buffer_info__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__BufferInfo *
+       gst_debugger__buffer_info__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__BufferInfo *)
+     protobuf_c_message_unpack (&gst_debugger__buffer_info__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__buffer_info__free_unpacked
+                     (GstDebugger__BufferInfo *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__buffer_info__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__type_description_request__init
+                     (GstDebugger__TypeDescriptionRequest         *message)
+{
+  static GstDebugger__TypeDescriptionRequest init_value = GST_DEBUGGER__TYPE_DESCRIPTION_REQUEST__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__type_description_request__get_packed_size
+                     (const GstDebugger__TypeDescriptionRequest *message)
+{
+  assert(message->base.descriptor == &gst_debugger__type_description_request__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__type_description_request__pack
+                     (const GstDebugger__TypeDescriptionRequest *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__type_description_request__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__type_description_request__pack_to_buffer
+                     (const GstDebugger__TypeDescriptionRequest *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__type_description_request__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__TypeDescriptionRequest *
+       gst_debugger__type_description_request__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__TypeDescriptionRequest *)
+     protobuf_c_message_unpack (&gst_debugger__type_description_request__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__type_description_request__free_unpacked
+                     (GstDebugger__TypeDescriptionRequest *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__type_description_request__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__query_hook_request__init
+                     (GstDebugger__QueryHookRequest         *message)
+{
+  static GstDebugger__QueryHookRequest init_value = GST_DEBUGGER__QUERY_HOOK_REQUEST__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__query_hook_request__get_packed_size
+                     (const GstDebugger__QueryHookRequest *message)
+{
+  assert(message->base.descriptor == &gst_debugger__query_hook_request__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__query_hook_request__pack
+                     (const GstDebugger__QueryHookRequest *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__query_hook_request__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__query_hook_request__pack_to_buffer
+                     (const GstDebugger__QueryHookRequest *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__query_hook_request__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__QueryHookRequest *
+       gst_debugger__query_hook_request__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__QueryHookRequest *)
+     protobuf_c_message_unpack (&gst_debugger__query_hook_request__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__query_hook_request__free_unpacked
+                     (GstDebugger__QueryHookRequest *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__query_hook_request__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__buffer_hook_request__init
+                     (GstDebugger__BufferHookRequest         *message)
+{
+  static GstDebugger__BufferHookRequest init_value = GST_DEBUGGER__BUFFER_HOOK_REQUEST__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__buffer_hook_request__get_packed_size
+                     (const GstDebugger__BufferHookRequest *message)
+{
+  assert(message->base.descriptor == &gst_debugger__buffer_hook_request__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__buffer_hook_request__pack
+                     (const GstDebugger__BufferHookRequest *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__buffer_hook_request__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__buffer_hook_request__pack_to_buffer
+                     (const GstDebugger__BufferHookRequest *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__buffer_hook_request__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__BufferHookRequest *
+       gst_debugger__buffer_hook_request__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__BufferHookRequest *)
+     protobuf_c_message_unpack (&gst_debugger__buffer_hook_request__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__buffer_hook_request__free_unpacked
+                     (GstDebugger__BufferHookRequest *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__buffer_hook_request__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__event_hook_request__init
+                     (GstDebugger__EventHookRequest         *message)
+{
+  static GstDebugger__EventHookRequest init_value = GST_DEBUGGER__EVENT_HOOK_REQUEST__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__event_hook_request__get_packed_size
+                     (const GstDebugger__EventHookRequest *message)
+{
+  assert(message->base.descriptor == &gst_debugger__event_hook_request__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__event_hook_request__pack
+                     (const GstDebugger__EventHookRequest *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__event_hook_request__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__event_hook_request__pack_to_buffer
+                     (const GstDebugger__EventHookRequest *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__event_hook_request__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__EventHookRequest *
+       gst_debugger__event_hook_request__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__EventHookRequest *)
+     protobuf_c_message_unpack (&gst_debugger__event_hook_request__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__event_hook_request__free_unpacked
+                     (GstDebugger__EventHookRequest *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__event_hook_request__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__pad_hook_request__init
+                     (GstDebugger__PadHookRequest         *message)
+{
+  static GstDebugger__PadHookRequest init_value = GST_DEBUGGER__PAD_HOOK_REQUEST__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__pad_hook_request__get_packed_size
+                     (const GstDebugger__PadHookRequest *message)
+{
+  assert(message->base.descriptor == &gst_debugger__pad_hook_request__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__pad_hook_request__pack
+                     (const GstDebugger__PadHookRequest *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__pad_hook_request__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__pad_hook_request__pack_to_buffer
+                     (const GstDebugger__PadHookRequest *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__pad_hook_request__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__PadHookRequest *
+       gst_debugger__pad_hook_request__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__PadHookRequest *)
+     protobuf_c_message_unpack (&gst_debugger__pad_hook_request__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__pad_hook_request__free_unpacked
+                     (GstDebugger__PadHookRequest *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__pad_hook_request__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__log_request__init
+                     (GstDebugger__LogRequest         *message)
+{
+  static GstDebugger__LogRequest init_value = GST_DEBUGGER__LOG_REQUEST__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__log_request__get_packed_size
+                     (const GstDebugger__LogRequest *message)
+{
+  assert(message->base.descriptor == &gst_debugger__log_request__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__log_request__pack
+                     (const GstDebugger__LogRequest *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__log_request__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__log_request__pack_to_buffer
+                     (const GstDebugger__LogRequest *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__log_request__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__LogRequest *
+       gst_debugger__log_request__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__LogRequest *)
+     protobuf_c_message_unpack (&gst_debugger__log_request__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__log_request__free_unpacked
+                     (GstDebugger__LogRequest *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__log_request__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__message_request__init
+                     (GstDebugger__MessageRequest         *message)
+{
+  static GstDebugger__MessageRequest init_value = GST_DEBUGGER__MESSAGE_REQUEST__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__message_request__get_packed_size
+                     (const GstDebugger__MessageRequest *message)
+{
+  assert(message->base.descriptor == &gst_debugger__message_request__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__message_request__pack
+                     (const GstDebugger__MessageRequest *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__message_request__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__message_request__pack_to_buffer
+                     (const GstDebugger__MessageRequest *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__message_request__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__MessageRequest *
+       gst_debugger__message_request__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__MessageRequest *)
+     protobuf_c_message_unpack (&gst_debugger__message_request__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__message_request__free_unpacked
+                     (GstDebugger__MessageRequest *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__message_request__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__hook_request__init
+                     (GstDebugger__HookRequest         *message)
+{
+  static GstDebugger__HookRequest init_value = GST_DEBUGGER__HOOK_REQUEST__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__hook_request__get_packed_size
+                     (const GstDebugger__HookRequest *message)
+{
+  assert(message->base.descriptor == &gst_debugger__hook_request__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__hook_request__pack
+                     (const GstDebugger__HookRequest *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__hook_request__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__hook_request__pack_to_buffer
+                     (const GstDebugger__HookRequest *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__hook_request__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__HookRequest *
+       gst_debugger__hook_request__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__HookRequest *)
+     protobuf_c_message_unpack (&gst_debugger__hook_request__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__hook_request__free_unpacked
+                     (GstDebugger__HookRequest *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__hook_request__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__command__init
+                     (GstDebugger__Command         *message)
+{
+  static GstDebugger__Command init_value = GST_DEBUGGER__COMMAND__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__command__get_packed_size
+                     (const GstDebugger__Command *message)
+{
+  assert(message->base.descriptor == &gst_debugger__command__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__command__pack
+                     (const GstDebugger__Command *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__command__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__command__pack_to_buffer
+                     (const GstDebugger__Command *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__command__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__Command *
+       gst_debugger__command__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__Command *)
+     protobuf_c_message_unpack (&gst_debugger__command__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__command__free_unpacked
+                     (GstDebugger__Command *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__command__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__debug_categories__init
+                     (GstDebugger__DebugCategories         *message)
+{
+  static GstDebugger__DebugCategories init_value = GST_DEBUGGER__DEBUG_CATEGORIES__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__debug_categories__get_packed_size
+                     (const GstDebugger__DebugCategories *message)
+{
+  assert(message->base.descriptor == &gst_debugger__debug_categories__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__debug_categories__pack
+                     (const GstDebugger__DebugCategories *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__debug_categories__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__debug_categories__pack_to_buffer
+                     (const GstDebugger__DebugCategories *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__debug_categories__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__DebugCategories *
+       gst_debugger__debug_categories__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__DebugCategories *)
+     protobuf_c_message_unpack (&gst_debugger__debug_categories__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__debug_categories__free_unpacked
+                     (GstDebugger__DebugCategories *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__debug_categories__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__log_info__init
+                     (GstDebugger__LogInfo         *message)
+{
+  static GstDebugger__LogInfo init_value = GST_DEBUGGER__LOG_INFO__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__log_info__get_packed_size
+                     (const GstDebugger__LogInfo *message)
+{
+  assert(message->base.descriptor == &gst_debugger__log_info__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__log_info__pack
+                     (const GstDebugger__LogInfo *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__log_info__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__log_info__pack_to_buffer
+                     (const GstDebugger__LogInfo *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__log_info__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__LogInfo *
+       gst_debugger__log_info__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__LogInfo *)
+     protobuf_c_message_unpack (&gst_debugger__log_info__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__log_info__free_unpacked
+                     (GstDebugger__LogInfo *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__log_info__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__enum_flags_value__init
+                     (GstDebugger__EnumFlagsValue         *message)
+{
+  static GstDebugger__EnumFlagsValue init_value = GST_DEBUGGER__ENUM_FLAGS_VALUE__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__enum_flags_value__get_packed_size
+                     (const GstDebugger__EnumFlagsValue *message)
+{
+  assert(message->base.descriptor == &gst_debugger__enum_flags_value__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__enum_flags_value__pack
+                     (const GstDebugger__EnumFlagsValue *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__enum_flags_value__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__enum_flags_value__pack_to_buffer
+                     (const GstDebugger__EnumFlagsValue *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__enum_flags_value__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__EnumFlagsValue *
+       gst_debugger__enum_flags_value__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__EnumFlagsValue *)
+     protobuf_c_message_unpack (&gst_debugger__enum_flags_value__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__enum_flags_value__free_unpacked
+                     (GstDebugger__EnumFlagsValue *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__enum_flags_value__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__enum_flags_type__init
+                     (GstDebugger__EnumFlagsType         *message)
+{
+  static GstDebugger__EnumFlagsType init_value = GST_DEBUGGER__ENUM_FLAGS_TYPE__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__enum_flags_type__get_packed_size
+                     (const GstDebugger__EnumFlagsType *message)
+{
+  assert(message->base.descriptor == &gst_debugger__enum_flags_type__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__enum_flags_type__pack
+                     (const GstDebugger__EnumFlagsType *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__enum_flags_type__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__enum_flags_type__pack_to_buffer
+                     (const GstDebugger__EnumFlagsType *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__enum_flags_type__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__EnumFlagsType *
+       gst_debugger__enum_flags_type__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__EnumFlagsType *)
+     protobuf_c_message_unpack (&gst_debugger__enum_flags_type__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__enum_flags_type__free_unpacked
+                     (GstDebugger__EnumFlagsType *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__enum_flags_type__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__factory_meta__init
+                     (GstDebugger__FactoryMeta         *message)
+{
+  static GstDebugger__FactoryMeta init_value = GST_DEBUGGER__FACTORY_META__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__factory_meta__get_packed_size
+                     (const GstDebugger__FactoryMeta *message)
+{
+  assert(message->base.descriptor == &gst_debugger__factory_meta__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__factory_meta__pack
+                     (const GstDebugger__FactoryMeta *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__factory_meta__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__factory_meta__pack_to_buffer
+                     (const GstDebugger__FactoryMeta *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__factory_meta__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__FactoryMeta *
+       gst_debugger__factory_meta__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__FactoryMeta *)
+     protobuf_c_message_unpack (&gst_debugger__factory_meta__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__factory_meta__free_unpacked
+                     (GstDebugger__FactoryMeta *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__factory_meta__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__pad_template__init
+                     (GstDebugger__PadTemplate         *message)
+{
+  static GstDebugger__PadTemplate init_value = GST_DEBUGGER__PAD_TEMPLATE__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__pad_template__get_packed_size
+                     (const GstDebugger__PadTemplate *message)
+{
+  assert(message->base.descriptor == &gst_debugger__pad_template__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__pad_template__pack
+                     (const GstDebugger__PadTemplate *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__pad_template__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__pad_template__pack_to_buffer
+                     (const GstDebugger__PadTemplate *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__pad_template__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__PadTemplate *
+       gst_debugger__pad_template__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__PadTemplate *)
+     protobuf_c_message_unpack (&gst_debugger__pad_template__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__pad_template__free_unpacked
+                     (GstDebugger__PadTemplate *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__pad_template__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__factory_type__init
+                     (GstDebugger__FactoryType         *message)
+{
+  static GstDebugger__FactoryType init_value = GST_DEBUGGER__FACTORY_TYPE__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__factory_type__get_packed_size
+                     (const GstDebugger__FactoryType *message)
+{
+  assert(message->base.descriptor == &gst_debugger__factory_type__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__factory_type__pack
+                     (const GstDebugger__FactoryType *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__factory_type__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__factory_type__pack_to_buffer
+                     (const GstDebugger__FactoryType *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__factory_type__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__FactoryType *
+       gst_debugger__factory_type__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__FactoryType *)
+     protobuf_c_message_unpack (&gst_debugger__factory_type__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__factory_type__free_unpacked
+                     (GstDebugger__FactoryType *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__factory_type__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__element_klass__init
+                     (GstDebugger__ElementKlass         *message)
+{
+  static GstDebugger__ElementKlass init_value = GST_DEBUGGER__ELEMENT_KLASS__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__element_klass__get_packed_size
+                     (const GstDebugger__ElementKlass *message)
+{
+  assert(message->base.descriptor == &gst_debugger__element_klass__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__element_klass__pack
+                     (const GstDebugger__ElementKlass *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__element_klass__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__element_klass__pack_to_buffer
+                     (const GstDebugger__ElementKlass *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__element_klass__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__ElementKlass *
+       gst_debugger__element_klass__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__ElementKlass *)
+     protobuf_c_message_unpack (&gst_debugger__element_klass__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__element_klass__free_unpacked
+                     (GstDebugger__ElementKlass *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__element_klass__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__topology_link__init
+                     (GstDebugger__TopologyLink         *message)
+{
+  static GstDebugger__TopologyLink init_value = GST_DEBUGGER__TOPOLOGY_LINK__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__topology_link__get_packed_size
+                     (const GstDebugger__TopologyLink *message)
+{
+  assert(message->base.descriptor == &gst_debugger__topology_link__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__topology_link__pack
+                     (const GstDebugger__TopologyLink *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__topology_link__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__topology_link__pack_to_buffer
+                     (const GstDebugger__TopologyLink *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__topology_link__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__TopologyLink *
+       gst_debugger__topology_link__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__TopologyLink *)
+     protobuf_c_message_unpack (&gst_debugger__topology_link__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__topology_link__free_unpacked
+                     (GstDebugger__TopologyLink *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__topology_link__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__topology_element__init
+                     (GstDebugger__TopologyElement         *message)
+{
+  static GstDebugger__TopologyElement init_value = GST_DEBUGGER__TOPOLOGY_ELEMENT__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__topology_element__get_packed_size
+                     (const GstDebugger__TopologyElement *message)
+{
+  assert(message->base.descriptor == &gst_debugger__topology_element__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__topology_element__pack
+                     (const GstDebugger__TopologyElement *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__topology_element__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__topology_element__pack_to_buffer
+                     (const GstDebugger__TopologyElement *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__topology_element__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__TopologyElement *
+       gst_debugger__topology_element__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__TopologyElement *)
+     protobuf_c_message_unpack (&gst_debugger__topology_element__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__topology_element__free_unpacked
+                     (GstDebugger__TopologyElement *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__topology_element__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__topology_pad__init
+                     (GstDebugger__TopologyPad         *message)
+{
+  static GstDebugger__TopologyPad init_value = GST_DEBUGGER__TOPOLOGY_PAD__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__topology_pad__get_packed_size
+                     (const GstDebugger__TopologyPad *message)
+{
+  assert(message->base.descriptor == &gst_debugger__topology_pad__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__topology_pad__pack
+                     (const GstDebugger__TopologyPad *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__topology_pad__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__topology_pad__pack_to_buffer
+                     (const GstDebugger__TopologyPad *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__topology_pad__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__TopologyPad *
+       gst_debugger__topology_pad__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__TopologyPad *)
+     protobuf_c_message_unpack (&gst_debugger__topology_pad__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__topology_pad__free_unpacked
+                     (GstDebugger__TopologyPad *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__topology_pad__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__topology_info__init
+                     (GstDebugger__TopologyInfo         *message)
+{
+  static GstDebugger__TopologyInfo init_value = GST_DEBUGGER__TOPOLOGY_INFO__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__topology_info__get_packed_size
+                     (const GstDebugger__TopologyInfo *message)
+{
+  assert(message->base.descriptor == &gst_debugger__topology_info__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__topology_info__pack
+                     (const GstDebugger__TopologyInfo *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__topology_info__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__topology_info__pack_to_buffer
+                     (const GstDebugger__TopologyInfo *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__topology_info__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__TopologyInfo *
+       gst_debugger__topology_info__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__TopologyInfo *)
+     protobuf_c_message_unpack (&gst_debugger__topology_info__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__topology_info__free_unpacked
+                     (GstDebugger__TopologyInfo *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__topology_info__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__pad_dynamic_info__init
+                     (GstDebugger__PadDynamicInfo         *message)
+{
+  static GstDebugger__PadDynamicInfo init_value = GST_DEBUGGER__PAD_DYNAMIC_INFO__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__pad_dynamic_info__get_packed_size
+                     (const GstDebugger__PadDynamicInfo *message)
+{
+  assert(message->base.descriptor == &gst_debugger__pad_dynamic_info__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__pad_dynamic_info__pack
+                     (const GstDebugger__PadDynamicInfo *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__pad_dynamic_info__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__pad_dynamic_info__pack_to_buffer
+                     (const GstDebugger__PadDynamicInfo *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__pad_dynamic_info__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__PadDynamicInfo *
+       gst_debugger__pad_dynamic_info__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__PadDynamicInfo *)
+     protobuf_c_message_unpack (&gst_debugger__pad_dynamic_info__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__pad_dynamic_info__free_unpacked
+                     (GstDebugger__PadDynamicInfo *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__pad_dynamic_info__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+void   gst_debugger__gstreamer_data__init
+                     (GstDebugger__GStreamerData         *message)
+{
+  static GstDebugger__GStreamerData init_value = GST_DEBUGGER__GSTREAMER_DATA__INIT;
+  *message = init_value;
+}
+size_t gst_debugger__gstreamer_data__get_packed_size
+                     (const GstDebugger__GStreamerData *message)
+{
+  assert(message->base.descriptor == &gst_debugger__gstreamer_data__descriptor);
+  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t gst_debugger__gstreamer_data__pack
+                     (const GstDebugger__GStreamerData *message,
+                      uint8_t       *out)
+{
+  assert(message->base.descriptor == &gst_debugger__gstreamer_data__descriptor);
+  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t gst_debugger__gstreamer_data__pack_to_buffer
+                     (const GstDebugger__GStreamerData *message,
+                      ProtobufCBuffer *buffer)
+{
+  assert(message->base.descriptor == &gst_debugger__gstreamer_data__descriptor);
+  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+GstDebugger__GStreamerData *
+       gst_debugger__gstreamer_data__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data)
+{
+  return (GstDebugger__GStreamerData *)
+     protobuf_c_message_unpack (&gst_debugger__gstreamer_data__descriptor,
+                                allocator, len, data);
+}
+void   gst_debugger__gstreamer_data__free_unpacked
+                     (GstDebugger__GStreamerData *message,
+                      ProtobufCAllocator *allocator)
+{
+  assert(message->base.descriptor == &gst_debugger__gstreamer_data__descriptor);
+  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor gst_debugger__value__field_descriptors[4] =
+{
+  {
+    "gtype",
+    1,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_UINT64,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__Value, gtype),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "internal_type",
+    2,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_INT32,
+    offsetof(GstDebugger__Value, has_internal_type),
+    offsetof(GstDebugger__Value, internal_type),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "data",
+    3,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_BYTES,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__Value, data),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "type_name",
+    4,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__Value, type_name),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__value__field_indices_by_name[] = {
+  2,   /* field[2] = data */
+  0,   /* field[0] = gtype */
+  1,   /* field[1] = internal_type */
+  3,   /* field[3] = type_name */
+};
+static const ProtobufCIntRange gst_debugger__value__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 4 }
+};
+const ProtobufCMessageDescriptor gst_debugger__value__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.Value",
+  "Value",
+  "GstDebugger__Value",
+  "GstDebugger",
+  sizeof(GstDebugger__Value),
+  4,
+  gst_debugger__value__field_descriptors,
+  gst_debugger__value__field_indices_by_name,
+  1,  gst_debugger__value__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__value__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__property_info__field_descriptors[5] =
+{
+  {
+    "name",
+    1,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__PropertyInfo, name),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "nick",
+    2,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__PropertyInfo, nick),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "blurb",
+    3,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__PropertyInfo, blurb),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "flags",
+    4,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_INT32,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__PropertyInfo, flags),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "default_value",
+    5,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_MESSAGE,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__PropertyInfo, default_value),
+    &gst_debugger__value__descriptor,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__property_info__field_indices_by_name[] = {
+  2,   /* field[2] = blurb */
+  4,   /* field[4] = default_value */
+  3,   /* field[3] = flags */
+  0,   /* field[0] = name */
+  1,   /* field[1] = nick */
+};
+static const ProtobufCIntRange gst_debugger__property_info__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 5 }
+};
+const ProtobufCMessageDescriptor gst_debugger__property_info__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.PropertyInfo",
+  "PropertyInfo",
+  "GstDebugger__PropertyInfo",
+  "GstDebugger",
+  sizeof(GstDebugger__PropertyInfo),
+  5,
+  gst_debugger__property_info__field_descriptors,
+  gst_debugger__property_info__field_indices_by_name,
+  1,  gst_debugger__property_info__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__property_info__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__property_value__field_descriptors[3] =
+{
+  {
+    "name",
+    1,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__PropertyValue, name),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "object",
+    2,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__PropertyValue, object),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "value",
+    3,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_MESSAGE,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__PropertyValue, value),
+    &gst_debugger__value__descriptor,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__property_value__field_indices_by_name[] = {
+  0,   /* field[0] = name */
+  1,   /* field[1] = object */
+  2,   /* field[2] = value */
+};
+static const ProtobufCIntRange gst_debugger__property_value__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 3 }
+};
+const ProtobufCMessageDescriptor gst_debugger__property_value__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.PropertyValue",
+  "PropertyValue",
+  "GstDebugger__PropertyValue",
+  "GstDebugger",
+  sizeof(GstDebugger__PropertyValue),
+  3,
+  gst_debugger__property_value__field_descriptors,
+  gst_debugger__property_value__field_indices_by_name,
+  1,  gst_debugger__property_value__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__property_value__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__property_request__field_descriptors[2] =
+{
+  {
+    "name",
+    1,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__PropertyRequest, name),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "object",
+    2,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__PropertyRequest, object),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__property_request__field_indices_by_name[] = {
+  0,   /* field[0] = name */
+  1,   /* field[1] = object */
+};
+static const ProtobufCIntRange gst_debugger__property_request__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 2 }
+};
+const ProtobufCMessageDescriptor gst_debugger__property_request__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.PropertyRequest",
+  "PropertyRequest",
+  "GstDebugger__PropertyRequest",
+  "GstDebugger",
+  sizeof(GstDebugger__PropertyRequest),
+  2,
+  gst_debugger__property_request__field_descriptors,
+  gst_debugger__property_request__field_indices_by_name,
+  1,  gst_debugger__property_request__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__property_request__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__message_info__field_descriptors[5] =
+{
+  {
+    "type",
+    1,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_INT32,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__MessageInfo, type),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "timestamp",
+    2,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_UINT64,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__MessageInfo, timestamp),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "source",
+    3,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__MessageInfo, source),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "seqnum",
+    4,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_UINT32,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__MessageInfo, seqnum),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "structure_data",
+    5,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_BYTES,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__MessageInfo, structure_data),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__message_info__field_indices_by_name[] = {
+  3,   /* field[3] = seqnum */
+  2,   /* field[2] = source */
+  4,   /* field[4] = structure_data */
+  1,   /* field[1] = timestamp */
+  0,   /* field[0] = type */
+};
+static const ProtobufCIntRange gst_debugger__message_info__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 5 }
+};
+const ProtobufCMessageDescriptor gst_debugger__message_info__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.MessageInfo",
+  "MessageInfo",
+  "GstDebugger__MessageInfo",
+  "GstDebugger",
+  sizeof(GstDebugger__MessageInfo),
+  5,
+  gst_debugger__message_info__field_descriptors,
+  gst_debugger__message_info__field_indices_by_name,
+  1,  gst_debugger__message_info__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__message_info__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__event_info__field_descriptors[5] =
+{
+  {
+    "type",
+    1,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_INT32,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__EventInfo, type),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "timestamp",
+    2,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_UINT64,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__EventInfo, timestamp),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "seqnum",
+    3,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_UINT32,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__EventInfo, seqnum),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "pad",
+    4,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__EventInfo, pad),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "structure_data",
+    5,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_BYTES,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__EventInfo, structure_data),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__event_info__field_indices_by_name[] = {
+  3,   /* field[3] = pad */
+  2,   /* field[2] = seqnum */
+  4,   /* field[4] = structure_data */
+  1,   /* field[1] = timestamp */
+  0,   /* field[0] = type */
+};
+static const ProtobufCIntRange gst_debugger__event_info__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 5 }
+};
+const ProtobufCMessageDescriptor gst_debugger__event_info__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.EventInfo",
+  "EventInfo",
+  "GstDebugger__EventInfo",
+  "GstDebugger",
+  sizeof(GstDebugger__EventInfo),
+  5,
+  gst_debugger__event_info__field_descriptors,
+  gst_debugger__event_info__field_indices_by_name,
+  1,  gst_debugger__event_info__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__event_info__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__query_info__field_descriptors[3] =
+{
+  {
+    "type",
+    1,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_INT32,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__QueryInfo, type),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "pad",
+    2,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__QueryInfo, pad),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "structure_data",
+    3,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_BYTES,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__QueryInfo, structure_data),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__query_info__field_indices_by_name[] = {
+  1,   /* field[1] = pad */
+  2,   /* field[2] = structure_data */
+  0,   /* field[0] = type */
+};
+static const ProtobufCIntRange gst_debugger__query_info__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 3 }
+};
+const ProtobufCMessageDescriptor gst_debugger__query_info__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.QueryInfo",
+  "QueryInfo",
+  "GstDebugger__QueryInfo",
+  "GstDebugger",
+  sizeof(GstDebugger__QueryInfo),
+  3,
+  gst_debugger__query_info__field_descriptors,
+  gst_debugger__query_info__field_indices_by_name,
+  1,  gst_debugger__query_info__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__query_info__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__buffer_info__field_descriptors[8] =
+{
+  {
+    "pts",
+    1,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_UINT64,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__BufferInfo, pts),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "dts",
+    2,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_UINT64,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__BufferInfo, dts),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "duration",
+    3,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_UINT64,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__BufferInfo, duration),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "offset",
+    4,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_UINT64,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__BufferInfo, offset),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "offset_end",
+    5,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_UINT64,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__BufferInfo, offset_end),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "size",
+    6,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_UINT64,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__BufferInfo, size),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "pad",
+    7,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__BufferInfo, pad),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "data",
+    8,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_BYTES,
+    offsetof(GstDebugger__BufferInfo, has_data),
+    offsetof(GstDebugger__BufferInfo, data),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__buffer_info__field_indices_by_name[] = {
+  7,   /* field[7] = data */
+  1,   /* field[1] = dts */
+  2,   /* field[2] = duration */
+  3,   /* field[3] = offset */
+  4,   /* field[4] = offset_end */
+  6,   /* field[6] = pad */
+  0,   /* field[0] = pts */
+  5,   /* field[5] = size */
+};
+static const ProtobufCIntRange gst_debugger__buffer_info__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 8 }
+};
+const ProtobufCMessageDescriptor gst_debugger__buffer_info__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.BufferInfo",
+  "BufferInfo",
+  "GstDebugger__BufferInfo",
+  "GstDebugger",
+  sizeof(GstDebugger__BufferInfo),
+  8,
+  gst_debugger__buffer_info__field_descriptors,
+  gst_debugger__buffer_info__field_indices_by_name,
+  1,  gst_debugger__buffer_info__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__buffer_info__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCEnumValue gst_debugger__type_description_request__type__enum_values_by_number[3] =
+{
+  { "FACTORY", "GST_DEBUGGER__TYPE_DESCRIPTION_REQUEST__TYPE__FACTORY", 0 },
+  { "ENUM_FLAGS", "GST_DEBUGGER__TYPE_DESCRIPTION_REQUEST__TYPE__ENUM_FLAGS", 1 },
+  { "KLASS", "GST_DEBUGGER__TYPE_DESCRIPTION_REQUEST__TYPE__KLASS", 2 },
+};
+static const ProtobufCIntRange gst_debugger__type_description_request__type__value_ranges[] = {
+{0, 0},{0, 3}
+};
+static const ProtobufCEnumValueIndex gst_debugger__type_description_request__type__enum_values_by_name[3] =
+{
+  { "ENUM_FLAGS", 1 },
+  { "FACTORY", 0 },
+  { "KLASS", 2 },
+};
+const ProtobufCEnumDescriptor gst_debugger__type_description_request__type__descriptor =
+{
+  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
+  "GstDebugger.TypeDescriptionRequest.Type",
+  "Type",
+  "GstDebugger__TypeDescriptionRequest__Type",
+  "GstDebugger",
+  3,
+  gst_debugger__type_description_request__type__enum_values_by_number,
+  3,
+  gst_debugger__type_description_request__type__enum_values_by_name,
+  1,
+  gst_debugger__type_description_request__type__value_ranges,
+  NULL,NULL,NULL,NULL   /* reserved[1234] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__type_description_request__field_descriptors[2] =
+{
+  {
+    "name",
+    1,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__TypeDescriptionRequest, name),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "type",
+    2,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_ENUM,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__TypeDescriptionRequest, type),
+    &gst_debugger__type_description_request__type__descriptor,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__type_description_request__field_indices_by_name[] = {
+  0,   /* field[0] = name */
+  1,   /* field[1] = type */
+};
+static const ProtobufCIntRange gst_debugger__type_description_request__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 2 }
+};
+const ProtobufCMessageDescriptor gst_debugger__type_description_request__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.TypeDescriptionRequest",
+  "TypeDescriptionRequest",
+  "GstDebugger__TypeDescriptionRequest",
+  "GstDebugger",
+  sizeof(GstDebugger__TypeDescriptionRequest),
+  2,
+  gst_debugger__type_description_request__field_descriptors,
+  gst_debugger__type_description_request__field_indices_by_name,
+  1,  gst_debugger__type_description_request__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__type_description_request__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__query_hook_request__field_descriptors[1] =
+{
+  {
+    "type",
+    1,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_INT32,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__QueryHookRequest, type),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__query_hook_request__field_indices_by_name[] = {
+  0,   /* field[0] = type */
+};
+static const ProtobufCIntRange gst_debugger__query_hook_request__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 1 }
+};
+const ProtobufCMessageDescriptor gst_debugger__query_hook_request__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.QueryHookRequest",
+  "QueryHookRequest",
+  "GstDebugger__QueryHookRequest",
+  "GstDebugger",
+  sizeof(GstDebugger__QueryHookRequest),
+  1,
+  gst_debugger__query_hook_request__field_descriptors,
+  gst_debugger__query_hook_request__field_indices_by_name,
+  1,  gst_debugger__query_hook_request__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__query_hook_request__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__buffer_hook_request__field_descriptors[1] =
+{
+  {
+    "send_data",
+    1,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_BOOL,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__BufferHookRequest, send_data),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__buffer_hook_request__field_indices_by_name[] = {
+  0,   /* field[0] = send_data */
+};
+static const ProtobufCIntRange gst_debugger__buffer_hook_request__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 1 }
+};
+const ProtobufCMessageDescriptor gst_debugger__buffer_hook_request__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.BufferHookRequest",
+  "BufferHookRequest",
+  "GstDebugger__BufferHookRequest",
+  "GstDebugger",
+  sizeof(GstDebugger__BufferHookRequest),
+  1,
+  gst_debugger__buffer_hook_request__field_descriptors,
+  gst_debugger__buffer_hook_request__field_indices_by_name,
+  1,  gst_debugger__buffer_hook_request__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__buffer_hook_request__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__event_hook_request__field_descriptors[1] =
+{
+  {
+    "type",
+    1,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_INT32,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__EventHookRequest, type),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__event_hook_request__field_indices_by_name[] = {
+  0,   /* field[0] = type */
+};
+static const ProtobufCIntRange gst_debugger__event_hook_request__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 1 }
+};
+const ProtobufCMessageDescriptor gst_debugger__event_hook_request__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.EventHookRequest",
+  "EventHookRequest",
+  "GstDebugger__EventHookRequest",
+  "GstDebugger",
+  sizeof(GstDebugger__EventHookRequest),
+  1,
+  gst_debugger__event_hook_request__field_descriptors,
+  gst_debugger__event_hook_request__field_indices_by_name,
+  1,  gst_debugger__event_hook_request__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__event_hook_request__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__pad_hook_request__field_descriptors[4] =
+{
+  {
+    "pad",
+    1,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__PadHookRequest, pad),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "query",
+    2,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__PadHookRequest, pad_hook_type_case),
+    offsetof(GstDebugger__PadHookRequest, query),
+    &gst_debugger__query_hook_request__descriptor,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "buffer",
+    3,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__PadHookRequest, pad_hook_type_case),
+    offsetof(GstDebugger__PadHookRequest, buffer),
+    &gst_debugger__buffer_hook_request__descriptor,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "event",
+    4,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__PadHookRequest, pad_hook_type_case),
+    offsetof(GstDebugger__PadHookRequest, event),
+    &gst_debugger__event_hook_request__descriptor,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__pad_hook_request__field_indices_by_name[] = {
+  2,   /* field[2] = buffer */
+  3,   /* field[3] = event */
+  0,   /* field[0] = pad */
+  1,   /* field[1] = query */
+};
+static const ProtobufCIntRange gst_debugger__pad_hook_request__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 4 }
+};
+const ProtobufCMessageDescriptor gst_debugger__pad_hook_request__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.PadHookRequest",
+  "PadHookRequest",
+  "GstDebugger__PadHookRequest",
+  "GstDebugger",
+  sizeof(GstDebugger__PadHookRequest),
+  4,
+  gst_debugger__pad_hook_request__field_descriptors,
+  gst_debugger__pad_hook_request__field_indices_by_name,
+  1,  gst_debugger__pad_hook_request__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__pad_hook_request__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__log_request__field_descriptors[2] =
+{
+  {
+    "level",
+    1,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_INT32,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__LogRequest, level),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "category",
+    2,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__LogRequest, category),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__log_request__field_indices_by_name[] = {
+  1,   /* field[1] = category */
+  0,   /* field[0] = level */
+};
+static const ProtobufCIntRange gst_debugger__log_request__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 2 }
+};
+const ProtobufCMessageDescriptor gst_debugger__log_request__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.LogRequest",
+  "LogRequest",
+  "GstDebugger__LogRequest",
+  "GstDebugger",
+  sizeof(GstDebugger__LogRequest),
+  2,
+  gst_debugger__log_request__field_descriptors,
+  gst_debugger__log_request__field_indices_by_name,
+  1,  gst_debugger__log_request__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__log_request__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__message_request__field_descriptors[1] =
+{
+  {
+    "type",
+    1,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_INT32,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__MessageRequest, type),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__message_request__field_indices_by_name[] = {
+  0,   /* field[0] = type */
+};
+static const ProtobufCIntRange gst_debugger__message_request__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 1 }
+};
+const ProtobufCMessageDescriptor gst_debugger__message_request__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.MessageRequest",
+  "MessageRequest",
+  "GstDebugger__MessageRequest",
+  "GstDebugger",
+  sizeof(GstDebugger__MessageRequest),
+  1,
+  gst_debugger__message_request__field_descriptors,
+  gst_debugger__message_request__field_indices_by_name,
+  1,  gst_debugger__message_request__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__message_request__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__hook_request__field_descriptors[4] =
+{
+  {
+    "action",
+    1,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_ENUM,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__HookRequest, action),
+    &gst_debugger__action__descriptor,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "message",
+    2,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__HookRequest, hook_type_case),
+    offsetof(GstDebugger__HookRequest, message),
+    &gst_debugger__message_request__descriptor,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "log",
+    3,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__HookRequest, hook_type_case),
+    offsetof(GstDebugger__HookRequest, log),
+    &gst_debugger__log_request__descriptor,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "pad_hook",
+    4,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__HookRequest, hook_type_case),
+    offsetof(GstDebugger__HookRequest, pad_hook),
+    &gst_debugger__pad_hook_request__descriptor,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__hook_request__field_indices_by_name[] = {
+  0,   /* field[0] = action */
+  2,   /* field[2] = log */
+  1,   /* field[1] = message */
+  3,   /* field[3] = pad_hook */
+};
+static const ProtobufCIntRange gst_debugger__hook_request__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 4 }
+};
+const ProtobufCMessageDescriptor gst_debugger__hook_request__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.HookRequest",
+  "HookRequest",
+  "GstDebugger__HookRequest",
+  "GstDebugger",
+  sizeof(GstDebugger__HookRequest),
+  4,
+  gst_debugger__hook_request__field_descriptors,
+  gst_debugger__hook_request__field_indices_by_name,
+  1,  gst_debugger__hook_request__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__hook_request__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__command__field_descriptors[8] =
+{
+  {
+    "type_description",
+    1,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__Command, command_type_case),
+    offsetof(GstDebugger__Command, type_description),
+    &gst_debugger__type_description_request__descriptor,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "debug_categories_list",
+    2,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_BOOL,
+    offsetof(GstDebugger__Command, command_type_case),
+    offsetof(GstDebugger__Command, debug_categories_list),
+    NULL,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "hook_request",
+    3,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__Command, command_type_case),
+    offsetof(GstDebugger__Command, hook_request),
+    &gst_debugger__hook_request__descriptor,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "log_threshold",
+    4,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_STRING,
+    offsetof(GstDebugger__Command, command_type_case),
+    offsetof(GstDebugger__Command, log_threshold),
+    NULL,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "entire_topology",
+    5,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_BOOL,
+    offsetof(GstDebugger__Command, command_type_case),
+    offsetof(GstDebugger__Command, entire_topology),
+    NULL,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "property",
+    6,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__Command, command_type_case),
+    offsetof(GstDebugger__Command, property),
+    &gst_debugger__property_request__descriptor,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "property_set",
+    7,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__Command, command_type_case),
+    offsetof(GstDebugger__Command, property_set),
+    &gst_debugger__property_value__descriptor,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "pad_dynamic_info",
+    8,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_STRING,
+    offsetof(GstDebugger__Command, command_type_case),
+    offsetof(GstDebugger__Command, pad_dynamic_info),
+    NULL,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__command__field_indices_by_name[] = {
+  1,   /* field[1] = debug_categories_list */
+  4,   /* field[4] = entire_topology */
+  2,   /* field[2] = hook_request */
+  3,   /* field[3] = log_threshold */
+  7,   /* field[7] = pad_dynamic_info */
+  5,   /* field[5] = property */
+  6,   /* field[6] = property_set */
+  0,   /* field[0] = type_description */
+};
+static const ProtobufCIntRange gst_debugger__command__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 8 }
+};
+const ProtobufCMessageDescriptor gst_debugger__command__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.Command",
+  "Command",
+  "GstDebugger__Command",
+  "GstDebugger",
+  sizeof(GstDebugger__Command),
+  8,
+  gst_debugger__command__field_descriptors,
+  gst_debugger__command__field_indices_by_name,
+  1,  gst_debugger__command__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__command__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__debug_categories__field_descriptors[1] =
+{
+  {
+    "category",
+    1,
+    PROTOBUF_C_LABEL_REPEATED,
+    PROTOBUF_C_TYPE_STRING,
+    offsetof(GstDebugger__DebugCategories, n_category),
+    offsetof(GstDebugger__DebugCategories, category),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__debug_categories__field_indices_by_name[] = {
+  0,   /* field[0] = category */
+};
+static const ProtobufCIntRange gst_debugger__debug_categories__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 1 }
+};
+const ProtobufCMessageDescriptor gst_debugger__debug_categories__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.DebugCategories",
+  "DebugCategories",
+  "GstDebugger__DebugCategories",
+  "GstDebugger",
+  sizeof(GstDebugger__DebugCategories),
+  1,
+  gst_debugger__debug_categories__field_descriptors,
+  gst_debugger__debug_categories__field_indices_by_name,
+  1,  gst_debugger__debug_categories__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__debug_categories__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__log_info__field_descriptors[7] =
+{
+  {
+    "level",
+    1,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_INT32,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__LogInfo, level),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "category",
+    2,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__LogInfo, category),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "file",
+    3,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__LogInfo, file),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "function",
+    4,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__LogInfo, function),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "line",
+    5,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_INT32,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__LogInfo, line),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "object",
+    6,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__LogInfo, object),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "message",
+    7,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__LogInfo, message),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__log_info__field_indices_by_name[] = {
+  1,   /* field[1] = category */
+  2,   /* field[2] = file */
+  3,   /* field[3] = function */
+  0,   /* field[0] = level */
+  4,   /* field[4] = line */
+  6,   /* field[6] = message */
+  5,   /* field[5] = object */
+};
+static const ProtobufCIntRange gst_debugger__log_info__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 7 }
+};
+const ProtobufCMessageDescriptor gst_debugger__log_info__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.LogInfo",
+  "LogInfo",
+  "GstDebugger__LogInfo",
+  "GstDebugger",
+  sizeof(GstDebugger__LogInfo),
+  7,
+  gst_debugger__log_info__field_descriptors,
+  gst_debugger__log_info__field_indices_by_name,
+  1,  gst_debugger__log_info__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__log_info__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__enum_flags_value__field_descriptors[3] =
+{
+  {
+    "name",
+    1,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__EnumFlagsValue, name),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "value",
+    2,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_INT32,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__EnumFlagsValue, value),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "nick",
+    3,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__EnumFlagsValue, nick),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__enum_flags_value__field_indices_by_name[] = {
+  0,   /* field[0] = name */
+  2,   /* field[2] = nick */
+  1,   /* field[1] = value */
+};
+static const ProtobufCIntRange gst_debugger__enum_flags_value__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 3 }
+};
+const ProtobufCMessageDescriptor gst_debugger__enum_flags_value__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.EnumFlagsValue",
+  "EnumFlagsValue",
+  "GstDebugger__EnumFlagsValue",
+  "GstDebugger",
+  sizeof(GstDebugger__EnumFlagsValue),
+  3,
+  gst_debugger__enum_flags_value__field_descriptors,
+  gst_debugger__enum_flags_value__field_indices_by_name,
+  1,  gst_debugger__enum_flags_value__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__enum_flags_value__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCEnumValue gst_debugger__enum_flags_type__enum_flags_kind__enum_values_by_number[2] =
+{
+  { "ENUM", "GST_DEBUGGER__ENUM_FLAGS_TYPE__ENUM_FLAGS_KIND__ENUM", 0 },
+  { "FLAGS", "GST_DEBUGGER__ENUM_FLAGS_TYPE__ENUM_FLAGS_KIND__FLAGS", 1 },
+};
+static const ProtobufCIntRange gst_debugger__enum_flags_type__enum_flags_kind__value_ranges[] = {
+{0, 0},{0, 2}
+};
+static const ProtobufCEnumValueIndex gst_debugger__enum_flags_type__enum_flags_kind__enum_values_by_name[2] =
+{
+  { "ENUM", 0 },
+  { "FLAGS", 1 },
+};
+const ProtobufCEnumDescriptor gst_debugger__enum_flags_type__enum_flags_kind__descriptor =
+{
+  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
+  "GstDebugger.EnumFlagsType.EnumFlagsKind",
+  "EnumFlagsKind",
+  "GstDebugger__EnumFlagsType__EnumFlagsKind",
+  "GstDebugger",
+  2,
+  gst_debugger__enum_flags_type__enum_flags_kind__enum_values_by_number,
+  2,
+  gst_debugger__enum_flags_type__enum_flags_kind__enum_values_by_name,
+  1,
+  gst_debugger__enum_flags_type__enum_flags_kind__value_ranges,
+  NULL,NULL,NULL,NULL   /* reserved[1234] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__enum_flags_type__field_descriptors[3] =
+{
+  {
+    "type_name",
+    1,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__EnumFlagsType, type_name),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "kind",
+    2,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_ENUM,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__EnumFlagsType, kind),
+    &gst_debugger__enum_flags_type__enum_flags_kind__descriptor,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "values",
+    3,
+    PROTOBUF_C_LABEL_REPEATED,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__EnumFlagsType, n_values),
+    offsetof(GstDebugger__EnumFlagsType, values),
+    &gst_debugger__enum_flags_value__descriptor,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__enum_flags_type__field_indices_by_name[] = {
+  1,   /* field[1] = kind */
+  0,   /* field[0] = type_name */
+  2,   /* field[2] = values */
+};
+static const ProtobufCIntRange gst_debugger__enum_flags_type__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 3 }
+};
+const ProtobufCMessageDescriptor gst_debugger__enum_flags_type__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.EnumFlagsType",
+  "EnumFlagsType",
+  "GstDebugger__EnumFlagsType",
+  "GstDebugger",
+  sizeof(GstDebugger__EnumFlagsType),
+  3,
+  gst_debugger__enum_flags_type__field_descriptors,
+  gst_debugger__enum_flags_type__field_indices_by_name,
+  1,  gst_debugger__enum_flags_type__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__enum_flags_type__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__factory_meta__field_descriptors[2] =
+{
+  {
+    "key",
+    1,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__FactoryMeta, key),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "value",
+    2,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__FactoryMeta, value),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__factory_meta__field_indices_by_name[] = {
+  0,   /* field[0] = key */
+  1,   /* field[1] = value */
+};
+static const ProtobufCIntRange gst_debugger__factory_meta__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 2 }
+};
+const ProtobufCMessageDescriptor gst_debugger__factory_meta__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.FactoryMeta",
+  "FactoryMeta",
+  "GstDebugger__FactoryMeta",
+  "GstDebugger",
+  sizeof(GstDebugger__FactoryMeta),
+  2,
+  gst_debugger__factory_meta__field_descriptors,
+  gst_debugger__factory_meta__field_indices_by_name,
+  1,  gst_debugger__factory_meta__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__factory_meta__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__pad_template__field_descriptors[4] =
+{
+  {
+    "name_template",
+    1,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__PadTemplate, name_template),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "direction",
+    2,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_INT32,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__PadTemplate, direction),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "presence",
+    3,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_INT32,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__PadTemplate, presence),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "caps",
+    4,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__PadTemplate, caps),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__pad_template__field_indices_by_name[] = {
+  3,   /* field[3] = caps */
+  1,   /* field[1] = direction */
+  0,   /* field[0] = name_template */
+  2,   /* field[2] = presence */
+};
+static const ProtobufCIntRange gst_debugger__pad_template__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 4 }
+};
+const ProtobufCMessageDescriptor gst_debugger__pad_template__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.PadTemplate",
+  "PadTemplate",
+  "GstDebugger__PadTemplate",
+  "GstDebugger",
+  sizeof(GstDebugger__PadTemplate),
+  4,
+  gst_debugger__pad_template__field_descriptors,
+  gst_debugger__pad_template__field_indices_by_name,
+  1,  gst_debugger__pad_template__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__pad_template__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__factory_type__field_descriptors[3] =
+{
+  {
+    "name",
+    1,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__FactoryType, name),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "metadata",
+    2,
+    PROTOBUF_C_LABEL_REPEATED,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__FactoryType, n_metadata),
+    offsetof(GstDebugger__FactoryType, metadata),
+    &gst_debugger__factory_meta__descriptor,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "templates",
+    3,
+    PROTOBUF_C_LABEL_REPEATED,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__FactoryType, n_templates),
+    offsetof(GstDebugger__FactoryType, templates),
+    &gst_debugger__pad_template__descriptor,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__factory_type__field_indices_by_name[] = {
+  1,   /* field[1] = metadata */
+  0,   /* field[0] = name */
+  2,   /* field[2] = templates */
+};
+static const ProtobufCIntRange gst_debugger__factory_type__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 3 }
+};
+const ProtobufCMessageDescriptor gst_debugger__factory_type__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.FactoryType",
+  "FactoryType",
+  "GstDebugger__FactoryType",
+  "GstDebugger",
+  sizeof(GstDebugger__FactoryType),
+  3,
+  gst_debugger__factory_type__field_descriptors,
+  gst_debugger__factory_type__field_indices_by_name,
+  1,  gst_debugger__factory_type__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__factory_type__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__element_klass__field_descriptors[2] =
+{
+  {
+    "name",
+    1,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__ElementKlass, name),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "property_info",
+    2,
+    PROTOBUF_C_LABEL_REPEATED,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__ElementKlass, n_property_info),
+    offsetof(GstDebugger__ElementKlass, property_info),
+    &gst_debugger__property_info__descriptor,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__element_klass__field_indices_by_name[] = {
+  0,   /* field[0] = name */
+  1,   /* field[1] = property_info */
+};
+static const ProtobufCIntRange gst_debugger__element_klass__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 2 }
+};
+const ProtobufCMessageDescriptor gst_debugger__element_klass__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.ElementKlass",
+  "ElementKlass",
+  "GstDebugger__ElementKlass",
+  "GstDebugger",
+  sizeof(GstDebugger__ElementKlass),
+  2,
+  gst_debugger__element_klass__field_descriptors,
+  gst_debugger__element_klass__field_indices_by_name,
+  1,  gst_debugger__element_klass__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__element_klass__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__topology_link__field_descriptors[2] =
+{
+  {
+    "src_pad",
+    1,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__TopologyLink, src_pad),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "sink_pad",
+    2,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__TopologyLink, sink_pad),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__topology_link__field_indices_by_name[] = {
+  1,   /* field[1] = sink_pad */
+  0,   /* field[0] = src_pad */
+};
+static const ProtobufCIntRange gst_debugger__topology_link__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 2 }
+};
+const ProtobufCMessageDescriptor gst_debugger__topology_link__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.TopologyLink",
+  "TopologyLink",
+  "GstDebugger__TopologyLink",
+  "GstDebugger",
+  sizeof(GstDebugger__TopologyLink),
+  2,
+  gst_debugger__topology_link__field_descriptors,
+  gst_debugger__topology_link__field_indices_by_name,
+  1,  gst_debugger__topology_link__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__topology_link__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__topology_element__field_descriptors[4] =
+{
+  {
+    "path",
+    1,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__TopologyElement, path),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "type_name",
+    2,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__TopologyElement, type_name),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "is_bin",
+    3,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_BOOL,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__TopologyElement, is_bin),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "factory_name",
+    4,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__TopologyElement, factory_name),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__topology_element__field_indices_by_name[] = {
+  3,   /* field[3] = factory_name */
+  2,   /* field[2] = is_bin */
+  0,   /* field[0] = path */
+  1,   /* field[1] = type_name */
+};
+static const ProtobufCIntRange gst_debugger__topology_element__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 4 }
+};
+const ProtobufCMessageDescriptor gst_debugger__topology_element__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.TopologyElement",
+  "TopologyElement",
+  "GstDebugger__TopologyElement",
+  "GstDebugger",
+  sizeof(GstDebugger__TopologyElement),
+  4,
+  gst_debugger__topology_element__field_descriptors,
+  gst_debugger__topology_element__field_indices_by_name,
+  1,  gst_debugger__topology_element__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__topology_element__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__topology_pad__field_descriptors[5] =
+{
+  {
+    "path",
+    1,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__TopologyPad, path),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "is_ghostpad",
+    2,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_BOOL,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__TopologyPad, is_ghostpad),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "direction",
+    3,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_INT32,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__TopologyPad, direction),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "presence",
+    4,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_INT32,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__TopologyPad, presence),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "template",
+    5,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__TopologyPad, template_),
+    &gst_debugger__pad_template__descriptor,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__topology_pad__field_indices_by_name[] = {
+  2,   /* field[2] = direction */
+  1,   /* field[1] = is_ghostpad */
+  0,   /* field[0] = path */
+  3,   /* field[3] = presence */
+  4,   /* field[4] = template */
+};
+static const ProtobufCIntRange gst_debugger__topology_pad__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 5 }
+};
+const ProtobufCMessageDescriptor gst_debugger__topology_pad__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.TopologyPad",
+  "TopologyPad",
+  "GstDebugger__TopologyPad",
+  "GstDebugger",
+  sizeof(GstDebugger__TopologyPad),
+  5,
+  gst_debugger__topology_pad__field_descriptors,
+  gst_debugger__topology_pad__field_indices_by_name,
+  1,  gst_debugger__topology_pad__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__topology_pad__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__topology_info__field_descriptors[4] =
+{
+  {
+    "action",
+    1,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_ENUM,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__TopologyInfo, action),
+    &gst_debugger__action__descriptor,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "link",
+    2,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__TopologyInfo, topology_type_case),
+    offsetof(GstDebugger__TopologyInfo, link),
+    &gst_debugger__topology_link__descriptor,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "element",
+    3,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__TopologyInfo, topology_type_case),
+    offsetof(GstDebugger__TopologyInfo, element),
+    &gst_debugger__topology_element__descriptor,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "pad",
+    4,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__TopologyInfo, topology_type_case),
+    offsetof(GstDebugger__TopologyInfo, pad),
+    &gst_debugger__topology_pad__descriptor,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__topology_info__field_indices_by_name[] = {
+  0,   /* field[0] = action */
+  2,   /* field[2] = element */
+  1,   /* field[1] = link */
+  3,   /* field[3] = pad */
+};
+static const ProtobufCIntRange gst_debugger__topology_info__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 4 }
+};
+const ProtobufCMessageDescriptor gst_debugger__topology_info__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.TopologyInfo",
+  "TopologyInfo",
+  "GstDebugger__TopologyInfo",
+  "GstDebugger",
+  sizeof(GstDebugger__TopologyInfo),
+  4,
+  gst_debugger__topology_info__field_descriptors,
+  gst_debugger__topology_info__field_indices_by_name,
+  1,  gst_debugger__topology_info__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__topology_info__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__pad_dynamic_info__field_descriptors[3] =
+{
+  {
+    "allowed_caps",
+    1,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__PadDynamicInfo, allowed_caps),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "current_caps",
+    2,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__PadDynamicInfo, current_caps),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "pad",
+    3,
+    PROTOBUF_C_LABEL_REQUIRED,
+    PROTOBUF_C_TYPE_STRING,
+    0,   /* quantifier_offset */
+    offsetof(GstDebugger__PadDynamicInfo, pad),
+    NULL,
+    NULL,
+    0,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__pad_dynamic_info__field_indices_by_name[] = {
+  0,   /* field[0] = allowed_caps */
+  1,   /* field[1] = current_caps */
+  2,   /* field[2] = pad */
+};
+static const ProtobufCIntRange gst_debugger__pad_dynamic_info__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 3 }
+};
+const ProtobufCMessageDescriptor gst_debugger__pad_dynamic_info__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.PadDynamicInfo",
+  "PadDynamicInfo",
+  "GstDebugger__PadDynamicInfo",
+  "GstDebugger",
+  sizeof(GstDebugger__PadDynamicInfo),
+  3,
+  gst_debugger__pad_dynamic_info__field_descriptors,
+  gst_debugger__pad_dynamic_info__field_indices_by_name,
+  1,  gst_debugger__pad_dynamic_info__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__pad_dynamic_info__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCFieldDescriptor gst_debugger__gstreamer_data__field_descriptors[13] =
+{
+  {
+    "debug_categories",
+    1,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__GStreamerData, info_type_case),
+    offsetof(GstDebugger__GStreamerData, debug_categories),
+    &gst_debugger__debug_categories__descriptor,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "log_info",
+    2,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__GStreamerData, info_type_case),
+    offsetof(GstDebugger__GStreamerData, log_info),
+    &gst_debugger__log_info__descriptor,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "enum_flags_type",
+    3,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__GStreamerData, info_type_case),
+    offsetof(GstDebugger__GStreamerData, enum_flags_type),
+    &gst_debugger__enum_flags_type__descriptor,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "factory",
+    4,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__GStreamerData, info_type_case),
+    offsetof(GstDebugger__GStreamerData, factory),
+    &gst_debugger__factory_type__descriptor,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "message_info",
+    5,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__GStreamerData, info_type_case),
+    offsetof(GstDebugger__GStreamerData, message_info),
+    &gst_debugger__message_info__descriptor,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "confirmation",
+    6,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__GStreamerData, info_type_case),
+    offsetof(GstDebugger__GStreamerData, confirmation),
+    &gst_debugger__command__descriptor,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "event_info",
+    7,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__GStreamerData, info_type_case),
+    offsetof(GstDebugger__GStreamerData, event_info),
+    &gst_debugger__event_info__descriptor,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "topology_info",
+    8,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__GStreamerData, info_type_case),
+    offsetof(GstDebugger__GStreamerData, topology_info),
+    &gst_debugger__topology_info__descriptor,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "query_info",
+    9,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__GStreamerData, info_type_case),
+    offsetof(GstDebugger__GStreamerData, query_info),
+    &gst_debugger__query_info__descriptor,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "property_value",
+    10,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__GStreamerData, info_type_case),
+    offsetof(GstDebugger__GStreamerData, property_value),
+    &gst_debugger__property_value__descriptor,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "element_klass",
+    11,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__GStreamerData, info_type_case),
+    offsetof(GstDebugger__GStreamerData, element_klass),
+    &gst_debugger__element_klass__descriptor,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "buffer_info",
+    12,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__GStreamerData, info_type_case),
+    offsetof(GstDebugger__GStreamerData, buffer_info),
+    &gst_debugger__buffer_info__descriptor,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+  {
+    "pad_dynamic_info",
+    13,
+    PROTOBUF_C_LABEL_OPTIONAL,
+    PROTOBUF_C_TYPE_MESSAGE,
+    offsetof(GstDebugger__GStreamerData, info_type_case),
+    offsetof(GstDebugger__GStreamerData, pad_dynamic_info),
+    &gst_debugger__pad_dynamic_info__descriptor,
+    NULL,
+    0 | PROTOBUF_C_FIELD_FLAG_ONEOF,             /* flags */
+    0,NULL,NULL    /* reserved1,reserved2, etc */
+  },
+};
+static const unsigned gst_debugger__gstreamer_data__field_indices_by_name[] = {
+  11,   /* field[11] = buffer_info */
+  5,   /* field[5] = confirmation */
+  0,   /* field[0] = debug_categories */
+  10,   /* field[10] = element_klass */
+  2,   /* field[2] = enum_flags_type */
+  6,   /* field[6] = event_info */
+  3,   /* field[3] = factory */
+  1,   /* field[1] = log_info */
+  4,   /* field[4] = message_info */
+  12,   /* field[12] = pad_dynamic_info */
+  9,   /* field[9] = property_value */
+  8,   /* field[8] = query_info */
+  7,   /* field[7] = topology_info */
+};
+static const ProtobufCIntRange gst_debugger__gstreamer_data__number_ranges[1 + 1] =
+{
+  { 1, 0 },
+  { 0, 13 }
+};
+const ProtobufCMessageDescriptor gst_debugger__gstreamer_data__descriptor =
+{
+  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+  "GstDebugger.GStreamerData",
+  "GStreamerData",
+  "GstDebugger__GStreamerData",
+  "GstDebugger",
+  sizeof(GstDebugger__GStreamerData),
+  13,
+  gst_debugger__gstreamer_data__field_descriptors,
+  gst_debugger__gstreamer_data__field_indices_by_name,
+  1,  gst_debugger__gstreamer_data__number_ranges,
+  (ProtobufCMessageInit) gst_debugger__gstreamer_data__init,
+  NULL,NULL,NULL    /* reserved[123] */
+};
+static const ProtobufCEnumValue gst_debugger__action__enum_values_by_number[2] =
+{
+  { "ADD", "GST_DEBUGGER__ACTION__ADD", 0 },
+  { "REMOVE", "GST_DEBUGGER__ACTION__REMOVE", 1 },
+};
+static const ProtobufCIntRange gst_debugger__action__value_ranges[] = {
+{0, 0},{0, 2}
+};
+static const ProtobufCEnumValueIndex gst_debugger__action__enum_values_by_name[2] =
+{
+  { "ADD", 0 },
+  { "REMOVE", 1 },
+};
+const ProtobufCEnumDescriptor gst_debugger__action__descriptor =
+{
+  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
+  "GstDebugger.Action",
+  "Action",
+  "GstDebugger__Action",
+  "GstDebugger",
+  2,
+  gst_debugger__action__enum_values_by_number,
+  2,
+  gst_debugger__action__enum_values_by_name,
+  1,
+  gst_debugger__action__value_ranges,
+  NULL,NULL,NULL,NULL   /* reserved[1234] */
+};
diff --git a/src/common/gstdebugger.pb-c.h b/src/common/gstdebugger.pb-c.h
new file mode 100644
index 0000000..0829f32
--- /dev/null
+++ b/src/common/gstdebugger.pb-c.h
@@ -0,0 +1,1266 @@
+/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
+/* Generated from: gstdebugger.proto */
+
+#ifndef PROTOBUF_C_gstdebugger_2eproto__INCLUDED
+#define PROTOBUF_C_gstdebugger_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1000000
+# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c 
headers. Please update your headers.
+#elif 1002001 < PROTOBUF_C_MIN_COMPILER_VERSION
+# error This file was generated by an older version of protoc-c which is incompatible with your 
libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c.
+#endif
+
+
+typedef struct _GstDebugger__Value GstDebugger__Value;
+typedef struct _GstDebugger__PropertyInfo GstDebugger__PropertyInfo;
+typedef struct _GstDebugger__PropertyValue GstDebugger__PropertyValue;
+typedef struct _GstDebugger__PropertyRequest GstDebugger__PropertyRequest;
+typedef struct _GstDebugger__MessageInfo GstDebugger__MessageInfo;
+typedef struct _GstDebugger__EventInfo GstDebugger__EventInfo;
+typedef struct _GstDebugger__QueryInfo GstDebugger__QueryInfo;
+typedef struct _GstDebugger__BufferInfo GstDebugger__BufferInfo;
+typedef struct _GstDebugger__TypeDescriptionRequest GstDebugger__TypeDescriptionRequest;
+typedef struct _GstDebugger__QueryHookRequest GstDebugger__QueryHookRequest;
+typedef struct _GstDebugger__BufferHookRequest GstDebugger__BufferHookRequest;
+typedef struct _GstDebugger__EventHookRequest GstDebugger__EventHookRequest;
+typedef struct _GstDebugger__PadHookRequest GstDebugger__PadHookRequest;
+typedef struct _GstDebugger__LogRequest GstDebugger__LogRequest;
+typedef struct _GstDebugger__MessageRequest GstDebugger__MessageRequest;
+typedef struct _GstDebugger__HookRequest GstDebugger__HookRequest;
+typedef struct _GstDebugger__Command GstDebugger__Command;
+typedef struct _GstDebugger__DebugCategories GstDebugger__DebugCategories;
+typedef struct _GstDebugger__LogInfo GstDebugger__LogInfo;
+typedef struct _GstDebugger__EnumFlagsValue GstDebugger__EnumFlagsValue;
+typedef struct _GstDebugger__EnumFlagsType GstDebugger__EnumFlagsType;
+typedef struct _GstDebugger__FactoryMeta GstDebugger__FactoryMeta;
+typedef struct _GstDebugger__PadTemplate GstDebugger__PadTemplate;
+typedef struct _GstDebugger__FactoryType GstDebugger__FactoryType;
+typedef struct _GstDebugger__ElementKlass GstDebugger__ElementKlass;
+typedef struct _GstDebugger__TopologyLink GstDebugger__TopologyLink;
+typedef struct _GstDebugger__TopologyElement GstDebugger__TopologyElement;
+typedef struct _GstDebugger__TopologyPad GstDebugger__TopologyPad;
+typedef struct _GstDebugger__TopologyInfo GstDebugger__TopologyInfo;
+typedef struct _GstDebugger__PadDynamicInfo GstDebugger__PadDynamicInfo;
+typedef struct _GstDebugger__GStreamerData GstDebugger__GStreamerData;
+
+
+/* --- enums --- */
+
+typedef enum _GstDebugger__TypeDescriptionRequest__Type {
+  GST_DEBUGGER__TYPE_DESCRIPTION_REQUEST__TYPE__FACTORY = 0,
+  GST_DEBUGGER__TYPE_DESCRIPTION_REQUEST__TYPE__ENUM_FLAGS = 1,
+  GST_DEBUGGER__TYPE_DESCRIPTION_REQUEST__TYPE__KLASS = 2
+    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(GST_DEBUGGER__TYPE_DESCRIPTION_REQUEST__TYPE)
+} GstDebugger__TypeDescriptionRequest__Type;
+typedef enum _GstDebugger__EnumFlagsType__EnumFlagsKind {
+  GST_DEBUGGER__ENUM_FLAGS_TYPE__ENUM_FLAGS_KIND__ENUM = 0,
+  GST_DEBUGGER__ENUM_FLAGS_TYPE__ENUM_FLAGS_KIND__FLAGS = 1
+    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(GST_DEBUGGER__ENUM_FLAGS_TYPE__ENUM_FLAGS_KIND)
+} GstDebugger__EnumFlagsType__EnumFlagsKind;
+typedef enum _GstDebugger__Action {
+  GST_DEBUGGER__ACTION__ADD = 0,
+  GST_DEBUGGER__ACTION__REMOVE = 1
+    PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(GST_DEBUGGER__ACTION)
+} GstDebugger__Action;
+
+/* --- messages --- */
+
+struct  _GstDebugger__Value
+{
+  ProtobufCMessage base;
+  uint64_t gtype;
+  protobuf_c_boolean has_internal_type;
+  int32_t internal_type;
+  ProtobufCBinaryData data;
+  char *type_name;
+};
+#define GST_DEBUGGER__VALUE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__value__descriptor) \
+    , 0, 0,0, {0,NULL}, NULL }
+
+
+struct  _GstDebugger__PropertyInfo
+{
+  ProtobufCMessage base;
+  char *name;
+  char *nick;
+  char *blurb;
+  int32_t flags;
+  GstDebugger__Value *default_value;
+};
+#define GST_DEBUGGER__PROPERTY_INFO__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__property_info__descriptor) \
+    , NULL, NULL, NULL, 0, NULL }
+
+
+struct  _GstDebugger__PropertyValue
+{
+  ProtobufCMessage base;
+  char *name;
+  char *object;
+  GstDebugger__Value *value;
+};
+#define GST_DEBUGGER__PROPERTY_VALUE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__property_value__descriptor) \
+    , NULL, NULL, NULL }
+
+
+struct  _GstDebugger__PropertyRequest
+{
+  ProtobufCMessage base;
+  char *name;
+  char *object;
+};
+#define GST_DEBUGGER__PROPERTY_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__property_request__descriptor) \
+    , NULL, NULL }
+
+
+struct  _GstDebugger__MessageInfo
+{
+  ProtobufCMessage base;
+  int32_t type;
+  uint64_t timestamp;
+  char *source;
+  uint32_t seqnum;
+  ProtobufCBinaryData structure_data;
+};
+#define GST_DEBUGGER__MESSAGE_INFO__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__message_info__descriptor) \
+    , 0, 0, NULL, 0, {0,NULL} }
+
+
+struct  _GstDebugger__EventInfo
+{
+  ProtobufCMessage base;
+  int32_t type;
+  uint64_t timestamp;
+  uint32_t seqnum;
+  char *pad;
+  ProtobufCBinaryData structure_data;
+};
+#define GST_DEBUGGER__EVENT_INFO__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__event_info__descriptor) \
+    , 0, 0, 0, NULL, {0,NULL} }
+
+
+struct  _GstDebugger__QueryInfo
+{
+  ProtobufCMessage base;
+  int32_t type;
+  char *pad;
+  ProtobufCBinaryData structure_data;
+};
+#define GST_DEBUGGER__QUERY_INFO__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__query_info__descriptor) \
+    , 0, NULL, {0,NULL} }
+
+
+struct  _GstDebugger__BufferInfo
+{
+  ProtobufCMessage base;
+  uint64_t pts;
+  uint64_t dts;
+  uint64_t duration;
+  uint64_t offset;
+  uint64_t offset_end;
+  uint64_t size;
+  char *pad;
+  protobuf_c_boolean has_data;
+  ProtobufCBinaryData data;
+};
+#define GST_DEBUGGER__BUFFER_INFO__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__buffer_info__descriptor) \
+    , 0, 0, 0, 0, 0, 0, NULL, 0,{0,NULL} }
+
+
+struct  _GstDebugger__TypeDescriptionRequest
+{
+  ProtobufCMessage base;
+  char *name;
+  GstDebugger__TypeDescriptionRequest__Type type;
+};
+#define GST_DEBUGGER__TYPE_DESCRIPTION_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__type_description_request__descriptor) \
+    , NULL, 0 }
+
+
+struct  _GstDebugger__QueryHookRequest
+{
+  ProtobufCMessage base;
+  int32_t type;
+};
+#define GST_DEBUGGER__QUERY_HOOK_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__query_hook_request__descriptor) \
+    , 0 }
+
+
+struct  _GstDebugger__BufferHookRequest
+{
+  ProtobufCMessage base;
+  protobuf_c_boolean send_data;
+};
+#define GST_DEBUGGER__BUFFER_HOOK_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__buffer_hook_request__descriptor) \
+    , 0 }
+
+
+struct  _GstDebugger__EventHookRequest
+{
+  ProtobufCMessage base;
+  int32_t type;
+};
+#define GST_DEBUGGER__EVENT_HOOK_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__event_hook_request__descriptor) \
+    , 0 }
+
+
+typedef enum {
+  GST_DEBUGGER__PAD_HOOK_REQUEST__PAD_HOOK_TYPE__NOT_SET = 0,
+  GST_DEBUGGER__PAD_HOOK_REQUEST__PAD_HOOK_TYPE_QUERY = 2,
+  GST_DEBUGGER__PAD_HOOK_REQUEST__PAD_HOOK_TYPE_BUFFER = 3,
+  GST_DEBUGGER__PAD_HOOK_REQUEST__PAD_HOOK_TYPE_EVENT = 4,
+} GstDebugger__PadHookRequest__PadHookTypeCase;
+
+struct  _GstDebugger__PadHookRequest
+{
+  ProtobufCMessage base;
+  char *pad;
+  GstDebugger__PadHookRequest__PadHookTypeCase pad_hook_type_case;
+  union {
+    GstDebugger__QueryHookRequest *query;
+    GstDebugger__BufferHookRequest *buffer;
+    GstDebugger__EventHookRequest *event;
+  };
+};
+#define GST_DEBUGGER__PAD_HOOK_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__pad_hook_request__descriptor) \
+    , NULL, GST_DEBUGGER__PAD_HOOK_REQUEST__PAD_HOOK_TYPE__NOT_SET, {0} }
+
+
+struct  _GstDebugger__LogRequest
+{
+  ProtobufCMessage base;
+  int32_t level;
+  char *category;
+};
+#define GST_DEBUGGER__LOG_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__log_request__descriptor) \
+    , 0, NULL }
+
+
+struct  _GstDebugger__MessageRequest
+{
+  ProtobufCMessage base;
+  int32_t type;
+};
+#define GST_DEBUGGER__MESSAGE_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__message_request__descriptor) \
+    , 0 }
+
+
+typedef enum {
+  GST_DEBUGGER__HOOK_REQUEST__HOOK_TYPE__NOT_SET = 0,
+  GST_DEBUGGER__HOOK_REQUEST__HOOK_TYPE_MESSAGE = 2,
+  GST_DEBUGGER__HOOK_REQUEST__HOOK_TYPE_LOG = 3,
+  GST_DEBUGGER__HOOK_REQUEST__HOOK_TYPE_PAD_HOOK = 4,
+} GstDebugger__HookRequest__HookTypeCase;
+
+struct  _GstDebugger__HookRequest
+{
+  ProtobufCMessage base;
+  GstDebugger__Action action;
+  GstDebugger__HookRequest__HookTypeCase hook_type_case;
+  union {
+    GstDebugger__MessageRequest *message;
+    GstDebugger__LogRequest *log;
+    GstDebugger__PadHookRequest *pad_hook;
+  };
+};
+#define GST_DEBUGGER__HOOK_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__hook_request__descriptor) \
+    , 0, GST_DEBUGGER__HOOK_REQUEST__HOOK_TYPE__NOT_SET, {0} }
+
+
+typedef enum {
+  GST_DEBUGGER__COMMAND__COMMAND_TYPE__NOT_SET = 0,
+  GST_DEBUGGER__COMMAND__COMMAND_TYPE_TYPE_DESCRIPTION = 1,
+  GST_DEBUGGER__COMMAND__COMMAND_TYPE_DEBUG_CATEGORIES_LIST = 2,
+  GST_DEBUGGER__COMMAND__COMMAND_TYPE_HOOK_REQUEST = 3,
+  GST_DEBUGGER__COMMAND__COMMAND_TYPE_LOG_THRESHOLD = 4,
+  GST_DEBUGGER__COMMAND__COMMAND_TYPE_ENTIRE_TOPOLOGY = 5,
+  GST_DEBUGGER__COMMAND__COMMAND_TYPE_PROPERTY = 6,
+  GST_DEBUGGER__COMMAND__COMMAND_TYPE_PROPERTY_SET = 7,
+  GST_DEBUGGER__COMMAND__COMMAND_TYPE_PAD_DYNAMIC_INFO = 8,
+} GstDebugger__Command__CommandTypeCase;
+
+struct  _GstDebugger__Command
+{
+  ProtobufCMessage base;
+  GstDebugger__Command__CommandTypeCase command_type_case;
+  union {
+    GstDebugger__TypeDescriptionRequest *type_description;
+    protobuf_c_boolean debug_categories_list;
+    GstDebugger__HookRequest *hook_request;
+    char *log_threshold;
+    protobuf_c_boolean entire_topology;
+    GstDebugger__PropertyRequest *property;
+    GstDebugger__PropertyValue *property_set;
+    char *pad_dynamic_info;
+  };
+};
+#define GST_DEBUGGER__COMMAND__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__command__descriptor) \
+    , GST_DEBUGGER__COMMAND__COMMAND_TYPE__NOT_SET, {0} }
+
+
+struct  _GstDebugger__DebugCategories
+{
+  ProtobufCMessage base;
+  size_t n_category;
+  char **category;
+};
+#define GST_DEBUGGER__DEBUG_CATEGORIES__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__debug_categories__descriptor) \
+    , 0,NULL }
+
+
+struct  _GstDebugger__LogInfo
+{
+  ProtobufCMessage base;
+  int32_t level;
+  char *category;
+  char *file;
+  char *function;
+  int32_t line;
+  char *object;
+  char *message;
+};
+#define GST_DEBUGGER__LOG_INFO__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__log_info__descriptor) \
+    , 0, NULL, NULL, NULL, 0, NULL, NULL }
+
+
+struct  _GstDebugger__EnumFlagsValue
+{
+  ProtobufCMessage base;
+  char *name;
+  int32_t value;
+  char *nick;
+};
+#define GST_DEBUGGER__ENUM_FLAGS_VALUE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__enum_flags_value__descriptor) \
+    , NULL, 0, NULL }
+
+
+struct  _GstDebugger__EnumFlagsType
+{
+  ProtobufCMessage base;
+  char *type_name;
+  GstDebugger__EnumFlagsType__EnumFlagsKind kind;
+  size_t n_values;
+  GstDebugger__EnumFlagsValue **values;
+};
+#define GST_DEBUGGER__ENUM_FLAGS_TYPE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__enum_flags_type__descriptor) \
+    , NULL, 0, 0,NULL }
+
+
+struct  _GstDebugger__FactoryMeta
+{
+  ProtobufCMessage base;
+  char *key;
+  char *value;
+};
+#define GST_DEBUGGER__FACTORY_META__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__factory_meta__descriptor) \
+    , NULL, NULL }
+
+
+struct  _GstDebugger__PadTemplate
+{
+  ProtobufCMessage base;
+  char *name_template;
+  int32_t direction;
+  int32_t presence;
+  char *caps;
+};
+#define GST_DEBUGGER__PAD_TEMPLATE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__pad_template__descriptor) \
+    , NULL, 0, 0, NULL }
+
+
+struct  _GstDebugger__FactoryType
+{
+  ProtobufCMessage base;
+  char *name;
+  size_t n_metadata;
+  GstDebugger__FactoryMeta **metadata;
+  size_t n_templates;
+  GstDebugger__PadTemplate **templates;
+};
+#define GST_DEBUGGER__FACTORY_TYPE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__factory_type__descriptor) \
+    , NULL, 0,NULL, 0,NULL }
+
+
+struct  _GstDebugger__ElementKlass
+{
+  ProtobufCMessage base;
+  char *name;
+  size_t n_property_info;
+  GstDebugger__PropertyInfo **property_info;
+};
+#define GST_DEBUGGER__ELEMENT_KLASS__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__element_klass__descriptor) \
+    , NULL, 0,NULL }
+
+
+struct  _GstDebugger__TopologyLink
+{
+  ProtobufCMessage base;
+  char *src_pad;
+  char *sink_pad;
+};
+#define GST_DEBUGGER__TOPOLOGY_LINK__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__topology_link__descriptor) \
+    , NULL, NULL }
+
+
+struct  _GstDebugger__TopologyElement
+{
+  ProtobufCMessage base;
+  char *path;
+  char *type_name;
+  protobuf_c_boolean is_bin;
+  char *factory_name;
+};
+#define GST_DEBUGGER__TOPOLOGY_ELEMENT__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__topology_element__descriptor) \
+    , NULL, NULL, 0, NULL }
+
+
+struct  _GstDebugger__TopologyPad
+{
+  ProtobufCMessage base;
+  char *path;
+  protobuf_c_boolean is_ghostpad;
+  int32_t direction;
+  int32_t presence;
+  GstDebugger__PadTemplate *template_;
+};
+#define GST_DEBUGGER__TOPOLOGY_PAD__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__topology_pad__descriptor) \
+    , NULL, 0, 0, 0, NULL }
+
+
+typedef enum {
+  GST_DEBUGGER__TOPOLOGY_INFO__TOPOLOGY_TYPE__NOT_SET = 0,
+  GST_DEBUGGER__TOPOLOGY_INFO__TOPOLOGY_TYPE_LINK = 2,
+  GST_DEBUGGER__TOPOLOGY_INFO__TOPOLOGY_TYPE_ELEMENT = 3,
+  GST_DEBUGGER__TOPOLOGY_INFO__TOPOLOGY_TYPE_PAD = 4,
+} GstDebugger__TopologyInfo__TopologyTypeCase;
+
+struct  _GstDebugger__TopologyInfo
+{
+  ProtobufCMessage base;
+  GstDebugger__Action action;
+  GstDebugger__TopologyInfo__TopologyTypeCase topology_type_case;
+  union {
+    GstDebugger__TopologyLink *link;
+    GstDebugger__TopologyElement *element;
+    GstDebugger__TopologyPad *pad;
+  };
+};
+#define GST_DEBUGGER__TOPOLOGY_INFO__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__topology_info__descriptor) \
+    , 0, GST_DEBUGGER__TOPOLOGY_INFO__TOPOLOGY_TYPE__NOT_SET, {0} }
+
+
+struct  _GstDebugger__PadDynamicInfo
+{
+  ProtobufCMessage base;
+  char *allowed_caps;
+  char *current_caps;
+  char *pad;
+};
+#define GST_DEBUGGER__PAD_DYNAMIC_INFO__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__pad_dynamic_info__descriptor) \
+    , NULL, NULL, NULL }
+
+
+typedef enum {
+  GST_DEBUGGER__GSTREAMER_DATA__INFO_TYPE__NOT_SET = 0,
+  GST_DEBUGGER__GSTREAMER_DATA__INFO_TYPE_DEBUG_CATEGORIES = 1,
+  GST_DEBUGGER__GSTREAMER_DATA__INFO_TYPE_LOG_INFO = 2,
+  GST_DEBUGGER__GSTREAMER_DATA__INFO_TYPE_ENUM_FLAGS_TYPE = 3,
+  GST_DEBUGGER__GSTREAMER_DATA__INFO_TYPE_FACTORY = 4,
+  GST_DEBUGGER__GSTREAMER_DATA__INFO_TYPE_MESSAGE_INFO = 5,
+  GST_DEBUGGER__GSTREAMER_DATA__INFO_TYPE_CONFIRMATION = 6,
+  GST_DEBUGGER__GSTREAMER_DATA__INFO_TYPE_EVENT_INFO = 7,
+  GST_DEBUGGER__GSTREAMER_DATA__INFO_TYPE_TOPOLOGY_INFO = 8,
+  GST_DEBUGGER__GSTREAMER_DATA__INFO_TYPE_QUERY_INFO = 9,
+  GST_DEBUGGER__GSTREAMER_DATA__INFO_TYPE_PROPERTY_VALUE = 10,
+  GST_DEBUGGER__GSTREAMER_DATA__INFO_TYPE_ELEMENT_KLASS = 11,
+  GST_DEBUGGER__GSTREAMER_DATA__INFO_TYPE_BUFFER_INFO = 12,
+  GST_DEBUGGER__GSTREAMER_DATA__INFO_TYPE_PAD_DYNAMIC_INFO = 13,
+} GstDebugger__GStreamerData__InfoTypeCase;
+
+struct  _GstDebugger__GStreamerData
+{
+  ProtobufCMessage base;
+  GstDebugger__GStreamerData__InfoTypeCase info_type_case;
+  union {
+    GstDebugger__DebugCategories *debug_categories;
+    GstDebugger__LogInfo *log_info;
+    GstDebugger__EnumFlagsType *enum_flags_type;
+    GstDebugger__FactoryType *factory;
+    GstDebugger__MessageInfo *message_info;
+    GstDebugger__Command *confirmation;
+    GstDebugger__EventInfo *event_info;
+    GstDebugger__TopologyInfo *topology_info;
+    GstDebugger__QueryInfo *query_info;
+    GstDebugger__PropertyValue *property_value;
+    GstDebugger__ElementKlass *element_klass;
+    GstDebugger__BufferInfo *buffer_info;
+    GstDebugger__PadDynamicInfo *pad_dynamic_info;
+  };
+};
+#define GST_DEBUGGER__GSTREAMER_DATA__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&gst_debugger__gstreamer_data__descriptor) \
+    , GST_DEBUGGER__GSTREAMER_DATA__INFO_TYPE__NOT_SET, {0} }
+
+
+/* GstDebugger__Value methods */
+void   gst_debugger__value__init
+                     (GstDebugger__Value         *message);
+size_t gst_debugger__value__get_packed_size
+                     (const GstDebugger__Value   *message);
+size_t gst_debugger__value__pack
+                     (const GstDebugger__Value   *message,
+                      uint8_t             *out);
+size_t gst_debugger__value__pack_to_buffer
+                     (const GstDebugger__Value   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__Value *
+       gst_debugger__value__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__value__free_unpacked
+                     (GstDebugger__Value *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__PropertyInfo methods */
+void   gst_debugger__property_info__init
+                     (GstDebugger__PropertyInfo         *message);
+size_t gst_debugger__property_info__get_packed_size
+                     (const GstDebugger__PropertyInfo   *message);
+size_t gst_debugger__property_info__pack
+                     (const GstDebugger__PropertyInfo   *message,
+                      uint8_t             *out);
+size_t gst_debugger__property_info__pack_to_buffer
+                     (const GstDebugger__PropertyInfo   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__PropertyInfo *
+       gst_debugger__property_info__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__property_info__free_unpacked
+                     (GstDebugger__PropertyInfo *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__PropertyValue methods */
+void   gst_debugger__property_value__init
+                     (GstDebugger__PropertyValue         *message);
+size_t gst_debugger__property_value__get_packed_size
+                     (const GstDebugger__PropertyValue   *message);
+size_t gst_debugger__property_value__pack
+                     (const GstDebugger__PropertyValue   *message,
+                      uint8_t             *out);
+size_t gst_debugger__property_value__pack_to_buffer
+                     (const GstDebugger__PropertyValue   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__PropertyValue *
+       gst_debugger__property_value__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__property_value__free_unpacked
+                     (GstDebugger__PropertyValue *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__PropertyRequest methods */
+void   gst_debugger__property_request__init
+                     (GstDebugger__PropertyRequest         *message);
+size_t gst_debugger__property_request__get_packed_size
+                     (const GstDebugger__PropertyRequest   *message);
+size_t gst_debugger__property_request__pack
+                     (const GstDebugger__PropertyRequest   *message,
+                      uint8_t             *out);
+size_t gst_debugger__property_request__pack_to_buffer
+                     (const GstDebugger__PropertyRequest   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__PropertyRequest *
+       gst_debugger__property_request__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__property_request__free_unpacked
+                     (GstDebugger__PropertyRequest *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__MessageInfo methods */
+void   gst_debugger__message_info__init
+                     (GstDebugger__MessageInfo         *message);
+size_t gst_debugger__message_info__get_packed_size
+                     (const GstDebugger__MessageInfo   *message);
+size_t gst_debugger__message_info__pack
+                     (const GstDebugger__MessageInfo   *message,
+                      uint8_t             *out);
+size_t gst_debugger__message_info__pack_to_buffer
+                     (const GstDebugger__MessageInfo   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__MessageInfo *
+       gst_debugger__message_info__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__message_info__free_unpacked
+                     (GstDebugger__MessageInfo *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__EventInfo methods */
+void   gst_debugger__event_info__init
+                     (GstDebugger__EventInfo         *message);
+size_t gst_debugger__event_info__get_packed_size
+                     (const GstDebugger__EventInfo   *message);
+size_t gst_debugger__event_info__pack
+                     (const GstDebugger__EventInfo   *message,
+                      uint8_t             *out);
+size_t gst_debugger__event_info__pack_to_buffer
+                     (const GstDebugger__EventInfo   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__EventInfo *
+       gst_debugger__event_info__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__event_info__free_unpacked
+                     (GstDebugger__EventInfo *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__QueryInfo methods */
+void   gst_debugger__query_info__init
+                     (GstDebugger__QueryInfo         *message);
+size_t gst_debugger__query_info__get_packed_size
+                     (const GstDebugger__QueryInfo   *message);
+size_t gst_debugger__query_info__pack
+                     (const GstDebugger__QueryInfo   *message,
+                      uint8_t             *out);
+size_t gst_debugger__query_info__pack_to_buffer
+                     (const GstDebugger__QueryInfo   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__QueryInfo *
+       gst_debugger__query_info__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__query_info__free_unpacked
+                     (GstDebugger__QueryInfo *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__BufferInfo methods */
+void   gst_debugger__buffer_info__init
+                     (GstDebugger__BufferInfo         *message);
+size_t gst_debugger__buffer_info__get_packed_size
+                     (const GstDebugger__BufferInfo   *message);
+size_t gst_debugger__buffer_info__pack
+                     (const GstDebugger__BufferInfo   *message,
+                      uint8_t             *out);
+size_t gst_debugger__buffer_info__pack_to_buffer
+                     (const GstDebugger__BufferInfo   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__BufferInfo *
+       gst_debugger__buffer_info__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__buffer_info__free_unpacked
+                     (GstDebugger__BufferInfo *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__TypeDescriptionRequest methods */
+void   gst_debugger__type_description_request__init
+                     (GstDebugger__TypeDescriptionRequest         *message);
+size_t gst_debugger__type_description_request__get_packed_size
+                     (const GstDebugger__TypeDescriptionRequest   *message);
+size_t gst_debugger__type_description_request__pack
+                     (const GstDebugger__TypeDescriptionRequest   *message,
+                      uint8_t             *out);
+size_t gst_debugger__type_description_request__pack_to_buffer
+                     (const GstDebugger__TypeDescriptionRequest   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__TypeDescriptionRequest *
+       gst_debugger__type_description_request__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__type_description_request__free_unpacked
+                     (GstDebugger__TypeDescriptionRequest *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__QueryHookRequest methods */
+void   gst_debugger__query_hook_request__init
+                     (GstDebugger__QueryHookRequest         *message);
+size_t gst_debugger__query_hook_request__get_packed_size
+                     (const GstDebugger__QueryHookRequest   *message);
+size_t gst_debugger__query_hook_request__pack
+                     (const GstDebugger__QueryHookRequest   *message,
+                      uint8_t             *out);
+size_t gst_debugger__query_hook_request__pack_to_buffer
+                     (const GstDebugger__QueryHookRequest   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__QueryHookRequest *
+       gst_debugger__query_hook_request__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__query_hook_request__free_unpacked
+                     (GstDebugger__QueryHookRequest *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__BufferHookRequest methods */
+void   gst_debugger__buffer_hook_request__init
+                     (GstDebugger__BufferHookRequest         *message);
+size_t gst_debugger__buffer_hook_request__get_packed_size
+                     (const GstDebugger__BufferHookRequest   *message);
+size_t gst_debugger__buffer_hook_request__pack
+                     (const GstDebugger__BufferHookRequest   *message,
+                      uint8_t             *out);
+size_t gst_debugger__buffer_hook_request__pack_to_buffer
+                     (const GstDebugger__BufferHookRequest   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__BufferHookRequest *
+       gst_debugger__buffer_hook_request__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__buffer_hook_request__free_unpacked
+                     (GstDebugger__BufferHookRequest *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__EventHookRequest methods */
+void   gst_debugger__event_hook_request__init
+                     (GstDebugger__EventHookRequest         *message);
+size_t gst_debugger__event_hook_request__get_packed_size
+                     (const GstDebugger__EventHookRequest   *message);
+size_t gst_debugger__event_hook_request__pack
+                     (const GstDebugger__EventHookRequest   *message,
+                      uint8_t             *out);
+size_t gst_debugger__event_hook_request__pack_to_buffer
+                     (const GstDebugger__EventHookRequest   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__EventHookRequest *
+       gst_debugger__event_hook_request__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__event_hook_request__free_unpacked
+                     (GstDebugger__EventHookRequest *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__PadHookRequest methods */
+void   gst_debugger__pad_hook_request__init
+                     (GstDebugger__PadHookRequest         *message);
+size_t gst_debugger__pad_hook_request__get_packed_size
+                     (const GstDebugger__PadHookRequest   *message);
+size_t gst_debugger__pad_hook_request__pack
+                     (const GstDebugger__PadHookRequest   *message,
+                      uint8_t             *out);
+size_t gst_debugger__pad_hook_request__pack_to_buffer
+                     (const GstDebugger__PadHookRequest   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__PadHookRequest *
+       gst_debugger__pad_hook_request__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__pad_hook_request__free_unpacked
+                     (GstDebugger__PadHookRequest *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__LogRequest methods */
+void   gst_debugger__log_request__init
+                     (GstDebugger__LogRequest         *message);
+size_t gst_debugger__log_request__get_packed_size
+                     (const GstDebugger__LogRequest   *message);
+size_t gst_debugger__log_request__pack
+                     (const GstDebugger__LogRequest   *message,
+                      uint8_t             *out);
+size_t gst_debugger__log_request__pack_to_buffer
+                     (const GstDebugger__LogRequest   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__LogRequest *
+       gst_debugger__log_request__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__log_request__free_unpacked
+                     (GstDebugger__LogRequest *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__MessageRequest methods */
+void   gst_debugger__message_request__init
+                     (GstDebugger__MessageRequest         *message);
+size_t gst_debugger__message_request__get_packed_size
+                     (const GstDebugger__MessageRequest   *message);
+size_t gst_debugger__message_request__pack
+                     (const GstDebugger__MessageRequest   *message,
+                      uint8_t             *out);
+size_t gst_debugger__message_request__pack_to_buffer
+                     (const GstDebugger__MessageRequest   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__MessageRequest *
+       gst_debugger__message_request__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__message_request__free_unpacked
+                     (GstDebugger__MessageRequest *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__HookRequest methods */
+void   gst_debugger__hook_request__init
+                     (GstDebugger__HookRequest         *message);
+size_t gst_debugger__hook_request__get_packed_size
+                     (const GstDebugger__HookRequest   *message);
+size_t gst_debugger__hook_request__pack
+                     (const GstDebugger__HookRequest   *message,
+                      uint8_t             *out);
+size_t gst_debugger__hook_request__pack_to_buffer
+                     (const GstDebugger__HookRequest   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__HookRequest *
+       gst_debugger__hook_request__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__hook_request__free_unpacked
+                     (GstDebugger__HookRequest *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__Command methods */
+void   gst_debugger__command__init
+                     (GstDebugger__Command         *message);
+size_t gst_debugger__command__get_packed_size
+                     (const GstDebugger__Command   *message);
+size_t gst_debugger__command__pack
+                     (const GstDebugger__Command   *message,
+                      uint8_t             *out);
+size_t gst_debugger__command__pack_to_buffer
+                     (const GstDebugger__Command   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__Command *
+       gst_debugger__command__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__command__free_unpacked
+                     (GstDebugger__Command *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__DebugCategories methods */
+void   gst_debugger__debug_categories__init
+                     (GstDebugger__DebugCategories         *message);
+size_t gst_debugger__debug_categories__get_packed_size
+                     (const GstDebugger__DebugCategories   *message);
+size_t gst_debugger__debug_categories__pack
+                     (const GstDebugger__DebugCategories   *message,
+                      uint8_t             *out);
+size_t gst_debugger__debug_categories__pack_to_buffer
+                     (const GstDebugger__DebugCategories   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__DebugCategories *
+       gst_debugger__debug_categories__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__debug_categories__free_unpacked
+                     (GstDebugger__DebugCategories *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__LogInfo methods */
+void   gst_debugger__log_info__init
+                     (GstDebugger__LogInfo         *message);
+size_t gst_debugger__log_info__get_packed_size
+                     (const GstDebugger__LogInfo   *message);
+size_t gst_debugger__log_info__pack
+                     (const GstDebugger__LogInfo   *message,
+                      uint8_t             *out);
+size_t gst_debugger__log_info__pack_to_buffer
+                     (const GstDebugger__LogInfo   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__LogInfo *
+       gst_debugger__log_info__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__log_info__free_unpacked
+                     (GstDebugger__LogInfo *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__EnumFlagsValue methods */
+void   gst_debugger__enum_flags_value__init
+                     (GstDebugger__EnumFlagsValue         *message);
+size_t gst_debugger__enum_flags_value__get_packed_size
+                     (const GstDebugger__EnumFlagsValue   *message);
+size_t gst_debugger__enum_flags_value__pack
+                     (const GstDebugger__EnumFlagsValue   *message,
+                      uint8_t             *out);
+size_t gst_debugger__enum_flags_value__pack_to_buffer
+                     (const GstDebugger__EnumFlagsValue   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__EnumFlagsValue *
+       gst_debugger__enum_flags_value__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__enum_flags_value__free_unpacked
+                     (GstDebugger__EnumFlagsValue *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__EnumFlagsType methods */
+void   gst_debugger__enum_flags_type__init
+                     (GstDebugger__EnumFlagsType         *message);
+size_t gst_debugger__enum_flags_type__get_packed_size
+                     (const GstDebugger__EnumFlagsType   *message);
+size_t gst_debugger__enum_flags_type__pack
+                     (const GstDebugger__EnumFlagsType   *message,
+                      uint8_t             *out);
+size_t gst_debugger__enum_flags_type__pack_to_buffer
+                     (const GstDebugger__EnumFlagsType   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__EnumFlagsType *
+       gst_debugger__enum_flags_type__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__enum_flags_type__free_unpacked
+                     (GstDebugger__EnumFlagsType *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__FactoryMeta methods */
+void   gst_debugger__factory_meta__init
+                     (GstDebugger__FactoryMeta         *message);
+size_t gst_debugger__factory_meta__get_packed_size
+                     (const GstDebugger__FactoryMeta   *message);
+size_t gst_debugger__factory_meta__pack
+                     (const GstDebugger__FactoryMeta   *message,
+                      uint8_t             *out);
+size_t gst_debugger__factory_meta__pack_to_buffer
+                     (const GstDebugger__FactoryMeta   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__FactoryMeta *
+       gst_debugger__factory_meta__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__factory_meta__free_unpacked
+                     (GstDebugger__FactoryMeta *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__PadTemplate methods */
+void   gst_debugger__pad_template__init
+                     (GstDebugger__PadTemplate         *message);
+size_t gst_debugger__pad_template__get_packed_size
+                     (const GstDebugger__PadTemplate   *message);
+size_t gst_debugger__pad_template__pack
+                     (const GstDebugger__PadTemplate   *message,
+                      uint8_t             *out);
+size_t gst_debugger__pad_template__pack_to_buffer
+                     (const GstDebugger__PadTemplate   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__PadTemplate *
+       gst_debugger__pad_template__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__pad_template__free_unpacked
+                     (GstDebugger__PadTemplate *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__FactoryType methods */
+void   gst_debugger__factory_type__init
+                     (GstDebugger__FactoryType         *message);
+size_t gst_debugger__factory_type__get_packed_size
+                     (const GstDebugger__FactoryType   *message);
+size_t gst_debugger__factory_type__pack
+                     (const GstDebugger__FactoryType   *message,
+                      uint8_t             *out);
+size_t gst_debugger__factory_type__pack_to_buffer
+                     (const GstDebugger__FactoryType   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__FactoryType *
+       gst_debugger__factory_type__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__factory_type__free_unpacked
+                     (GstDebugger__FactoryType *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__ElementKlass methods */
+void   gst_debugger__element_klass__init
+                     (GstDebugger__ElementKlass         *message);
+size_t gst_debugger__element_klass__get_packed_size
+                     (const GstDebugger__ElementKlass   *message);
+size_t gst_debugger__element_klass__pack
+                     (const GstDebugger__ElementKlass   *message,
+                      uint8_t             *out);
+size_t gst_debugger__element_klass__pack_to_buffer
+                     (const GstDebugger__ElementKlass   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__ElementKlass *
+       gst_debugger__element_klass__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__element_klass__free_unpacked
+                     (GstDebugger__ElementKlass *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__TopologyLink methods */
+void   gst_debugger__topology_link__init
+                     (GstDebugger__TopologyLink         *message);
+size_t gst_debugger__topology_link__get_packed_size
+                     (const GstDebugger__TopologyLink   *message);
+size_t gst_debugger__topology_link__pack
+                     (const GstDebugger__TopologyLink   *message,
+                      uint8_t             *out);
+size_t gst_debugger__topology_link__pack_to_buffer
+                     (const GstDebugger__TopologyLink   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__TopologyLink *
+       gst_debugger__topology_link__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__topology_link__free_unpacked
+                     (GstDebugger__TopologyLink *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__TopologyElement methods */
+void   gst_debugger__topology_element__init
+                     (GstDebugger__TopologyElement         *message);
+size_t gst_debugger__topology_element__get_packed_size
+                     (const GstDebugger__TopologyElement   *message);
+size_t gst_debugger__topology_element__pack
+                     (const GstDebugger__TopologyElement   *message,
+                      uint8_t             *out);
+size_t gst_debugger__topology_element__pack_to_buffer
+                     (const GstDebugger__TopologyElement   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__TopologyElement *
+       gst_debugger__topology_element__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__topology_element__free_unpacked
+                     (GstDebugger__TopologyElement *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__TopologyPad methods */
+void   gst_debugger__topology_pad__init
+                     (GstDebugger__TopologyPad         *message);
+size_t gst_debugger__topology_pad__get_packed_size
+                     (const GstDebugger__TopologyPad   *message);
+size_t gst_debugger__topology_pad__pack
+                     (const GstDebugger__TopologyPad   *message,
+                      uint8_t             *out);
+size_t gst_debugger__topology_pad__pack_to_buffer
+                     (const GstDebugger__TopologyPad   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__TopologyPad *
+       gst_debugger__topology_pad__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__topology_pad__free_unpacked
+                     (GstDebugger__TopologyPad *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__TopologyInfo methods */
+void   gst_debugger__topology_info__init
+                     (GstDebugger__TopologyInfo         *message);
+size_t gst_debugger__topology_info__get_packed_size
+                     (const GstDebugger__TopologyInfo   *message);
+size_t gst_debugger__topology_info__pack
+                     (const GstDebugger__TopologyInfo   *message,
+                      uint8_t             *out);
+size_t gst_debugger__topology_info__pack_to_buffer
+                     (const GstDebugger__TopologyInfo   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__TopologyInfo *
+       gst_debugger__topology_info__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__topology_info__free_unpacked
+                     (GstDebugger__TopologyInfo *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__PadDynamicInfo methods */
+void   gst_debugger__pad_dynamic_info__init
+                     (GstDebugger__PadDynamicInfo         *message);
+size_t gst_debugger__pad_dynamic_info__get_packed_size
+                     (const GstDebugger__PadDynamicInfo   *message);
+size_t gst_debugger__pad_dynamic_info__pack
+                     (const GstDebugger__PadDynamicInfo   *message,
+                      uint8_t             *out);
+size_t gst_debugger__pad_dynamic_info__pack_to_buffer
+                     (const GstDebugger__PadDynamicInfo   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__PadDynamicInfo *
+       gst_debugger__pad_dynamic_info__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__pad_dynamic_info__free_unpacked
+                     (GstDebugger__PadDynamicInfo *message,
+                      ProtobufCAllocator *allocator);
+/* GstDebugger__GStreamerData methods */
+void   gst_debugger__gstreamer_data__init
+                     (GstDebugger__GStreamerData         *message);
+size_t gst_debugger__gstreamer_data__get_packed_size
+                     (const GstDebugger__GStreamerData   *message);
+size_t gst_debugger__gstreamer_data__pack
+                     (const GstDebugger__GStreamerData   *message,
+                      uint8_t             *out);
+size_t gst_debugger__gstreamer_data__pack_to_buffer
+                     (const GstDebugger__GStreamerData   *message,
+                      ProtobufCBuffer     *buffer);
+GstDebugger__GStreamerData *
+       gst_debugger__gstreamer_data__unpack
+                     (ProtobufCAllocator  *allocator,
+                      size_t               len,
+                      const uint8_t       *data);
+void   gst_debugger__gstreamer_data__free_unpacked
+                     (GstDebugger__GStreamerData *message,
+                      ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*GstDebugger__Value_Closure)
+                 (const GstDebugger__Value *message,
+                  void *closure_data);
+typedef void (*GstDebugger__PropertyInfo_Closure)
+                 (const GstDebugger__PropertyInfo *message,
+                  void *closure_data);
+typedef void (*GstDebugger__PropertyValue_Closure)
+                 (const GstDebugger__PropertyValue *message,
+                  void *closure_data);
+typedef void (*GstDebugger__PropertyRequest_Closure)
+                 (const GstDebugger__PropertyRequest *message,
+                  void *closure_data);
+typedef void (*GstDebugger__MessageInfo_Closure)
+                 (const GstDebugger__MessageInfo *message,
+                  void *closure_data);
+typedef void (*GstDebugger__EventInfo_Closure)
+                 (const GstDebugger__EventInfo *message,
+                  void *closure_data);
+typedef void (*GstDebugger__QueryInfo_Closure)
+                 (const GstDebugger__QueryInfo *message,
+                  void *closure_data);
+typedef void (*GstDebugger__BufferInfo_Closure)
+                 (const GstDebugger__BufferInfo *message,
+                  void *closure_data);
+typedef void (*GstDebugger__TypeDescriptionRequest_Closure)
+                 (const GstDebugger__TypeDescriptionRequest *message,
+                  void *closure_data);
+typedef void (*GstDebugger__QueryHookRequest_Closure)
+                 (const GstDebugger__QueryHookRequest *message,
+                  void *closure_data);
+typedef void (*GstDebugger__BufferHookRequest_Closure)
+                 (const GstDebugger__BufferHookRequest *message,
+                  void *closure_data);
+typedef void (*GstDebugger__EventHookRequest_Closure)
+                 (const GstDebugger__EventHookRequest *message,
+                  void *closure_data);
+typedef void (*GstDebugger__PadHookRequest_Closure)
+                 (const GstDebugger__PadHookRequest *message,
+                  void *closure_data);
+typedef void (*GstDebugger__LogRequest_Closure)
+                 (const GstDebugger__LogRequest *message,
+                  void *closure_data);
+typedef void (*GstDebugger__MessageRequest_Closure)
+                 (const GstDebugger__MessageRequest *message,
+                  void *closure_data);
+typedef void (*GstDebugger__HookRequest_Closure)
+                 (const GstDebugger__HookRequest *message,
+                  void *closure_data);
+typedef void (*GstDebugger__Command_Closure)
+                 (const GstDebugger__Command *message,
+                  void *closure_data);
+typedef void (*GstDebugger__DebugCategories_Closure)
+                 (const GstDebugger__DebugCategories *message,
+                  void *closure_data);
+typedef void (*GstDebugger__LogInfo_Closure)
+                 (const GstDebugger__LogInfo *message,
+                  void *closure_data);
+typedef void (*GstDebugger__EnumFlagsValue_Closure)
+                 (const GstDebugger__EnumFlagsValue *message,
+                  void *closure_data);
+typedef void (*GstDebugger__EnumFlagsType_Closure)
+                 (const GstDebugger__EnumFlagsType *message,
+                  void *closure_data);
+typedef void (*GstDebugger__FactoryMeta_Closure)
+                 (const GstDebugger__FactoryMeta *message,
+                  void *closure_data);
+typedef void (*GstDebugger__PadTemplate_Closure)
+                 (const GstDebugger__PadTemplate *message,
+                  void *closure_data);
+typedef void (*GstDebugger__FactoryType_Closure)
+                 (const GstDebugger__FactoryType *message,
+                  void *closure_data);
+typedef void (*GstDebugger__ElementKlass_Closure)
+                 (const GstDebugger__ElementKlass *message,
+                  void *closure_data);
+typedef void (*GstDebugger__TopologyLink_Closure)
+                 (const GstDebugger__TopologyLink *message,
+                  void *closure_data);
+typedef void (*GstDebugger__TopologyElement_Closure)
+                 (const GstDebugger__TopologyElement *message,
+                  void *closure_data);
+typedef void (*GstDebugger__TopologyPad_Closure)
+                 (const GstDebugger__TopologyPad *message,
+                  void *closure_data);
+typedef void (*GstDebugger__TopologyInfo_Closure)
+                 (const GstDebugger__TopologyInfo *message,
+                  void *closure_data);
+typedef void (*GstDebugger__PadDynamicInfo_Closure)
+                 (const GstDebugger__PadDynamicInfo *message,
+                  void *closure_data);
+typedef void (*GstDebugger__GStreamerData_Closure)
+                 (const GstDebugger__GStreamerData *message,
+                  void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCEnumDescriptor    gst_debugger__action__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__value__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__property_info__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__property_value__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__property_request__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__message_info__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__event_info__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__query_info__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__buffer_info__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__type_description_request__descriptor;
+extern const ProtobufCEnumDescriptor    gst_debugger__type_description_request__type__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__query_hook_request__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__buffer_hook_request__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__event_hook_request__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__pad_hook_request__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__log_request__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__message_request__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__hook_request__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__command__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__debug_categories__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__log_info__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__enum_flags_value__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__enum_flags_type__descriptor;
+extern const ProtobufCEnumDescriptor    gst_debugger__enum_flags_type__enum_flags_kind__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__factory_meta__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__pad_template__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__factory_type__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__element_klass__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__topology_link__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__topology_element__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__topology_pad__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__topology_info__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__pad_dynamic_info__descriptor;
+extern const ProtobufCMessageDescriptor gst_debugger__gstreamer_data__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif  /* PROTOBUF_C_gstdebugger_2eproto__INCLUDED */
diff --git a/src/common/meson.build b/src/common/meson.build
index bedb8b2..9b066ab 100644
--- a/src/common/meson.build
+++ b/src/common/meson.build
@@ -1,25 +1,9 @@
 install_headers_dir = join_paths('gstdebugger-@0@'.format(apiversion), 'gst', 'debugger')
 
-protoc_c_gen = generator(protoc_c,
-    output    : ['@BASENAME@.pb-c.c', '@BASENAME@.pb-c.h'],
-    arguments : ['--proto_path=@CURRENT_SOURCE_DIR@', '--c_out=@BUILD_DIR@', '@INPUT@'])
-protoc_c_gen_src = protoc_c_gen.process('gstdebugger.proto')
-
-generate_c_proto = custom_target('generate_proto',
-   output : ['gstdebugger.pb-c.h'],
-    input : 'gstdebugger.proto',
-    command : [
-        protoc_c,
-        '--proto_path=' + meson.current_source_dir(),
-        '--c_out=' + meson.current_build_dir(),
-        '--c_out=' + meson.current_source_dir(),
-        join_paths(meson.current_source_dir(), 'gstdebugger.proto')],
-    install : true,
-    install_dir : [join_paths(get_option('prefix'), get_option('includedir'), install_headers_dir)])
-
 gstdebugger_common_sources = [
     'gst-utils.c',
     'protocol-utils.c',
+    'gstdebugger.pb-c.c',
     'serializer.c']
 
 gstdebugger_common_headers = [
@@ -36,8 +20,6 @@ gstdebugger_common_deps = [
 gstdebugger_common_lib = shared_library(
     'gstdebugger-common-@0@'.format(apiversion),
     gstdebugger_common_sources,
-    generate_c_proto,
-    protoc_c_gen_src,
     dependencies : gstdebugger_common_deps,
     install : true)
 
diff --git a/src/gst-debugger/gstdebugger.pb.cc b/src/gst-debugger/gstdebugger.pb.cc
new file mode 100644
index 0000000..e51b278
--- /dev/null
+++ b/src/gst-debugger/gstdebugger.pb.cc
@@ -0,0 +1,18567 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: gstdebugger.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "gstdebugger.pb.h"
+
+#include <algorithm>
+
+#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/stubs/port.h>
+#include <google/protobuf/stubs/once.h>
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/wire_format_lite_inl.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/generated_message_reflection.h>
+#include <google/protobuf/reflection_ops.h>
+#include <google/protobuf/wire_format.h>
+// @@protoc_insertion_point(includes)
+
+namespace GstDebugger {
+class ValueDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<Value> {
+} _Value_default_instance_;
+class PropertyInfoDefaultTypeInternal : public 
::google::protobuf::internal::ExplicitlyConstructed<PropertyInfo> {
+} _PropertyInfo_default_instance_;
+class PropertyValueDefaultTypeInternal : public 
::google::protobuf::internal::ExplicitlyConstructed<PropertyValue> {
+} _PropertyValue_default_instance_;
+class PropertyRequestDefaultTypeInternal : public 
::google::protobuf::internal::ExplicitlyConstructed<PropertyRequest> {
+} _PropertyRequest_default_instance_;
+class MessageInfoDefaultTypeInternal : public 
::google::protobuf::internal::ExplicitlyConstructed<MessageInfo> {
+} _MessageInfo_default_instance_;
+class EventInfoDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<EventInfo> {
+} _EventInfo_default_instance_;
+class QueryInfoDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<QueryInfo> {
+} _QueryInfo_default_instance_;
+class BufferInfoDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<BufferInfo> 
{
+} _BufferInfo_default_instance_;
+class TypeDescriptionRequestDefaultTypeInternal : public 
::google::protobuf::internal::ExplicitlyConstructed<TypeDescriptionRequest> {
+} _TypeDescriptionRequest_default_instance_;
+class QueryHookRequestDefaultTypeInternal : public 
::google::protobuf::internal::ExplicitlyConstructed<QueryHookRequest> {
+} _QueryHookRequest_default_instance_;
+class BufferHookRequestDefaultTypeInternal : public 
::google::protobuf::internal::ExplicitlyConstructed<BufferHookRequest> {
+} _BufferHookRequest_default_instance_;
+class EventHookRequestDefaultTypeInternal : public 
::google::protobuf::internal::ExplicitlyConstructed<EventHookRequest> {
+} _EventHookRequest_default_instance_;
+class PadHookRequestDefaultTypeInternal : public 
::google::protobuf::internal::ExplicitlyConstructed<PadHookRequest> {
+  public:
+  const ::GstDebugger::QueryHookRequest* query_;
+  const ::GstDebugger::BufferHookRequest* buffer_;
+  const ::GstDebugger::EventHookRequest* event_;
+} _PadHookRequest_default_instance_;
+class LogRequestDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<LogRequest> 
{
+} _LogRequest_default_instance_;
+class MessageRequestDefaultTypeInternal : public 
::google::protobuf::internal::ExplicitlyConstructed<MessageRequest> {
+} _MessageRequest_default_instance_;
+class HookRequestDefaultTypeInternal : public 
::google::protobuf::internal::ExplicitlyConstructed<HookRequest> {
+  public:
+  const ::GstDebugger::MessageRequest* message_;
+  const ::GstDebugger::LogRequest* log_;
+  const ::GstDebugger::PadHookRequest* pad_hook_;
+} _HookRequest_default_instance_;
+class CommandDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<Command> {
+  public:
+  const ::GstDebugger::TypeDescriptionRequest* type_description_;
+  bool debug_categories_list_;
+  const ::GstDebugger::HookRequest* hook_request_;
+  ::google::protobuf::internal::ArenaStringPtr log_threshold_;
+  bool entire_topology_;
+  const ::GstDebugger::PropertyRequest* property_;
+  const ::GstDebugger::PropertyValue* property_set_;
+  ::google::protobuf::internal::ArenaStringPtr pad_dynamic_info_;
+} _Command_default_instance_;
+class DebugCategoriesDefaultTypeInternal : public 
::google::protobuf::internal::ExplicitlyConstructed<DebugCategories> {
+} _DebugCategories_default_instance_;
+class LogInfoDefaultTypeInternal : public ::google::protobuf::internal::ExplicitlyConstructed<LogInfo> {
+} _LogInfo_default_instance_;
+class EnumFlagsValueDefaultTypeInternal : public 
::google::protobuf::internal::ExplicitlyConstructed<EnumFlagsValue> {
+} _EnumFlagsValue_default_instance_;
+class EnumFlagsTypeDefaultTypeInternal : public 
::google::protobuf::internal::ExplicitlyConstructed<EnumFlagsType> {
+} _EnumFlagsType_default_instance_;
+class FactoryMetaDefaultTypeInternal : public 
::google::protobuf::internal::ExplicitlyConstructed<FactoryMeta> {
+} _FactoryMeta_default_instance_;
+class PadTemplateDefaultTypeInternal : public 
::google::protobuf::internal::ExplicitlyConstructed<PadTemplate> {
+} _PadTemplate_default_instance_;
+class FactoryTypeDefaultTypeInternal : public 
::google::protobuf::internal::ExplicitlyConstructed<FactoryType> {
+} _FactoryType_default_instance_;
+class ElementKlassDefaultTypeInternal : public 
::google::protobuf::internal::ExplicitlyConstructed<ElementKlass> {
+} _ElementKlass_default_instance_;
+class TopologyLinkDefaultTypeInternal : public 
::google::protobuf::internal::ExplicitlyConstructed<TopologyLink> {
+} _TopologyLink_default_instance_;
+class TopologyElementDefaultTypeInternal : public 
::google::protobuf::internal::ExplicitlyConstructed<TopologyElement> {
+} _TopologyElement_default_instance_;
+class TopologyPadDefaultTypeInternal : public 
::google::protobuf::internal::ExplicitlyConstructed<TopologyPad> {
+} _TopologyPad_default_instance_;
+class TopologyInfoDefaultTypeInternal : public 
::google::protobuf::internal::ExplicitlyConstructed<TopologyInfo> {
+  public:
+  const ::GstDebugger::TopologyLink* link_;
+  const ::GstDebugger::TopologyElement* element_;
+  const ::GstDebugger::TopologyPad* pad_;
+} _TopologyInfo_default_instance_;
+class PadDynamicInfoDefaultTypeInternal : public 
::google::protobuf::internal::ExplicitlyConstructed<PadDynamicInfo> {
+} _PadDynamicInfo_default_instance_;
+class GStreamerDataDefaultTypeInternal : public 
::google::protobuf::internal::ExplicitlyConstructed<GStreamerData> {
+  public:
+  const ::GstDebugger::DebugCategories* debug_categories_;
+  const ::GstDebugger::LogInfo* log_info_;
+  const ::GstDebugger::EnumFlagsType* enum_flags_type_;
+  const ::GstDebugger::FactoryType* factory_;
+  const ::GstDebugger::MessageInfo* message_info_;
+  const ::GstDebugger::Command* confirmation_;
+  const ::GstDebugger::EventInfo* event_info_;
+  const ::GstDebugger::TopologyInfo* topology_info_;
+  const ::GstDebugger::QueryInfo* query_info_;
+  const ::GstDebugger::PropertyValue* property_value_;
+  const ::GstDebugger::ElementKlass* element_klass_;
+  const ::GstDebugger::BufferInfo* buffer_info_;
+  const ::GstDebugger::PadDynamicInfo* pad_dynamic_info_;
+} _GStreamerData_default_instance_;
+
+namespace protobuf_gstdebugger_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[31];
+const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors[3];
+
+}  // namespace
+
+const ::google::protobuf::uint32 TableStruct::offsets[] = {
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Value, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Value, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Value, gtype_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Value, internal_type_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Value, data_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Value, type_name_),
+  2,
+  3,
+  0,
+  1,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PropertyInfo, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PropertyInfo, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PropertyInfo, name_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PropertyInfo, nick_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PropertyInfo, blurb_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PropertyInfo, flags_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PropertyInfo, default_value_),
+  0,
+  1,
+  2,
+  4,
+  3,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PropertyValue, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PropertyValue, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PropertyValue, name_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PropertyValue, object_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PropertyValue, value_),
+  0,
+  1,
+  2,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PropertyRequest, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PropertyRequest, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PropertyRequest, name_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PropertyRequest, object_),
+  0,
+  1,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MessageInfo, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MessageInfo, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MessageInfo, type_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MessageInfo, timestamp_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MessageInfo, source_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MessageInfo, seqnum_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MessageInfo, structure_data_),
+  3,
+  2,
+  0,
+  4,
+  1,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EventInfo, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EventInfo, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EventInfo, type_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EventInfo, timestamp_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EventInfo, seqnum_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EventInfo, pad_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EventInfo, structure_data_),
+  3,
+  2,
+  4,
+  0,
+  1,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(QueryInfo, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(QueryInfo, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(QueryInfo, type_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(QueryInfo, pad_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(QueryInfo, structure_data_),
+  2,
+  0,
+  1,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BufferInfo, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BufferInfo, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BufferInfo, pts_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BufferInfo, dts_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BufferInfo, duration_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BufferInfo, offset_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BufferInfo, offset_end_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BufferInfo, size_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BufferInfo, pad_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BufferInfo, data_),
+  2,
+  3,
+  4,
+  5,
+  6,
+  7,
+  0,
+  1,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TypeDescriptionRequest, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TypeDescriptionRequest, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TypeDescriptionRequest, name_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TypeDescriptionRequest, type_),
+  0,
+  1,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(QueryHookRequest, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(QueryHookRequest, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(QueryHookRequest, type_),
+  0,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BufferHookRequest, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BufferHookRequest, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BufferHookRequest, send_data_),
+  0,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EventHookRequest, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EventHookRequest, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EventHookRequest, type_),
+  0,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PadHookRequest, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PadHookRequest, _internal_metadata_),
+  ~0u,  // no _extensions_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PadHookRequest, _oneof_case_[0]),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PadHookRequest, pad_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_PadHookRequest_default_instance_), query_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_PadHookRequest_default_instance_), buffer_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_PadHookRequest_default_instance_), event_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PadHookRequest, pad_hook_type_),
+  0,
+  ~0u,
+  ~0u,
+  ~0u,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LogRequest, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LogRequest, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LogRequest, level_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LogRequest, category_),
+  1,
+  0,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MessageRequest, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MessageRequest, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MessageRequest, type_),
+  0,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(HookRequest, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(HookRequest, _internal_metadata_),
+  ~0u,  // no _extensions_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(HookRequest, _oneof_case_[0]),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(HookRequest, action_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_HookRequest_default_instance_), message_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_HookRequest_default_instance_), log_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_HookRequest_default_instance_), pad_hook_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(HookRequest, hook_type_),
+  0,
+  ~0u,
+  ~0u,
+  ~0u,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Command, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Command, _internal_metadata_),
+  ~0u,  // no _extensions_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Command, _oneof_case_[0]),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_Command_default_instance_), type_description_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_Command_default_instance_), debug_categories_list_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_Command_default_instance_), hook_request_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_Command_default_instance_), log_threshold_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_Command_default_instance_), entire_topology_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_Command_default_instance_), property_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_Command_default_instance_), property_set_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_Command_default_instance_), pad_dynamic_info_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Command, command_type_),
+  ~0u,
+  ~0u,
+  ~0u,
+  ~0u,
+  ~0u,
+  ~0u,
+  ~0u,
+  ~0u,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DebugCategories, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DebugCategories, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(DebugCategories, category_),
+  ~0u,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LogInfo, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LogInfo, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LogInfo, level_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LogInfo, category_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LogInfo, file_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LogInfo, function_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LogInfo, line_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LogInfo, object_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LogInfo, message_),
+  5,
+  0,
+  1,
+  2,
+  6,
+  3,
+  4,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumFlagsValue, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumFlagsValue, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumFlagsValue, name_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumFlagsValue, value_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumFlagsValue, nick_),
+  0,
+  2,
+  1,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumFlagsType, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumFlagsType, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumFlagsType, type_name_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumFlagsType, kind_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EnumFlagsType, values_),
+  0,
+  1,
+  ~0u,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FactoryMeta, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FactoryMeta, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FactoryMeta, key_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FactoryMeta, value_),
+  0,
+  1,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PadTemplate, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PadTemplate, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PadTemplate, name_template_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PadTemplate, direction_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PadTemplate, presence_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PadTemplate, caps_),
+  0,
+  2,
+  3,
+  1,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FactoryType, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FactoryType, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FactoryType, name_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FactoryType, metadata_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(FactoryType, templates_),
+  0,
+  ~0u,
+  ~0u,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ElementKlass, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ElementKlass, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ElementKlass, name_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ElementKlass, property_info_),
+  0,
+  ~0u,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TopologyLink, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TopologyLink, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TopologyLink, src_pad_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TopologyLink, sink_pad_),
+  0,
+  1,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TopologyElement, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TopologyElement, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TopologyElement, path_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TopologyElement, type_name_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TopologyElement, is_bin_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TopologyElement, factory_name_),
+  0,
+  1,
+  3,
+  2,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TopologyPad, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TopologyPad, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TopologyPad, path_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TopologyPad, is_ghostpad_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TopologyPad, direction_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TopologyPad, presence_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TopologyPad, template__),
+  0,
+  2,
+  3,
+  4,
+  1,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TopologyInfo, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TopologyInfo, _internal_metadata_),
+  ~0u,  // no _extensions_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TopologyInfo, _oneof_case_[0]),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TopologyInfo, action_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_TopologyInfo_default_instance_), link_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_TopologyInfo_default_instance_), element_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_TopologyInfo_default_instance_), pad_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(TopologyInfo, topology_type_),
+  0,
+  ~0u,
+  ~0u,
+  ~0u,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PadDynamicInfo, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PadDynamicInfo, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PadDynamicInfo, allowed_caps_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PadDynamicInfo, current_caps_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PadDynamicInfo, pad_),
+  0,
+  1,
+  2,
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GStreamerData, _has_bits_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GStreamerData, _internal_metadata_),
+  ~0u,  // no _extensions_
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GStreamerData, _oneof_case_[0]),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_GStreamerData_default_instance_), debug_categories_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_GStreamerData_default_instance_), log_info_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_GStreamerData_default_instance_), enum_flags_type_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_GStreamerData_default_instance_), factory_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_GStreamerData_default_instance_), message_info_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_GStreamerData_default_instance_), confirmation_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_GStreamerData_default_instance_), event_info_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_GStreamerData_default_instance_), topology_info_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_GStreamerData_default_instance_), query_info_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_GStreamerData_default_instance_), property_value_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_GStreamerData_default_instance_), element_klass_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_GStreamerData_default_instance_), buffer_info_),
+  PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET((&_GStreamerData_default_instance_), pad_dynamic_info_),
+  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(GStreamerData, info_type_),
+  ~0u,
+  ~0u,
+  ~0u,
+  ~0u,
+  ~0u,
+  ~0u,
+  ~0u,
+  ~0u,
+  ~0u,
+  ~0u,
+  ~0u,
+  ~0u,
+  ~0u,
+};
+
+static const ::google::protobuf::internal::MigrationSchema schemas[] = {
+  { 0, 8, sizeof(Value)},
+  { 12, 21, sizeof(PropertyInfo)},
+  { 26, 33, sizeof(PropertyValue)},
+  { 36, 42, sizeof(PropertyRequest)},
+  { 44, 53, sizeof(MessageInfo)},
+  { 58, 67, sizeof(EventInfo)},
+  { 72, 79, sizeof(QueryInfo)},
+  { 82, 94, sizeof(BufferInfo)},
+  { 102, 108, sizeof(TypeDescriptionRequest)},
+  { 110, 115, sizeof(QueryHookRequest)},
+  { 116, 121, sizeof(BufferHookRequest)},
+  { 122, 127, sizeof(EventHookRequest)},
+  { 128, 137, sizeof(PadHookRequest)},
+  { 141, 147, sizeof(LogRequest)},
+  { 149, 154, sizeof(MessageRequest)},
+  { 155, 164, sizeof(HookRequest)},
+  { 168, 181, sizeof(Command)},
+  { 189, 194, sizeof(DebugCategories)},
+  { 195, 206, sizeof(LogInfo)},
+  { 213, 220, sizeof(EnumFlagsValue)},
+  { 223, 230, sizeof(EnumFlagsType)},
+  { 233, 239, sizeof(FactoryMeta)},
+  { 241, 249, sizeof(PadTemplate)},
+  { 253, 260, sizeof(FactoryType)},
+  { 263, 269, sizeof(ElementKlass)},
+  { 271, 277, sizeof(TopologyLink)},
+  { 279, 287, sizeof(TopologyElement)},
+  { 291, 300, sizeof(TopologyPad)},
+  { 305, 314, sizeof(TopologyInfo)},
+  { 318, 325, sizeof(PadDynamicInfo)},
+  { 328, 346, sizeof(GStreamerData)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+  reinterpret_cast<const ::google::protobuf::Message*>(&_Value_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_PropertyInfo_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_PropertyValue_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_PropertyRequest_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_MessageInfo_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_EventInfo_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_QueryInfo_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_BufferInfo_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_TypeDescriptionRequest_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_QueryHookRequest_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_BufferHookRequest_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_EventHookRequest_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_PadHookRequest_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_LogRequest_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_MessageRequest_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_HookRequest_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_Command_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_DebugCategories_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_LogInfo_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_EnumFlagsValue_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_EnumFlagsType_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_FactoryMeta_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_PadTemplate_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_FactoryType_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_ElementKlass_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_TopologyLink_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_TopologyElement_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_TopologyPad_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_TopologyInfo_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_PadDynamicInfo_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&_GStreamerData_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+  AddDescriptors();
+  ::google::protobuf::MessageFactory* factory = NULL;
+  AssignDescriptors(
+      "gstdebugger.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+      file_level_metadata, file_level_enum_descriptors, NULL);
+}
+
+void protobuf_AssignDescriptorsOnce() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &protobuf_AssignDescriptors);
+}
+
+void protobuf_RegisterTypes(const ::std::string&) GOOGLE_ATTRIBUTE_COLD;
+void protobuf_RegisterTypes(const ::std::string&) {
+  protobuf_AssignDescriptorsOnce();
+  ::google::protobuf::internal::RegisterAllTypes(file_level_metadata, 31);
+}
+
+}  // namespace
+
+void TableStruct::Shutdown() {
+  _Value_default_instance_.Shutdown();
+  delete file_level_metadata[0].reflection;
+  _PropertyInfo_default_instance_.Shutdown();
+  delete file_level_metadata[1].reflection;
+  _PropertyValue_default_instance_.Shutdown();
+  delete file_level_metadata[2].reflection;
+  _PropertyRequest_default_instance_.Shutdown();
+  delete file_level_metadata[3].reflection;
+  _MessageInfo_default_instance_.Shutdown();
+  delete file_level_metadata[4].reflection;
+  _EventInfo_default_instance_.Shutdown();
+  delete file_level_metadata[5].reflection;
+  _QueryInfo_default_instance_.Shutdown();
+  delete file_level_metadata[6].reflection;
+  _BufferInfo_default_instance_.Shutdown();
+  delete file_level_metadata[7].reflection;
+  _TypeDescriptionRequest_default_instance_.Shutdown();
+  delete file_level_metadata[8].reflection;
+  _QueryHookRequest_default_instance_.Shutdown();
+  delete file_level_metadata[9].reflection;
+  _BufferHookRequest_default_instance_.Shutdown();
+  delete file_level_metadata[10].reflection;
+  _EventHookRequest_default_instance_.Shutdown();
+  delete file_level_metadata[11].reflection;
+  _PadHookRequest_default_instance_.Shutdown();
+  delete file_level_metadata[12].reflection;
+  _LogRequest_default_instance_.Shutdown();
+  delete file_level_metadata[13].reflection;
+  _MessageRequest_default_instance_.Shutdown();
+  delete file_level_metadata[14].reflection;
+  _HookRequest_default_instance_.Shutdown();
+  delete file_level_metadata[15].reflection;
+  _Command_default_instance_.Shutdown();
+  delete file_level_metadata[16].reflection;
+  _DebugCategories_default_instance_.Shutdown();
+  delete file_level_metadata[17].reflection;
+  _LogInfo_default_instance_.Shutdown();
+  delete file_level_metadata[18].reflection;
+  _EnumFlagsValue_default_instance_.Shutdown();
+  delete file_level_metadata[19].reflection;
+  _EnumFlagsType_default_instance_.Shutdown();
+  delete file_level_metadata[20].reflection;
+  _FactoryMeta_default_instance_.Shutdown();
+  delete file_level_metadata[21].reflection;
+  _PadTemplate_default_instance_.Shutdown();
+  delete file_level_metadata[22].reflection;
+  _FactoryType_default_instance_.Shutdown();
+  delete file_level_metadata[23].reflection;
+  _ElementKlass_default_instance_.Shutdown();
+  delete file_level_metadata[24].reflection;
+  _TopologyLink_default_instance_.Shutdown();
+  delete file_level_metadata[25].reflection;
+  _TopologyElement_default_instance_.Shutdown();
+  delete file_level_metadata[26].reflection;
+  _TopologyPad_default_instance_.Shutdown();
+  delete file_level_metadata[27].reflection;
+  _TopologyInfo_default_instance_.Shutdown();
+  delete file_level_metadata[28].reflection;
+  _PadDynamicInfo_default_instance_.Shutdown();
+  delete file_level_metadata[29].reflection;
+  _GStreamerData_default_instance_.Shutdown();
+  delete file_level_metadata[30].reflection;
+}
+
+void TableStruct::InitDefaultsImpl() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+  ::google::protobuf::internal::InitProtobufDefaults();
+  _Value_default_instance_.DefaultConstruct();
+  _PropertyInfo_default_instance_.DefaultConstruct();
+  _PropertyValue_default_instance_.DefaultConstruct();
+  _PropertyRequest_default_instance_.DefaultConstruct();
+  _MessageInfo_default_instance_.DefaultConstruct();
+  _EventInfo_default_instance_.DefaultConstruct();
+  _QueryInfo_default_instance_.DefaultConstruct();
+  _BufferInfo_default_instance_.DefaultConstruct();
+  _TypeDescriptionRequest_default_instance_.DefaultConstruct();
+  _QueryHookRequest_default_instance_.DefaultConstruct();
+  _BufferHookRequest_default_instance_.DefaultConstruct();
+  _EventHookRequest_default_instance_.DefaultConstruct();
+  _PadHookRequest_default_instance_.DefaultConstruct();
+  _LogRequest_default_instance_.DefaultConstruct();
+  _MessageRequest_default_instance_.DefaultConstruct();
+  _HookRequest_default_instance_.DefaultConstruct();
+  _Command_default_instance_.DefaultConstruct();
+  _DebugCategories_default_instance_.DefaultConstruct();
+  _LogInfo_default_instance_.DefaultConstruct();
+  _EnumFlagsValue_default_instance_.DefaultConstruct();
+  _EnumFlagsType_default_instance_.DefaultConstruct();
+  _FactoryMeta_default_instance_.DefaultConstruct();
+  _PadTemplate_default_instance_.DefaultConstruct();
+  _FactoryType_default_instance_.DefaultConstruct();
+  _ElementKlass_default_instance_.DefaultConstruct();
+  _TopologyLink_default_instance_.DefaultConstruct();
+  _TopologyElement_default_instance_.DefaultConstruct();
+  _TopologyPad_default_instance_.DefaultConstruct();
+  _TopologyInfo_default_instance_.DefaultConstruct();
+  _PadDynamicInfo_default_instance_.DefaultConstruct();
+  _GStreamerData_default_instance_.DefaultConstruct();
+  _PropertyInfo_default_instance_.get_mutable()->default_value_ = const_cast< ::GstDebugger::Value*>(
+      ::GstDebugger::Value::internal_default_instance());
+  _PropertyValue_default_instance_.get_mutable()->value_ = const_cast< ::GstDebugger::Value*>(
+      ::GstDebugger::Value::internal_default_instance());
+  _PadHookRequest_default_instance_.query_ = const_cast< ::GstDebugger::QueryHookRequest*>(
+      ::GstDebugger::QueryHookRequest::internal_default_instance());
+  _PadHookRequest_default_instance_.buffer_ = const_cast< ::GstDebugger::BufferHookRequest*>(
+      ::GstDebugger::BufferHookRequest::internal_default_instance());
+  _PadHookRequest_default_instance_.event_ = const_cast< ::GstDebugger::EventHookRequest*>(
+      ::GstDebugger::EventHookRequest::internal_default_instance());
+  _HookRequest_default_instance_.message_ = const_cast< ::GstDebugger::MessageRequest*>(
+      ::GstDebugger::MessageRequest::internal_default_instance());
+  _HookRequest_default_instance_.log_ = const_cast< ::GstDebugger::LogRequest*>(
+      ::GstDebugger::LogRequest::internal_default_instance());
+  _HookRequest_default_instance_.pad_hook_ = const_cast< ::GstDebugger::PadHookRequest*>(
+      ::GstDebugger::PadHookRequest::internal_default_instance());
+  _Command_default_instance_.type_description_ = const_cast< ::GstDebugger::TypeDescriptionRequest*>(
+      ::GstDebugger::TypeDescriptionRequest::internal_default_instance());
+  _Command_default_instance_.debug_categories_list_ = false;
+  _Command_default_instance_.hook_request_ = const_cast< ::GstDebugger::HookRequest*>(
+      ::GstDebugger::HookRequest::internal_default_instance());
+  _Command_default_instance_.log_threshold_.UnsafeSetDefault(
+      &::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  _Command_default_instance_.entire_topology_ = false;
+  _Command_default_instance_.property_ = const_cast< ::GstDebugger::PropertyRequest*>(
+      ::GstDebugger::PropertyRequest::internal_default_instance());
+  _Command_default_instance_.property_set_ = const_cast< ::GstDebugger::PropertyValue*>(
+      ::GstDebugger::PropertyValue::internal_default_instance());
+  _Command_default_instance_.pad_dynamic_info_.UnsafeSetDefault(
+      &::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  _TopologyPad_default_instance_.get_mutable()->template__ = const_cast< ::GstDebugger::PadTemplate*>(
+      ::GstDebugger::PadTemplate::internal_default_instance());
+  _TopologyInfo_default_instance_.link_ = const_cast< ::GstDebugger::TopologyLink*>(
+      ::GstDebugger::TopologyLink::internal_default_instance());
+  _TopologyInfo_default_instance_.element_ = const_cast< ::GstDebugger::TopologyElement*>(
+      ::GstDebugger::TopologyElement::internal_default_instance());
+  _TopologyInfo_default_instance_.pad_ = const_cast< ::GstDebugger::TopologyPad*>(
+      ::GstDebugger::TopologyPad::internal_default_instance());
+  _GStreamerData_default_instance_.debug_categories_ = const_cast< ::GstDebugger::DebugCategories*>(
+      ::GstDebugger::DebugCategories::internal_default_instance());
+  _GStreamerData_default_instance_.log_info_ = const_cast< ::GstDebugger::LogInfo*>(
+      ::GstDebugger::LogInfo::internal_default_instance());
+  _GStreamerData_default_instance_.enum_flags_type_ = const_cast< ::GstDebugger::EnumFlagsType*>(
+      ::GstDebugger::EnumFlagsType::internal_default_instance());
+  _GStreamerData_default_instance_.factory_ = const_cast< ::GstDebugger::FactoryType*>(
+      ::GstDebugger::FactoryType::internal_default_instance());
+  _GStreamerData_default_instance_.message_info_ = const_cast< ::GstDebugger::MessageInfo*>(
+      ::GstDebugger::MessageInfo::internal_default_instance());
+  _GStreamerData_default_instance_.confirmation_ = const_cast< ::GstDebugger::Command*>(
+      ::GstDebugger::Command::internal_default_instance());
+  _GStreamerData_default_instance_.event_info_ = const_cast< ::GstDebugger::EventInfo*>(
+      ::GstDebugger::EventInfo::internal_default_instance());
+  _GStreamerData_default_instance_.topology_info_ = const_cast< ::GstDebugger::TopologyInfo*>(
+      ::GstDebugger::TopologyInfo::internal_default_instance());
+  _GStreamerData_default_instance_.query_info_ = const_cast< ::GstDebugger::QueryInfo*>(
+      ::GstDebugger::QueryInfo::internal_default_instance());
+  _GStreamerData_default_instance_.property_value_ = const_cast< ::GstDebugger::PropertyValue*>(
+      ::GstDebugger::PropertyValue::internal_default_instance());
+  _GStreamerData_default_instance_.element_klass_ = const_cast< ::GstDebugger::ElementKlass*>(
+      ::GstDebugger::ElementKlass::internal_default_instance());
+  _GStreamerData_default_instance_.buffer_info_ = const_cast< ::GstDebugger::BufferInfo*>(
+      ::GstDebugger::BufferInfo::internal_default_instance());
+  _GStreamerData_default_instance_.pad_dynamic_info_ = const_cast< ::GstDebugger::PadDynamicInfo*>(
+      ::GstDebugger::PadDynamicInfo::internal_default_instance());
+}
+
+void InitDefaults() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+void AddDescriptorsImpl() {
+  InitDefaults();
+  static const char descriptor[] = {
+      "\n\021gstdebugger.proto\022\013GstDebugger\"N\n\005Valu"
+      "e\022\r\n\005gtype\030\001 \002(\004\022\025\n\rinternal_type\030\002 \001(\005\022"
+      "\014\n\004data\030\003 \002(\014\022\021\n\ttype_name\030\004 \002(\t\"s\n\014Prop"
+      "ertyInfo\022\014\n\004name\030\001 \002(\t\022\014\n\004nick\030\002 \002(\t\022\r\n\005"
+      "blurb\030\003 \002(\t\022\r\n\005flags\030\004 \002(\005\022)\n\rdefault_va"
+      "lue\030\005 \002(\0132\022.GstDebugger.Value\"P\n\rPropert"
+      "yValue\022\014\n\004name\030\001 \002(\t\022\016\n\006object\030\002 \002(\t\022!\n\005"
+      "value\030\003 \002(\0132\022.GstDebugger.Value\"/\n\017Prope"
+      "rtyRequest\022\014\n\004name\030\001 \001(\t\022\016\n\006object\030\002 \002(\t"
+      "\"f\n\013MessageInfo\022\014\n\004type\030\001 \002(\005\022\021\n\ttimesta"
+      "mp\030\002 \002(\004\022\016\n\006source\030\003 \002(\t\022\016\n\006seqnum\030\004 \002(\r"
+      "\022\026\n\016structure_data\030\005 \002(\014\"a\n\tEventInfo\022\014\n"
+      "\004type\030\001 \002(\005\022\021\n\ttimestamp\030\002 \002(\004\022\016\n\006seqnum"
+      "\030\003 \002(\r\022\013\n\003pad\030\004 \002(\t\022\026\n\016structure_data\030\005 "
+      "\002(\014\">\n\tQueryInfo\022\014\n\004type\030\001 \002(\005\022\013\n\003pad\030\002 "
+      "\002(\t\022\026\n\016structure_data\030\003 \002(\014\"\205\001\n\nBufferIn"
+      "fo\022\013\n\003pts\030\001 \002(\004\022\013\n\003dts\030\002 \002(\004\022\020\n\010duration"
+      "\030\003 \002(\004\022\016\n\006offset\030\004 \002(\004\022\022\n\noffset_end\030\005 \002"
+      "(\004\022\014\n\004size\030\006 \002(\004\022\013\n\003pad\030\007 \002(\t\022\014\n\004data\030\010 "
+      "\001(\014\"\216\001\n\026TypeDescriptionRequest\022\014\n\004name\030\001"
+      " \002(\t\0226\n\004type\030\002 \002(\0162(.GstDebugger.TypeDes"
+      "criptionRequest.Type\".\n\004Type\022\013\n\007FACTORY\020"
+      "\000\022\016\n\nENUM_FLAGS\020\001\022\t\n\005KLASS\020\002\" \n\020QueryHoo"
+      "kRequest\022\014\n\004type\030\001 \002(\005\"&\n\021BufferHookRequ"
+      "est\022\021\n\tsend_data\030\001 \002(\010\" \n\020EventHookReque"
+      "st\022\014\n\004type\030\001 \002(\005\"\300\001\n\016PadHookRequest\022\013\n\003p"
+      "ad\030\001 \001(\t\022.\n\005query\030\002 \001(\0132\035.GstDebugger.Qu"
+      "eryHookRequestH\000\0220\n\006buffer\030\003 \001(\0132\036.GstDe"
+      "bugger.BufferHookRequestH\000\022.\n\005event\030\004 \001("
+      "\0132\035.GstDebugger.EventHookRequestH\000B\017\n\rpa"
+      "d_hook_type\"-\n\nLogRequest\022\r\n\005level\030\001 \002(\005"
+      "\022\020\n\010category\030\002 \001(\t\"\036\n\016MessageRequest\022\014\n\004"
+      "type\030\001 \002(\005\"\310\001\n\013HookRequest\022#\n\006action\030\001 \002"
+      "(\0162\023.GstDebugger.Action\022.\n\007message\030\002 \001(\013"
+      "2\033.GstDebugger.MessageRequestH\000\022&\n\003log\030\003"
+      " \001(\0132\027.GstDebugger.LogRequestH\000\022/\n\010pad_h"
+      "ook\030\004 \001(\0132\033.GstDebugger.PadHookRequestH\000"
+      "B\013\n\thook_type\"\343\002\n\007Command\022\?\n\020type_descri"
+      "ption\030\001 \001(\0132#.GstDebugger.TypeDescriptio"
+      "nRequestH\000\022\037\n\025debug_categories_list\030\002 \001("
+      "\010H\000\0220\n\014hook_request\030\003 \001(\0132\030.GstDebugger."
+      "HookRequestH\000\022\027\n\rlog_threshold\030\004 \001(\tH\000\022\031"
+      "\n\017entire_topology\030\005 \001(\010H\000\0220\n\010property\030\006 "
+      "\001(\0132\034.GstDebugger.PropertyRequestH\000\0222\n\014p"
+      "roperty_set\030\007 \001(\0132\032.GstDebugger.Property"
+      "ValueH\000\022\032\n\020pad_dynamic_info\030\010 \001(\tH\000B\016\n\014c"
+      "ommand_type\"#\n\017DebugCategories\022\020\n\010catego"
+      "ry\030\001 \003(\t\"y\n\007LogInfo\022\r\n\005level\030\001 \002(\005\022\020\n\010ca"
+      "tegory\030\002 \002(\t\022\014\n\004file\030\003 \002(\t\022\020\n\010function\030\004"
+      " \002(\t\022\014\n\004line\030\005 \002(\005\022\016\n\006object\030\006 \002(\t\022\017\n\007me"
+      "ssage\030\007 \002(\t\";\n\016EnumFlagsValue\022\014\n\004name\030\001 "
+      "\002(\t\022\r\n\005value\030\002 \002(\005\022\014\n\004nick\030\003 \002(\t\"\255\001\n\rEnu"
+      "mFlagsType\022\021\n\ttype_name\030\001 \002(\t\0226\n\004kind\030\002 "
+      "\002(\0162(.GstDebugger.EnumFlagsType.EnumFlag"
+      "sKind\022+\n\006values\030\003 \003(\0132\033.GstDebugger.Enum"
+      "FlagsValue\"$\n\rEnumFlagsKind\022\010\n\004ENUM\020\000\022\t\n"
+      "\005FLAGS\020\001\")\n\013FactoryMeta\022\013\n\003key\030\001 \002(\t\022\r\n\005"
+      "value\030\002 \002(\t\"W\n\013PadTemplate\022\025\n\rname_templ"
+      "ate\030\001 \002(\t\022\021\n\tdirection\030\002 \002(\005\022\020\n\010presence"
+      "\030\003 \002(\005\022\014\n\004caps\030\004 \002(\t\"t\n\013FactoryType\022\014\n\004n"
+      "ame\030\001 \002(\t\022*\n\010metadata\030\002 \003(\0132\030.GstDebugge"
+      "r.FactoryMeta\022+\n\ttemplates\030\003 \003(\0132\030.GstDe"
+      "bugger.PadTemplate\"N\n\014ElementKlass\022\014\n\004na"
+      "me\030\001 \002(\t\0220\n\rproperty_info\030\002 \003(\0132\031.GstDeb"
+      "ugger.PropertyInfo\"1\n\014TopologyLink\022\017\n\007sr"
+      "c_pad\030\001 \002(\t\022\020\n\010sink_pad\030\002 \002(\t\"X\n\017Topolog"
+      "yElement\022\014\n\004path\030\001 \002(\t\022\021\n\ttype_name\030\002 \002("
+      "\t\022\016\n\006is_bin\030\003 \002(\010\022\024\n\014factory_name\030\004 \002(\t\""
+      "\201\001\n\013TopologyPad\022\014\n\004path\030\001 \002(\t\022\023\n\013is_ghos"
+      "tpad\030\002 \002(\010\022\021\n\tdirection\030\003 \002(\005\022\020\n\010presenc"
+      "e\030\004 \002(\005\022*\n\010template\030\005 \001(\0132\030.GstDebugger."
+      "PadTemplate\"\311\001\n\014TopologyInfo\022#\n\006action\030\001"
+      " \002(\0162\023.GstDebugger.Action\022)\n\004link\030\002 \001(\0132"
+      "\031.GstDebugger.TopologyLinkH\000\022/\n\007element\030"
+      "\003 \001(\0132\034.GstDebugger.TopologyElementH\000\022\'\n"
+      "\003pad\030\004 \001(\0132\030.GstDebugger.TopologyPadH\000B\017"
+      "\n\rtopology_type\"I\n\016PadDynamicInfo\022\024\n\014all"
+      "owed_caps\030\001 \002(\t\022\024\n\014current_caps\030\002 \002(\t\022\013\n"
+      "\003pad\030\003 \002(\t\"\247\005\n\rGStreamerData\0228\n\020debug_ca"
+      "tegories\030\001 \001(\0132\034.GstDebugger.DebugCatego"
+      "riesH\000\022(\n\010log_info\030\002 \001(\0132\024.GstDebugger.L"
+      "ogInfoH\000\0225\n\017enum_flags_type\030\003 \001(\0132\032.GstD"
+      "ebugger.EnumFlagsTypeH\000\022+\n\007factory\030\004 \001(\013"
+      "2\030.GstDebugger.FactoryTypeH\000\0220\n\014message_"
+      "info\030\005 \001(\0132\030.GstDebugger.MessageInfoH\000\022,"
+      "\n\014confirmation\030\006 \001(\0132\024.GstDebugger.Comma"
+      "ndH\000\022,\n\nevent_info\030\007 \001(\0132\026.GstDebugger.E"
+      "ventInfoH\000\0222\n\rtopology_info\030\010 \001(\0132\031.GstD"
+      "ebugger.TopologyInfoH\000\022,\n\nquery_info\030\t \001"
+      "(\0132\026.GstDebugger.QueryInfoH\000\0224\n\016property"
+      "_value\030\n \001(\0132\032.GstDebugger.PropertyValue"
+      "H\000\0222\n\relement_klass\030\013 \001(\0132\031.GstDebugger."
+      "ElementKlassH\000\022.\n\013buffer_info\030\014 \001(\0132\027.Gs"
+      "tDebugger.BufferInfoH\000\0227\n\020pad_dynamic_in"
+      "fo\030\r \001(\0132\033.GstDebugger.PadDynamicInfoH\000B"
+      "\013\n\tinfo_type*\035\n\006Action\022\007\n\003ADD\020\000\022\n\n\006REMOV"
+      "E\020\001"
+  };
+  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+      descriptor, 3843);
+  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+    "gstdebugger.proto", &protobuf_RegisterTypes);
+  ::google::protobuf::internal::OnShutdown(&TableStruct::Shutdown);
+}
+
+void AddDescriptors() {
+  static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+  ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at static initialization time.
+struct StaticDescriptorInitializer {
+  StaticDescriptorInitializer() {
+    AddDescriptors();
+  }
+} static_descriptor_initializer;
+
+}  // namespace protobuf_gstdebugger_2eproto
+
+const ::google::protobuf::EnumDescriptor* TypeDescriptionRequest_Type_descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_enum_descriptors[0];
+}
+bool TypeDescriptionRequest_Type_IsValid(int value) {
+  switch (value) {
+    case 0:
+    case 1:
+    case 2:
+      return true;
+    default:
+      return false;
+  }
+}
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const TypeDescriptionRequest_Type TypeDescriptionRequest::FACTORY;
+const TypeDescriptionRequest_Type TypeDescriptionRequest::ENUM_FLAGS;
+const TypeDescriptionRequest_Type TypeDescriptionRequest::KLASS;
+const TypeDescriptionRequest_Type TypeDescriptionRequest::Type_MIN;
+const TypeDescriptionRequest_Type TypeDescriptionRequest::Type_MAX;
+const int TypeDescriptionRequest::Type_ARRAYSIZE;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+const ::google::protobuf::EnumDescriptor* EnumFlagsType_EnumFlagsKind_descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_enum_descriptors[1];
+}
+bool EnumFlagsType_EnumFlagsKind_IsValid(int value) {
+  switch (value) {
+    case 0:
+    case 1:
+      return true;
+    default:
+      return false;
+  }
+}
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const EnumFlagsType_EnumFlagsKind EnumFlagsType::ENUM;
+const EnumFlagsType_EnumFlagsKind EnumFlagsType::FLAGS;
+const EnumFlagsType_EnumFlagsKind EnumFlagsType::EnumFlagsKind_MIN;
+const EnumFlagsType_EnumFlagsKind EnumFlagsType::EnumFlagsKind_MAX;
+const int EnumFlagsType::EnumFlagsKind_ARRAYSIZE;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+const ::google::protobuf::EnumDescriptor* Action_descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_enum_descriptors[2];
+}
+bool Action_IsValid(int value) {
+  switch (value) {
+    case 0:
+    case 1:
+      return true;
+    default:
+      return false;
+  }
+}
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int Value::kGtypeFieldNumber;
+const int Value::kInternalTypeFieldNumber;
+const int Value::kDataFieldNumber;
+const int Value::kTypeNameFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+Value::Value()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.Value)
+}
+Value::Value(const Value& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  data_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_data()) {
+    data_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.data_);
+  }
+  type_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_type_name()) {
+    type_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.type_name_);
+  }
+  ::memcpy(&gtype_, &from.gtype_,
+    reinterpret_cast<char*>(&internal_type_) -
+    reinterpret_cast<char*>(&gtype_) + sizeof(internal_type_));
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.Value)
+}
+
+void Value::SharedCtor() {
+  _cached_size_ = 0;
+  data_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  type_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  ::memset(&gtype_, 0, reinterpret_cast<char*>(&internal_type_) -
+    reinterpret_cast<char*>(&gtype_) + sizeof(internal_type_));
+}
+
+Value::~Value() {
+  // @@protoc_insertion_point(destructor:GstDebugger.Value)
+  SharedDtor();
+}
+
+void Value::SharedDtor() {
+  data_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  type_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void Value::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* Value::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[0].descriptor;
+}
+
+const Value& Value::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+Value* Value::New(::google::protobuf::Arena* arena) const {
+  Value* n = new Value;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void Value::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.Value)
+  if (_has_bits_[0 / 32] & 3u) {
+    if (has_data()) {
+      GOOGLE_DCHECK(!data_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*data_.UnsafeRawStringPointer())->clear();
+    }
+    if (has_type_name()) {
+      GOOGLE_DCHECK(!type_name_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*type_name_.UnsafeRawStringPointer())->clear();
+    }
+  }
+  if (_has_bits_[0 / 32] & 12u) {
+    ::memset(&gtype_, 0, reinterpret_cast<char*>(&internal_type_) -
+      reinterpret_cast<char*>(&gtype_) + sizeof(internal_type_));
+  }
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool Value::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.Value)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required uint64 gtype = 1;
+      case 1: {
+        if (tag == 8u) {
+          set_has_gtype();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
+                 input, &gtype_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional int32 internal_type = 2;
+      case 2: {
+        if (tag == 16u) {
+          set_has_internal_type();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &internal_type_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required bytes data = 3;
+      case 3: {
+        if (tag == 26u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
+                input, this->mutable_data()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required string type_name = 4;
+      case 4: {
+        if (tag == 34u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_type_name()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->type_name().data(), this->type_name().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.Value.type_name");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.Value)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.Value)
+  return false;
+#undef DO_
+}
+
+void Value::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.Value)
+  // required uint64 gtype = 1;
+  if (has_gtype()) {
+    ::google::protobuf::internal::WireFormatLite::WriteUInt64(1, this->gtype(), output);
+  }
+
+  // optional int32 internal_type = 2;
+  if (has_internal_type()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->internal_type(), output);
+  }
+
+  // required bytes data = 3;
+  if (has_data()) {
+    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
+      3, this->data(), output);
+  }
+
+  // required string type_name = 4;
+  if (has_type_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->type_name().data(), this->type_name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.Value.type_name");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      4, this->type_name(), output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.Value)
+}
+
+::google::protobuf::uint8* Value::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.Value)
+  // required uint64 gtype = 1;
+  if (has_gtype()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(1, this->gtype(), target);
+  }
+
+  // optional int32 internal_type = 2;
+  if (has_internal_type()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->internal_type(), 
target);
+  }
+
+  // required bytes data = 3;
+  if (has_data()) {
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
+        3, this->data(), target);
+  }
+
+  // required string type_name = 4;
+  if (has_type_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->type_name().data(), this->type_name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.Value.type_name");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        4, this->type_name(), target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.Value)
+  return target;
+}
+
+size_t Value::RequiredFieldsByteSizeFallback() const {
+// @@protoc_insertion_point(required_fields_byte_size_fallback_start:GstDebugger.Value)
+  size_t total_size = 0;
+
+  if (has_data()) {
+    // required bytes data = 3;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::BytesSize(
+        this->data());
+  }
+
+  if (has_type_name()) {
+    // required string type_name = 4;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->type_name());
+  }
+
+  if (has_gtype()) {
+    // required uint64 gtype = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::UInt64Size(
+        this->gtype());
+  }
+
+  return total_size;
+}
+size_t Value::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.Value)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  if (((_has_bits_[0] & 0x00000007) ^ 0x00000007) == 0) {  // All required fields are present.
+    // required bytes data = 3;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::BytesSize(
+        this->data());
+
+    // required string type_name = 4;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->type_name());
+
+    // required uint64 gtype = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::UInt64Size(
+        this->gtype());
+
+  } else {
+    total_size += RequiredFieldsByteSizeFallback();
+  }
+  // optional int32 internal_type = 2;
+  if (has_internal_type()) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->internal_type());
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void Value::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.Value)
+  GOOGLE_DCHECK_NE(&from, this);
+  const Value* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const Value>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.Value)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.Value)
+    MergeFrom(*source);
+  }
+}
+
+void Value::MergeFrom(const Value& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.Value)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from._has_bits_[0 / 32] & 15u) {
+    if (from.has_data()) {
+      set_has_data();
+      data_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.data_);
+    }
+    if (from.has_type_name()) {
+      set_has_type_name();
+      type_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.type_name_);
+    }
+    if (from.has_gtype()) {
+      set_gtype(from.gtype());
+    }
+    if (from.has_internal_type()) {
+      set_internal_type(from.internal_type());
+    }
+  }
+}
+
+void Value::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.Value)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void Value::CopyFrom(const Value& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.Value)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool Value::IsInitialized() const {
+  if ((_has_bits_[0] & 0x00000007) != 0x00000007) return false;
+  return true;
+}
+
+void Value::Swap(Value* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void Value::InternalSwap(Value* other) {
+  data_.Swap(&other->data_);
+  type_name_.Swap(&other->type_name_);
+  std::swap(gtype_, other->gtype_);
+  std::swap(internal_type_, other->internal_type_);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata Value::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[0];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// Value
+
+// required uint64 gtype = 1;
+bool Value::has_gtype() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+void Value::set_has_gtype() {
+  _has_bits_[0] |= 0x00000004u;
+}
+void Value::clear_has_gtype() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+void Value::clear_gtype() {
+  gtype_ = GOOGLE_ULONGLONG(0);
+  clear_has_gtype();
+}
+::google::protobuf::uint64 Value::gtype() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.Value.gtype)
+  return gtype_;
+}
+void Value::set_gtype(::google::protobuf::uint64 value) {
+  set_has_gtype();
+  gtype_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.Value.gtype)
+}
+
+// optional int32 internal_type = 2;
+bool Value::has_internal_type() const {
+  return (_has_bits_[0] & 0x00000008u) != 0;
+}
+void Value::set_has_internal_type() {
+  _has_bits_[0] |= 0x00000008u;
+}
+void Value::clear_has_internal_type() {
+  _has_bits_[0] &= ~0x00000008u;
+}
+void Value::clear_internal_type() {
+  internal_type_ = 0;
+  clear_has_internal_type();
+}
+::google::protobuf::int32 Value::internal_type() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.Value.internal_type)
+  return internal_type_;
+}
+void Value::set_internal_type(::google::protobuf::int32 value) {
+  set_has_internal_type();
+  internal_type_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.Value.internal_type)
+}
+
+// required bytes data = 3;
+bool Value::has_data() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void Value::set_has_data() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void Value::clear_has_data() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void Value::clear_data() {
+  data_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_data();
+}
+const ::std::string& Value::data() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.Value.data)
+  return data_.GetNoArena();
+}
+void Value::set_data(const ::std::string& value) {
+  set_has_data();
+  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.Value.data)
+}
+#if LANG_CXX11
+void Value::set_data(::std::string&& value) {
+  set_has_data();
+  data_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.Value.data)
+}
+#endif
+void Value::set_data(const char* value) {
+  set_has_data();
+  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.Value.data)
+}
+void Value::set_data(const void* value, size_t size) {
+  set_has_data();
+  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.Value.data)
+}
+::std::string* Value::mutable_data() {
+  set_has_data();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.Value.data)
+  return data_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* Value::release_data() {
+  // @@protoc_insertion_point(field_release:GstDebugger.Value.data)
+  clear_has_data();
+  return data_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void Value::set_allocated_data(::std::string* data) {
+  if (data != NULL) {
+    set_has_data();
+  } else {
+    clear_has_data();
+  }
+  data_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), data);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.Value.data)
+}
+
+// required string type_name = 4;
+bool Value::has_type_name() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+void Value::set_has_type_name() {
+  _has_bits_[0] |= 0x00000002u;
+}
+void Value::clear_has_type_name() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+void Value::clear_type_name() {
+  type_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_type_name();
+}
+const ::std::string& Value::type_name() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.Value.type_name)
+  return type_name_.GetNoArena();
+}
+void Value::set_type_name(const ::std::string& value) {
+  set_has_type_name();
+  type_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.Value.type_name)
+}
+#if LANG_CXX11
+void Value::set_type_name(::std::string&& value) {
+  set_has_type_name();
+  type_name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.Value.type_name)
+}
+#endif
+void Value::set_type_name(const char* value) {
+  set_has_type_name();
+  type_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.Value.type_name)
+}
+void Value::set_type_name(const char* value, size_t size) {
+  set_has_type_name();
+  type_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.Value.type_name)
+}
+::std::string* Value::mutable_type_name() {
+  set_has_type_name();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.Value.type_name)
+  return type_name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* Value::release_type_name() {
+  // @@protoc_insertion_point(field_release:GstDebugger.Value.type_name)
+  clear_has_type_name();
+  return type_name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void Value::set_allocated_type_name(::std::string* type_name) {
+  if (type_name != NULL) {
+    set_has_type_name();
+  } else {
+    clear_has_type_name();
+  }
+  type_name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), type_name);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.Value.type_name)
+}
+
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int PropertyInfo::kNameFieldNumber;
+const int PropertyInfo::kNickFieldNumber;
+const int PropertyInfo::kBlurbFieldNumber;
+const int PropertyInfo::kFlagsFieldNumber;
+const int PropertyInfo::kDefaultValueFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+PropertyInfo::PropertyInfo()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.PropertyInfo)
+}
+PropertyInfo::PropertyInfo(const PropertyInfo& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_name()) {
+    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
+  }
+  nick_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_nick()) {
+    nick_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.nick_);
+  }
+  blurb_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_blurb()) {
+    blurb_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.blurb_);
+  }
+  if (from.has_default_value()) {
+    default_value_ = new ::GstDebugger::Value(*from.default_value_);
+  } else {
+    default_value_ = NULL;
+  }
+  flags_ = from.flags_;
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.PropertyInfo)
+}
+
+void PropertyInfo::SharedCtor() {
+  _cached_size_ = 0;
+  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  nick_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  blurb_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  ::memset(&default_value_, 0, reinterpret_cast<char*>(&flags_) -
+    reinterpret_cast<char*>(&default_value_) + sizeof(flags_));
+}
+
+PropertyInfo::~PropertyInfo() {
+  // @@protoc_insertion_point(destructor:GstDebugger.PropertyInfo)
+  SharedDtor();
+}
+
+void PropertyInfo::SharedDtor() {
+  name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  nick_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  blurb_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (this != internal_default_instance()) {
+    delete default_value_;
+  }
+}
+
+void PropertyInfo::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* PropertyInfo::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[1].descriptor;
+}
+
+const PropertyInfo& PropertyInfo::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+PropertyInfo* PropertyInfo::New(::google::protobuf::Arena* arena) const {
+  PropertyInfo* n = new PropertyInfo;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void PropertyInfo::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.PropertyInfo)
+  if (_has_bits_[0 / 32] & 15u) {
+    if (has_name()) {
+      GOOGLE_DCHECK(!name_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*name_.UnsafeRawStringPointer())->clear();
+    }
+    if (has_nick()) {
+      GOOGLE_DCHECK(!nick_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*nick_.UnsafeRawStringPointer())->clear();
+    }
+    if (has_blurb()) {
+      GOOGLE_DCHECK(!blurb_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*blurb_.UnsafeRawStringPointer())->clear();
+    }
+    if (has_default_value()) {
+      GOOGLE_DCHECK(default_value_ != NULL);
+      default_value_->::GstDebugger::Value::Clear();
+    }
+  }
+  flags_ = 0;
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool PropertyInfo::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.PropertyInfo)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required string name = 1;
+      case 1: {
+        if (tag == 10u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_name()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->name().data(), this->name().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.PropertyInfo.name");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required string nick = 2;
+      case 2: {
+        if (tag == 18u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_nick()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->nick().data(), this->nick().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.PropertyInfo.nick");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required string blurb = 3;
+      case 3: {
+        if (tag == 26u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_blurb()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->blurb().data(), this->blurb().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.PropertyInfo.blurb");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required int32 flags = 4;
+      case 4: {
+        if (tag == 32u) {
+          set_has_flags();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &flags_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required .GstDebugger.Value default_value = 5;
+      case 5: {
+        if (tag == 42u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_default_value()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.PropertyInfo)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.PropertyInfo)
+  return false;
+#undef DO_
+}
+
+void PropertyInfo::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.PropertyInfo)
+  // required string name = 1;
+  if (has_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->name().data(), this->name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.PropertyInfo.name");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      1, this->name(), output);
+  }
+
+  // required string nick = 2;
+  if (has_nick()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->nick().data(), this->nick().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.PropertyInfo.nick");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      2, this->nick(), output);
+  }
+
+  // required string blurb = 3;
+  if (has_blurb()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->blurb().data(), this->blurb().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.PropertyInfo.blurb");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      3, this->blurb(), output);
+  }
+
+  // required int32 flags = 4;
+  if (has_flags()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->flags(), output);
+  }
+
+  // required .GstDebugger.Value default_value = 5;
+  if (has_default_value()) {
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      5, *this->default_value_, output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.PropertyInfo)
+}
+
+::google::protobuf::uint8* PropertyInfo::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.PropertyInfo)
+  // required string name = 1;
+  if (has_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->name().data(), this->name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.PropertyInfo.name");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        1, this->name(), target);
+  }
+
+  // required string nick = 2;
+  if (has_nick()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->nick().data(), this->nick().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.PropertyInfo.nick");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        2, this->nick(), target);
+  }
+
+  // required string blurb = 3;
+  if (has_blurb()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->blurb().data(), this->blurb().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.PropertyInfo.blurb");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        3, this->blurb(), target);
+  }
+
+  // required int32 flags = 4;
+  if (has_flags()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->flags(), target);
+  }
+
+  // required .GstDebugger.Value default_value = 5;
+  if (has_default_value()) {
+    target = ::google::protobuf::internal::WireFormatLite::
+      InternalWriteMessageNoVirtualToArray(
+        5, *this->default_value_, false, target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.PropertyInfo)
+  return target;
+}
+
+size_t PropertyInfo::RequiredFieldsByteSizeFallback() const {
+// @@protoc_insertion_point(required_fields_byte_size_fallback_start:GstDebugger.PropertyInfo)
+  size_t total_size = 0;
+
+  if (has_name()) {
+    // required string name = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->name());
+  }
+
+  if (has_nick()) {
+    // required string nick = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->nick());
+  }
+
+  if (has_blurb()) {
+    // required string blurb = 3;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->blurb());
+  }
+
+  if (has_default_value()) {
+    // required .GstDebugger.Value default_value = 5;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+        *this->default_value_);
+  }
+
+  if (has_flags()) {
+    // required int32 flags = 4;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->flags());
+  }
+
+  return total_size;
+}
+size_t PropertyInfo::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.PropertyInfo)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  if (((_has_bits_[0] & 0x0000001f) ^ 0x0000001f) == 0) {  // All required fields are present.
+    // required string name = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->name());
+
+    // required string nick = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->nick());
+
+    // required string blurb = 3;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->blurb());
+
+    // required .GstDebugger.Value default_value = 5;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+        *this->default_value_);
+
+    // required int32 flags = 4;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->flags());
+
+  } else {
+    total_size += RequiredFieldsByteSizeFallback();
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void PropertyInfo::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.PropertyInfo)
+  GOOGLE_DCHECK_NE(&from, this);
+  const PropertyInfo* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const PropertyInfo>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.PropertyInfo)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.PropertyInfo)
+    MergeFrom(*source);
+  }
+}
+
+void PropertyInfo::MergeFrom(const PropertyInfo& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.PropertyInfo)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from._has_bits_[0 / 32] & 31u) {
+    if (from.has_name()) {
+      set_has_name();
+      name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
+    }
+    if (from.has_nick()) {
+      set_has_nick();
+      nick_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.nick_);
+    }
+    if (from.has_blurb()) {
+      set_has_blurb();
+      blurb_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.blurb_);
+    }
+    if (from.has_default_value()) {
+      mutable_default_value()->::GstDebugger::Value::MergeFrom(from.default_value());
+    }
+    if (from.has_flags()) {
+      set_flags(from.flags());
+    }
+  }
+}
+
+void PropertyInfo::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.PropertyInfo)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void PropertyInfo::CopyFrom(const PropertyInfo& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.PropertyInfo)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool PropertyInfo::IsInitialized() const {
+  if ((_has_bits_[0] & 0x0000001f) != 0x0000001f) return false;
+  if (has_default_value()) {
+    if (!this->default_value_->IsInitialized()) return false;
+  }
+  return true;
+}
+
+void PropertyInfo::Swap(PropertyInfo* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void PropertyInfo::InternalSwap(PropertyInfo* other) {
+  name_.Swap(&other->name_);
+  nick_.Swap(&other->nick_);
+  blurb_.Swap(&other->blurb_);
+  std::swap(default_value_, other->default_value_);
+  std::swap(flags_, other->flags_);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata PropertyInfo::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[1];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// PropertyInfo
+
+// required string name = 1;
+bool PropertyInfo::has_name() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void PropertyInfo::set_has_name() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void PropertyInfo::clear_has_name() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void PropertyInfo::clear_name() {
+  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_name();
+}
+const ::std::string& PropertyInfo::name() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PropertyInfo.name)
+  return name_.GetNoArena();
+}
+void PropertyInfo::set_name(const ::std::string& value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.PropertyInfo.name)
+}
+#if LANG_CXX11
+void PropertyInfo::set_name(::std::string&& value) {
+  set_has_name();
+  name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.PropertyInfo.name)
+}
+#endif
+void PropertyInfo::set_name(const char* value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.PropertyInfo.name)
+}
+void PropertyInfo::set_name(const char* value, size_t size) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.PropertyInfo.name)
+}
+::std::string* PropertyInfo::mutable_name() {
+  set_has_name();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PropertyInfo.name)
+  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* PropertyInfo::release_name() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PropertyInfo.name)
+  clear_has_name();
+  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void PropertyInfo::set_allocated_name(::std::string* name) {
+  if (name != NULL) {
+    set_has_name();
+  } else {
+    clear_has_name();
+  }
+  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PropertyInfo.name)
+}
+
+// required string nick = 2;
+bool PropertyInfo::has_nick() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+void PropertyInfo::set_has_nick() {
+  _has_bits_[0] |= 0x00000002u;
+}
+void PropertyInfo::clear_has_nick() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+void PropertyInfo::clear_nick() {
+  nick_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_nick();
+}
+const ::std::string& PropertyInfo::nick() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PropertyInfo.nick)
+  return nick_.GetNoArena();
+}
+void PropertyInfo::set_nick(const ::std::string& value) {
+  set_has_nick();
+  nick_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.PropertyInfo.nick)
+}
+#if LANG_CXX11
+void PropertyInfo::set_nick(::std::string&& value) {
+  set_has_nick();
+  nick_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.PropertyInfo.nick)
+}
+#endif
+void PropertyInfo::set_nick(const char* value) {
+  set_has_nick();
+  nick_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.PropertyInfo.nick)
+}
+void PropertyInfo::set_nick(const char* value, size_t size) {
+  set_has_nick();
+  nick_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.PropertyInfo.nick)
+}
+::std::string* PropertyInfo::mutable_nick() {
+  set_has_nick();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PropertyInfo.nick)
+  return nick_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* PropertyInfo::release_nick() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PropertyInfo.nick)
+  clear_has_nick();
+  return nick_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void PropertyInfo::set_allocated_nick(::std::string* nick) {
+  if (nick != NULL) {
+    set_has_nick();
+  } else {
+    clear_has_nick();
+  }
+  nick_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), nick);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PropertyInfo.nick)
+}
+
+// required string blurb = 3;
+bool PropertyInfo::has_blurb() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+void PropertyInfo::set_has_blurb() {
+  _has_bits_[0] |= 0x00000004u;
+}
+void PropertyInfo::clear_has_blurb() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+void PropertyInfo::clear_blurb() {
+  blurb_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_blurb();
+}
+const ::std::string& PropertyInfo::blurb() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PropertyInfo.blurb)
+  return blurb_.GetNoArena();
+}
+void PropertyInfo::set_blurb(const ::std::string& value) {
+  set_has_blurb();
+  blurb_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.PropertyInfo.blurb)
+}
+#if LANG_CXX11
+void PropertyInfo::set_blurb(::std::string&& value) {
+  set_has_blurb();
+  blurb_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.PropertyInfo.blurb)
+}
+#endif
+void PropertyInfo::set_blurb(const char* value) {
+  set_has_blurb();
+  blurb_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.PropertyInfo.blurb)
+}
+void PropertyInfo::set_blurb(const char* value, size_t size) {
+  set_has_blurb();
+  blurb_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.PropertyInfo.blurb)
+}
+::std::string* PropertyInfo::mutable_blurb() {
+  set_has_blurb();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PropertyInfo.blurb)
+  return blurb_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* PropertyInfo::release_blurb() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PropertyInfo.blurb)
+  clear_has_blurb();
+  return blurb_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void PropertyInfo::set_allocated_blurb(::std::string* blurb) {
+  if (blurb != NULL) {
+    set_has_blurb();
+  } else {
+    clear_has_blurb();
+  }
+  blurb_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), blurb);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PropertyInfo.blurb)
+}
+
+// required int32 flags = 4;
+bool PropertyInfo::has_flags() const {
+  return (_has_bits_[0] & 0x00000010u) != 0;
+}
+void PropertyInfo::set_has_flags() {
+  _has_bits_[0] |= 0x00000010u;
+}
+void PropertyInfo::clear_has_flags() {
+  _has_bits_[0] &= ~0x00000010u;
+}
+void PropertyInfo::clear_flags() {
+  flags_ = 0;
+  clear_has_flags();
+}
+::google::protobuf::int32 PropertyInfo::flags() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PropertyInfo.flags)
+  return flags_;
+}
+void PropertyInfo::set_flags(::google::protobuf::int32 value) {
+  set_has_flags();
+  flags_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.PropertyInfo.flags)
+}
+
+// required .GstDebugger.Value default_value = 5;
+bool PropertyInfo::has_default_value() const {
+  return (_has_bits_[0] & 0x00000008u) != 0;
+}
+void PropertyInfo::set_has_default_value() {
+  _has_bits_[0] |= 0x00000008u;
+}
+void PropertyInfo::clear_has_default_value() {
+  _has_bits_[0] &= ~0x00000008u;
+}
+void PropertyInfo::clear_default_value() {
+  if (default_value_ != NULL) default_value_->::GstDebugger::Value::Clear();
+  clear_has_default_value();
+}
+const ::GstDebugger::Value& PropertyInfo::default_value() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PropertyInfo.default_value)
+  return default_value_ != NULL ? *default_value_
+                         : *::GstDebugger::Value::internal_default_instance();
+}
+::GstDebugger::Value* PropertyInfo::mutable_default_value() {
+  set_has_default_value();
+  if (default_value_ == NULL) {
+    default_value_ = new ::GstDebugger::Value;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PropertyInfo.default_value)
+  return default_value_;
+}
+::GstDebugger::Value* PropertyInfo::release_default_value() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PropertyInfo.default_value)
+  clear_has_default_value();
+  ::GstDebugger::Value* temp = default_value_;
+  default_value_ = NULL;
+  return temp;
+}
+void PropertyInfo::set_allocated_default_value(::GstDebugger::Value* default_value) {
+  delete default_value_;
+  default_value_ = default_value;
+  if (default_value) {
+    set_has_default_value();
+  } else {
+    clear_has_default_value();
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PropertyInfo.default_value)
+}
+
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int PropertyValue::kNameFieldNumber;
+const int PropertyValue::kObjectFieldNumber;
+const int PropertyValue::kValueFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+PropertyValue::PropertyValue()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.PropertyValue)
+}
+PropertyValue::PropertyValue(const PropertyValue& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_name()) {
+    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
+  }
+  object_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_object()) {
+    object_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.object_);
+  }
+  if (from.has_value()) {
+    value_ = new ::GstDebugger::Value(*from.value_);
+  } else {
+    value_ = NULL;
+  }
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.PropertyValue)
+}
+
+void PropertyValue::SharedCtor() {
+  _cached_size_ = 0;
+  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  object_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  value_ = NULL;
+}
+
+PropertyValue::~PropertyValue() {
+  // @@protoc_insertion_point(destructor:GstDebugger.PropertyValue)
+  SharedDtor();
+}
+
+void PropertyValue::SharedDtor() {
+  name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  object_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (this != internal_default_instance()) {
+    delete value_;
+  }
+}
+
+void PropertyValue::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* PropertyValue::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[2].descriptor;
+}
+
+const PropertyValue& PropertyValue::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+PropertyValue* PropertyValue::New(::google::protobuf::Arena* arena) const {
+  PropertyValue* n = new PropertyValue;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void PropertyValue::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.PropertyValue)
+  if (_has_bits_[0 / 32] & 7u) {
+    if (has_name()) {
+      GOOGLE_DCHECK(!name_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*name_.UnsafeRawStringPointer())->clear();
+    }
+    if (has_object()) {
+      GOOGLE_DCHECK(!object_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*object_.UnsafeRawStringPointer())->clear();
+    }
+    if (has_value()) {
+      GOOGLE_DCHECK(value_ != NULL);
+      value_->::GstDebugger::Value::Clear();
+    }
+  }
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool PropertyValue::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.PropertyValue)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required string name = 1;
+      case 1: {
+        if (tag == 10u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_name()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->name().data(), this->name().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.PropertyValue.name");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required string object = 2;
+      case 2: {
+        if (tag == 18u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_object()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->object().data(), this->object().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.PropertyValue.object");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required .GstDebugger.Value value = 3;
+      case 3: {
+        if (tag == 26u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_value()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.PropertyValue)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.PropertyValue)
+  return false;
+#undef DO_
+}
+
+void PropertyValue::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.PropertyValue)
+  // required string name = 1;
+  if (has_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->name().data(), this->name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.PropertyValue.name");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      1, this->name(), output);
+  }
+
+  // required string object = 2;
+  if (has_object()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->object().data(), this->object().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.PropertyValue.object");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      2, this->object(), output);
+  }
+
+  // required .GstDebugger.Value value = 3;
+  if (has_value()) {
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      3, *this->value_, output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.PropertyValue)
+}
+
+::google::protobuf::uint8* PropertyValue::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.PropertyValue)
+  // required string name = 1;
+  if (has_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->name().data(), this->name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.PropertyValue.name");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        1, this->name(), target);
+  }
+
+  // required string object = 2;
+  if (has_object()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->object().data(), this->object().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.PropertyValue.object");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        2, this->object(), target);
+  }
+
+  // required .GstDebugger.Value value = 3;
+  if (has_value()) {
+    target = ::google::protobuf::internal::WireFormatLite::
+      InternalWriteMessageNoVirtualToArray(
+        3, *this->value_, false, target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.PropertyValue)
+  return target;
+}
+
+size_t PropertyValue::RequiredFieldsByteSizeFallback() const {
+// @@protoc_insertion_point(required_fields_byte_size_fallback_start:GstDebugger.PropertyValue)
+  size_t total_size = 0;
+
+  if (has_name()) {
+    // required string name = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->name());
+  }
+
+  if (has_object()) {
+    // required string object = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->object());
+  }
+
+  if (has_value()) {
+    // required .GstDebugger.Value value = 3;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+        *this->value_);
+  }
+
+  return total_size;
+}
+size_t PropertyValue::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.PropertyValue)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  if (((_has_bits_[0] & 0x00000007) ^ 0x00000007) == 0) {  // All required fields are present.
+    // required string name = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->name());
+
+    // required string object = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->object());
+
+    // required .GstDebugger.Value value = 3;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+        *this->value_);
+
+  } else {
+    total_size += RequiredFieldsByteSizeFallback();
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void PropertyValue::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.PropertyValue)
+  GOOGLE_DCHECK_NE(&from, this);
+  const PropertyValue* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const PropertyValue>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.PropertyValue)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.PropertyValue)
+    MergeFrom(*source);
+  }
+}
+
+void PropertyValue::MergeFrom(const PropertyValue& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.PropertyValue)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from._has_bits_[0 / 32] & 7u) {
+    if (from.has_name()) {
+      set_has_name();
+      name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
+    }
+    if (from.has_object()) {
+      set_has_object();
+      object_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.object_);
+    }
+    if (from.has_value()) {
+      mutable_value()->::GstDebugger::Value::MergeFrom(from.value());
+    }
+  }
+}
+
+void PropertyValue::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.PropertyValue)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void PropertyValue::CopyFrom(const PropertyValue& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.PropertyValue)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool PropertyValue::IsInitialized() const {
+  if ((_has_bits_[0] & 0x00000007) != 0x00000007) return false;
+  if (has_value()) {
+    if (!this->value_->IsInitialized()) return false;
+  }
+  return true;
+}
+
+void PropertyValue::Swap(PropertyValue* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void PropertyValue::InternalSwap(PropertyValue* other) {
+  name_.Swap(&other->name_);
+  object_.Swap(&other->object_);
+  std::swap(value_, other->value_);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata PropertyValue::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[2];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// PropertyValue
+
+// required string name = 1;
+bool PropertyValue::has_name() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void PropertyValue::set_has_name() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void PropertyValue::clear_has_name() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void PropertyValue::clear_name() {
+  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_name();
+}
+const ::std::string& PropertyValue::name() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PropertyValue.name)
+  return name_.GetNoArena();
+}
+void PropertyValue::set_name(const ::std::string& value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.PropertyValue.name)
+}
+#if LANG_CXX11
+void PropertyValue::set_name(::std::string&& value) {
+  set_has_name();
+  name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.PropertyValue.name)
+}
+#endif
+void PropertyValue::set_name(const char* value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.PropertyValue.name)
+}
+void PropertyValue::set_name(const char* value, size_t size) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.PropertyValue.name)
+}
+::std::string* PropertyValue::mutable_name() {
+  set_has_name();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PropertyValue.name)
+  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* PropertyValue::release_name() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PropertyValue.name)
+  clear_has_name();
+  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void PropertyValue::set_allocated_name(::std::string* name) {
+  if (name != NULL) {
+    set_has_name();
+  } else {
+    clear_has_name();
+  }
+  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PropertyValue.name)
+}
+
+// required string object = 2;
+bool PropertyValue::has_object() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+void PropertyValue::set_has_object() {
+  _has_bits_[0] |= 0x00000002u;
+}
+void PropertyValue::clear_has_object() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+void PropertyValue::clear_object() {
+  object_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_object();
+}
+const ::std::string& PropertyValue::object() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PropertyValue.object)
+  return object_.GetNoArena();
+}
+void PropertyValue::set_object(const ::std::string& value) {
+  set_has_object();
+  object_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.PropertyValue.object)
+}
+#if LANG_CXX11
+void PropertyValue::set_object(::std::string&& value) {
+  set_has_object();
+  object_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.PropertyValue.object)
+}
+#endif
+void PropertyValue::set_object(const char* value) {
+  set_has_object();
+  object_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.PropertyValue.object)
+}
+void PropertyValue::set_object(const char* value, size_t size) {
+  set_has_object();
+  object_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.PropertyValue.object)
+}
+::std::string* PropertyValue::mutable_object() {
+  set_has_object();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PropertyValue.object)
+  return object_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* PropertyValue::release_object() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PropertyValue.object)
+  clear_has_object();
+  return object_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void PropertyValue::set_allocated_object(::std::string* object) {
+  if (object != NULL) {
+    set_has_object();
+  } else {
+    clear_has_object();
+  }
+  object_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), object);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PropertyValue.object)
+}
+
+// required .GstDebugger.Value value = 3;
+bool PropertyValue::has_value() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+void PropertyValue::set_has_value() {
+  _has_bits_[0] |= 0x00000004u;
+}
+void PropertyValue::clear_has_value() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+void PropertyValue::clear_value() {
+  if (value_ != NULL) value_->::GstDebugger::Value::Clear();
+  clear_has_value();
+}
+const ::GstDebugger::Value& PropertyValue::value() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PropertyValue.value)
+  return value_ != NULL ? *value_
+                         : *::GstDebugger::Value::internal_default_instance();
+}
+::GstDebugger::Value* PropertyValue::mutable_value() {
+  set_has_value();
+  if (value_ == NULL) {
+    value_ = new ::GstDebugger::Value;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PropertyValue.value)
+  return value_;
+}
+::GstDebugger::Value* PropertyValue::release_value() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PropertyValue.value)
+  clear_has_value();
+  ::GstDebugger::Value* temp = value_;
+  value_ = NULL;
+  return temp;
+}
+void PropertyValue::set_allocated_value(::GstDebugger::Value* value) {
+  delete value_;
+  value_ = value;
+  if (value) {
+    set_has_value();
+  } else {
+    clear_has_value();
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PropertyValue.value)
+}
+
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int PropertyRequest::kNameFieldNumber;
+const int PropertyRequest::kObjectFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+PropertyRequest::PropertyRequest()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.PropertyRequest)
+}
+PropertyRequest::PropertyRequest(const PropertyRequest& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_name()) {
+    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
+  }
+  object_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_object()) {
+    object_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.object_);
+  }
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.PropertyRequest)
+}
+
+void PropertyRequest::SharedCtor() {
+  _cached_size_ = 0;
+  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  object_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+PropertyRequest::~PropertyRequest() {
+  // @@protoc_insertion_point(destructor:GstDebugger.PropertyRequest)
+  SharedDtor();
+}
+
+void PropertyRequest::SharedDtor() {
+  name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  object_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void PropertyRequest::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* PropertyRequest::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[3].descriptor;
+}
+
+const PropertyRequest& PropertyRequest::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+PropertyRequest* PropertyRequest::New(::google::protobuf::Arena* arena) const {
+  PropertyRequest* n = new PropertyRequest;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void PropertyRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.PropertyRequest)
+  if (_has_bits_[0 / 32] & 3u) {
+    if (has_name()) {
+      GOOGLE_DCHECK(!name_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*name_.UnsafeRawStringPointer())->clear();
+    }
+    if (has_object()) {
+      GOOGLE_DCHECK(!object_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*object_.UnsafeRawStringPointer())->clear();
+    }
+  }
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool PropertyRequest::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.PropertyRequest)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // optional string name = 1;
+      case 1: {
+        if (tag == 10u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_name()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->name().data(), this->name().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.PropertyRequest.name");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required string object = 2;
+      case 2: {
+        if (tag == 18u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_object()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->object().data(), this->object().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.PropertyRequest.object");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.PropertyRequest)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.PropertyRequest)
+  return false;
+#undef DO_
+}
+
+void PropertyRequest::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.PropertyRequest)
+  // optional string name = 1;
+  if (has_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->name().data(), this->name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.PropertyRequest.name");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      1, this->name(), output);
+  }
+
+  // required string object = 2;
+  if (has_object()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->object().data(), this->object().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.PropertyRequest.object");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      2, this->object(), output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.PropertyRequest)
+}
+
+::google::protobuf::uint8* PropertyRequest::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.PropertyRequest)
+  // optional string name = 1;
+  if (has_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->name().data(), this->name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.PropertyRequest.name");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        1, this->name(), target);
+  }
+
+  // required string object = 2;
+  if (has_object()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->object().data(), this->object().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.PropertyRequest.object");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        2, this->object(), target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.PropertyRequest)
+  return target;
+}
+
+size_t PropertyRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.PropertyRequest)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  // required string object = 2;
+  if (has_object()) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->object());
+  }
+  // optional string name = 1;
+  if (has_name()) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->name());
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void PropertyRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.PropertyRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  const PropertyRequest* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const PropertyRequest>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.PropertyRequest)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.PropertyRequest)
+    MergeFrom(*source);
+  }
+}
+
+void PropertyRequest::MergeFrom(const PropertyRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.PropertyRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from._has_bits_[0 / 32] & 3u) {
+    if (from.has_name()) {
+      set_has_name();
+      name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
+    }
+    if (from.has_object()) {
+      set_has_object();
+      object_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.object_);
+    }
+  }
+}
+
+void PropertyRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.PropertyRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void PropertyRequest::CopyFrom(const PropertyRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.PropertyRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool PropertyRequest::IsInitialized() const {
+  if ((_has_bits_[0] & 0x00000002) != 0x00000002) return false;
+  return true;
+}
+
+void PropertyRequest::Swap(PropertyRequest* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void PropertyRequest::InternalSwap(PropertyRequest* other) {
+  name_.Swap(&other->name_);
+  object_.Swap(&other->object_);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata PropertyRequest::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[3];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// PropertyRequest
+
+// optional string name = 1;
+bool PropertyRequest::has_name() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void PropertyRequest::set_has_name() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void PropertyRequest::clear_has_name() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void PropertyRequest::clear_name() {
+  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_name();
+}
+const ::std::string& PropertyRequest::name() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PropertyRequest.name)
+  return name_.GetNoArena();
+}
+void PropertyRequest::set_name(const ::std::string& value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.PropertyRequest.name)
+}
+#if LANG_CXX11
+void PropertyRequest::set_name(::std::string&& value) {
+  set_has_name();
+  name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.PropertyRequest.name)
+}
+#endif
+void PropertyRequest::set_name(const char* value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.PropertyRequest.name)
+}
+void PropertyRequest::set_name(const char* value, size_t size) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.PropertyRequest.name)
+}
+::std::string* PropertyRequest::mutable_name() {
+  set_has_name();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PropertyRequest.name)
+  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* PropertyRequest::release_name() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PropertyRequest.name)
+  clear_has_name();
+  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void PropertyRequest::set_allocated_name(::std::string* name) {
+  if (name != NULL) {
+    set_has_name();
+  } else {
+    clear_has_name();
+  }
+  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PropertyRequest.name)
+}
+
+// required string object = 2;
+bool PropertyRequest::has_object() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+void PropertyRequest::set_has_object() {
+  _has_bits_[0] |= 0x00000002u;
+}
+void PropertyRequest::clear_has_object() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+void PropertyRequest::clear_object() {
+  object_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_object();
+}
+const ::std::string& PropertyRequest::object() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PropertyRequest.object)
+  return object_.GetNoArena();
+}
+void PropertyRequest::set_object(const ::std::string& value) {
+  set_has_object();
+  object_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.PropertyRequest.object)
+}
+#if LANG_CXX11
+void PropertyRequest::set_object(::std::string&& value) {
+  set_has_object();
+  object_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.PropertyRequest.object)
+}
+#endif
+void PropertyRequest::set_object(const char* value) {
+  set_has_object();
+  object_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.PropertyRequest.object)
+}
+void PropertyRequest::set_object(const char* value, size_t size) {
+  set_has_object();
+  object_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.PropertyRequest.object)
+}
+::std::string* PropertyRequest::mutable_object() {
+  set_has_object();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PropertyRequest.object)
+  return object_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* PropertyRequest::release_object() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PropertyRequest.object)
+  clear_has_object();
+  return object_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void PropertyRequest::set_allocated_object(::std::string* object) {
+  if (object != NULL) {
+    set_has_object();
+  } else {
+    clear_has_object();
+  }
+  object_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), object);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PropertyRequest.object)
+}
+
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int MessageInfo::kTypeFieldNumber;
+const int MessageInfo::kTimestampFieldNumber;
+const int MessageInfo::kSourceFieldNumber;
+const int MessageInfo::kSeqnumFieldNumber;
+const int MessageInfo::kStructureDataFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+MessageInfo::MessageInfo()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.MessageInfo)
+}
+MessageInfo::MessageInfo(const MessageInfo& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  source_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_source()) {
+    source_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.source_);
+  }
+  structure_data_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_structure_data()) {
+    structure_data_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.structure_data_);
+  }
+  ::memcpy(&timestamp_, &from.timestamp_,
+    reinterpret_cast<char*>(&seqnum_) -
+    reinterpret_cast<char*>(&timestamp_) + sizeof(seqnum_));
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.MessageInfo)
+}
+
+void MessageInfo::SharedCtor() {
+  _cached_size_ = 0;
+  source_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  structure_data_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  ::memset(&timestamp_, 0, reinterpret_cast<char*>(&seqnum_) -
+    reinterpret_cast<char*>(&timestamp_) + sizeof(seqnum_));
+}
+
+MessageInfo::~MessageInfo() {
+  // @@protoc_insertion_point(destructor:GstDebugger.MessageInfo)
+  SharedDtor();
+}
+
+void MessageInfo::SharedDtor() {
+  source_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  structure_data_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void MessageInfo::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* MessageInfo::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[4].descriptor;
+}
+
+const MessageInfo& MessageInfo::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+MessageInfo* MessageInfo::New(::google::protobuf::Arena* arena) const {
+  MessageInfo* n = new MessageInfo;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void MessageInfo::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.MessageInfo)
+  if (_has_bits_[0 / 32] & 3u) {
+    if (has_source()) {
+      GOOGLE_DCHECK(!source_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*source_.UnsafeRawStringPointer())->clear();
+    }
+    if (has_structure_data()) {
+      
GOOGLE_DCHECK(!structure_data_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*structure_data_.UnsafeRawStringPointer())->clear();
+    }
+  }
+  if (_has_bits_[0 / 32] & 28u) {
+    ::memset(&timestamp_, 0, reinterpret_cast<char*>(&seqnum_) -
+      reinterpret_cast<char*>(&timestamp_) + sizeof(seqnum_));
+  }
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool MessageInfo::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.MessageInfo)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required int32 type = 1;
+      case 1: {
+        if (tag == 8u) {
+          set_has_type();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &type_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required uint64 timestamp = 2;
+      case 2: {
+        if (tag == 16u) {
+          set_has_timestamp();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
+                 input, &timestamp_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required string source = 3;
+      case 3: {
+        if (tag == 26u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_source()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->source().data(), this->source().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.MessageInfo.source");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required uint32 seqnum = 4;
+      case 4: {
+        if (tag == 32u) {
+          set_has_seqnum();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+                 input, &seqnum_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required bytes structure_data = 5;
+      case 5: {
+        if (tag == 42u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
+                input, this->mutable_structure_data()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.MessageInfo)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.MessageInfo)
+  return false;
+#undef DO_
+}
+
+void MessageInfo::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.MessageInfo)
+  // required int32 type = 1;
+  if (has_type()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->type(), output);
+  }
+
+  // required uint64 timestamp = 2;
+  if (has_timestamp()) {
+    ::google::protobuf::internal::WireFormatLite::WriteUInt64(2, this->timestamp(), output);
+  }
+
+  // required string source = 3;
+  if (has_source()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->source().data(), this->source().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.MessageInfo.source");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      3, this->source(), output);
+  }
+
+  // required uint32 seqnum = 4;
+  if (has_seqnum()) {
+    ::google::protobuf::internal::WireFormatLite::WriteUInt32(4, this->seqnum(), output);
+  }
+
+  // required bytes structure_data = 5;
+  if (has_structure_data()) {
+    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
+      5, this->structure_data(), output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.MessageInfo)
+}
+
+::google::protobuf::uint8* MessageInfo::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.MessageInfo)
+  // required int32 type = 1;
+  if (has_type()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->type(), target);
+  }
+
+  // required uint64 timestamp = 2;
+  if (has_timestamp()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(2, this->timestamp(), target);
+  }
+
+  // required string source = 3;
+  if (has_source()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->source().data(), this->source().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.MessageInfo.source");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        3, this->source(), target);
+  }
+
+  // required uint32 seqnum = 4;
+  if (has_seqnum()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(4, this->seqnum(), target);
+  }
+
+  // required bytes structure_data = 5;
+  if (has_structure_data()) {
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
+        5, this->structure_data(), target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.MessageInfo)
+  return target;
+}
+
+size_t MessageInfo::RequiredFieldsByteSizeFallback() const {
+// @@protoc_insertion_point(required_fields_byte_size_fallback_start:GstDebugger.MessageInfo)
+  size_t total_size = 0;
+
+  if (has_source()) {
+    // required string source = 3;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->source());
+  }
+
+  if (has_structure_data()) {
+    // required bytes structure_data = 5;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::BytesSize(
+        this->structure_data());
+  }
+
+  if (has_timestamp()) {
+    // required uint64 timestamp = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::UInt64Size(
+        this->timestamp());
+  }
+
+  if (has_type()) {
+    // required int32 type = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->type());
+  }
+
+  if (has_seqnum()) {
+    // required uint32 seqnum = 4;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::UInt32Size(
+        this->seqnum());
+  }
+
+  return total_size;
+}
+size_t MessageInfo::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.MessageInfo)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  if (((_has_bits_[0] & 0x0000001f) ^ 0x0000001f) == 0) {  // All required fields are present.
+    // required string source = 3;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->source());
+
+    // required bytes structure_data = 5;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::BytesSize(
+        this->structure_data());
+
+    // required uint64 timestamp = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::UInt64Size(
+        this->timestamp());
+
+    // required int32 type = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->type());
+
+    // required uint32 seqnum = 4;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::UInt32Size(
+        this->seqnum());
+
+  } else {
+    total_size += RequiredFieldsByteSizeFallback();
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void MessageInfo::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.MessageInfo)
+  GOOGLE_DCHECK_NE(&from, this);
+  const MessageInfo* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const MessageInfo>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.MessageInfo)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.MessageInfo)
+    MergeFrom(*source);
+  }
+}
+
+void MessageInfo::MergeFrom(const MessageInfo& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.MessageInfo)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from._has_bits_[0 / 32] & 31u) {
+    if (from.has_source()) {
+      set_has_source();
+      source_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.source_);
+    }
+    if (from.has_structure_data()) {
+      set_has_structure_data();
+      structure_data_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.structure_data_);
+    }
+    if (from.has_timestamp()) {
+      set_timestamp(from.timestamp());
+    }
+    if (from.has_type()) {
+      set_type(from.type());
+    }
+    if (from.has_seqnum()) {
+      set_seqnum(from.seqnum());
+    }
+  }
+}
+
+void MessageInfo::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.MessageInfo)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void MessageInfo::CopyFrom(const MessageInfo& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.MessageInfo)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool MessageInfo::IsInitialized() const {
+  if ((_has_bits_[0] & 0x0000001f) != 0x0000001f) return false;
+  return true;
+}
+
+void MessageInfo::Swap(MessageInfo* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void MessageInfo::InternalSwap(MessageInfo* other) {
+  source_.Swap(&other->source_);
+  structure_data_.Swap(&other->structure_data_);
+  std::swap(timestamp_, other->timestamp_);
+  std::swap(type_, other->type_);
+  std::swap(seqnum_, other->seqnum_);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata MessageInfo::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[4];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// MessageInfo
+
+// required int32 type = 1;
+bool MessageInfo::has_type() const {
+  return (_has_bits_[0] & 0x00000008u) != 0;
+}
+void MessageInfo::set_has_type() {
+  _has_bits_[0] |= 0x00000008u;
+}
+void MessageInfo::clear_has_type() {
+  _has_bits_[0] &= ~0x00000008u;
+}
+void MessageInfo::clear_type() {
+  type_ = 0;
+  clear_has_type();
+}
+::google::protobuf::int32 MessageInfo::type() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.MessageInfo.type)
+  return type_;
+}
+void MessageInfo::set_type(::google::protobuf::int32 value) {
+  set_has_type();
+  type_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.MessageInfo.type)
+}
+
+// required uint64 timestamp = 2;
+bool MessageInfo::has_timestamp() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+void MessageInfo::set_has_timestamp() {
+  _has_bits_[0] |= 0x00000004u;
+}
+void MessageInfo::clear_has_timestamp() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+void MessageInfo::clear_timestamp() {
+  timestamp_ = GOOGLE_ULONGLONG(0);
+  clear_has_timestamp();
+}
+::google::protobuf::uint64 MessageInfo::timestamp() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.MessageInfo.timestamp)
+  return timestamp_;
+}
+void MessageInfo::set_timestamp(::google::protobuf::uint64 value) {
+  set_has_timestamp();
+  timestamp_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.MessageInfo.timestamp)
+}
+
+// required string source = 3;
+bool MessageInfo::has_source() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void MessageInfo::set_has_source() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void MessageInfo::clear_has_source() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void MessageInfo::clear_source() {
+  source_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_source();
+}
+const ::std::string& MessageInfo::source() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.MessageInfo.source)
+  return source_.GetNoArena();
+}
+void MessageInfo::set_source(const ::std::string& value) {
+  set_has_source();
+  source_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.MessageInfo.source)
+}
+#if LANG_CXX11
+void MessageInfo::set_source(::std::string&& value) {
+  set_has_source();
+  source_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.MessageInfo.source)
+}
+#endif
+void MessageInfo::set_source(const char* value) {
+  set_has_source();
+  source_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.MessageInfo.source)
+}
+void MessageInfo::set_source(const char* value, size_t size) {
+  set_has_source();
+  source_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.MessageInfo.source)
+}
+::std::string* MessageInfo::mutable_source() {
+  set_has_source();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.MessageInfo.source)
+  return source_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* MessageInfo::release_source() {
+  // @@protoc_insertion_point(field_release:GstDebugger.MessageInfo.source)
+  clear_has_source();
+  return source_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void MessageInfo::set_allocated_source(::std::string* source) {
+  if (source != NULL) {
+    set_has_source();
+  } else {
+    clear_has_source();
+  }
+  source_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), source);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.MessageInfo.source)
+}
+
+// required uint32 seqnum = 4;
+bool MessageInfo::has_seqnum() const {
+  return (_has_bits_[0] & 0x00000010u) != 0;
+}
+void MessageInfo::set_has_seqnum() {
+  _has_bits_[0] |= 0x00000010u;
+}
+void MessageInfo::clear_has_seqnum() {
+  _has_bits_[0] &= ~0x00000010u;
+}
+void MessageInfo::clear_seqnum() {
+  seqnum_ = 0u;
+  clear_has_seqnum();
+}
+::google::protobuf::uint32 MessageInfo::seqnum() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.MessageInfo.seqnum)
+  return seqnum_;
+}
+void MessageInfo::set_seqnum(::google::protobuf::uint32 value) {
+  set_has_seqnum();
+  seqnum_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.MessageInfo.seqnum)
+}
+
+// required bytes structure_data = 5;
+bool MessageInfo::has_structure_data() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+void MessageInfo::set_has_structure_data() {
+  _has_bits_[0] |= 0x00000002u;
+}
+void MessageInfo::clear_has_structure_data() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+void MessageInfo::clear_structure_data() {
+  structure_data_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_structure_data();
+}
+const ::std::string& MessageInfo::structure_data() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.MessageInfo.structure_data)
+  return structure_data_.GetNoArena();
+}
+void MessageInfo::set_structure_data(const ::std::string& value) {
+  set_has_structure_data();
+  structure_data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.MessageInfo.structure_data)
+}
+#if LANG_CXX11
+void MessageInfo::set_structure_data(::std::string&& value) {
+  set_has_structure_data();
+  structure_data_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.MessageInfo.structure_data)
+}
+#endif
+void MessageInfo::set_structure_data(const char* value) {
+  set_has_structure_data();
+  structure_data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.MessageInfo.structure_data)
+}
+void MessageInfo::set_structure_data(const void* value, size_t size) {
+  set_has_structure_data();
+  structure_data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.MessageInfo.structure_data)
+}
+::std::string* MessageInfo::mutable_structure_data() {
+  set_has_structure_data();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.MessageInfo.structure_data)
+  return structure_data_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* MessageInfo::release_structure_data() {
+  // @@protoc_insertion_point(field_release:GstDebugger.MessageInfo.structure_data)
+  clear_has_structure_data();
+  return structure_data_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void MessageInfo::set_allocated_structure_data(::std::string* structure_data) {
+  if (structure_data != NULL) {
+    set_has_structure_data();
+  } else {
+    clear_has_structure_data();
+  }
+  structure_data_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
structure_data);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.MessageInfo.structure_data)
+}
+
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int EventInfo::kTypeFieldNumber;
+const int EventInfo::kTimestampFieldNumber;
+const int EventInfo::kSeqnumFieldNumber;
+const int EventInfo::kPadFieldNumber;
+const int EventInfo::kStructureDataFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+EventInfo::EventInfo()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.EventInfo)
+}
+EventInfo::EventInfo(const EventInfo& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  pad_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_pad()) {
+    pad_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.pad_);
+  }
+  structure_data_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_structure_data()) {
+    structure_data_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.structure_data_);
+  }
+  ::memcpy(&timestamp_, &from.timestamp_,
+    reinterpret_cast<char*>(&seqnum_) -
+    reinterpret_cast<char*>(&timestamp_) + sizeof(seqnum_));
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.EventInfo)
+}
+
+void EventInfo::SharedCtor() {
+  _cached_size_ = 0;
+  pad_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  structure_data_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  ::memset(&timestamp_, 0, reinterpret_cast<char*>(&seqnum_) -
+    reinterpret_cast<char*>(&timestamp_) + sizeof(seqnum_));
+}
+
+EventInfo::~EventInfo() {
+  // @@protoc_insertion_point(destructor:GstDebugger.EventInfo)
+  SharedDtor();
+}
+
+void EventInfo::SharedDtor() {
+  pad_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  structure_data_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void EventInfo::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* EventInfo::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[5].descriptor;
+}
+
+const EventInfo& EventInfo::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+EventInfo* EventInfo::New(::google::protobuf::Arena* arena) const {
+  EventInfo* n = new EventInfo;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void EventInfo::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.EventInfo)
+  if (_has_bits_[0 / 32] & 3u) {
+    if (has_pad()) {
+      GOOGLE_DCHECK(!pad_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*pad_.UnsafeRawStringPointer())->clear();
+    }
+    if (has_structure_data()) {
+      
GOOGLE_DCHECK(!structure_data_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*structure_data_.UnsafeRawStringPointer())->clear();
+    }
+  }
+  if (_has_bits_[0 / 32] & 28u) {
+    ::memset(&timestamp_, 0, reinterpret_cast<char*>(&seqnum_) -
+      reinterpret_cast<char*>(&timestamp_) + sizeof(seqnum_));
+  }
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool EventInfo::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.EventInfo)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required int32 type = 1;
+      case 1: {
+        if (tag == 8u) {
+          set_has_type();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &type_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required uint64 timestamp = 2;
+      case 2: {
+        if (tag == 16u) {
+          set_has_timestamp();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
+                 input, &timestamp_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required uint32 seqnum = 3;
+      case 3: {
+        if (tag == 24u) {
+          set_has_seqnum();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+                 input, &seqnum_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required string pad = 4;
+      case 4: {
+        if (tag == 34u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_pad()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->pad().data(), this->pad().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.EventInfo.pad");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required bytes structure_data = 5;
+      case 5: {
+        if (tag == 42u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
+                input, this->mutable_structure_data()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.EventInfo)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.EventInfo)
+  return false;
+#undef DO_
+}
+
+void EventInfo::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.EventInfo)
+  // required int32 type = 1;
+  if (has_type()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->type(), output);
+  }
+
+  // required uint64 timestamp = 2;
+  if (has_timestamp()) {
+    ::google::protobuf::internal::WireFormatLite::WriteUInt64(2, this->timestamp(), output);
+  }
+
+  // required uint32 seqnum = 3;
+  if (has_seqnum()) {
+    ::google::protobuf::internal::WireFormatLite::WriteUInt32(3, this->seqnum(), output);
+  }
+
+  // required string pad = 4;
+  if (has_pad()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->pad().data(), this->pad().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.EventInfo.pad");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      4, this->pad(), output);
+  }
+
+  // required bytes structure_data = 5;
+  if (has_structure_data()) {
+    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
+      5, this->structure_data(), output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.EventInfo)
+}
+
+::google::protobuf::uint8* EventInfo::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.EventInfo)
+  // required int32 type = 1;
+  if (has_type()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->type(), target);
+  }
+
+  // required uint64 timestamp = 2;
+  if (has_timestamp()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(2, this->timestamp(), target);
+  }
+
+  // required uint32 seqnum = 3;
+  if (has_seqnum()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(3, this->seqnum(), target);
+  }
+
+  // required string pad = 4;
+  if (has_pad()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->pad().data(), this->pad().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.EventInfo.pad");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        4, this->pad(), target);
+  }
+
+  // required bytes structure_data = 5;
+  if (has_structure_data()) {
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
+        5, this->structure_data(), target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.EventInfo)
+  return target;
+}
+
+size_t EventInfo::RequiredFieldsByteSizeFallback() const {
+// @@protoc_insertion_point(required_fields_byte_size_fallback_start:GstDebugger.EventInfo)
+  size_t total_size = 0;
+
+  if (has_pad()) {
+    // required string pad = 4;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->pad());
+  }
+
+  if (has_structure_data()) {
+    // required bytes structure_data = 5;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::BytesSize(
+        this->structure_data());
+  }
+
+  if (has_timestamp()) {
+    // required uint64 timestamp = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::UInt64Size(
+        this->timestamp());
+  }
+
+  if (has_type()) {
+    // required int32 type = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->type());
+  }
+
+  if (has_seqnum()) {
+    // required uint32 seqnum = 3;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::UInt32Size(
+        this->seqnum());
+  }
+
+  return total_size;
+}
+size_t EventInfo::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.EventInfo)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  if (((_has_bits_[0] & 0x0000001f) ^ 0x0000001f) == 0) {  // All required fields are present.
+    // required string pad = 4;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->pad());
+
+    // required bytes structure_data = 5;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::BytesSize(
+        this->structure_data());
+
+    // required uint64 timestamp = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::UInt64Size(
+        this->timestamp());
+
+    // required int32 type = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->type());
+
+    // required uint32 seqnum = 3;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::UInt32Size(
+        this->seqnum());
+
+  } else {
+    total_size += RequiredFieldsByteSizeFallback();
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void EventInfo::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.EventInfo)
+  GOOGLE_DCHECK_NE(&from, this);
+  const EventInfo* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const EventInfo>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.EventInfo)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.EventInfo)
+    MergeFrom(*source);
+  }
+}
+
+void EventInfo::MergeFrom(const EventInfo& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.EventInfo)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from._has_bits_[0 / 32] & 31u) {
+    if (from.has_pad()) {
+      set_has_pad();
+      pad_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.pad_);
+    }
+    if (from.has_structure_data()) {
+      set_has_structure_data();
+      structure_data_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.structure_data_);
+    }
+    if (from.has_timestamp()) {
+      set_timestamp(from.timestamp());
+    }
+    if (from.has_type()) {
+      set_type(from.type());
+    }
+    if (from.has_seqnum()) {
+      set_seqnum(from.seqnum());
+    }
+  }
+}
+
+void EventInfo::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.EventInfo)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void EventInfo::CopyFrom(const EventInfo& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.EventInfo)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool EventInfo::IsInitialized() const {
+  if ((_has_bits_[0] & 0x0000001f) != 0x0000001f) return false;
+  return true;
+}
+
+void EventInfo::Swap(EventInfo* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void EventInfo::InternalSwap(EventInfo* other) {
+  pad_.Swap(&other->pad_);
+  structure_data_.Swap(&other->structure_data_);
+  std::swap(timestamp_, other->timestamp_);
+  std::swap(type_, other->type_);
+  std::swap(seqnum_, other->seqnum_);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata EventInfo::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[5];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// EventInfo
+
+// required int32 type = 1;
+bool EventInfo::has_type() const {
+  return (_has_bits_[0] & 0x00000008u) != 0;
+}
+void EventInfo::set_has_type() {
+  _has_bits_[0] |= 0x00000008u;
+}
+void EventInfo::clear_has_type() {
+  _has_bits_[0] &= ~0x00000008u;
+}
+void EventInfo::clear_type() {
+  type_ = 0;
+  clear_has_type();
+}
+::google::protobuf::int32 EventInfo::type() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.EventInfo.type)
+  return type_;
+}
+void EventInfo::set_type(::google::protobuf::int32 value) {
+  set_has_type();
+  type_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.EventInfo.type)
+}
+
+// required uint64 timestamp = 2;
+bool EventInfo::has_timestamp() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+void EventInfo::set_has_timestamp() {
+  _has_bits_[0] |= 0x00000004u;
+}
+void EventInfo::clear_has_timestamp() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+void EventInfo::clear_timestamp() {
+  timestamp_ = GOOGLE_ULONGLONG(0);
+  clear_has_timestamp();
+}
+::google::protobuf::uint64 EventInfo::timestamp() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.EventInfo.timestamp)
+  return timestamp_;
+}
+void EventInfo::set_timestamp(::google::protobuf::uint64 value) {
+  set_has_timestamp();
+  timestamp_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.EventInfo.timestamp)
+}
+
+// required uint32 seqnum = 3;
+bool EventInfo::has_seqnum() const {
+  return (_has_bits_[0] & 0x00000010u) != 0;
+}
+void EventInfo::set_has_seqnum() {
+  _has_bits_[0] |= 0x00000010u;
+}
+void EventInfo::clear_has_seqnum() {
+  _has_bits_[0] &= ~0x00000010u;
+}
+void EventInfo::clear_seqnum() {
+  seqnum_ = 0u;
+  clear_has_seqnum();
+}
+::google::protobuf::uint32 EventInfo::seqnum() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.EventInfo.seqnum)
+  return seqnum_;
+}
+void EventInfo::set_seqnum(::google::protobuf::uint32 value) {
+  set_has_seqnum();
+  seqnum_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.EventInfo.seqnum)
+}
+
+// required string pad = 4;
+bool EventInfo::has_pad() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void EventInfo::set_has_pad() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void EventInfo::clear_has_pad() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void EventInfo::clear_pad() {
+  pad_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_pad();
+}
+const ::std::string& EventInfo::pad() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.EventInfo.pad)
+  return pad_.GetNoArena();
+}
+void EventInfo::set_pad(const ::std::string& value) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.EventInfo.pad)
+}
+#if LANG_CXX11
+void EventInfo::set_pad(::std::string&& value) {
+  set_has_pad();
+  pad_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.EventInfo.pad)
+}
+#endif
+void EventInfo::set_pad(const char* value) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.EventInfo.pad)
+}
+void EventInfo::set_pad(const char* value, size_t size) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.EventInfo.pad)
+}
+::std::string* EventInfo::mutable_pad() {
+  set_has_pad();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.EventInfo.pad)
+  return pad_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* EventInfo::release_pad() {
+  // @@protoc_insertion_point(field_release:GstDebugger.EventInfo.pad)
+  clear_has_pad();
+  return pad_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void EventInfo::set_allocated_pad(::std::string* pad) {
+  if (pad != NULL) {
+    set_has_pad();
+  } else {
+    clear_has_pad();
+  }
+  pad_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), pad);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.EventInfo.pad)
+}
+
+// required bytes structure_data = 5;
+bool EventInfo::has_structure_data() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+void EventInfo::set_has_structure_data() {
+  _has_bits_[0] |= 0x00000002u;
+}
+void EventInfo::clear_has_structure_data() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+void EventInfo::clear_structure_data() {
+  structure_data_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_structure_data();
+}
+const ::std::string& EventInfo::structure_data() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.EventInfo.structure_data)
+  return structure_data_.GetNoArena();
+}
+void EventInfo::set_structure_data(const ::std::string& value) {
+  set_has_structure_data();
+  structure_data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.EventInfo.structure_data)
+}
+#if LANG_CXX11
+void EventInfo::set_structure_data(::std::string&& value) {
+  set_has_structure_data();
+  structure_data_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.EventInfo.structure_data)
+}
+#endif
+void EventInfo::set_structure_data(const char* value) {
+  set_has_structure_data();
+  structure_data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.EventInfo.structure_data)
+}
+void EventInfo::set_structure_data(const void* value, size_t size) {
+  set_has_structure_data();
+  structure_data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.EventInfo.structure_data)
+}
+::std::string* EventInfo::mutable_structure_data() {
+  set_has_structure_data();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.EventInfo.structure_data)
+  return structure_data_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* EventInfo::release_structure_data() {
+  // @@protoc_insertion_point(field_release:GstDebugger.EventInfo.structure_data)
+  clear_has_structure_data();
+  return structure_data_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void EventInfo::set_allocated_structure_data(::std::string* structure_data) {
+  if (structure_data != NULL) {
+    set_has_structure_data();
+  } else {
+    clear_has_structure_data();
+  }
+  structure_data_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
structure_data);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.EventInfo.structure_data)
+}
+
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int QueryInfo::kTypeFieldNumber;
+const int QueryInfo::kPadFieldNumber;
+const int QueryInfo::kStructureDataFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+QueryInfo::QueryInfo()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.QueryInfo)
+}
+QueryInfo::QueryInfo(const QueryInfo& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  pad_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_pad()) {
+    pad_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.pad_);
+  }
+  structure_data_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_structure_data()) {
+    structure_data_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.structure_data_);
+  }
+  type_ = from.type_;
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.QueryInfo)
+}
+
+void QueryInfo::SharedCtor() {
+  _cached_size_ = 0;
+  pad_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  structure_data_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  type_ = 0;
+}
+
+QueryInfo::~QueryInfo() {
+  // @@protoc_insertion_point(destructor:GstDebugger.QueryInfo)
+  SharedDtor();
+}
+
+void QueryInfo::SharedDtor() {
+  pad_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  structure_data_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void QueryInfo::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* QueryInfo::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[6].descriptor;
+}
+
+const QueryInfo& QueryInfo::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+QueryInfo* QueryInfo::New(::google::protobuf::Arena* arena) const {
+  QueryInfo* n = new QueryInfo;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void QueryInfo::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.QueryInfo)
+  if (_has_bits_[0 / 32] & 3u) {
+    if (has_pad()) {
+      GOOGLE_DCHECK(!pad_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*pad_.UnsafeRawStringPointer())->clear();
+    }
+    if (has_structure_data()) {
+      
GOOGLE_DCHECK(!structure_data_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*structure_data_.UnsafeRawStringPointer())->clear();
+    }
+  }
+  type_ = 0;
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool QueryInfo::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.QueryInfo)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required int32 type = 1;
+      case 1: {
+        if (tag == 8u) {
+          set_has_type();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &type_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required string pad = 2;
+      case 2: {
+        if (tag == 18u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_pad()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->pad().data(), this->pad().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.QueryInfo.pad");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required bytes structure_data = 3;
+      case 3: {
+        if (tag == 26u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
+                input, this->mutable_structure_data()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.QueryInfo)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.QueryInfo)
+  return false;
+#undef DO_
+}
+
+void QueryInfo::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.QueryInfo)
+  // required int32 type = 1;
+  if (has_type()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->type(), output);
+  }
+
+  // required string pad = 2;
+  if (has_pad()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->pad().data(), this->pad().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.QueryInfo.pad");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      2, this->pad(), output);
+  }
+
+  // required bytes structure_data = 3;
+  if (has_structure_data()) {
+    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
+      3, this->structure_data(), output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.QueryInfo)
+}
+
+::google::protobuf::uint8* QueryInfo::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.QueryInfo)
+  // required int32 type = 1;
+  if (has_type()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->type(), target);
+  }
+
+  // required string pad = 2;
+  if (has_pad()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->pad().data(), this->pad().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.QueryInfo.pad");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        2, this->pad(), target);
+  }
+
+  // required bytes structure_data = 3;
+  if (has_structure_data()) {
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
+        3, this->structure_data(), target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.QueryInfo)
+  return target;
+}
+
+size_t QueryInfo::RequiredFieldsByteSizeFallback() const {
+// @@protoc_insertion_point(required_fields_byte_size_fallback_start:GstDebugger.QueryInfo)
+  size_t total_size = 0;
+
+  if (has_pad()) {
+    // required string pad = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->pad());
+  }
+
+  if (has_structure_data()) {
+    // required bytes structure_data = 3;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::BytesSize(
+        this->structure_data());
+  }
+
+  if (has_type()) {
+    // required int32 type = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->type());
+  }
+
+  return total_size;
+}
+size_t QueryInfo::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.QueryInfo)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  if (((_has_bits_[0] & 0x00000007) ^ 0x00000007) == 0) {  // All required fields are present.
+    // required string pad = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->pad());
+
+    // required bytes structure_data = 3;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::BytesSize(
+        this->structure_data());
+
+    // required int32 type = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->type());
+
+  } else {
+    total_size += RequiredFieldsByteSizeFallback();
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void QueryInfo::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.QueryInfo)
+  GOOGLE_DCHECK_NE(&from, this);
+  const QueryInfo* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const QueryInfo>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.QueryInfo)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.QueryInfo)
+    MergeFrom(*source);
+  }
+}
+
+void QueryInfo::MergeFrom(const QueryInfo& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.QueryInfo)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from._has_bits_[0 / 32] & 7u) {
+    if (from.has_pad()) {
+      set_has_pad();
+      pad_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.pad_);
+    }
+    if (from.has_structure_data()) {
+      set_has_structure_data();
+      structure_data_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.structure_data_);
+    }
+    if (from.has_type()) {
+      set_type(from.type());
+    }
+  }
+}
+
+void QueryInfo::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.QueryInfo)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void QueryInfo::CopyFrom(const QueryInfo& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.QueryInfo)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool QueryInfo::IsInitialized() const {
+  if ((_has_bits_[0] & 0x00000007) != 0x00000007) return false;
+  return true;
+}
+
+void QueryInfo::Swap(QueryInfo* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void QueryInfo::InternalSwap(QueryInfo* other) {
+  pad_.Swap(&other->pad_);
+  structure_data_.Swap(&other->structure_data_);
+  std::swap(type_, other->type_);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata QueryInfo::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[6];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// QueryInfo
+
+// required int32 type = 1;
+bool QueryInfo::has_type() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+void QueryInfo::set_has_type() {
+  _has_bits_[0] |= 0x00000004u;
+}
+void QueryInfo::clear_has_type() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+void QueryInfo::clear_type() {
+  type_ = 0;
+  clear_has_type();
+}
+::google::protobuf::int32 QueryInfo::type() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.QueryInfo.type)
+  return type_;
+}
+void QueryInfo::set_type(::google::protobuf::int32 value) {
+  set_has_type();
+  type_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.QueryInfo.type)
+}
+
+// required string pad = 2;
+bool QueryInfo::has_pad() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void QueryInfo::set_has_pad() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void QueryInfo::clear_has_pad() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void QueryInfo::clear_pad() {
+  pad_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_pad();
+}
+const ::std::string& QueryInfo::pad() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.QueryInfo.pad)
+  return pad_.GetNoArena();
+}
+void QueryInfo::set_pad(const ::std::string& value) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.QueryInfo.pad)
+}
+#if LANG_CXX11
+void QueryInfo::set_pad(::std::string&& value) {
+  set_has_pad();
+  pad_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.QueryInfo.pad)
+}
+#endif
+void QueryInfo::set_pad(const char* value) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.QueryInfo.pad)
+}
+void QueryInfo::set_pad(const char* value, size_t size) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.QueryInfo.pad)
+}
+::std::string* QueryInfo::mutable_pad() {
+  set_has_pad();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.QueryInfo.pad)
+  return pad_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* QueryInfo::release_pad() {
+  // @@protoc_insertion_point(field_release:GstDebugger.QueryInfo.pad)
+  clear_has_pad();
+  return pad_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void QueryInfo::set_allocated_pad(::std::string* pad) {
+  if (pad != NULL) {
+    set_has_pad();
+  } else {
+    clear_has_pad();
+  }
+  pad_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), pad);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.QueryInfo.pad)
+}
+
+// required bytes structure_data = 3;
+bool QueryInfo::has_structure_data() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+void QueryInfo::set_has_structure_data() {
+  _has_bits_[0] |= 0x00000002u;
+}
+void QueryInfo::clear_has_structure_data() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+void QueryInfo::clear_structure_data() {
+  structure_data_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_structure_data();
+}
+const ::std::string& QueryInfo::structure_data() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.QueryInfo.structure_data)
+  return structure_data_.GetNoArena();
+}
+void QueryInfo::set_structure_data(const ::std::string& value) {
+  set_has_structure_data();
+  structure_data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.QueryInfo.structure_data)
+}
+#if LANG_CXX11
+void QueryInfo::set_structure_data(::std::string&& value) {
+  set_has_structure_data();
+  structure_data_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.QueryInfo.structure_data)
+}
+#endif
+void QueryInfo::set_structure_data(const char* value) {
+  set_has_structure_data();
+  structure_data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.QueryInfo.structure_data)
+}
+void QueryInfo::set_structure_data(const void* value, size_t size) {
+  set_has_structure_data();
+  structure_data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.QueryInfo.structure_data)
+}
+::std::string* QueryInfo::mutable_structure_data() {
+  set_has_structure_data();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.QueryInfo.structure_data)
+  return structure_data_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* QueryInfo::release_structure_data() {
+  // @@protoc_insertion_point(field_release:GstDebugger.QueryInfo.structure_data)
+  clear_has_structure_data();
+  return structure_data_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void QueryInfo::set_allocated_structure_data(::std::string* structure_data) {
+  if (structure_data != NULL) {
+    set_has_structure_data();
+  } else {
+    clear_has_structure_data();
+  }
+  structure_data_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
structure_data);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.QueryInfo.structure_data)
+}
+
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int BufferInfo::kPtsFieldNumber;
+const int BufferInfo::kDtsFieldNumber;
+const int BufferInfo::kDurationFieldNumber;
+const int BufferInfo::kOffsetFieldNumber;
+const int BufferInfo::kOffsetEndFieldNumber;
+const int BufferInfo::kSizeFieldNumber;
+const int BufferInfo::kPadFieldNumber;
+const int BufferInfo::kDataFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+BufferInfo::BufferInfo()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.BufferInfo)
+}
+BufferInfo::BufferInfo(const BufferInfo& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  pad_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_pad()) {
+    pad_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.pad_);
+  }
+  data_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_data()) {
+    data_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.data_);
+  }
+  ::memcpy(&pts_, &from.pts_,
+    reinterpret_cast<char*>(&size_) -
+    reinterpret_cast<char*>(&pts_) + sizeof(size_));
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.BufferInfo)
+}
+
+void BufferInfo::SharedCtor() {
+  _cached_size_ = 0;
+  pad_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  data_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  ::memset(&pts_, 0, reinterpret_cast<char*>(&size_) -
+    reinterpret_cast<char*>(&pts_) + sizeof(size_));
+}
+
+BufferInfo::~BufferInfo() {
+  // @@protoc_insertion_point(destructor:GstDebugger.BufferInfo)
+  SharedDtor();
+}
+
+void BufferInfo::SharedDtor() {
+  pad_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  data_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void BufferInfo::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* BufferInfo::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[7].descriptor;
+}
+
+const BufferInfo& BufferInfo::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+BufferInfo* BufferInfo::New(::google::protobuf::Arena* arena) const {
+  BufferInfo* n = new BufferInfo;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void BufferInfo::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.BufferInfo)
+  if (_has_bits_[0 / 32] & 3u) {
+    if (has_pad()) {
+      GOOGLE_DCHECK(!pad_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*pad_.UnsafeRawStringPointer())->clear();
+    }
+    if (has_data()) {
+      GOOGLE_DCHECK(!data_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*data_.UnsafeRawStringPointer())->clear();
+    }
+  }
+  if (_has_bits_[0 / 32] & 252u) {
+    ::memset(&pts_, 0, reinterpret_cast<char*>(&size_) -
+      reinterpret_cast<char*>(&pts_) + sizeof(size_));
+  }
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool BufferInfo::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.BufferInfo)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required uint64 pts = 1;
+      case 1: {
+        if (tag == 8u) {
+          set_has_pts();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
+                 input, &pts_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required uint64 dts = 2;
+      case 2: {
+        if (tag == 16u) {
+          set_has_dts();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
+                 input, &dts_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required uint64 duration = 3;
+      case 3: {
+        if (tag == 24u) {
+          set_has_duration();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
+                 input, &duration_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required uint64 offset = 4;
+      case 4: {
+        if (tag == 32u) {
+          set_has_offset();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
+                 input, &offset_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required uint64 offset_end = 5;
+      case 5: {
+        if (tag == 40u) {
+          set_has_offset_end();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
+                 input, &offset_end_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required uint64 size = 6;
+      case 6: {
+        if (tag == 48u) {
+          set_has_size();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::uint64, ::google::protobuf::internal::WireFormatLite::TYPE_UINT64>(
+                 input, &size_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required string pad = 7;
+      case 7: {
+        if (tag == 58u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_pad()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->pad().data(), this->pad().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.BufferInfo.pad");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional bytes data = 8;
+      case 8: {
+        if (tag == 66u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
+                input, this->mutable_data()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.BufferInfo)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.BufferInfo)
+  return false;
+#undef DO_
+}
+
+void BufferInfo::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.BufferInfo)
+  // required uint64 pts = 1;
+  if (has_pts()) {
+    ::google::protobuf::internal::WireFormatLite::WriteUInt64(1, this->pts(), output);
+  }
+
+  // required uint64 dts = 2;
+  if (has_dts()) {
+    ::google::protobuf::internal::WireFormatLite::WriteUInt64(2, this->dts(), output);
+  }
+
+  // required uint64 duration = 3;
+  if (has_duration()) {
+    ::google::protobuf::internal::WireFormatLite::WriteUInt64(3, this->duration(), output);
+  }
+
+  // required uint64 offset = 4;
+  if (has_offset()) {
+    ::google::protobuf::internal::WireFormatLite::WriteUInt64(4, this->offset(), output);
+  }
+
+  // required uint64 offset_end = 5;
+  if (has_offset_end()) {
+    ::google::protobuf::internal::WireFormatLite::WriteUInt64(5, this->offset_end(), output);
+  }
+
+  // required uint64 size = 6;
+  if (has_size()) {
+    ::google::protobuf::internal::WireFormatLite::WriteUInt64(6, this->size(), output);
+  }
+
+  // required string pad = 7;
+  if (has_pad()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->pad().data(), this->pad().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.BufferInfo.pad");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      7, this->pad(), output);
+  }
+
+  // optional bytes data = 8;
+  if (has_data()) {
+    ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
+      8, this->data(), output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.BufferInfo)
+}
+
+::google::protobuf::uint8* BufferInfo::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.BufferInfo)
+  // required uint64 pts = 1;
+  if (has_pts()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(1, this->pts(), target);
+  }
+
+  // required uint64 dts = 2;
+  if (has_dts()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(2, this->dts(), target);
+  }
+
+  // required uint64 duration = 3;
+  if (has_duration()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(3, this->duration(), target);
+  }
+
+  // required uint64 offset = 4;
+  if (has_offset()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(4, this->offset(), target);
+  }
+
+  // required uint64 offset_end = 5;
+  if (has_offset_end()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(5, this->offset_end(), target);
+  }
+
+  // required uint64 size = 6;
+  if (has_size()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteUInt64ToArray(6, this->size(), target);
+  }
+
+  // required string pad = 7;
+  if (has_pad()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->pad().data(), this->pad().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.BufferInfo.pad");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        7, this->pad(), target);
+  }
+
+  // optional bytes data = 8;
+  if (has_data()) {
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
+        8, this->data(), target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.BufferInfo)
+  return target;
+}
+
+size_t BufferInfo::RequiredFieldsByteSizeFallback() const {
+// @@protoc_insertion_point(required_fields_byte_size_fallback_start:GstDebugger.BufferInfo)
+  size_t total_size = 0;
+
+  if (has_pad()) {
+    // required string pad = 7;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->pad());
+  }
+
+  if (has_pts()) {
+    // required uint64 pts = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::UInt64Size(
+        this->pts());
+  }
+
+  if (has_dts()) {
+    // required uint64 dts = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::UInt64Size(
+        this->dts());
+  }
+
+  if (has_duration()) {
+    // required uint64 duration = 3;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::UInt64Size(
+        this->duration());
+  }
+
+  if (has_offset()) {
+    // required uint64 offset = 4;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::UInt64Size(
+        this->offset());
+  }
+
+  if (has_offset_end()) {
+    // required uint64 offset_end = 5;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::UInt64Size(
+        this->offset_end());
+  }
+
+  if (has_size()) {
+    // required uint64 size = 6;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::UInt64Size(
+        this->size());
+  }
+
+  return total_size;
+}
+size_t BufferInfo::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.BufferInfo)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  if (((_has_bits_[0] & 0x000000fd) ^ 0x000000fd) == 0) {  // All required fields are present.
+    // required string pad = 7;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->pad());
+
+    // required uint64 pts = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::UInt64Size(
+        this->pts());
+
+    // required uint64 dts = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::UInt64Size(
+        this->dts());
+
+    // required uint64 duration = 3;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::UInt64Size(
+        this->duration());
+
+    // required uint64 offset = 4;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::UInt64Size(
+        this->offset());
+
+    // required uint64 offset_end = 5;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::UInt64Size(
+        this->offset_end());
+
+    // required uint64 size = 6;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::UInt64Size(
+        this->size());
+
+  } else {
+    total_size += RequiredFieldsByteSizeFallback();
+  }
+  // optional bytes data = 8;
+  if (has_data()) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::BytesSize(
+        this->data());
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void BufferInfo::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.BufferInfo)
+  GOOGLE_DCHECK_NE(&from, this);
+  const BufferInfo* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const BufferInfo>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.BufferInfo)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.BufferInfo)
+    MergeFrom(*source);
+  }
+}
+
+void BufferInfo::MergeFrom(const BufferInfo& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.BufferInfo)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from._has_bits_[0 / 32] & 255u) {
+    if (from.has_pad()) {
+      set_has_pad();
+      pad_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.pad_);
+    }
+    if (from.has_data()) {
+      set_has_data();
+      data_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.data_);
+    }
+    if (from.has_pts()) {
+      set_pts(from.pts());
+    }
+    if (from.has_dts()) {
+      set_dts(from.dts());
+    }
+    if (from.has_duration()) {
+      set_duration(from.duration());
+    }
+    if (from.has_offset()) {
+      set_offset(from.offset());
+    }
+    if (from.has_offset_end()) {
+      set_offset_end(from.offset_end());
+    }
+    if (from.has_size()) {
+      set_size(from.size());
+    }
+  }
+}
+
+void BufferInfo::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.BufferInfo)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void BufferInfo::CopyFrom(const BufferInfo& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.BufferInfo)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool BufferInfo::IsInitialized() const {
+  if ((_has_bits_[0] & 0x000000fd) != 0x000000fd) return false;
+  return true;
+}
+
+void BufferInfo::Swap(BufferInfo* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void BufferInfo::InternalSwap(BufferInfo* other) {
+  pad_.Swap(&other->pad_);
+  data_.Swap(&other->data_);
+  std::swap(pts_, other->pts_);
+  std::swap(dts_, other->dts_);
+  std::swap(duration_, other->duration_);
+  std::swap(offset_, other->offset_);
+  std::swap(offset_end_, other->offset_end_);
+  std::swap(size_, other->size_);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata BufferInfo::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[7];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// BufferInfo
+
+// required uint64 pts = 1;
+bool BufferInfo::has_pts() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+void BufferInfo::set_has_pts() {
+  _has_bits_[0] |= 0x00000004u;
+}
+void BufferInfo::clear_has_pts() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+void BufferInfo::clear_pts() {
+  pts_ = GOOGLE_ULONGLONG(0);
+  clear_has_pts();
+}
+::google::protobuf::uint64 BufferInfo::pts() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.BufferInfo.pts)
+  return pts_;
+}
+void BufferInfo::set_pts(::google::protobuf::uint64 value) {
+  set_has_pts();
+  pts_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.BufferInfo.pts)
+}
+
+// required uint64 dts = 2;
+bool BufferInfo::has_dts() const {
+  return (_has_bits_[0] & 0x00000008u) != 0;
+}
+void BufferInfo::set_has_dts() {
+  _has_bits_[0] |= 0x00000008u;
+}
+void BufferInfo::clear_has_dts() {
+  _has_bits_[0] &= ~0x00000008u;
+}
+void BufferInfo::clear_dts() {
+  dts_ = GOOGLE_ULONGLONG(0);
+  clear_has_dts();
+}
+::google::protobuf::uint64 BufferInfo::dts() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.BufferInfo.dts)
+  return dts_;
+}
+void BufferInfo::set_dts(::google::protobuf::uint64 value) {
+  set_has_dts();
+  dts_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.BufferInfo.dts)
+}
+
+// required uint64 duration = 3;
+bool BufferInfo::has_duration() const {
+  return (_has_bits_[0] & 0x00000010u) != 0;
+}
+void BufferInfo::set_has_duration() {
+  _has_bits_[0] |= 0x00000010u;
+}
+void BufferInfo::clear_has_duration() {
+  _has_bits_[0] &= ~0x00000010u;
+}
+void BufferInfo::clear_duration() {
+  duration_ = GOOGLE_ULONGLONG(0);
+  clear_has_duration();
+}
+::google::protobuf::uint64 BufferInfo::duration() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.BufferInfo.duration)
+  return duration_;
+}
+void BufferInfo::set_duration(::google::protobuf::uint64 value) {
+  set_has_duration();
+  duration_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.BufferInfo.duration)
+}
+
+// required uint64 offset = 4;
+bool BufferInfo::has_offset() const {
+  return (_has_bits_[0] & 0x00000020u) != 0;
+}
+void BufferInfo::set_has_offset() {
+  _has_bits_[0] |= 0x00000020u;
+}
+void BufferInfo::clear_has_offset() {
+  _has_bits_[0] &= ~0x00000020u;
+}
+void BufferInfo::clear_offset() {
+  offset_ = GOOGLE_ULONGLONG(0);
+  clear_has_offset();
+}
+::google::protobuf::uint64 BufferInfo::offset() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.BufferInfo.offset)
+  return offset_;
+}
+void BufferInfo::set_offset(::google::protobuf::uint64 value) {
+  set_has_offset();
+  offset_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.BufferInfo.offset)
+}
+
+// required uint64 offset_end = 5;
+bool BufferInfo::has_offset_end() const {
+  return (_has_bits_[0] & 0x00000040u) != 0;
+}
+void BufferInfo::set_has_offset_end() {
+  _has_bits_[0] |= 0x00000040u;
+}
+void BufferInfo::clear_has_offset_end() {
+  _has_bits_[0] &= ~0x00000040u;
+}
+void BufferInfo::clear_offset_end() {
+  offset_end_ = GOOGLE_ULONGLONG(0);
+  clear_has_offset_end();
+}
+::google::protobuf::uint64 BufferInfo::offset_end() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.BufferInfo.offset_end)
+  return offset_end_;
+}
+void BufferInfo::set_offset_end(::google::protobuf::uint64 value) {
+  set_has_offset_end();
+  offset_end_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.BufferInfo.offset_end)
+}
+
+// required uint64 size = 6;
+bool BufferInfo::has_size() const {
+  return (_has_bits_[0] & 0x00000080u) != 0;
+}
+void BufferInfo::set_has_size() {
+  _has_bits_[0] |= 0x00000080u;
+}
+void BufferInfo::clear_has_size() {
+  _has_bits_[0] &= ~0x00000080u;
+}
+void BufferInfo::clear_size() {
+  size_ = GOOGLE_ULONGLONG(0);
+  clear_has_size();
+}
+::google::protobuf::uint64 BufferInfo::size() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.BufferInfo.size)
+  return size_;
+}
+void BufferInfo::set_size(::google::protobuf::uint64 value) {
+  set_has_size();
+  size_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.BufferInfo.size)
+}
+
+// required string pad = 7;
+bool BufferInfo::has_pad() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void BufferInfo::set_has_pad() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void BufferInfo::clear_has_pad() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void BufferInfo::clear_pad() {
+  pad_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_pad();
+}
+const ::std::string& BufferInfo::pad() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.BufferInfo.pad)
+  return pad_.GetNoArena();
+}
+void BufferInfo::set_pad(const ::std::string& value) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.BufferInfo.pad)
+}
+#if LANG_CXX11
+void BufferInfo::set_pad(::std::string&& value) {
+  set_has_pad();
+  pad_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.BufferInfo.pad)
+}
+#endif
+void BufferInfo::set_pad(const char* value) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.BufferInfo.pad)
+}
+void BufferInfo::set_pad(const char* value, size_t size) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.BufferInfo.pad)
+}
+::std::string* BufferInfo::mutable_pad() {
+  set_has_pad();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.BufferInfo.pad)
+  return pad_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* BufferInfo::release_pad() {
+  // @@protoc_insertion_point(field_release:GstDebugger.BufferInfo.pad)
+  clear_has_pad();
+  return pad_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void BufferInfo::set_allocated_pad(::std::string* pad) {
+  if (pad != NULL) {
+    set_has_pad();
+  } else {
+    clear_has_pad();
+  }
+  pad_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), pad);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.BufferInfo.pad)
+}
+
+// optional bytes data = 8;
+bool BufferInfo::has_data() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+void BufferInfo::set_has_data() {
+  _has_bits_[0] |= 0x00000002u;
+}
+void BufferInfo::clear_has_data() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+void BufferInfo::clear_data() {
+  data_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_data();
+}
+const ::std::string& BufferInfo::data() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.BufferInfo.data)
+  return data_.GetNoArena();
+}
+void BufferInfo::set_data(const ::std::string& value) {
+  set_has_data();
+  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.BufferInfo.data)
+}
+#if LANG_CXX11
+void BufferInfo::set_data(::std::string&& value) {
+  set_has_data();
+  data_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.BufferInfo.data)
+}
+#endif
+void BufferInfo::set_data(const char* value) {
+  set_has_data();
+  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.BufferInfo.data)
+}
+void BufferInfo::set_data(const void* value, size_t size) {
+  set_has_data();
+  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.BufferInfo.data)
+}
+::std::string* BufferInfo::mutable_data() {
+  set_has_data();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.BufferInfo.data)
+  return data_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* BufferInfo::release_data() {
+  // @@protoc_insertion_point(field_release:GstDebugger.BufferInfo.data)
+  clear_has_data();
+  return data_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void BufferInfo::set_allocated_data(::std::string* data) {
+  if (data != NULL) {
+    set_has_data();
+  } else {
+    clear_has_data();
+  }
+  data_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), data);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.BufferInfo.data)
+}
+
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int TypeDescriptionRequest::kNameFieldNumber;
+const int TypeDescriptionRequest::kTypeFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+TypeDescriptionRequest::TypeDescriptionRequest()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.TypeDescriptionRequest)
+}
+TypeDescriptionRequest::TypeDescriptionRequest(const TypeDescriptionRequest& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_name()) {
+    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
+  }
+  type_ = from.type_;
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.TypeDescriptionRequest)
+}
+
+void TypeDescriptionRequest::SharedCtor() {
+  _cached_size_ = 0;
+  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  type_ = 0;
+}
+
+TypeDescriptionRequest::~TypeDescriptionRequest() {
+  // @@protoc_insertion_point(destructor:GstDebugger.TypeDescriptionRequest)
+  SharedDtor();
+}
+
+void TypeDescriptionRequest::SharedDtor() {
+  name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void TypeDescriptionRequest::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* TypeDescriptionRequest::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[8].descriptor;
+}
+
+const TypeDescriptionRequest& TypeDescriptionRequest::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+TypeDescriptionRequest* TypeDescriptionRequest::New(::google::protobuf::Arena* arena) const {
+  TypeDescriptionRequest* n = new TypeDescriptionRequest;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void TypeDescriptionRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.TypeDescriptionRequest)
+  if (has_name()) {
+    GOOGLE_DCHECK(!name_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+    (*name_.UnsafeRawStringPointer())->clear();
+  }
+  type_ = 0;
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool TypeDescriptionRequest::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.TypeDescriptionRequest)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required string name = 1;
+      case 1: {
+        if (tag == 10u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_name()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->name().data(), this->name().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.TypeDescriptionRequest.name");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required .GstDebugger.TypeDescriptionRequest.Type type = 2;
+      case 2: {
+        if (tag == 16u) {
+          int value;
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+                 input, &value)));
+          if (::GstDebugger::TypeDescriptionRequest_Type_IsValid(value)) {
+            set_type(static_cast< ::GstDebugger::TypeDescriptionRequest_Type >(value));
+          } else {
+            mutable_unknown_fields()->AddVarint(2, value);
+          }
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.TypeDescriptionRequest)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.TypeDescriptionRequest)
+  return false;
+#undef DO_
+}
+
+void TypeDescriptionRequest::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.TypeDescriptionRequest)
+  // required string name = 1;
+  if (has_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->name().data(), this->name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.TypeDescriptionRequest.name");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      1, this->name(), output);
+  }
+
+  // required .GstDebugger.TypeDescriptionRequest.Type type = 2;
+  if (has_type()) {
+    ::google::protobuf::internal::WireFormatLite::WriteEnum(
+      2, this->type(), output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.TypeDescriptionRequest)
+}
+
+::google::protobuf::uint8* TypeDescriptionRequest::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.TypeDescriptionRequest)
+  // required string name = 1;
+  if (has_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->name().data(), this->name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.TypeDescriptionRequest.name");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        1, this->name(), target);
+  }
+
+  // required .GstDebugger.TypeDescriptionRequest.Type type = 2;
+  if (has_type()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
+      2, this->type(), target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.TypeDescriptionRequest)
+  return target;
+}
+
+size_t TypeDescriptionRequest::RequiredFieldsByteSizeFallback() const {
+// @@protoc_insertion_point(required_fields_byte_size_fallback_start:GstDebugger.TypeDescriptionRequest)
+  size_t total_size = 0;
+
+  if (has_name()) {
+    // required string name = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->name());
+  }
+
+  if (has_type()) {
+    // required .GstDebugger.TypeDescriptionRequest.Type type = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::EnumSize(this->type());
+  }
+
+  return total_size;
+}
+size_t TypeDescriptionRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.TypeDescriptionRequest)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  if (((_has_bits_[0] & 0x00000003) ^ 0x00000003) == 0) {  // All required fields are present.
+    // required string name = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->name());
+
+    // required .GstDebugger.TypeDescriptionRequest.Type type = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::EnumSize(this->type());
+
+  } else {
+    total_size += RequiredFieldsByteSizeFallback();
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void TypeDescriptionRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.TypeDescriptionRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  const TypeDescriptionRequest* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const TypeDescriptionRequest>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.TypeDescriptionRequest)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.TypeDescriptionRequest)
+    MergeFrom(*source);
+  }
+}
+
+void TypeDescriptionRequest::MergeFrom(const TypeDescriptionRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.TypeDescriptionRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from._has_bits_[0 / 32] & 3u) {
+    if (from.has_name()) {
+      set_has_name();
+      name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
+    }
+    if (from.has_type()) {
+      set_type(from.type());
+    }
+  }
+}
+
+void TypeDescriptionRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.TypeDescriptionRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void TypeDescriptionRequest::CopyFrom(const TypeDescriptionRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.TypeDescriptionRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool TypeDescriptionRequest::IsInitialized() const {
+  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;
+  return true;
+}
+
+void TypeDescriptionRequest::Swap(TypeDescriptionRequest* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void TypeDescriptionRequest::InternalSwap(TypeDescriptionRequest* other) {
+  name_.Swap(&other->name_);
+  std::swap(type_, other->type_);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata TypeDescriptionRequest::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[8];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// TypeDescriptionRequest
+
+// required string name = 1;
+bool TypeDescriptionRequest::has_name() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void TypeDescriptionRequest::set_has_name() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void TypeDescriptionRequest::clear_has_name() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void TypeDescriptionRequest::clear_name() {
+  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_name();
+}
+const ::std::string& TypeDescriptionRequest::name() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TypeDescriptionRequest.name)
+  return name_.GetNoArena();
+}
+void TypeDescriptionRequest::set_name(const ::std::string& value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.TypeDescriptionRequest.name)
+}
+#if LANG_CXX11
+void TypeDescriptionRequest::set_name(::std::string&& value) {
+  set_has_name();
+  name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.TypeDescriptionRequest.name)
+}
+#endif
+void TypeDescriptionRequest::set_name(const char* value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.TypeDescriptionRequest.name)
+}
+void TypeDescriptionRequest::set_name(const char* value, size_t size) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.TypeDescriptionRequest.name)
+}
+::std::string* TypeDescriptionRequest::mutable_name() {
+  set_has_name();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.TypeDescriptionRequest.name)
+  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* TypeDescriptionRequest::release_name() {
+  // @@protoc_insertion_point(field_release:GstDebugger.TypeDescriptionRequest.name)
+  clear_has_name();
+  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void TypeDescriptionRequest::set_allocated_name(::std::string* name) {
+  if (name != NULL) {
+    set_has_name();
+  } else {
+    clear_has_name();
+  }
+  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.TypeDescriptionRequest.name)
+}
+
+// required .GstDebugger.TypeDescriptionRequest.Type type = 2;
+bool TypeDescriptionRequest::has_type() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+void TypeDescriptionRequest::set_has_type() {
+  _has_bits_[0] |= 0x00000002u;
+}
+void TypeDescriptionRequest::clear_has_type() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+void TypeDescriptionRequest::clear_type() {
+  type_ = 0;
+  clear_has_type();
+}
+::GstDebugger::TypeDescriptionRequest_Type TypeDescriptionRequest::type() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TypeDescriptionRequest.type)
+  return static_cast< ::GstDebugger::TypeDescriptionRequest_Type >(type_);
+}
+void TypeDescriptionRequest::set_type(::GstDebugger::TypeDescriptionRequest_Type value) {
+  assert(::GstDebugger::TypeDescriptionRequest_Type_IsValid(value));
+  set_has_type();
+  type_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.TypeDescriptionRequest.type)
+}
+
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int QueryHookRequest::kTypeFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+QueryHookRequest::QueryHookRequest()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.QueryHookRequest)
+}
+QueryHookRequest::QueryHookRequest(const QueryHookRequest& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  type_ = from.type_;
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.QueryHookRequest)
+}
+
+void QueryHookRequest::SharedCtor() {
+  _cached_size_ = 0;
+  type_ = 0;
+}
+
+QueryHookRequest::~QueryHookRequest() {
+  // @@protoc_insertion_point(destructor:GstDebugger.QueryHookRequest)
+  SharedDtor();
+}
+
+void QueryHookRequest::SharedDtor() {
+}
+
+void QueryHookRequest::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* QueryHookRequest::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[9].descriptor;
+}
+
+const QueryHookRequest& QueryHookRequest::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+QueryHookRequest* QueryHookRequest::New(::google::protobuf::Arena* arena) const {
+  QueryHookRequest* n = new QueryHookRequest;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void QueryHookRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.QueryHookRequest)
+  type_ = 0;
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool QueryHookRequest::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.QueryHookRequest)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required int32 type = 1;
+      case 1: {
+        if (tag == 8u) {
+          set_has_type();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &type_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.QueryHookRequest)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.QueryHookRequest)
+  return false;
+#undef DO_
+}
+
+void QueryHookRequest::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.QueryHookRequest)
+  // required int32 type = 1;
+  if (has_type()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->type(), output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.QueryHookRequest)
+}
+
+::google::protobuf::uint8* QueryHookRequest::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.QueryHookRequest)
+  // required int32 type = 1;
+  if (has_type()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->type(), target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.QueryHookRequest)
+  return target;
+}
+
+size_t QueryHookRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.QueryHookRequest)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  // required int32 type = 1;
+  if (has_type()) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->type());
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void QueryHookRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.QueryHookRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  const QueryHookRequest* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const QueryHookRequest>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.QueryHookRequest)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.QueryHookRequest)
+    MergeFrom(*source);
+  }
+}
+
+void QueryHookRequest::MergeFrom(const QueryHookRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.QueryHookRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from.has_type()) {
+    set_type(from.type());
+  }
+}
+
+void QueryHookRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.QueryHookRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void QueryHookRequest::CopyFrom(const QueryHookRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.QueryHookRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool QueryHookRequest::IsInitialized() const {
+  if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;
+  return true;
+}
+
+void QueryHookRequest::Swap(QueryHookRequest* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void QueryHookRequest::InternalSwap(QueryHookRequest* other) {
+  std::swap(type_, other->type_);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata QueryHookRequest::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[9];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// QueryHookRequest
+
+// required int32 type = 1;
+bool QueryHookRequest::has_type() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void QueryHookRequest::set_has_type() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void QueryHookRequest::clear_has_type() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void QueryHookRequest::clear_type() {
+  type_ = 0;
+  clear_has_type();
+}
+::google::protobuf::int32 QueryHookRequest::type() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.QueryHookRequest.type)
+  return type_;
+}
+void QueryHookRequest::set_type(::google::protobuf::int32 value) {
+  set_has_type();
+  type_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.QueryHookRequest.type)
+}
+
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int BufferHookRequest::kSendDataFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+BufferHookRequest::BufferHookRequest()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.BufferHookRequest)
+}
+BufferHookRequest::BufferHookRequest(const BufferHookRequest& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  send_data_ = from.send_data_;
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.BufferHookRequest)
+}
+
+void BufferHookRequest::SharedCtor() {
+  _cached_size_ = 0;
+  send_data_ = false;
+}
+
+BufferHookRequest::~BufferHookRequest() {
+  // @@protoc_insertion_point(destructor:GstDebugger.BufferHookRequest)
+  SharedDtor();
+}
+
+void BufferHookRequest::SharedDtor() {
+}
+
+void BufferHookRequest::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* BufferHookRequest::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[10].descriptor;
+}
+
+const BufferHookRequest& BufferHookRequest::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+BufferHookRequest* BufferHookRequest::New(::google::protobuf::Arena* arena) const {
+  BufferHookRequest* n = new BufferHookRequest;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void BufferHookRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.BufferHookRequest)
+  send_data_ = false;
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool BufferHookRequest::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.BufferHookRequest)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required bool send_data = 1;
+      case 1: {
+        if (tag == 8u) {
+          set_has_send_data();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+                 input, &send_data_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.BufferHookRequest)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.BufferHookRequest)
+  return false;
+#undef DO_
+}
+
+void BufferHookRequest::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.BufferHookRequest)
+  // required bool send_data = 1;
+  if (has_send_data()) {
+    ::google::protobuf::internal::WireFormatLite::WriteBool(1, this->send_data(), output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.BufferHookRequest)
+}
+
+::google::protobuf::uint8* BufferHookRequest::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.BufferHookRequest)
+  // required bool send_data = 1;
+  if (has_send_data()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(1, this->send_data(), target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.BufferHookRequest)
+  return target;
+}
+
+size_t BufferHookRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.BufferHookRequest)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  // required bool send_data = 1;
+  if (has_send_data()) {
+    total_size += 1 + 1;
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void BufferHookRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.BufferHookRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  const BufferHookRequest* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const BufferHookRequest>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.BufferHookRequest)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.BufferHookRequest)
+    MergeFrom(*source);
+  }
+}
+
+void BufferHookRequest::MergeFrom(const BufferHookRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.BufferHookRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from.has_send_data()) {
+    set_send_data(from.send_data());
+  }
+}
+
+void BufferHookRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.BufferHookRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void BufferHookRequest::CopyFrom(const BufferHookRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.BufferHookRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool BufferHookRequest::IsInitialized() const {
+  if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;
+  return true;
+}
+
+void BufferHookRequest::Swap(BufferHookRequest* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void BufferHookRequest::InternalSwap(BufferHookRequest* other) {
+  std::swap(send_data_, other->send_data_);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata BufferHookRequest::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[10];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// BufferHookRequest
+
+// required bool send_data = 1;
+bool BufferHookRequest::has_send_data() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void BufferHookRequest::set_has_send_data() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void BufferHookRequest::clear_has_send_data() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void BufferHookRequest::clear_send_data() {
+  send_data_ = false;
+  clear_has_send_data();
+}
+bool BufferHookRequest::send_data() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.BufferHookRequest.send_data)
+  return send_data_;
+}
+void BufferHookRequest::set_send_data(bool value) {
+  set_has_send_data();
+  send_data_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.BufferHookRequest.send_data)
+}
+
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int EventHookRequest::kTypeFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+EventHookRequest::EventHookRequest()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.EventHookRequest)
+}
+EventHookRequest::EventHookRequest(const EventHookRequest& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  type_ = from.type_;
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.EventHookRequest)
+}
+
+void EventHookRequest::SharedCtor() {
+  _cached_size_ = 0;
+  type_ = 0;
+}
+
+EventHookRequest::~EventHookRequest() {
+  // @@protoc_insertion_point(destructor:GstDebugger.EventHookRequest)
+  SharedDtor();
+}
+
+void EventHookRequest::SharedDtor() {
+}
+
+void EventHookRequest::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* EventHookRequest::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[11].descriptor;
+}
+
+const EventHookRequest& EventHookRequest::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+EventHookRequest* EventHookRequest::New(::google::protobuf::Arena* arena) const {
+  EventHookRequest* n = new EventHookRequest;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void EventHookRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.EventHookRequest)
+  type_ = 0;
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool EventHookRequest::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.EventHookRequest)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required int32 type = 1;
+      case 1: {
+        if (tag == 8u) {
+          set_has_type();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &type_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.EventHookRequest)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.EventHookRequest)
+  return false;
+#undef DO_
+}
+
+void EventHookRequest::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.EventHookRequest)
+  // required int32 type = 1;
+  if (has_type()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->type(), output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.EventHookRequest)
+}
+
+::google::protobuf::uint8* EventHookRequest::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.EventHookRequest)
+  // required int32 type = 1;
+  if (has_type()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->type(), target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.EventHookRequest)
+  return target;
+}
+
+size_t EventHookRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.EventHookRequest)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  // required int32 type = 1;
+  if (has_type()) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->type());
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void EventHookRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.EventHookRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  const EventHookRequest* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const EventHookRequest>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.EventHookRequest)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.EventHookRequest)
+    MergeFrom(*source);
+  }
+}
+
+void EventHookRequest::MergeFrom(const EventHookRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.EventHookRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from.has_type()) {
+    set_type(from.type());
+  }
+}
+
+void EventHookRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.EventHookRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void EventHookRequest::CopyFrom(const EventHookRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.EventHookRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool EventHookRequest::IsInitialized() const {
+  if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;
+  return true;
+}
+
+void EventHookRequest::Swap(EventHookRequest* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void EventHookRequest::InternalSwap(EventHookRequest* other) {
+  std::swap(type_, other->type_);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata EventHookRequest::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[11];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// EventHookRequest
+
+// required int32 type = 1;
+bool EventHookRequest::has_type() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void EventHookRequest::set_has_type() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void EventHookRequest::clear_has_type() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void EventHookRequest::clear_type() {
+  type_ = 0;
+  clear_has_type();
+}
+::google::protobuf::int32 EventHookRequest::type() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.EventHookRequest.type)
+  return type_;
+}
+void EventHookRequest::set_type(::google::protobuf::int32 value) {
+  set_has_type();
+  type_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.EventHookRequest.type)
+}
+
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int PadHookRequest::kPadFieldNumber;
+const int PadHookRequest::kQueryFieldNumber;
+const int PadHookRequest::kBufferFieldNumber;
+const int PadHookRequest::kEventFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+PadHookRequest::PadHookRequest()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.PadHookRequest)
+}
+PadHookRequest::PadHookRequest(const PadHookRequest& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  pad_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_pad()) {
+    pad_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.pad_);
+  }
+  clear_has_pad_hook_type();
+  switch (from.pad_hook_type_case()) {
+    case kQuery: {
+      mutable_query()->::GstDebugger::QueryHookRequest::MergeFrom(from.query());
+      break;
+    }
+    case kBuffer: {
+      mutable_buffer()->::GstDebugger::BufferHookRequest::MergeFrom(from.buffer());
+      break;
+    }
+    case kEvent: {
+      mutable_event()->::GstDebugger::EventHookRequest::MergeFrom(from.event());
+      break;
+    }
+    case PAD_HOOK_TYPE_NOT_SET: {
+      break;
+    }
+  }
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.PadHookRequest)
+}
+
+void PadHookRequest::SharedCtor() {
+  _cached_size_ = 0;
+  pad_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_pad_hook_type();
+}
+
+PadHookRequest::~PadHookRequest() {
+  // @@protoc_insertion_point(destructor:GstDebugger.PadHookRequest)
+  SharedDtor();
+}
+
+void PadHookRequest::SharedDtor() {
+  pad_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (has_pad_hook_type()) {
+    clear_pad_hook_type();
+  }
+}
+
+void PadHookRequest::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* PadHookRequest::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[12].descriptor;
+}
+
+const PadHookRequest& PadHookRequest::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+PadHookRequest* PadHookRequest::New(::google::protobuf::Arena* arena) const {
+  PadHookRequest* n = new PadHookRequest;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void PadHookRequest::clear_pad_hook_type() {
+// @@protoc_insertion_point(one_of_clear_start:GstDebugger.PadHookRequest)
+  switch (pad_hook_type_case()) {
+    case kQuery: {
+      delete pad_hook_type_.query_;
+      break;
+    }
+    case kBuffer: {
+      delete pad_hook_type_.buffer_;
+      break;
+    }
+    case kEvent: {
+      delete pad_hook_type_.event_;
+      break;
+    }
+    case PAD_HOOK_TYPE_NOT_SET: {
+      break;
+    }
+  }
+  _oneof_case_[0] = PAD_HOOK_TYPE_NOT_SET;
+}
+
+
+void PadHookRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.PadHookRequest)
+  if (has_pad()) {
+    GOOGLE_DCHECK(!pad_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+    (*pad_.UnsafeRawStringPointer())->clear();
+  }
+  clear_pad_hook_type();
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool PadHookRequest::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.PadHookRequest)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // optional string pad = 1;
+      case 1: {
+        if (tag == 10u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_pad()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->pad().data(), this->pad().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.PadHookRequest.pad");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional .GstDebugger.QueryHookRequest query = 2;
+      case 2: {
+        if (tag == 18u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_query()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional .GstDebugger.BufferHookRequest buffer = 3;
+      case 3: {
+        if (tag == 26u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_buffer()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional .GstDebugger.EventHookRequest event = 4;
+      case 4: {
+        if (tag == 34u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_event()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.PadHookRequest)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.PadHookRequest)
+  return false;
+#undef DO_
+}
+
+void PadHookRequest::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.PadHookRequest)
+  // optional string pad = 1;
+  if (has_pad()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->pad().data(), this->pad().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.PadHookRequest.pad");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      1, this->pad(), output);
+  }
+
+  switch (pad_hook_type_case()) {
+    case kQuery:
+      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+        2, *pad_hook_type_.query_, output);
+      break;
+    case kBuffer:
+      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+        3, *pad_hook_type_.buffer_, output);
+      break;
+    case kEvent:
+      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+        4, *pad_hook_type_.event_, output);
+      break;
+    default: ;
+  }
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.PadHookRequest)
+}
+
+::google::protobuf::uint8* PadHookRequest::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.PadHookRequest)
+  // optional string pad = 1;
+  if (has_pad()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->pad().data(), this->pad().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.PadHookRequest.pad");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        1, this->pad(), target);
+  }
+
+  switch (pad_hook_type_case()) {
+    case kQuery:
+      target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessageNoVirtualToArray(
+          2, *pad_hook_type_.query_, false, target);
+      break;
+    case kBuffer:
+      target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessageNoVirtualToArray(
+          3, *pad_hook_type_.buffer_, false, target);
+      break;
+    case kEvent:
+      target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessageNoVirtualToArray(
+          4, *pad_hook_type_.event_, false, target);
+      break;
+    default: ;
+  }
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.PadHookRequest)
+  return target;
+}
+
+size_t PadHookRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.PadHookRequest)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  // optional string pad = 1;
+  if (has_pad()) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->pad());
+  }
+
+  switch (pad_hook_type_case()) {
+    // optional .GstDebugger.QueryHookRequest query = 2;
+    case kQuery: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          *pad_hook_type_.query_);
+      break;
+    }
+    // optional .GstDebugger.BufferHookRequest buffer = 3;
+    case kBuffer: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          *pad_hook_type_.buffer_);
+      break;
+    }
+    // optional .GstDebugger.EventHookRequest event = 4;
+    case kEvent: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          *pad_hook_type_.event_);
+      break;
+    }
+    case PAD_HOOK_TYPE_NOT_SET: {
+      break;
+    }
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void PadHookRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.PadHookRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  const PadHookRequest* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const PadHookRequest>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.PadHookRequest)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.PadHookRequest)
+    MergeFrom(*source);
+  }
+}
+
+void PadHookRequest::MergeFrom(const PadHookRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.PadHookRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from.has_pad()) {
+    set_has_pad();
+    pad_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.pad_);
+  }
+  switch (from.pad_hook_type_case()) {
+    case kQuery: {
+      mutable_query()->::GstDebugger::QueryHookRequest::MergeFrom(from.query());
+      break;
+    }
+    case kBuffer: {
+      mutable_buffer()->::GstDebugger::BufferHookRequest::MergeFrom(from.buffer());
+      break;
+    }
+    case kEvent: {
+      mutable_event()->::GstDebugger::EventHookRequest::MergeFrom(from.event());
+      break;
+    }
+    case PAD_HOOK_TYPE_NOT_SET: {
+      break;
+    }
+  }
+}
+
+void PadHookRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.PadHookRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void PadHookRequest::CopyFrom(const PadHookRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.PadHookRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool PadHookRequest::IsInitialized() const {
+  switch (pad_hook_type_case()) {
+    case kQuery: {
+      if (has_query()) {
+        if (!this->query().IsInitialized()) return false;
+      }
+      break;
+    }
+    case kBuffer: {
+      if (has_buffer()) {
+        if (!this->buffer().IsInitialized()) return false;
+      }
+      break;
+    }
+    case kEvent: {
+      if (has_event()) {
+        if (!this->event().IsInitialized()) return false;
+      }
+      break;
+    }
+    case PAD_HOOK_TYPE_NOT_SET: {
+      break;
+    }
+  }
+  return true;
+}
+
+void PadHookRequest::Swap(PadHookRequest* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void PadHookRequest::InternalSwap(PadHookRequest* other) {
+  pad_.Swap(&other->pad_);
+  std::swap(pad_hook_type_, other->pad_hook_type_);
+  std::swap(_oneof_case_[0], other->_oneof_case_[0]);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata PadHookRequest::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[12];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// PadHookRequest
+
+// optional string pad = 1;
+bool PadHookRequest::has_pad() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void PadHookRequest::set_has_pad() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void PadHookRequest::clear_has_pad() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void PadHookRequest::clear_pad() {
+  pad_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_pad();
+}
+const ::std::string& PadHookRequest::pad() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PadHookRequest.pad)
+  return pad_.GetNoArena();
+}
+void PadHookRequest::set_pad(const ::std::string& value) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.PadHookRequest.pad)
+}
+#if LANG_CXX11
+void PadHookRequest::set_pad(::std::string&& value) {
+  set_has_pad();
+  pad_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.PadHookRequest.pad)
+}
+#endif
+void PadHookRequest::set_pad(const char* value) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.PadHookRequest.pad)
+}
+void PadHookRequest::set_pad(const char* value, size_t size) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.PadHookRequest.pad)
+}
+::std::string* PadHookRequest::mutable_pad() {
+  set_has_pad();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PadHookRequest.pad)
+  return pad_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* PadHookRequest::release_pad() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PadHookRequest.pad)
+  clear_has_pad();
+  return pad_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void PadHookRequest::set_allocated_pad(::std::string* pad) {
+  if (pad != NULL) {
+    set_has_pad();
+  } else {
+    clear_has_pad();
+  }
+  pad_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), pad);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PadHookRequest.pad)
+}
+
+// optional .GstDebugger.QueryHookRequest query = 2;
+bool PadHookRequest::has_query() const {
+  return pad_hook_type_case() == kQuery;
+}
+void PadHookRequest::set_has_query() {
+  _oneof_case_[0] = kQuery;
+}
+void PadHookRequest::clear_query() {
+  if (has_query()) {
+    delete pad_hook_type_.query_;
+    clear_has_pad_hook_type();
+  }
+}
+ const ::GstDebugger::QueryHookRequest& PadHookRequest::query() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PadHookRequest.query)
+  return has_query()
+      ? *pad_hook_type_.query_
+      : ::GstDebugger::QueryHookRequest::default_instance();
+}
+::GstDebugger::QueryHookRequest* PadHookRequest::mutable_query() {
+  if (!has_query()) {
+    clear_pad_hook_type();
+    set_has_query();
+    pad_hook_type_.query_ = new ::GstDebugger::QueryHookRequest;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PadHookRequest.query)
+  return pad_hook_type_.query_;
+}
+::GstDebugger::QueryHookRequest* PadHookRequest::release_query() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PadHookRequest.query)
+  if (has_query()) {
+    clear_has_pad_hook_type();
+    ::GstDebugger::QueryHookRequest* temp = pad_hook_type_.query_;
+    pad_hook_type_.query_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+void PadHookRequest::set_allocated_query(::GstDebugger::QueryHookRequest* query) {
+  clear_pad_hook_type();
+  if (query) {
+    set_has_query();
+    pad_hook_type_.query_ = query;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PadHookRequest.query)
+}
+
+// optional .GstDebugger.BufferHookRequest buffer = 3;
+bool PadHookRequest::has_buffer() const {
+  return pad_hook_type_case() == kBuffer;
+}
+void PadHookRequest::set_has_buffer() {
+  _oneof_case_[0] = kBuffer;
+}
+void PadHookRequest::clear_buffer() {
+  if (has_buffer()) {
+    delete pad_hook_type_.buffer_;
+    clear_has_pad_hook_type();
+  }
+}
+ const ::GstDebugger::BufferHookRequest& PadHookRequest::buffer() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PadHookRequest.buffer)
+  return has_buffer()
+      ? *pad_hook_type_.buffer_
+      : ::GstDebugger::BufferHookRequest::default_instance();
+}
+::GstDebugger::BufferHookRequest* PadHookRequest::mutable_buffer() {
+  if (!has_buffer()) {
+    clear_pad_hook_type();
+    set_has_buffer();
+    pad_hook_type_.buffer_ = new ::GstDebugger::BufferHookRequest;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PadHookRequest.buffer)
+  return pad_hook_type_.buffer_;
+}
+::GstDebugger::BufferHookRequest* PadHookRequest::release_buffer() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PadHookRequest.buffer)
+  if (has_buffer()) {
+    clear_has_pad_hook_type();
+    ::GstDebugger::BufferHookRequest* temp = pad_hook_type_.buffer_;
+    pad_hook_type_.buffer_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+void PadHookRequest::set_allocated_buffer(::GstDebugger::BufferHookRequest* buffer) {
+  clear_pad_hook_type();
+  if (buffer) {
+    set_has_buffer();
+    pad_hook_type_.buffer_ = buffer;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PadHookRequest.buffer)
+}
+
+// optional .GstDebugger.EventHookRequest event = 4;
+bool PadHookRequest::has_event() const {
+  return pad_hook_type_case() == kEvent;
+}
+void PadHookRequest::set_has_event() {
+  _oneof_case_[0] = kEvent;
+}
+void PadHookRequest::clear_event() {
+  if (has_event()) {
+    delete pad_hook_type_.event_;
+    clear_has_pad_hook_type();
+  }
+}
+ const ::GstDebugger::EventHookRequest& PadHookRequest::event() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PadHookRequest.event)
+  return has_event()
+      ? *pad_hook_type_.event_
+      : ::GstDebugger::EventHookRequest::default_instance();
+}
+::GstDebugger::EventHookRequest* PadHookRequest::mutable_event() {
+  if (!has_event()) {
+    clear_pad_hook_type();
+    set_has_event();
+    pad_hook_type_.event_ = new ::GstDebugger::EventHookRequest;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PadHookRequest.event)
+  return pad_hook_type_.event_;
+}
+::GstDebugger::EventHookRequest* PadHookRequest::release_event() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PadHookRequest.event)
+  if (has_event()) {
+    clear_has_pad_hook_type();
+    ::GstDebugger::EventHookRequest* temp = pad_hook_type_.event_;
+    pad_hook_type_.event_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+void PadHookRequest::set_allocated_event(::GstDebugger::EventHookRequest* event) {
+  clear_pad_hook_type();
+  if (event) {
+    set_has_event();
+    pad_hook_type_.event_ = event;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PadHookRequest.event)
+}
+
+bool PadHookRequest::has_pad_hook_type() const {
+  return pad_hook_type_case() != PAD_HOOK_TYPE_NOT_SET;
+}
+void PadHookRequest::clear_has_pad_hook_type() {
+  _oneof_case_[0] = PAD_HOOK_TYPE_NOT_SET;
+}
+PadHookRequest::PadHookTypeCase PadHookRequest::pad_hook_type_case() const {
+  return PadHookRequest::PadHookTypeCase(_oneof_case_[0]);
+}
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int LogRequest::kLevelFieldNumber;
+const int LogRequest::kCategoryFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+LogRequest::LogRequest()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.LogRequest)
+}
+LogRequest::LogRequest(const LogRequest& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  category_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_category()) {
+    category_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.category_);
+  }
+  level_ = from.level_;
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.LogRequest)
+}
+
+void LogRequest::SharedCtor() {
+  _cached_size_ = 0;
+  category_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  level_ = 0;
+}
+
+LogRequest::~LogRequest() {
+  // @@protoc_insertion_point(destructor:GstDebugger.LogRequest)
+  SharedDtor();
+}
+
+void LogRequest::SharedDtor() {
+  category_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void LogRequest::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* LogRequest::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[13].descriptor;
+}
+
+const LogRequest& LogRequest::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+LogRequest* LogRequest::New(::google::protobuf::Arena* arena) const {
+  LogRequest* n = new LogRequest;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void LogRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.LogRequest)
+  if (has_category()) {
+    GOOGLE_DCHECK(!category_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+    (*category_.UnsafeRawStringPointer())->clear();
+  }
+  level_ = 0;
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool LogRequest::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.LogRequest)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required int32 level = 1;
+      case 1: {
+        if (tag == 8u) {
+          set_has_level();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &level_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional string category = 2;
+      case 2: {
+        if (tag == 18u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_category()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->category().data(), this->category().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.LogRequest.category");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.LogRequest)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.LogRequest)
+  return false;
+#undef DO_
+}
+
+void LogRequest::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.LogRequest)
+  // required int32 level = 1;
+  if (has_level()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->level(), output);
+  }
+
+  // optional string category = 2;
+  if (has_category()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->category().data(), this->category().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.LogRequest.category");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      2, this->category(), output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.LogRequest)
+}
+
+::google::protobuf::uint8* LogRequest::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.LogRequest)
+  // required int32 level = 1;
+  if (has_level()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->level(), target);
+  }
+
+  // optional string category = 2;
+  if (has_category()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->category().data(), this->category().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.LogRequest.category");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        2, this->category(), target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.LogRequest)
+  return target;
+}
+
+size_t LogRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.LogRequest)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  // required int32 level = 1;
+  if (has_level()) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->level());
+  }
+  // optional string category = 2;
+  if (has_category()) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->category());
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void LogRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.LogRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  const LogRequest* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const LogRequest>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.LogRequest)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.LogRequest)
+    MergeFrom(*source);
+  }
+}
+
+void LogRequest::MergeFrom(const LogRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.LogRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from._has_bits_[0 / 32] & 3u) {
+    if (from.has_category()) {
+      set_has_category();
+      category_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.category_);
+    }
+    if (from.has_level()) {
+      set_level(from.level());
+    }
+  }
+}
+
+void LogRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.LogRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void LogRequest::CopyFrom(const LogRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.LogRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool LogRequest::IsInitialized() const {
+  if ((_has_bits_[0] & 0x00000002) != 0x00000002) return false;
+  return true;
+}
+
+void LogRequest::Swap(LogRequest* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void LogRequest::InternalSwap(LogRequest* other) {
+  category_.Swap(&other->category_);
+  std::swap(level_, other->level_);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata LogRequest::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[13];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// LogRequest
+
+// required int32 level = 1;
+bool LogRequest::has_level() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+void LogRequest::set_has_level() {
+  _has_bits_[0] |= 0x00000002u;
+}
+void LogRequest::clear_has_level() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+void LogRequest::clear_level() {
+  level_ = 0;
+  clear_has_level();
+}
+::google::protobuf::int32 LogRequest::level() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.LogRequest.level)
+  return level_;
+}
+void LogRequest::set_level(::google::protobuf::int32 value) {
+  set_has_level();
+  level_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.LogRequest.level)
+}
+
+// optional string category = 2;
+bool LogRequest::has_category() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void LogRequest::set_has_category() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void LogRequest::clear_has_category() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void LogRequest::clear_category() {
+  category_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_category();
+}
+const ::std::string& LogRequest::category() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.LogRequest.category)
+  return category_.GetNoArena();
+}
+void LogRequest::set_category(const ::std::string& value) {
+  set_has_category();
+  category_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.LogRequest.category)
+}
+#if LANG_CXX11
+void LogRequest::set_category(::std::string&& value) {
+  set_has_category();
+  category_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.LogRequest.category)
+}
+#endif
+void LogRequest::set_category(const char* value) {
+  set_has_category();
+  category_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.LogRequest.category)
+}
+void LogRequest::set_category(const char* value, size_t size) {
+  set_has_category();
+  category_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.LogRequest.category)
+}
+::std::string* LogRequest::mutable_category() {
+  set_has_category();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.LogRequest.category)
+  return category_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* LogRequest::release_category() {
+  // @@protoc_insertion_point(field_release:GstDebugger.LogRequest.category)
+  clear_has_category();
+  return category_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void LogRequest::set_allocated_category(::std::string* category) {
+  if (category != NULL) {
+    set_has_category();
+  } else {
+    clear_has_category();
+  }
+  category_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), category);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.LogRequest.category)
+}
+
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int MessageRequest::kTypeFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+MessageRequest::MessageRequest()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.MessageRequest)
+}
+MessageRequest::MessageRequest(const MessageRequest& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  type_ = from.type_;
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.MessageRequest)
+}
+
+void MessageRequest::SharedCtor() {
+  _cached_size_ = 0;
+  type_ = 0;
+}
+
+MessageRequest::~MessageRequest() {
+  // @@protoc_insertion_point(destructor:GstDebugger.MessageRequest)
+  SharedDtor();
+}
+
+void MessageRequest::SharedDtor() {
+}
+
+void MessageRequest::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* MessageRequest::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[14].descriptor;
+}
+
+const MessageRequest& MessageRequest::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+MessageRequest* MessageRequest::New(::google::protobuf::Arena* arena) const {
+  MessageRequest* n = new MessageRequest;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void MessageRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.MessageRequest)
+  type_ = 0;
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool MessageRequest::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.MessageRequest)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required int32 type = 1;
+      case 1: {
+        if (tag == 8u) {
+          set_has_type();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &type_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.MessageRequest)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.MessageRequest)
+  return false;
+#undef DO_
+}
+
+void MessageRequest::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.MessageRequest)
+  // required int32 type = 1;
+  if (has_type()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->type(), output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.MessageRequest)
+}
+
+::google::protobuf::uint8* MessageRequest::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.MessageRequest)
+  // required int32 type = 1;
+  if (has_type()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->type(), target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.MessageRequest)
+  return target;
+}
+
+size_t MessageRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.MessageRequest)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  // required int32 type = 1;
+  if (has_type()) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->type());
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void MessageRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.MessageRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  const MessageRequest* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const MessageRequest>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.MessageRequest)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.MessageRequest)
+    MergeFrom(*source);
+  }
+}
+
+void MessageRequest::MergeFrom(const MessageRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.MessageRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from.has_type()) {
+    set_type(from.type());
+  }
+}
+
+void MessageRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.MessageRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void MessageRequest::CopyFrom(const MessageRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.MessageRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool MessageRequest::IsInitialized() const {
+  if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;
+  return true;
+}
+
+void MessageRequest::Swap(MessageRequest* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void MessageRequest::InternalSwap(MessageRequest* other) {
+  std::swap(type_, other->type_);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata MessageRequest::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[14];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// MessageRequest
+
+// required int32 type = 1;
+bool MessageRequest::has_type() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void MessageRequest::set_has_type() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void MessageRequest::clear_has_type() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void MessageRequest::clear_type() {
+  type_ = 0;
+  clear_has_type();
+}
+::google::protobuf::int32 MessageRequest::type() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.MessageRequest.type)
+  return type_;
+}
+void MessageRequest::set_type(::google::protobuf::int32 value) {
+  set_has_type();
+  type_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.MessageRequest.type)
+}
+
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int HookRequest::kActionFieldNumber;
+const int HookRequest::kMessageFieldNumber;
+const int HookRequest::kLogFieldNumber;
+const int HookRequest::kPadHookFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+HookRequest::HookRequest()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.HookRequest)
+}
+HookRequest::HookRequest(const HookRequest& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  action_ = from.action_;
+  clear_has_hook_type();
+  switch (from.hook_type_case()) {
+    case kMessage: {
+      mutable_message()->::GstDebugger::MessageRequest::MergeFrom(from.message());
+      break;
+    }
+    case kLog: {
+      mutable_log()->::GstDebugger::LogRequest::MergeFrom(from.log());
+      break;
+    }
+    case kPadHook: {
+      mutable_pad_hook()->::GstDebugger::PadHookRequest::MergeFrom(from.pad_hook());
+      break;
+    }
+    case HOOK_TYPE_NOT_SET: {
+      break;
+    }
+  }
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.HookRequest)
+}
+
+void HookRequest::SharedCtor() {
+  _cached_size_ = 0;
+  action_ = 0;
+  clear_has_hook_type();
+}
+
+HookRequest::~HookRequest() {
+  // @@protoc_insertion_point(destructor:GstDebugger.HookRequest)
+  SharedDtor();
+}
+
+void HookRequest::SharedDtor() {
+  if (has_hook_type()) {
+    clear_hook_type();
+  }
+}
+
+void HookRequest::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* HookRequest::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[15].descriptor;
+}
+
+const HookRequest& HookRequest::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+HookRequest* HookRequest::New(::google::protobuf::Arena* arena) const {
+  HookRequest* n = new HookRequest;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void HookRequest::clear_hook_type() {
+// @@protoc_insertion_point(one_of_clear_start:GstDebugger.HookRequest)
+  switch (hook_type_case()) {
+    case kMessage: {
+      delete hook_type_.message_;
+      break;
+    }
+    case kLog: {
+      delete hook_type_.log_;
+      break;
+    }
+    case kPadHook: {
+      delete hook_type_.pad_hook_;
+      break;
+    }
+    case HOOK_TYPE_NOT_SET: {
+      break;
+    }
+  }
+  _oneof_case_[0] = HOOK_TYPE_NOT_SET;
+}
+
+
+void HookRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.HookRequest)
+  action_ = 0;
+  clear_hook_type();
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool HookRequest::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.HookRequest)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required .GstDebugger.Action action = 1;
+      case 1: {
+        if (tag == 8u) {
+          int value;
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+                 input, &value)));
+          if (::GstDebugger::Action_IsValid(value)) {
+            set_action(static_cast< ::GstDebugger::Action >(value));
+          } else {
+            mutable_unknown_fields()->AddVarint(1, value);
+          }
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional .GstDebugger.MessageRequest message = 2;
+      case 2: {
+        if (tag == 18u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_message()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional .GstDebugger.LogRequest log = 3;
+      case 3: {
+        if (tag == 26u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_log()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional .GstDebugger.PadHookRequest pad_hook = 4;
+      case 4: {
+        if (tag == 34u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_pad_hook()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.HookRequest)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.HookRequest)
+  return false;
+#undef DO_
+}
+
+void HookRequest::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.HookRequest)
+  // required .GstDebugger.Action action = 1;
+  if (has_action()) {
+    ::google::protobuf::internal::WireFormatLite::WriteEnum(
+      1, this->action(), output);
+  }
+
+  switch (hook_type_case()) {
+    case kMessage:
+      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+        2, *hook_type_.message_, output);
+      break;
+    case kLog:
+      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+        3, *hook_type_.log_, output);
+      break;
+    case kPadHook:
+      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+        4, *hook_type_.pad_hook_, output);
+      break;
+    default: ;
+  }
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.HookRequest)
+}
+
+::google::protobuf::uint8* HookRequest::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.HookRequest)
+  // required .GstDebugger.Action action = 1;
+  if (has_action()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
+      1, this->action(), target);
+  }
+
+  switch (hook_type_case()) {
+    case kMessage:
+      target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessageNoVirtualToArray(
+          2, *hook_type_.message_, false, target);
+      break;
+    case kLog:
+      target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessageNoVirtualToArray(
+          3, *hook_type_.log_, false, target);
+      break;
+    case kPadHook:
+      target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessageNoVirtualToArray(
+          4, *hook_type_.pad_hook_, false, target);
+      break;
+    default: ;
+  }
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.HookRequest)
+  return target;
+}
+
+size_t HookRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.HookRequest)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  // required .GstDebugger.Action action = 1;
+  if (has_action()) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::EnumSize(this->action());
+  }
+  switch (hook_type_case()) {
+    // optional .GstDebugger.MessageRequest message = 2;
+    case kMessage: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          *hook_type_.message_);
+      break;
+    }
+    // optional .GstDebugger.LogRequest log = 3;
+    case kLog: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          *hook_type_.log_);
+      break;
+    }
+    // optional .GstDebugger.PadHookRequest pad_hook = 4;
+    case kPadHook: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          *hook_type_.pad_hook_);
+      break;
+    }
+    case HOOK_TYPE_NOT_SET: {
+      break;
+    }
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void HookRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.HookRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  const HookRequest* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const HookRequest>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.HookRequest)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.HookRequest)
+    MergeFrom(*source);
+  }
+}
+
+void HookRequest::MergeFrom(const HookRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.HookRequest)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from.has_action()) {
+    set_action(from.action());
+  }
+  switch (from.hook_type_case()) {
+    case kMessage: {
+      mutable_message()->::GstDebugger::MessageRequest::MergeFrom(from.message());
+      break;
+    }
+    case kLog: {
+      mutable_log()->::GstDebugger::LogRequest::MergeFrom(from.log());
+      break;
+    }
+    case kPadHook: {
+      mutable_pad_hook()->::GstDebugger::PadHookRequest::MergeFrom(from.pad_hook());
+      break;
+    }
+    case HOOK_TYPE_NOT_SET: {
+      break;
+    }
+  }
+}
+
+void HookRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.HookRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void HookRequest::CopyFrom(const HookRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.HookRequest)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool HookRequest::IsInitialized() const {
+  if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;
+  switch (hook_type_case()) {
+    case kMessage: {
+      if (has_message()) {
+        if (!this->message().IsInitialized()) return false;
+      }
+      break;
+    }
+    case kLog: {
+      if (has_log()) {
+        if (!this->log().IsInitialized()) return false;
+      }
+      break;
+    }
+    case kPadHook: {
+      if (has_pad_hook()) {
+        if (!this->pad_hook().IsInitialized()) return false;
+      }
+      break;
+    }
+    case HOOK_TYPE_NOT_SET: {
+      break;
+    }
+  }
+  return true;
+}
+
+void HookRequest::Swap(HookRequest* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void HookRequest::InternalSwap(HookRequest* other) {
+  std::swap(action_, other->action_);
+  std::swap(hook_type_, other->hook_type_);
+  std::swap(_oneof_case_[0], other->_oneof_case_[0]);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata HookRequest::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[15];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// HookRequest
+
+// required .GstDebugger.Action action = 1;
+bool HookRequest::has_action() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void HookRequest::set_has_action() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void HookRequest::clear_has_action() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void HookRequest::clear_action() {
+  action_ = 0;
+  clear_has_action();
+}
+::GstDebugger::Action HookRequest::action() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.HookRequest.action)
+  return static_cast< ::GstDebugger::Action >(action_);
+}
+void HookRequest::set_action(::GstDebugger::Action value) {
+  assert(::GstDebugger::Action_IsValid(value));
+  set_has_action();
+  action_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.HookRequest.action)
+}
+
+// optional .GstDebugger.MessageRequest message = 2;
+bool HookRequest::has_message() const {
+  return hook_type_case() == kMessage;
+}
+void HookRequest::set_has_message() {
+  _oneof_case_[0] = kMessage;
+}
+void HookRequest::clear_message() {
+  if (has_message()) {
+    delete hook_type_.message_;
+    clear_has_hook_type();
+  }
+}
+ const ::GstDebugger::MessageRequest& HookRequest::message() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.HookRequest.message)
+  return has_message()
+      ? *hook_type_.message_
+      : ::GstDebugger::MessageRequest::default_instance();
+}
+::GstDebugger::MessageRequest* HookRequest::mutable_message() {
+  if (!has_message()) {
+    clear_hook_type();
+    set_has_message();
+    hook_type_.message_ = new ::GstDebugger::MessageRequest;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.HookRequest.message)
+  return hook_type_.message_;
+}
+::GstDebugger::MessageRequest* HookRequest::release_message() {
+  // @@protoc_insertion_point(field_release:GstDebugger.HookRequest.message)
+  if (has_message()) {
+    clear_has_hook_type();
+    ::GstDebugger::MessageRequest* temp = hook_type_.message_;
+    hook_type_.message_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+void HookRequest::set_allocated_message(::GstDebugger::MessageRequest* message) {
+  clear_hook_type();
+  if (message) {
+    set_has_message();
+    hook_type_.message_ = message;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.HookRequest.message)
+}
+
+// optional .GstDebugger.LogRequest log = 3;
+bool HookRequest::has_log() const {
+  return hook_type_case() == kLog;
+}
+void HookRequest::set_has_log() {
+  _oneof_case_[0] = kLog;
+}
+void HookRequest::clear_log() {
+  if (has_log()) {
+    delete hook_type_.log_;
+    clear_has_hook_type();
+  }
+}
+ const ::GstDebugger::LogRequest& HookRequest::log() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.HookRequest.log)
+  return has_log()
+      ? *hook_type_.log_
+      : ::GstDebugger::LogRequest::default_instance();
+}
+::GstDebugger::LogRequest* HookRequest::mutable_log() {
+  if (!has_log()) {
+    clear_hook_type();
+    set_has_log();
+    hook_type_.log_ = new ::GstDebugger::LogRequest;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.HookRequest.log)
+  return hook_type_.log_;
+}
+::GstDebugger::LogRequest* HookRequest::release_log() {
+  // @@protoc_insertion_point(field_release:GstDebugger.HookRequest.log)
+  if (has_log()) {
+    clear_has_hook_type();
+    ::GstDebugger::LogRequest* temp = hook_type_.log_;
+    hook_type_.log_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+void HookRequest::set_allocated_log(::GstDebugger::LogRequest* log) {
+  clear_hook_type();
+  if (log) {
+    set_has_log();
+    hook_type_.log_ = log;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.HookRequest.log)
+}
+
+// optional .GstDebugger.PadHookRequest pad_hook = 4;
+bool HookRequest::has_pad_hook() const {
+  return hook_type_case() == kPadHook;
+}
+void HookRequest::set_has_pad_hook() {
+  _oneof_case_[0] = kPadHook;
+}
+void HookRequest::clear_pad_hook() {
+  if (has_pad_hook()) {
+    delete hook_type_.pad_hook_;
+    clear_has_hook_type();
+  }
+}
+ const ::GstDebugger::PadHookRequest& HookRequest::pad_hook() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.HookRequest.pad_hook)
+  return has_pad_hook()
+      ? *hook_type_.pad_hook_
+      : ::GstDebugger::PadHookRequest::default_instance();
+}
+::GstDebugger::PadHookRequest* HookRequest::mutable_pad_hook() {
+  if (!has_pad_hook()) {
+    clear_hook_type();
+    set_has_pad_hook();
+    hook_type_.pad_hook_ = new ::GstDebugger::PadHookRequest;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.HookRequest.pad_hook)
+  return hook_type_.pad_hook_;
+}
+::GstDebugger::PadHookRequest* HookRequest::release_pad_hook() {
+  // @@protoc_insertion_point(field_release:GstDebugger.HookRequest.pad_hook)
+  if (has_pad_hook()) {
+    clear_has_hook_type();
+    ::GstDebugger::PadHookRequest* temp = hook_type_.pad_hook_;
+    hook_type_.pad_hook_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+void HookRequest::set_allocated_pad_hook(::GstDebugger::PadHookRequest* pad_hook) {
+  clear_hook_type();
+  if (pad_hook) {
+    set_has_pad_hook();
+    hook_type_.pad_hook_ = pad_hook;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.HookRequest.pad_hook)
+}
+
+bool HookRequest::has_hook_type() const {
+  return hook_type_case() != HOOK_TYPE_NOT_SET;
+}
+void HookRequest::clear_has_hook_type() {
+  _oneof_case_[0] = HOOK_TYPE_NOT_SET;
+}
+HookRequest::HookTypeCase HookRequest::hook_type_case() const {
+  return HookRequest::HookTypeCase(_oneof_case_[0]);
+}
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int Command::kTypeDescriptionFieldNumber;
+const int Command::kDebugCategoriesListFieldNumber;
+const int Command::kHookRequestFieldNumber;
+const int Command::kLogThresholdFieldNumber;
+const int Command::kEntireTopologyFieldNumber;
+const int Command::kPropertyFieldNumber;
+const int Command::kPropertySetFieldNumber;
+const int Command::kPadDynamicInfoFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+Command::Command()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.Command)
+}
+Command::Command(const Command& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  clear_has_command_type();
+  switch (from.command_type_case()) {
+    case kTypeDescription: {
+      mutable_type_description()->::GstDebugger::TypeDescriptionRequest::MergeFrom(from.type_description());
+      break;
+    }
+    case kDebugCategoriesList: {
+      set_debug_categories_list(from.debug_categories_list());
+      break;
+    }
+    case kHookRequest: {
+      mutable_hook_request()->::GstDebugger::HookRequest::MergeFrom(from.hook_request());
+      break;
+    }
+    case kLogThreshold: {
+      set_log_threshold(from.log_threshold());
+      break;
+    }
+    case kEntireTopology: {
+      set_entire_topology(from.entire_topology());
+      break;
+    }
+    case kProperty: {
+      mutable_property()->::GstDebugger::PropertyRequest::MergeFrom(from.property());
+      break;
+    }
+    case kPropertySet: {
+      mutable_property_set()->::GstDebugger::PropertyValue::MergeFrom(from.property_set());
+      break;
+    }
+    case kPadDynamicInfo: {
+      set_pad_dynamic_info(from.pad_dynamic_info());
+      break;
+    }
+    case COMMAND_TYPE_NOT_SET: {
+      break;
+    }
+  }
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.Command)
+}
+
+void Command::SharedCtor() {
+  _cached_size_ = 0;
+  clear_has_command_type();
+}
+
+Command::~Command() {
+  // @@protoc_insertion_point(destructor:GstDebugger.Command)
+  SharedDtor();
+}
+
+void Command::SharedDtor() {
+  if (has_command_type()) {
+    clear_command_type();
+  }
+}
+
+void Command::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* Command::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[16].descriptor;
+}
+
+const Command& Command::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+Command* Command::New(::google::protobuf::Arena* arena) const {
+  Command* n = new Command;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void Command::clear_command_type() {
+// @@protoc_insertion_point(one_of_clear_start:GstDebugger.Command)
+  switch (command_type_case()) {
+    case kTypeDescription: {
+      delete command_type_.type_description_;
+      break;
+    }
+    case kDebugCategoriesList: {
+      // No need to clear
+      break;
+    }
+    case kHookRequest: {
+      delete command_type_.hook_request_;
+      break;
+    }
+    case kLogThreshold: {
+      
command_type_.log_threshold_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+      break;
+    }
+    case kEntireTopology: {
+      // No need to clear
+      break;
+    }
+    case kProperty: {
+      delete command_type_.property_;
+      break;
+    }
+    case kPropertySet: {
+      delete command_type_.property_set_;
+      break;
+    }
+    case kPadDynamicInfo: {
+      
command_type_.pad_dynamic_info_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+      break;
+    }
+    case COMMAND_TYPE_NOT_SET: {
+      break;
+    }
+  }
+  _oneof_case_[0] = COMMAND_TYPE_NOT_SET;
+}
+
+
+void Command::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.Command)
+  clear_command_type();
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool Command::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.Command)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // optional .GstDebugger.TypeDescriptionRequest type_description = 1;
+      case 1: {
+        if (tag == 10u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_type_description()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional bool debug_categories_list = 2;
+      case 2: {
+        if (tag == 16u) {
+          clear_command_type();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+                 input, &command_type_.debug_categories_list_)));
+          set_has_debug_categories_list();
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional .GstDebugger.HookRequest hook_request = 3;
+      case 3: {
+        if (tag == 26u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_hook_request()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional string log_threshold = 4;
+      case 4: {
+        if (tag == 34u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_log_threshold()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->log_threshold().data(), this->log_threshold().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.Command.log_threshold");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional bool entire_topology = 5;
+      case 5: {
+        if (tag == 40u) {
+          clear_command_type();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+                 input, &command_type_.entire_topology_)));
+          set_has_entire_topology();
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional .GstDebugger.PropertyRequest property = 6;
+      case 6: {
+        if (tag == 50u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_property()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional .GstDebugger.PropertyValue property_set = 7;
+      case 7: {
+        if (tag == 58u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_property_set()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional string pad_dynamic_info = 8;
+      case 8: {
+        if (tag == 66u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_pad_dynamic_info()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->pad_dynamic_info().data(), this->pad_dynamic_info().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.Command.pad_dynamic_info");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.Command)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.Command)
+  return false;
+#undef DO_
+}
+
+void Command::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.Command)
+  switch (command_type_case()) {
+    case kTypeDescription:
+      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+        1, *command_type_.type_description_, output);
+      break;
+    case kDebugCategoriesList:
+      ::google::protobuf::internal::WireFormatLite::WriteBool(2, this->debug_categories_list(), output);
+      break;
+    case kHookRequest:
+      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+        3, *command_type_.hook_request_, output);
+      break;
+    case kLogThreshold:
+      ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+        this->log_threshold().data(), this->log_threshold().length(),
+        ::google::protobuf::internal::WireFormat::SERIALIZE,
+        "GstDebugger.Command.log_threshold");
+      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+        4, this->log_threshold(), output);
+      break;
+    case kEntireTopology:
+      ::google::protobuf::internal::WireFormatLite::WriteBool(5, this->entire_topology(), output);
+      break;
+    case kProperty:
+      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+        6, *command_type_.property_, output);
+      break;
+    case kPropertySet:
+      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+        7, *command_type_.property_set_, output);
+      break;
+    case kPadDynamicInfo:
+      ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+        this->pad_dynamic_info().data(), this->pad_dynamic_info().length(),
+        ::google::protobuf::internal::WireFormat::SERIALIZE,
+        "GstDebugger.Command.pad_dynamic_info");
+      ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+        8, this->pad_dynamic_info(), output);
+      break;
+    default: ;
+  }
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.Command)
+}
+
+::google::protobuf::uint8* Command::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.Command)
+  switch (command_type_case()) {
+    case kTypeDescription:
+      target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessageNoVirtualToArray(
+          1, *command_type_.type_description_, false, target);
+      break;
+    case kDebugCategoriesList:
+      target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(2, 
this->debug_categories_list(), target);
+      break;
+    case kHookRequest:
+      target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessageNoVirtualToArray(
+          3, *command_type_.hook_request_, false, target);
+      break;
+    case kLogThreshold:
+      ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+        this->log_threshold().data(), this->log_threshold().length(),
+        ::google::protobuf::internal::WireFormat::SERIALIZE,
+        "GstDebugger.Command.log_threshold");
+      target =
+        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+          4, this->log_threshold(), target);
+      break;
+    case kEntireTopology:
+      target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(5, this->entire_topology(), 
target);
+      break;
+    case kProperty:
+      target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessageNoVirtualToArray(
+          6, *command_type_.property_, false, target);
+      break;
+    case kPropertySet:
+      target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessageNoVirtualToArray(
+          7, *command_type_.property_set_, false, target);
+      break;
+    case kPadDynamicInfo:
+      ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+        this->pad_dynamic_info().data(), this->pad_dynamic_info().length(),
+        ::google::protobuf::internal::WireFormat::SERIALIZE,
+        "GstDebugger.Command.pad_dynamic_info");
+      target =
+        ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+          8, this->pad_dynamic_info(), target);
+      break;
+    default: ;
+  }
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.Command)
+  return target;
+}
+
+size_t Command::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.Command)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  switch (command_type_case()) {
+    // optional .GstDebugger.TypeDescriptionRequest type_description = 1;
+    case kTypeDescription: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          *command_type_.type_description_);
+      break;
+    }
+    // optional bool debug_categories_list = 2;
+    case kDebugCategoriesList: {
+      total_size += 1 + 1;
+      break;
+    }
+    // optional .GstDebugger.HookRequest hook_request = 3;
+    case kHookRequest: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          *command_type_.hook_request_);
+      break;
+    }
+    // optional string log_threshold = 4;
+    case kLogThreshold: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::StringSize(
+          this->log_threshold());
+      break;
+    }
+    // optional bool entire_topology = 5;
+    case kEntireTopology: {
+      total_size += 1 + 1;
+      break;
+    }
+    // optional .GstDebugger.PropertyRequest property = 6;
+    case kProperty: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          *command_type_.property_);
+      break;
+    }
+    // optional .GstDebugger.PropertyValue property_set = 7;
+    case kPropertySet: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          *command_type_.property_set_);
+      break;
+    }
+    // optional string pad_dynamic_info = 8;
+    case kPadDynamicInfo: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::StringSize(
+          this->pad_dynamic_info());
+      break;
+    }
+    case COMMAND_TYPE_NOT_SET: {
+      break;
+    }
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void Command::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.Command)
+  GOOGLE_DCHECK_NE(&from, this);
+  const Command* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const Command>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.Command)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.Command)
+    MergeFrom(*source);
+  }
+}
+
+void Command::MergeFrom(const Command& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.Command)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  switch (from.command_type_case()) {
+    case kTypeDescription: {
+      mutable_type_description()->::GstDebugger::TypeDescriptionRequest::MergeFrom(from.type_description());
+      break;
+    }
+    case kDebugCategoriesList: {
+      set_debug_categories_list(from.debug_categories_list());
+      break;
+    }
+    case kHookRequest: {
+      mutable_hook_request()->::GstDebugger::HookRequest::MergeFrom(from.hook_request());
+      break;
+    }
+    case kLogThreshold: {
+      set_log_threshold(from.log_threshold());
+      break;
+    }
+    case kEntireTopology: {
+      set_entire_topology(from.entire_topology());
+      break;
+    }
+    case kProperty: {
+      mutable_property()->::GstDebugger::PropertyRequest::MergeFrom(from.property());
+      break;
+    }
+    case kPropertySet: {
+      mutable_property_set()->::GstDebugger::PropertyValue::MergeFrom(from.property_set());
+      break;
+    }
+    case kPadDynamicInfo: {
+      set_pad_dynamic_info(from.pad_dynamic_info());
+      break;
+    }
+    case COMMAND_TYPE_NOT_SET: {
+      break;
+    }
+  }
+}
+
+void Command::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.Command)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void Command::CopyFrom(const Command& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.Command)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool Command::IsInitialized() const {
+  switch (command_type_case()) {
+    case kTypeDescription: {
+      if (has_type_description()) {
+        if (!this->type_description().IsInitialized()) return false;
+      }
+      break;
+    }
+    case kDebugCategoriesList: {
+      break;
+    }
+    case kHookRequest: {
+      if (has_hook_request()) {
+        if (!this->hook_request().IsInitialized()) return false;
+      }
+      break;
+    }
+    case kLogThreshold: {
+      break;
+    }
+    case kEntireTopology: {
+      break;
+    }
+    case kProperty: {
+      if (has_property()) {
+        if (!this->property().IsInitialized()) return false;
+      }
+      break;
+    }
+    case kPropertySet: {
+      if (has_property_set()) {
+        if (!this->property_set().IsInitialized()) return false;
+      }
+      break;
+    }
+    case kPadDynamicInfo: {
+      break;
+    }
+    case COMMAND_TYPE_NOT_SET: {
+      break;
+    }
+  }
+  return true;
+}
+
+void Command::Swap(Command* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void Command::InternalSwap(Command* other) {
+  std::swap(command_type_, other->command_type_);
+  std::swap(_oneof_case_[0], other->_oneof_case_[0]);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata Command::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[16];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// Command
+
+// optional .GstDebugger.TypeDescriptionRequest type_description = 1;
+bool Command::has_type_description() const {
+  return command_type_case() == kTypeDescription;
+}
+void Command::set_has_type_description() {
+  _oneof_case_[0] = kTypeDescription;
+}
+void Command::clear_type_description() {
+  if (has_type_description()) {
+    delete command_type_.type_description_;
+    clear_has_command_type();
+  }
+}
+ const ::GstDebugger::TypeDescriptionRequest& Command::type_description() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.Command.type_description)
+  return has_type_description()
+      ? *command_type_.type_description_
+      : ::GstDebugger::TypeDescriptionRequest::default_instance();
+}
+::GstDebugger::TypeDescriptionRequest* Command::mutable_type_description() {
+  if (!has_type_description()) {
+    clear_command_type();
+    set_has_type_description();
+    command_type_.type_description_ = new ::GstDebugger::TypeDescriptionRequest;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.Command.type_description)
+  return command_type_.type_description_;
+}
+::GstDebugger::TypeDescriptionRequest* Command::release_type_description() {
+  // @@protoc_insertion_point(field_release:GstDebugger.Command.type_description)
+  if (has_type_description()) {
+    clear_has_command_type();
+    ::GstDebugger::TypeDescriptionRequest* temp = command_type_.type_description_;
+    command_type_.type_description_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+void Command::set_allocated_type_description(::GstDebugger::TypeDescriptionRequest* type_description) {
+  clear_command_type();
+  if (type_description) {
+    set_has_type_description();
+    command_type_.type_description_ = type_description;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.Command.type_description)
+}
+
+// optional bool debug_categories_list = 2;
+bool Command::has_debug_categories_list() const {
+  return command_type_case() == kDebugCategoriesList;
+}
+void Command::set_has_debug_categories_list() {
+  _oneof_case_[0] = kDebugCategoriesList;
+}
+void Command::clear_debug_categories_list() {
+  if (has_debug_categories_list()) {
+    command_type_.debug_categories_list_ = false;
+    clear_has_command_type();
+  }
+}
+bool Command::debug_categories_list() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.Command.debug_categories_list)
+  if (has_debug_categories_list()) {
+    return command_type_.debug_categories_list_;
+  }
+  return false;
+}
+void Command::set_debug_categories_list(bool value) {
+  if (!has_debug_categories_list()) {
+    clear_command_type();
+    set_has_debug_categories_list();
+  }
+  command_type_.debug_categories_list_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.Command.debug_categories_list)
+}
+
+// optional .GstDebugger.HookRequest hook_request = 3;
+bool Command::has_hook_request() const {
+  return command_type_case() == kHookRequest;
+}
+void Command::set_has_hook_request() {
+  _oneof_case_[0] = kHookRequest;
+}
+void Command::clear_hook_request() {
+  if (has_hook_request()) {
+    delete command_type_.hook_request_;
+    clear_has_command_type();
+  }
+}
+ const ::GstDebugger::HookRequest& Command::hook_request() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.Command.hook_request)
+  return has_hook_request()
+      ? *command_type_.hook_request_
+      : ::GstDebugger::HookRequest::default_instance();
+}
+::GstDebugger::HookRequest* Command::mutable_hook_request() {
+  if (!has_hook_request()) {
+    clear_command_type();
+    set_has_hook_request();
+    command_type_.hook_request_ = new ::GstDebugger::HookRequest;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.Command.hook_request)
+  return command_type_.hook_request_;
+}
+::GstDebugger::HookRequest* Command::release_hook_request() {
+  // @@protoc_insertion_point(field_release:GstDebugger.Command.hook_request)
+  if (has_hook_request()) {
+    clear_has_command_type();
+    ::GstDebugger::HookRequest* temp = command_type_.hook_request_;
+    command_type_.hook_request_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+void Command::set_allocated_hook_request(::GstDebugger::HookRequest* hook_request) {
+  clear_command_type();
+  if (hook_request) {
+    set_has_hook_request();
+    command_type_.hook_request_ = hook_request;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.Command.hook_request)
+}
+
+// optional string log_threshold = 4;
+bool Command::has_log_threshold() const {
+  return command_type_case() == kLogThreshold;
+}
+void Command::set_has_log_threshold() {
+  _oneof_case_[0] = kLogThreshold;
+}
+void Command::clear_log_threshold() {
+  if (has_log_threshold()) {
+    
command_type_.log_threshold_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+    clear_has_command_type();
+  }
+}
+const ::std::string& Command::log_threshold() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.Command.log_threshold)
+  if (has_log_threshold()) {
+    return command_type_.log_threshold_.GetNoArena();
+  }
+  return *&::google::protobuf::internal::GetEmptyStringAlreadyInited();
+}
+void Command::set_log_threshold(const ::std::string& value) {
+  // @@protoc_insertion_point(field_set:GstDebugger.Command.log_threshold)
+  if (!has_log_threshold()) {
+    clear_command_type();
+    set_has_log_threshold();
+    
command_type_.log_threshold_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  }
+  command_type_.log_threshold_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
value);
+  // @@protoc_insertion_point(field_set:GstDebugger.Command.log_threshold)
+}
+#if LANG_CXX11
+void Command::set_log_threshold(::std::string&& value) {
+  // @@protoc_insertion_point(field_set:GstDebugger.Command.log_threshold)
+  if (!has_log_threshold()) {
+    clear_command_type();
+    set_has_log_threshold();
+    
command_type_.log_threshold_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  }
+  command_type_.log_threshold_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.Command.log_threshold)
+}
+#endif
+void Command::set_log_threshold(const char* value) {
+  if (!has_log_threshold()) {
+    clear_command_type();
+    set_has_log_threshold();
+    
command_type_.log_threshold_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  }
+  command_type_.log_threshold_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.Command.log_threshold)
+}
+void Command::set_log_threshold(const char* value, size_t size) {
+  if (!has_log_threshold()) {
+    clear_command_type();
+    set_has_log_threshold();
+    
command_type_.log_threshold_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  }
+  command_type_.log_threshold_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
::std::string(
+      reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.Command.log_threshold)
+}
+::std::string* Command::mutable_log_threshold() {
+  if (!has_log_threshold()) {
+    clear_command_type();
+    set_has_log_threshold();
+    
command_type_.log_threshold_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.Command.log_threshold)
+  return 
command_type_.log_threshold_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* Command::release_log_threshold() {
+  // @@protoc_insertion_point(field_release:GstDebugger.Command.log_threshold)
+  if (has_log_threshold()) {
+    clear_has_command_type();
+    return 
command_type_.log_threshold_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  } else {
+    return NULL;
+  }
+}
+void Command::set_allocated_log_threshold(::std::string* log_threshold) {
+  if (!has_log_threshold()) {
+    
command_type_.log_threshold_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  }
+  clear_command_type();
+  if (log_threshold != NULL) {
+    set_has_log_threshold();
+    
command_type_.log_threshold_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+        log_threshold);
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.Command.log_threshold)
+}
+
+// optional bool entire_topology = 5;
+bool Command::has_entire_topology() const {
+  return command_type_case() == kEntireTopology;
+}
+void Command::set_has_entire_topology() {
+  _oneof_case_[0] = kEntireTopology;
+}
+void Command::clear_entire_topology() {
+  if (has_entire_topology()) {
+    command_type_.entire_topology_ = false;
+    clear_has_command_type();
+  }
+}
+bool Command::entire_topology() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.Command.entire_topology)
+  if (has_entire_topology()) {
+    return command_type_.entire_topology_;
+  }
+  return false;
+}
+void Command::set_entire_topology(bool value) {
+  if (!has_entire_topology()) {
+    clear_command_type();
+    set_has_entire_topology();
+  }
+  command_type_.entire_topology_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.Command.entire_topology)
+}
+
+// optional .GstDebugger.PropertyRequest property = 6;
+bool Command::has_property() const {
+  return command_type_case() == kProperty;
+}
+void Command::set_has_property() {
+  _oneof_case_[0] = kProperty;
+}
+void Command::clear_property() {
+  if (has_property()) {
+    delete command_type_.property_;
+    clear_has_command_type();
+  }
+}
+ const ::GstDebugger::PropertyRequest& Command::property() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.Command.property)
+  return has_property()
+      ? *command_type_.property_
+      : ::GstDebugger::PropertyRequest::default_instance();
+}
+::GstDebugger::PropertyRequest* Command::mutable_property() {
+  if (!has_property()) {
+    clear_command_type();
+    set_has_property();
+    command_type_.property_ = new ::GstDebugger::PropertyRequest;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.Command.property)
+  return command_type_.property_;
+}
+::GstDebugger::PropertyRequest* Command::release_property() {
+  // @@protoc_insertion_point(field_release:GstDebugger.Command.property)
+  if (has_property()) {
+    clear_has_command_type();
+    ::GstDebugger::PropertyRequest* temp = command_type_.property_;
+    command_type_.property_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+void Command::set_allocated_property(::GstDebugger::PropertyRequest* property) {
+  clear_command_type();
+  if (property) {
+    set_has_property();
+    command_type_.property_ = property;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.Command.property)
+}
+
+// optional .GstDebugger.PropertyValue property_set = 7;
+bool Command::has_property_set() const {
+  return command_type_case() == kPropertySet;
+}
+void Command::set_has_property_set() {
+  _oneof_case_[0] = kPropertySet;
+}
+void Command::clear_property_set() {
+  if (has_property_set()) {
+    delete command_type_.property_set_;
+    clear_has_command_type();
+  }
+}
+ const ::GstDebugger::PropertyValue& Command::property_set() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.Command.property_set)
+  return has_property_set()
+      ? *command_type_.property_set_
+      : ::GstDebugger::PropertyValue::default_instance();
+}
+::GstDebugger::PropertyValue* Command::mutable_property_set() {
+  if (!has_property_set()) {
+    clear_command_type();
+    set_has_property_set();
+    command_type_.property_set_ = new ::GstDebugger::PropertyValue;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.Command.property_set)
+  return command_type_.property_set_;
+}
+::GstDebugger::PropertyValue* Command::release_property_set() {
+  // @@protoc_insertion_point(field_release:GstDebugger.Command.property_set)
+  if (has_property_set()) {
+    clear_has_command_type();
+    ::GstDebugger::PropertyValue* temp = command_type_.property_set_;
+    command_type_.property_set_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+void Command::set_allocated_property_set(::GstDebugger::PropertyValue* property_set) {
+  clear_command_type();
+  if (property_set) {
+    set_has_property_set();
+    command_type_.property_set_ = property_set;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.Command.property_set)
+}
+
+// optional string pad_dynamic_info = 8;
+bool Command::has_pad_dynamic_info() const {
+  return command_type_case() == kPadDynamicInfo;
+}
+void Command::set_has_pad_dynamic_info() {
+  _oneof_case_[0] = kPadDynamicInfo;
+}
+void Command::clear_pad_dynamic_info() {
+  if (has_pad_dynamic_info()) {
+    
command_type_.pad_dynamic_info_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+    clear_has_command_type();
+  }
+}
+const ::std::string& Command::pad_dynamic_info() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.Command.pad_dynamic_info)
+  if (has_pad_dynamic_info()) {
+    return command_type_.pad_dynamic_info_.GetNoArena();
+  }
+  return *&::google::protobuf::internal::GetEmptyStringAlreadyInited();
+}
+void Command::set_pad_dynamic_info(const ::std::string& value) {
+  // @@protoc_insertion_point(field_set:GstDebugger.Command.pad_dynamic_info)
+  if (!has_pad_dynamic_info()) {
+    clear_command_type();
+    set_has_pad_dynamic_info();
+    
command_type_.pad_dynamic_info_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  }
+  command_type_.pad_dynamic_info_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
value);
+  // @@protoc_insertion_point(field_set:GstDebugger.Command.pad_dynamic_info)
+}
+#if LANG_CXX11
+void Command::set_pad_dynamic_info(::std::string&& value) {
+  // @@protoc_insertion_point(field_set:GstDebugger.Command.pad_dynamic_info)
+  if (!has_pad_dynamic_info()) {
+    clear_command_type();
+    set_has_pad_dynamic_info();
+    
command_type_.pad_dynamic_info_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  }
+  command_type_.pad_dynamic_info_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.Command.pad_dynamic_info)
+}
+#endif
+void Command::set_pad_dynamic_info(const char* value) {
+  if (!has_pad_dynamic_info()) {
+    clear_command_type();
+    set_has_pad_dynamic_info();
+    
command_type_.pad_dynamic_info_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  }
+  command_type_.pad_dynamic_info_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.Command.pad_dynamic_info)
+}
+void Command::set_pad_dynamic_info(const char* value, size_t size) {
+  if (!has_pad_dynamic_info()) {
+    clear_command_type();
+    set_has_pad_dynamic_info();
+    
command_type_.pad_dynamic_info_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  }
+  command_type_.pad_dynamic_info_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
::std::string(
+      reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.Command.pad_dynamic_info)
+}
+::std::string* Command::mutable_pad_dynamic_info() {
+  if (!has_pad_dynamic_info()) {
+    clear_command_type();
+    set_has_pad_dynamic_info();
+    
command_type_.pad_dynamic_info_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.Command.pad_dynamic_info)
+  return 
command_type_.pad_dynamic_info_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* Command::release_pad_dynamic_info() {
+  // @@protoc_insertion_point(field_release:GstDebugger.Command.pad_dynamic_info)
+  if (has_pad_dynamic_info()) {
+    clear_has_command_type();
+    return 
command_type_.pad_dynamic_info_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  } else {
+    return NULL;
+  }
+}
+void Command::set_allocated_pad_dynamic_info(::std::string* pad_dynamic_info) {
+  if (!has_pad_dynamic_info()) {
+    
command_type_.pad_dynamic_info_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  }
+  clear_command_type();
+  if (pad_dynamic_info != NULL) {
+    set_has_pad_dynamic_info();
+    
command_type_.pad_dynamic_info_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+        pad_dynamic_info);
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.Command.pad_dynamic_info)
+}
+
+bool Command::has_command_type() const {
+  return command_type_case() != COMMAND_TYPE_NOT_SET;
+}
+void Command::clear_has_command_type() {
+  _oneof_case_[0] = COMMAND_TYPE_NOT_SET;
+}
+Command::CommandTypeCase Command::command_type_case() const {
+  return Command::CommandTypeCase(_oneof_case_[0]);
+}
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int DebugCategories::kCategoryFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+DebugCategories::DebugCategories()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.DebugCategories)
+}
+DebugCategories::DebugCategories(const DebugCategories& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0),
+      category_(from.category_) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.DebugCategories)
+}
+
+void DebugCategories::SharedCtor() {
+  _cached_size_ = 0;
+}
+
+DebugCategories::~DebugCategories() {
+  // @@protoc_insertion_point(destructor:GstDebugger.DebugCategories)
+  SharedDtor();
+}
+
+void DebugCategories::SharedDtor() {
+}
+
+void DebugCategories::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* DebugCategories::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[17].descriptor;
+}
+
+const DebugCategories& DebugCategories::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+DebugCategories* DebugCategories::New(::google::protobuf::Arena* arena) const {
+  DebugCategories* n = new DebugCategories;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void DebugCategories::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.DebugCategories)
+  category_.Clear();
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool DebugCategories::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.DebugCategories)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // repeated string category = 1;
+      case 1: {
+        if (tag == 10u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->add_category()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->category(this->category_size() - 1).data(),
+            this->category(this->category_size() - 1).length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.DebugCategories.category");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.DebugCategories)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.DebugCategories)
+  return false;
+#undef DO_
+}
+
+void DebugCategories::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.DebugCategories)
+  // repeated string category = 1;
+  for (int i = 0; i < this->category_size(); i++) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->category(i).data(), this->category(i).length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.DebugCategories.category");
+    ::google::protobuf::internal::WireFormatLite::WriteString(
+      1, this->category(i), output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.DebugCategories)
+}
+
+::google::protobuf::uint8* DebugCategories::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.DebugCategories)
+  // repeated string category = 1;
+  for (int i = 0; i < this->category_size(); i++) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->category(i).data(), this->category(i).length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.DebugCategories.category");
+    target = ::google::protobuf::internal::WireFormatLite::
+      WriteStringToArray(1, this->category(i), target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.DebugCategories)
+  return target;
+}
+
+size_t DebugCategories::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.DebugCategories)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  // repeated string category = 1;
+  total_size += 1 *
+      ::google::protobuf::internal::FromIntSize(this->category_size());
+  for (int i = 0; i < this->category_size(); i++) {
+    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
+      this->category(i));
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void DebugCategories::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.DebugCategories)
+  GOOGLE_DCHECK_NE(&from, this);
+  const DebugCategories* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const DebugCategories>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.DebugCategories)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.DebugCategories)
+    MergeFrom(*source);
+  }
+}
+
+void DebugCategories::MergeFrom(const DebugCategories& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.DebugCategories)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  category_.MergeFrom(from.category_);
+}
+
+void DebugCategories::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.DebugCategories)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void DebugCategories::CopyFrom(const DebugCategories& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.DebugCategories)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool DebugCategories::IsInitialized() const {
+  return true;
+}
+
+void DebugCategories::Swap(DebugCategories* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void DebugCategories::InternalSwap(DebugCategories* other) {
+  category_.UnsafeArenaSwap(&other->category_);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata DebugCategories::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[17];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// DebugCategories
+
+// repeated string category = 1;
+int DebugCategories::category_size() const {
+  return category_.size();
+}
+void DebugCategories::clear_category() {
+  category_.Clear();
+}
+const ::std::string& DebugCategories::category(int index) const {
+  // @@protoc_insertion_point(field_get:GstDebugger.DebugCategories.category)
+  return category_.Get(index);
+}
+::std::string* DebugCategories::mutable_category(int index) {
+  // @@protoc_insertion_point(field_mutable:GstDebugger.DebugCategories.category)
+  return category_.Mutable(index);
+}
+void DebugCategories::set_category(int index, const ::std::string& value) {
+  // @@protoc_insertion_point(field_set:GstDebugger.DebugCategories.category)
+  category_.Mutable(index)->assign(value);
+}
+void DebugCategories::set_category(int index, const char* value) {
+  category_.Mutable(index)->assign(value);
+  // @@protoc_insertion_point(field_set_char:GstDebugger.DebugCategories.category)
+}
+void DebugCategories::set_category(int index, const char* value, size_t size) {
+  category_.Mutable(index)->assign(
+    reinterpret_cast<const char*>(value), size);
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.DebugCategories.category)
+}
+::std::string* DebugCategories::add_category() {
+  // @@protoc_insertion_point(field_add_mutable:GstDebugger.DebugCategories.category)
+  return category_.Add();
+}
+void DebugCategories::add_category(const ::std::string& value) {
+  category_.Add()->assign(value);
+  // @@protoc_insertion_point(field_add:GstDebugger.DebugCategories.category)
+}
+void DebugCategories::add_category(const char* value) {
+  category_.Add()->assign(value);
+  // @@protoc_insertion_point(field_add_char:GstDebugger.DebugCategories.category)
+}
+void DebugCategories::add_category(const char* value, size_t size) {
+  category_.Add()->assign(reinterpret_cast<const char*>(value), size);
+  // @@protoc_insertion_point(field_add_pointer:GstDebugger.DebugCategories.category)
+}
+const ::google::protobuf::RepeatedPtrField< ::std::string>&
+DebugCategories::category() const {
+  // @@protoc_insertion_point(field_list:GstDebugger.DebugCategories.category)
+  return category_;
+}
+::google::protobuf::RepeatedPtrField< ::std::string>*
+DebugCategories::mutable_category() {
+  // @@protoc_insertion_point(field_mutable_list:GstDebugger.DebugCategories.category)
+  return &category_;
+}
+
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int LogInfo::kLevelFieldNumber;
+const int LogInfo::kCategoryFieldNumber;
+const int LogInfo::kFileFieldNumber;
+const int LogInfo::kFunctionFieldNumber;
+const int LogInfo::kLineFieldNumber;
+const int LogInfo::kObjectFieldNumber;
+const int LogInfo::kMessageFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+LogInfo::LogInfo()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.LogInfo)
+}
+LogInfo::LogInfo(const LogInfo& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  category_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_category()) {
+    category_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.category_);
+  }
+  file_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_file()) {
+    file_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.file_);
+  }
+  function_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_function()) {
+    function_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.function_);
+  }
+  object_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_object()) {
+    object_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.object_);
+  }
+  message_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_message()) {
+    message_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.message_);
+  }
+  ::memcpy(&level_, &from.level_,
+    reinterpret_cast<char*>(&line_) -
+    reinterpret_cast<char*>(&level_) + sizeof(line_));
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.LogInfo)
+}
+
+void LogInfo::SharedCtor() {
+  _cached_size_ = 0;
+  category_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  file_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  function_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  object_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  message_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  ::memset(&level_, 0, reinterpret_cast<char*>(&line_) -
+    reinterpret_cast<char*>(&level_) + sizeof(line_));
+}
+
+LogInfo::~LogInfo() {
+  // @@protoc_insertion_point(destructor:GstDebugger.LogInfo)
+  SharedDtor();
+}
+
+void LogInfo::SharedDtor() {
+  category_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  file_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  function_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  object_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  message_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void LogInfo::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* LogInfo::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[18].descriptor;
+}
+
+const LogInfo& LogInfo::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+LogInfo* LogInfo::New(::google::protobuf::Arena* arena) const {
+  LogInfo* n = new LogInfo;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void LogInfo::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.LogInfo)
+  if (_has_bits_[0 / 32] & 31u) {
+    if (has_category()) {
+      GOOGLE_DCHECK(!category_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*category_.UnsafeRawStringPointer())->clear();
+    }
+    if (has_file()) {
+      GOOGLE_DCHECK(!file_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*file_.UnsafeRawStringPointer())->clear();
+    }
+    if (has_function()) {
+      GOOGLE_DCHECK(!function_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*function_.UnsafeRawStringPointer())->clear();
+    }
+    if (has_object()) {
+      GOOGLE_DCHECK(!object_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*object_.UnsafeRawStringPointer())->clear();
+    }
+    if (has_message()) {
+      GOOGLE_DCHECK(!message_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*message_.UnsafeRawStringPointer())->clear();
+    }
+  }
+  if (_has_bits_[0 / 32] & 96u) {
+    ::memset(&level_, 0, reinterpret_cast<char*>(&line_) -
+      reinterpret_cast<char*>(&level_) + sizeof(line_));
+  }
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool LogInfo::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.LogInfo)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required int32 level = 1;
+      case 1: {
+        if (tag == 8u) {
+          set_has_level();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &level_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required string category = 2;
+      case 2: {
+        if (tag == 18u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_category()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->category().data(), this->category().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.LogInfo.category");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required string file = 3;
+      case 3: {
+        if (tag == 26u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_file()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->file().data(), this->file().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.LogInfo.file");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required string function = 4;
+      case 4: {
+        if (tag == 34u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_function()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->function().data(), this->function().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.LogInfo.function");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required int32 line = 5;
+      case 5: {
+        if (tag == 40u) {
+          set_has_line();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &line_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required string object = 6;
+      case 6: {
+        if (tag == 50u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_object()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->object().data(), this->object().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.LogInfo.object");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required string message = 7;
+      case 7: {
+        if (tag == 58u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_message()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->message().data(), this->message().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.LogInfo.message");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.LogInfo)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.LogInfo)
+  return false;
+#undef DO_
+}
+
+void LogInfo::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.LogInfo)
+  // required int32 level = 1;
+  if (has_level()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->level(), output);
+  }
+
+  // required string category = 2;
+  if (has_category()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->category().data(), this->category().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.LogInfo.category");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      2, this->category(), output);
+  }
+
+  // required string file = 3;
+  if (has_file()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->file().data(), this->file().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.LogInfo.file");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      3, this->file(), output);
+  }
+
+  // required string function = 4;
+  if (has_function()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->function().data(), this->function().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.LogInfo.function");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      4, this->function(), output);
+  }
+
+  // required int32 line = 5;
+  if (has_line()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(5, this->line(), output);
+  }
+
+  // required string object = 6;
+  if (has_object()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->object().data(), this->object().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.LogInfo.object");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      6, this->object(), output);
+  }
+
+  // required string message = 7;
+  if (has_message()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->message().data(), this->message().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.LogInfo.message");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      7, this->message(), output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.LogInfo)
+}
+
+::google::protobuf::uint8* LogInfo::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.LogInfo)
+  // required int32 level = 1;
+  if (has_level()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->level(), target);
+  }
+
+  // required string category = 2;
+  if (has_category()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->category().data(), this->category().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.LogInfo.category");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        2, this->category(), target);
+  }
+
+  // required string file = 3;
+  if (has_file()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->file().data(), this->file().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.LogInfo.file");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        3, this->file(), target);
+  }
+
+  // required string function = 4;
+  if (has_function()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->function().data(), this->function().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.LogInfo.function");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        4, this->function(), target);
+  }
+
+  // required int32 line = 5;
+  if (has_line()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(5, this->line(), target);
+  }
+
+  // required string object = 6;
+  if (has_object()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->object().data(), this->object().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.LogInfo.object");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        6, this->object(), target);
+  }
+
+  // required string message = 7;
+  if (has_message()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->message().data(), this->message().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.LogInfo.message");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        7, this->message(), target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.LogInfo)
+  return target;
+}
+
+size_t LogInfo::RequiredFieldsByteSizeFallback() const {
+// @@protoc_insertion_point(required_fields_byte_size_fallback_start:GstDebugger.LogInfo)
+  size_t total_size = 0;
+
+  if (has_category()) {
+    // required string category = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->category());
+  }
+
+  if (has_file()) {
+    // required string file = 3;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->file());
+  }
+
+  if (has_function()) {
+    // required string function = 4;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->function());
+  }
+
+  if (has_object()) {
+    // required string object = 6;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->object());
+  }
+
+  if (has_message()) {
+    // required string message = 7;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->message());
+  }
+
+  if (has_level()) {
+    // required int32 level = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->level());
+  }
+
+  if (has_line()) {
+    // required int32 line = 5;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->line());
+  }
+
+  return total_size;
+}
+size_t LogInfo::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.LogInfo)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  if (((_has_bits_[0] & 0x0000007f) ^ 0x0000007f) == 0) {  // All required fields are present.
+    // required string category = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->category());
+
+    // required string file = 3;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->file());
+
+    // required string function = 4;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->function());
+
+    // required string object = 6;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->object());
+
+    // required string message = 7;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->message());
+
+    // required int32 level = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->level());
+
+    // required int32 line = 5;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->line());
+
+  } else {
+    total_size += RequiredFieldsByteSizeFallback();
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void LogInfo::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.LogInfo)
+  GOOGLE_DCHECK_NE(&from, this);
+  const LogInfo* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const LogInfo>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.LogInfo)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.LogInfo)
+    MergeFrom(*source);
+  }
+}
+
+void LogInfo::MergeFrom(const LogInfo& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.LogInfo)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from._has_bits_[0 / 32] & 127u) {
+    if (from.has_category()) {
+      set_has_category();
+      category_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.category_);
+    }
+    if (from.has_file()) {
+      set_has_file();
+      file_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.file_);
+    }
+    if (from.has_function()) {
+      set_has_function();
+      function_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.function_);
+    }
+    if (from.has_object()) {
+      set_has_object();
+      object_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.object_);
+    }
+    if (from.has_message()) {
+      set_has_message();
+      message_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.message_);
+    }
+    if (from.has_level()) {
+      set_level(from.level());
+    }
+    if (from.has_line()) {
+      set_line(from.line());
+    }
+  }
+}
+
+void LogInfo::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.LogInfo)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void LogInfo::CopyFrom(const LogInfo& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.LogInfo)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool LogInfo::IsInitialized() const {
+  if ((_has_bits_[0] & 0x0000007f) != 0x0000007f) return false;
+  return true;
+}
+
+void LogInfo::Swap(LogInfo* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void LogInfo::InternalSwap(LogInfo* other) {
+  category_.Swap(&other->category_);
+  file_.Swap(&other->file_);
+  function_.Swap(&other->function_);
+  object_.Swap(&other->object_);
+  message_.Swap(&other->message_);
+  std::swap(level_, other->level_);
+  std::swap(line_, other->line_);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata LogInfo::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[18];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// LogInfo
+
+// required int32 level = 1;
+bool LogInfo::has_level() const {
+  return (_has_bits_[0] & 0x00000020u) != 0;
+}
+void LogInfo::set_has_level() {
+  _has_bits_[0] |= 0x00000020u;
+}
+void LogInfo::clear_has_level() {
+  _has_bits_[0] &= ~0x00000020u;
+}
+void LogInfo::clear_level() {
+  level_ = 0;
+  clear_has_level();
+}
+::google::protobuf::int32 LogInfo::level() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.LogInfo.level)
+  return level_;
+}
+void LogInfo::set_level(::google::protobuf::int32 value) {
+  set_has_level();
+  level_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.LogInfo.level)
+}
+
+// required string category = 2;
+bool LogInfo::has_category() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void LogInfo::set_has_category() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void LogInfo::clear_has_category() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void LogInfo::clear_category() {
+  category_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_category();
+}
+const ::std::string& LogInfo::category() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.LogInfo.category)
+  return category_.GetNoArena();
+}
+void LogInfo::set_category(const ::std::string& value) {
+  set_has_category();
+  category_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.LogInfo.category)
+}
+#if LANG_CXX11
+void LogInfo::set_category(::std::string&& value) {
+  set_has_category();
+  category_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.LogInfo.category)
+}
+#endif
+void LogInfo::set_category(const char* value) {
+  set_has_category();
+  category_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.LogInfo.category)
+}
+void LogInfo::set_category(const char* value, size_t size) {
+  set_has_category();
+  category_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.LogInfo.category)
+}
+::std::string* LogInfo::mutable_category() {
+  set_has_category();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.LogInfo.category)
+  return category_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* LogInfo::release_category() {
+  // @@protoc_insertion_point(field_release:GstDebugger.LogInfo.category)
+  clear_has_category();
+  return category_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void LogInfo::set_allocated_category(::std::string* category) {
+  if (category != NULL) {
+    set_has_category();
+  } else {
+    clear_has_category();
+  }
+  category_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), category);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.LogInfo.category)
+}
+
+// required string file = 3;
+bool LogInfo::has_file() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+void LogInfo::set_has_file() {
+  _has_bits_[0] |= 0x00000002u;
+}
+void LogInfo::clear_has_file() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+void LogInfo::clear_file() {
+  file_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_file();
+}
+const ::std::string& LogInfo::file() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.LogInfo.file)
+  return file_.GetNoArena();
+}
+void LogInfo::set_file(const ::std::string& value) {
+  set_has_file();
+  file_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.LogInfo.file)
+}
+#if LANG_CXX11
+void LogInfo::set_file(::std::string&& value) {
+  set_has_file();
+  file_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.LogInfo.file)
+}
+#endif
+void LogInfo::set_file(const char* value) {
+  set_has_file();
+  file_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.LogInfo.file)
+}
+void LogInfo::set_file(const char* value, size_t size) {
+  set_has_file();
+  file_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.LogInfo.file)
+}
+::std::string* LogInfo::mutable_file() {
+  set_has_file();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.LogInfo.file)
+  return file_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* LogInfo::release_file() {
+  // @@protoc_insertion_point(field_release:GstDebugger.LogInfo.file)
+  clear_has_file();
+  return file_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void LogInfo::set_allocated_file(::std::string* file) {
+  if (file != NULL) {
+    set_has_file();
+  } else {
+    clear_has_file();
+  }
+  file_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), file);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.LogInfo.file)
+}
+
+// required string function = 4;
+bool LogInfo::has_function() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+void LogInfo::set_has_function() {
+  _has_bits_[0] |= 0x00000004u;
+}
+void LogInfo::clear_has_function() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+void LogInfo::clear_function() {
+  function_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_function();
+}
+const ::std::string& LogInfo::function() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.LogInfo.function)
+  return function_.GetNoArena();
+}
+void LogInfo::set_function(const ::std::string& value) {
+  set_has_function();
+  function_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.LogInfo.function)
+}
+#if LANG_CXX11
+void LogInfo::set_function(::std::string&& value) {
+  set_has_function();
+  function_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.LogInfo.function)
+}
+#endif
+void LogInfo::set_function(const char* value) {
+  set_has_function();
+  function_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.LogInfo.function)
+}
+void LogInfo::set_function(const char* value, size_t size) {
+  set_has_function();
+  function_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.LogInfo.function)
+}
+::std::string* LogInfo::mutable_function() {
+  set_has_function();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.LogInfo.function)
+  return function_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* LogInfo::release_function() {
+  // @@protoc_insertion_point(field_release:GstDebugger.LogInfo.function)
+  clear_has_function();
+  return function_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void LogInfo::set_allocated_function(::std::string* function) {
+  if (function != NULL) {
+    set_has_function();
+  } else {
+    clear_has_function();
+  }
+  function_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), function);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.LogInfo.function)
+}
+
+// required int32 line = 5;
+bool LogInfo::has_line() const {
+  return (_has_bits_[0] & 0x00000040u) != 0;
+}
+void LogInfo::set_has_line() {
+  _has_bits_[0] |= 0x00000040u;
+}
+void LogInfo::clear_has_line() {
+  _has_bits_[0] &= ~0x00000040u;
+}
+void LogInfo::clear_line() {
+  line_ = 0;
+  clear_has_line();
+}
+::google::protobuf::int32 LogInfo::line() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.LogInfo.line)
+  return line_;
+}
+void LogInfo::set_line(::google::protobuf::int32 value) {
+  set_has_line();
+  line_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.LogInfo.line)
+}
+
+// required string object = 6;
+bool LogInfo::has_object() const {
+  return (_has_bits_[0] & 0x00000008u) != 0;
+}
+void LogInfo::set_has_object() {
+  _has_bits_[0] |= 0x00000008u;
+}
+void LogInfo::clear_has_object() {
+  _has_bits_[0] &= ~0x00000008u;
+}
+void LogInfo::clear_object() {
+  object_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_object();
+}
+const ::std::string& LogInfo::object() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.LogInfo.object)
+  return object_.GetNoArena();
+}
+void LogInfo::set_object(const ::std::string& value) {
+  set_has_object();
+  object_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.LogInfo.object)
+}
+#if LANG_CXX11
+void LogInfo::set_object(::std::string&& value) {
+  set_has_object();
+  object_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.LogInfo.object)
+}
+#endif
+void LogInfo::set_object(const char* value) {
+  set_has_object();
+  object_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.LogInfo.object)
+}
+void LogInfo::set_object(const char* value, size_t size) {
+  set_has_object();
+  object_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.LogInfo.object)
+}
+::std::string* LogInfo::mutable_object() {
+  set_has_object();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.LogInfo.object)
+  return object_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* LogInfo::release_object() {
+  // @@protoc_insertion_point(field_release:GstDebugger.LogInfo.object)
+  clear_has_object();
+  return object_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void LogInfo::set_allocated_object(::std::string* object) {
+  if (object != NULL) {
+    set_has_object();
+  } else {
+    clear_has_object();
+  }
+  object_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), object);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.LogInfo.object)
+}
+
+// required string message = 7;
+bool LogInfo::has_message() const {
+  return (_has_bits_[0] & 0x00000010u) != 0;
+}
+void LogInfo::set_has_message() {
+  _has_bits_[0] |= 0x00000010u;
+}
+void LogInfo::clear_has_message() {
+  _has_bits_[0] &= ~0x00000010u;
+}
+void LogInfo::clear_message() {
+  message_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_message();
+}
+const ::std::string& LogInfo::message() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.LogInfo.message)
+  return message_.GetNoArena();
+}
+void LogInfo::set_message(const ::std::string& value) {
+  set_has_message();
+  message_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.LogInfo.message)
+}
+#if LANG_CXX11
+void LogInfo::set_message(::std::string&& value) {
+  set_has_message();
+  message_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.LogInfo.message)
+}
+#endif
+void LogInfo::set_message(const char* value) {
+  set_has_message();
+  message_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.LogInfo.message)
+}
+void LogInfo::set_message(const char* value, size_t size) {
+  set_has_message();
+  message_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.LogInfo.message)
+}
+::std::string* LogInfo::mutable_message() {
+  set_has_message();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.LogInfo.message)
+  return message_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* LogInfo::release_message() {
+  // @@protoc_insertion_point(field_release:GstDebugger.LogInfo.message)
+  clear_has_message();
+  return message_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void LogInfo::set_allocated_message(::std::string* message) {
+  if (message != NULL) {
+    set_has_message();
+  } else {
+    clear_has_message();
+  }
+  message_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), message);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.LogInfo.message)
+}
+
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int EnumFlagsValue::kNameFieldNumber;
+const int EnumFlagsValue::kValueFieldNumber;
+const int EnumFlagsValue::kNickFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+EnumFlagsValue::EnumFlagsValue()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.EnumFlagsValue)
+}
+EnumFlagsValue::EnumFlagsValue(const EnumFlagsValue& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_name()) {
+    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
+  }
+  nick_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_nick()) {
+    nick_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.nick_);
+  }
+  value_ = from.value_;
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.EnumFlagsValue)
+}
+
+void EnumFlagsValue::SharedCtor() {
+  _cached_size_ = 0;
+  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  nick_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  value_ = 0;
+}
+
+EnumFlagsValue::~EnumFlagsValue() {
+  // @@protoc_insertion_point(destructor:GstDebugger.EnumFlagsValue)
+  SharedDtor();
+}
+
+void EnumFlagsValue::SharedDtor() {
+  name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  nick_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void EnumFlagsValue::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* EnumFlagsValue::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[19].descriptor;
+}
+
+const EnumFlagsValue& EnumFlagsValue::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+EnumFlagsValue* EnumFlagsValue::New(::google::protobuf::Arena* arena) const {
+  EnumFlagsValue* n = new EnumFlagsValue;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void EnumFlagsValue::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.EnumFlagsValue)
+  if (_has_bits_[0 / 32] & 3u) {
+    if (has_name()) {
+      GOOGLE_DCHECK(!name_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*name_.UnsafeRawStringPointer())->clear();
+    }
+    if (has_nick()) {
+      GOOGLE_DCHECK(!nick_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*nick_.UnsafeRawStringPointer())->clear();
+    }
+  }
+  value_ = 0;
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool EnumFlagsValue::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.EnumFlagsValue)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required string name = 1;
+      case 1: {
+        if (tag == 10u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_name()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->name().data(), this->name().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.EnumFlagsValue.name");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required int32 value = 2;
+      case 2: {
+        if (tag == 16u) {
+          set_has_value();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &value_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required string nick = 3;
+      case 3: {
+        if (tag == 26u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_nick()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->nick().data(), this->nick().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.EnumFlagsValue.nick");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.EnumFlagsValue)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.EnumFlagsValue)
+  return false;
+#undef DO_
+}
+
+void EnumFlagsValue::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.EnumFlagsValue)
+  // required string name = 1;
+  if (has_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->name().data(), this->name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.EnumFlagsValue.name");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      1, this->name(), output);
+  }
+
+  // required int32 value = 2;
+  if (has_value()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->value(), output);
+  }
+
+  // required string nick = 3;
+  if (has_nick()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->nick().data(), this->nick().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.EnumFlagsValue.nick");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      3, this->nick(), output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.EnumFlagsValue)
+}
+
+::google::protobuf::uint8* EnumFlagsValue::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.EnumFlagsValue)
+  // required string name = 1;
+  if (has_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->name().data(), this->name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.EnumFlagsValue.name");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        1, this->name(), target);
+  }
+
+  // required int32 value = 2;
+  if (has_value()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->value(), target);
+  }
+
+  // required string nick = 3;
+  if (has_nick()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->nick().data(), this->nick().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.EnumFlagsValue.nick");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        3, this->nick(), target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.EnumFlagsValue)
+  return target;
+}
+
+size_t EnumFlagsValue::RequiredFieldsByteSizeFallback() const {
+// @@protoc_insertion_point(required_fields_byte_size_fallback_start:GstDebugger.EnumFlagsValue)
+  size_t total_size = 0;
+
+  if (has_name()) {
+    // required string name = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->name());
+  }
+
+  if (has_nick()) {
+    // required string nick = 3;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->nick());
+  }
+
+  if (has_value()) {
+    // required int32 value = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->value());
+  }
+
+  return total_size;
+}
+size_t EnumFlagsValue::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.EnumFlagsValue)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  if (((_has_bits_[0] & 0x00000007) ^ 0x00000007) == 0) {  // All required fields are present.
+    // required string name = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->name());
+
+    // required string nick = 3;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->nick());
+
+    // required int32 value = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->value());
+
+  } else {
+    total_size += RequiredFieldsByteSizeFallback();
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void EnumFlagsValue::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.EnumFlagsValue)
+  GOOGLE_DCHECK_NE(&from, this);
+  const EnumFlagsValue* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const EnumFlagsValue>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.EnumFlagsValue)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.EnumFlagsValue)
+    MergeFrom(*source);
+  }
+}
+
+void EnumFlagsValue::MergeFrom(const EnumFlagsValue& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.EnumFlagsValue)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from._has_bits_[0 / 32] & 7u) {
+    if (from.has_name()) {
+      set_has_name();
+      name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
+    }
+    if (from.has_nick()) {
+      set_has_nick();
+      nick_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.nick_);
+    }
+    if (from.has_value()) {
+      set_value(from.value());
+    }
+  }
+}
+
+void EnumFlagsValue::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.EnumFlagsValue)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void EnumFlagsValue::CopyFrom(const EnumFlagsValue& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.EnumFlagsValue)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool EnumFlagsValue::IsInitialized() const {
+  if ((_has_bits_[0] & 0x00000007) != 0x00000007) return false;
+  return true;
+}
+
+void EnumFlagsValue::Swap(EnumFlagsValue* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void EnumFlagsValue::InternalSwap(EnumFlagsValue* other) {
+  name_.Swap(&other->name_);
+  nick_.Swap(&other->nick_);
+  std::swap(value_, other->value_);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata EnumFlagsValue::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[19];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// EnumFlagsValue
+
+// required string name = 1;
+bool EnumFlagsValue::has_name() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void EnumFlagsValue::set_has_name() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void EnumFlagsValue::clear_has_name() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void EnumFlagsValue::clear_name() {
+  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_name();
+}
+const ::std::string& EnumFlagsValue::name() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.EnumFlagsValue.name)
+  return name_.GetNoArena();
+}
+void EnumFlagsValue::set_name(const ::std::string& value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.EnumFlagsValue.name)
+}
+#if LANG_CXX11
+void EnumFlagsValue::set_name(::std::string&& value) {
+  set_has_name();
+  name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.EnumFlagsValue.name)
+}
+#endif
+void EnumFlagsValue::set_name(const char* value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.EnumFlagsValue.name)
+}
+void EnumFlagsValue::set_name(const char* value, size_t size) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.EnumFlagsValue.name)
+}
+::std::string* EnumFlagsValue::mutable_name() {
+  set_has_name();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.EnumFlagsValue.name)
+  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* EnumFlagsValue::release_name() {
+  // @@protoc_insertion_point(field_release:GstDebugger.EnumFlagsValue.name)
+  clear_has_name();
+  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void EnumFlagsValue::set_allocated_name(::std::string* name) {
+  if (name != NULL) {
+    set_has_name();
+  } else {
+    clear_has_name();
+  }
+  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.EnumFlagsValue.name)
+}
+
+// required int32 value = 2;
+bool EnumFlagsValue::has_value() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+void EnumFlagsValue::set_has_value() {
+  _has_bits_[0] |= 0x00000004u;
+}
+void EnumFlagsValue::clear_has_value() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+void EnumFlagsValue::clear_value() {
+  value_ = 0;
+  clear_has_value();
+}
+::google::protobuf::int32 EnumFlagsValue::value() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.EnumFlagsValue.value)
+  return value_;
+}
+void EnumFlagsValue::set_value(::google::protobuf::int32 value) {
+  set_has_value();
+  value_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.EnumFlagsValue.value)
+}
+
+// required string nick = 3;
+bool EnumFlagsValue::has_nick() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+void EnumFlagsValue::set_has_nick() {
+  _has_bits_[0] |= 0x00000002u;
+}
+void EnumFlagsValue::clear_has_nick() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+void EnumFlagsValue::clear_nick() {
+  nick_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_nick();
+}
+const ::std::string& EnumFlagsValue::nick() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.EnumFlagsValue.nick)
+  return nick_.GetNoArena();
+}
+void EnumFlagsValue::set_nick(const ::std::string& value) {
+  set_has_nick();
+  nick_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.EnumFlagsValue.nick)
+}
+#if LANG_CXX11
+void EnumFlagsValue::set_nick(::std::string&& value) {
+  set_has_nick();
+  nick_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.EnumFlagsValue.nick)
+}
+#endif
+void EnumFlagsValue::set_nick(const char* value) {
+  set_has_nick();
+  nick_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.EnumFlagsValue.nick)
+}
+void EnumFlagsValue::set_nick(const char* value, size_t size) {
+  set_has_nick();
+  nick_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.EnumFlagsValue.nick)
+}
+::std::string* EnumFlagsValue::mutable_nick() {
+  set_has_nick();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.EnumFlagsValue.nick)
+  return nick_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* EnumFlagsValue::release_nick() {
+  // @@protoc_insertion_point(field_release:GstDebugger.EnumFlagsValue.nick)
+  clear_has_nick();
+  return nick_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void EnumFlagsValue::set_allocated_nick(::std::string* nick) {
+  if (nick != NULL) {
+    set_has_nick();
+  } else {
+    clear_has_nick();
+  }
+  nick_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), nick);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.EnumFlagsValue.nick)
+}
+
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int EnumFlagsType::kTypeNameFieldNumber;
+const int EnumFlagsType::kKindFieldNumber;
+const int EnumFlagsType::kValuesFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+EnumFlagsType::EnumFlagsType()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.EnumFlagsType)
+}
+EnumFlagsType::EnumFlagsType(const EnumFlagsType& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0),
+      values_(from.values_) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  type_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_type_name()) {
+    type_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.type_name_);
+  }
+  kind_ = from.kind_;
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.EnumFlagsType)
+}
+
+void EnumFlagsType::SharedCtor() {
+  _cached_size_ = 0;
+  type_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  kind_ = 0;
+}
+
+EnumFlagsType::~EnumFlagsType() {
+  // @@protoc_insertion_point(destructor:GstDebugger.EnumFlagsType)
+  SharedDtor();
+}
+
+void EnumFlagsType::SharedDtor() {
+  type_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void EnumFlagsType::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* EnumFlagsType::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[20].descriptor;
+}
+
+const EnumFlagsType& EnumFlagsType::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+EnumFlagsType* EnumFlagsType::New(::google::protobuf::Arena* arena) const {
+  EnumFlagsType* n = new EnumFlagsType;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void EnumFlagsType::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.EnumFlagsType)
+  values_.Clear();
+  if (has_type_name()) {
+    GOOGLE_DCHECK(!type_name_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+    (*type_name_.UnsafeRawStringPointer())->clear();
+  }
+  kind_ = 0;
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool EnumFlagsType::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.EnumFlagsType)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required string type_name = 1;
+      case 1: {
+        if (tag == 10u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_type_name()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->type_name().data(), this->type_name().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.EnumFlagsType.type_name");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required .GstDebugger.EnumFlagsType.EnumFlagsKind kind = 2;
+      case 2: {
+        if (tag == 16u) {
+          int value;
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+                 input, &value)));
+          if (::GstDebugger::EnumFlagsType_EnumFlagsKind_IsValid(value)) {
+            set_kind(static_cast< ::GstDebugger::EnumFlagsType_EnumFlagsKind >(value));
+          } else {
+            mutable_unknown_fields()->AddVarint(2, value);
+          }
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // repeated .GstDebugger.EnumFlagsValue values = 3;
+      case 3: {
+        if (tag == 26u) {
+          DO_(input->IncrementRecursionDepth());
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
+                input, add_values()));
+        } else {
+          goto handle_unusual;
+        }
+        input->UnsafeDecrementRecursionDepth();
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.EnumFlagsType)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.EnumFlagsType)
+  return false;
+#undef DO_
+}
+
+void EnumFlagsType::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.EnumFlagsType)
+  // required string type_name = 1;
+  if (has_type_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->type_name().data(), this->type_name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.EnumFlagsType.type_name");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      1, this->type_name(), output);
+  }
+
+  // required .GstDebugger.EnumFlagsType.EnumFlagsKind kind = 2;
+  if (has_kind()) {
+    ::google::protobuf::internal::WireFormatLite::WriteEnum(
+      2, this->kind(), output);
+  }
+
+  // repeated .GstDebugger.EnumFlagsValue values = 3;
+  for (unsigned int i = 0, n = this->values_size(); i < n; i++) {
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      3, this->values(i), output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.EnumFlagsType)
+}
+
+::google::protobuf::uint8* EnumFlagsType::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.EnumFlagsType)
+  // required string type_name = 1;
+  if (has_type_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->type_name().data(), this->type_name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.EnumFlagsType.type_name");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        1, this->type_name(), target);
+  }
+
+  // required .GstDebugger.EnumFlagsType.EnumFlagsKind kind = 2;
+  if (has_kind()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
+      2, this->kind(), target);
+  }
+
+  // repeated .GstDebugger.EnumFlagsValue values = 3;
+  for (unsigned int i = 0, n = this->values_size(); i < n; i++) {
+    target = ::google::protobuf::internal::WireFormatLite::
+      InternalWriteMessageNoVirtualToArray(
+        3, this->values(i), false, target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.EnumFlagsType)
+  return target;
+}
+
+size_t EnumFlagsType::RequiredFieldsByteSizeFallback() const {
+// @@protoc_insertion_point(required_fields_byte_size_fallback_start:GstDebugger.EnumFlagsType)
+  size_t total_size = 0;
+
+  if (has_type_name()) {
+    // required string type_name = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->type_name());
+  }
+
+  if (has_kind()) {
+    // required .GstDebugger.EnumFlagsType.EnumFlagsKind kind = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::EnumSize(this->kind());
+  }
+
+  return total_size;
+}
+size_t EnumFlagsType::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.EnumFlagsType)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  if (((_has_bits_[0] & 0x00000003) ^ 0x00000003) == 0) {  // All required fields are present.
+    // required string type_name = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->type_name());
+
+    // required .GstDebugger.EnumFlagsType.EnumFlagsKind kind = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::EnumSize(this->kind());
+
+  } else {
+    total_size += RequiredFieldsByteSizeFallback();
+  }
+  // repeated .GstDebugger.EnumFlagsValue values = 3;
+  {
+    unsigned int count = this->values_size();
+    total_size += 1UL * count;
+    for (unsigned int i = 0; i < count; i++) {
+      total_size +=
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          this->values(i));
+    }
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void EnumFlagsType::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.EnumFlagsType)
+  GOOGLE_DCHECK_NE(&from, this);
+  const EnumFlagsType* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const EnumFlagsType>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.EnumFlagsType)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.EnumFlagsType)
+    MergeFrom(*source);
+  }
+}
+
+void EnumFlagsType::MergeFrom(const EnumFlagsType& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.EnumFlagsType)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  values_.MergeFrom(from.values_);
+  if (from._has_bits_[0 / 32] & 3u) {
+    if (from.has_type_name()) {
+      set_has_type_name();
+      type_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.type_name_);
+    }
+    if (from.has_kind()) {
+      set_kind(from.kind());
+    }
+  }
+}
+
+void EnumFlagsType::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.EnumFlagsType)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void EnumFlagsType::CopyFrom(const EnumFlagsType& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.EnumFlagsType)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool EnumFlagsType::IsInitialized() const {
+  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;
+  if (!::google::protobuf::internal::AllAreInitialized(this->values())) return false;
+  return true;
+}
+
+void EnumFlagsType::Swap(EnumFlagsType* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void EnumFlagsType::InternalSwap(EnumFlagsType* other) {
+  values_.UnsafeArenaSwap(&other->values_);
+  type_name_.Swap(&other->type_name_);
+  std::swap(kind_, other->kind_);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata EnumFlagsType::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[20];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// EnumFlagsType
+
+// required string type_name = 1;
+bool EnumFlagsType::has_type_name() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void EnumFlagsType::set_has_type_name() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void EnumFlagsType::clear_has_type_name() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void EnumFlagsType::clear_type_name() {
+  type_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_type_name();
+}
+const ::std::string& EnumFlagsType::type_name() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.EnumFlagsType.type_name)
+  return type_name_.GetNoArena();
+}
+void EnumFlagsType::set_type_name(const ::std::string& value) {
+  set_has_type_name();
+  type_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.EnumFlagsType.type_name)
+}
+#if LANG_CXX11
+void EnumFlagsType::set_type_name(::std::string&& value) {
+  set_has_type_name();
+  type_name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.EnumFlagsType.type_name)
+}
+#endif
+void EnumFlagsType::set_type_name(const char* value) {
+  set_has_type_name();
+  type_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.EnumFlagsType.type_name)
+}
+void EnumFlagsType::set_type_name(const char* value, size_t size) {
+  set_has_type_name();
+  type_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.EnumFlagsType.type_name)
+}
+::std::string* EnumFlagsType::mutable_type_name() {
+  set_has_type_name();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.EnumFlagsType.type_name)
+  return type_name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* EnumFlagsType::release_type_name() {
+  // @@protoc_insertion_point(field_release:GstDebugger.EnumFlagsType.type_name)
+  clear_has_type_name();
+  return type_name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void EnumFlagsType::set_allocated_type_name(::std::string* type_name) {
+  if (type_name != NULL) {
+    set_has_type_name();
+  } else {
+    clear_has_type_name();
+  }
+  type_name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), type_name);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.EnumFlagsType.type_name)
+}
+
+// required .GstDebugger.EnumFlagsType.EnumFlagsKind kind = 2;
+bool EnumFlagsType::has_kind() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+void EnumFlagsType::set_has_kind() {
+  _has_bits_[0] |= 0x00000002u;
+}
+void EnumFlagsType::clear_has_kind() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+void EnumFlagsType::clear_kind() {
+  kind_ = 0;
+  clear_has_kind();
+}
+::GstDebugger::EnumFlagsType_EnumFlagsKind EnumFlagsType::kind() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.EnumFlagsType.kind)
+  return static_cast< ::GstDebugger::EnumFlagsType_EnumFlagsKind >(kind_);
+}
+void EnumFlagsType::set_kind(::GstDebugger::EnumFlagsType_EnumFlagsKind value) {
+  assert(::GstDebugger::EnumFlagsType_EnumFlagsKind_IsValid(value));
+  set_has_kind();
+  kind_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.EnumFlagsType.kind)
+}
+
+// repeated .GstDebugger.EnumFlagsValue values = 3;
+int EnumFlagsType::values_size() const {
+  return values_.size();
+}
+void EnumFlagsType::clear_values() {
+  values_.Clear();
+}
+const ::GstDebugger::EnumFlagsValue& EnumFlagsType::values(int index) const {
+  // @@protoc_insertion_point(field_get:GstDebugger.EnumFlagsType.values)
+  return values_.Get(index);
+}
+::GstDebugger::EnumFlagsValue* EnumFlagsType::mutable_values(int index) {
+  // @@protoc_insertion_point(field_mutable:GstDebugger.EnumFlagsType.values)
+  return values_.Mutable(index);
+}
+::GstDebugger::EnumFlagsValue* EnumFlagsType::add_values() {
+  // @@protoc_insertion_point(field_add:GstDebugger.EnumFlagsType.values)
+  return values_.Add();
+}
+::google::protobuf::RepeatedPtrField< ::GstDebugger::EnumFlagsValue >*
+EnumFlagsType::mutable_values() {
+  // @@protoc_insertion_point(field_mutable_list:GstDebugger.EnumFlagsType.values)
+  return &values_;
+}
+const ::google::protobuf::RepeatedPtrField< ::GstDebugger::EnumFlagsValue >&
+EnumFlagsType::values() const {
+  // @@protoc_insertion_point(field_list:GstDebugger.EnumFlagsType.values)
+  return values_;
+}
+
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int FactoryMeta::kKeyFieldNumber;
+const int FactoryMeta::kValueFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+FactoryMeta::FactoryMeta()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.FactoryMeta)
+}
+FactoryMeta::FactoryMeta(const FactoryMeta& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  key_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_key()) {
+    key_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.key_);
+  }
+  value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_value()) {
+    value_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.value_);
+  }
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.FactoryMeta)
+}
+
+void FactoryMeta::SharedCtor() {
+  _cached_size_ = 0;
+  key_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  value_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+FactoryMeta::~FactoryMeta() {
+  // @@protoc_insertion_point(destructor:GstDebugger.FactoryMeta)
+  SharedDtor();
+}
+
+void FactoryMeta::SharedDtor() {
+  key_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  value_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void FactoryMeta::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* FactoryMeta::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[21].descriptor;
+}
+
+const FactoryMeta& FactoryMeta::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+FactoryMeta* FactoryMeta::New(::google::protobuf::Arena* arena) const {
+  FactoryMeta* n = new FactoryMeta;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void FactoryMeta::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.FactoryMeta)
+  if (_has_bits_[0 / 32] & 3u) {
+    if (has_key()) {
+      GOOGLE_DCHECK(!key_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*key_.UnsafeRawStringPointer())->clear();
+    }
+    if (has_value()) {
+      GOOGLE_DCHECK(!value_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*value_.UnsafeRawStringPointer())->clear();
+    }
+  }
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool FactoryMeta::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.FactoryMeta)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required string key = 1;
+      case 1: {
+        if (tag == 10u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_key()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->key().data(), this->key().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.FactoryMeta.key");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required string value = 2;
+      case 2: {
+        if (tag == 18u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_value()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->value().data(), this->value().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.FactoryMeta.value");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.FactoryMeta)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.FactoryMeta)
+  return false;
+#undef DO_
+}
+
+void FactoryMeta::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.FactoryMeta)
+  // required string key = 1;
+  if (has_key()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->key().data(), this->key().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.FactoryMeta.key");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      1, this->key(), output);
+  }
+
+  // required string value = 2;
+  if (has_value()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->value().data(), this->value().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.FactoryMeta.value");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      2, this->value(), output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.FactoryMeta)
+}
+
+::google::protobuf::uint8* FactoryMeta::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.FactoryMeta)
+  // required string key = 1;
+  if (has_key()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->key().data(), this->key().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.FactoryMeta.key");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        1, this->key(), target);
+  }
+
+  // required string value = 2;
+  if (has_value()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->value().data(), this->value().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.FactoryMeta.value");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        2, this->value(), target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.FactoryMeta)
+  return target;
+}
+
+size_t FactoryMeta::RequiredFieldsByteSizeFallback() const {
+// @@protoc_insertion_point(required_fields_byte_size_fallback_start:GstDebugger.FactoryMeta)
+  size_t total_size = 0;
+
+  if (has_key()) {
+    // required string key = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->key());
+  }
+
+  if (has_value()) {
+    // required string value = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->value());
+  }
+
+  return total_size;
+}
+size_t FactoryMeta::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.FactoryMeta)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  if (((_has_bits_[0] & 0x00000003) ^ 0x00000003) == 0) {  // All required fields are present.
+    // required string key = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->key());
+
+    // required string value = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->value());
+
+  } else {
+    total_size += RequiredFieldsByteSizeFallback();
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void FactoryMeta::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.FactoryMeta)
+  GOOGLE_DCHECK_NE(&from, this);
+  const FactoryMeta* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const FactoryMeta>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.FactoryMeta)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.FactoryMeta)
+    MergeFrom(*source);
+  }
+}
+
+void FactoryMeta::MergeFrom(const FactoryMeta& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.FactoryMeta)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from._has_bits_[0 / 32] & 3u) {
+    if (from.has_key()) {
+      set_has_key();
+      key_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.key_);
+    }
+    if (from.has_value()) {
+      set_has_value();
+      value_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.value_);
+    }
+  }
+}
+
+void FactoryMeta::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.FactoryMeta)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void FactoryMeta::CopyFrom(const FactoryMeta& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.FactoryMeta)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool FactoryMeta::IsInitialized() const {
+  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;
+  return true;
+}
+
+void FactoryMeta::Swap(FactoryMeta* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void FactoryMeta::InternalSwap(FactoryMeta* other) {
+  key_.Swap(&other->key_);
+  value_.Swap(&other->value_);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata FactoryMeta::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[21];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// FactoryMeta
+
+// required string key = 1;
+bool FactoryMeta::has_key() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void FactoryMeta::set_has_key() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void FactoryMeta::clear_has_key() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void FactoryMeta::clear_key() {
+  key_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_key();
+}
+const ::std::string& FactoryMeta::key() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.FactoryMeta.key)
+  return key_.GetNoArena();
+}
+void FactoryMeta::set_key(const ::std::string& value) {
+  set_has_key();
+  key_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.FactoryMeta.key)
+}
+#if LANG_CXX11
+void FactoryMeta::set_key(::std::string&& value) {
+  set_has_key();
+  key_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.FactoryMeta.key)
+}
+#endif
+void FactoryMeta::set_key(const char* value) {
+  set_has_key();
+  key_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.FactoryMeta.key)
+}
+void FactoryMeta::set_key(const char* value, size_t size) {
+  set_has_key();
+  key_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.FactoryMeta.key)
+}
+::std::string* FactoryMeta::mutable_key() {
+  set_has_key();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.FactoryMeta.key)
+  return key_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* FactoryMeta::release_key() {
+  // @@protoc_insertion_point(field_release:GstDebugger.FactoryMeta.key)
+  clear_has_key();
+  return key_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void FactoryMeta::set_allocated_key(::std::string* key) {
+  if (key != NULL) {
+    set_has_key();
+  } else {
+    clear_has_key();
+  }
+  key_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), key);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.FactoryMeta.key)
+}
+
+// required string value = 2;
+bool FactoryMeta::has_value() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+void FactoryMeta::set_has_value() {
+  _has_bits_[0] |= 0x00000002u;
+}
+void FactoryMeta::clear_has_value() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+void FactoryMeta::clear_value() {
+  value_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_value();
+}
+const ::std::string& FactoryMeta::value() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.FactoryMeta.value)
+  return value_.GetNoArena();
+}
+void FactoryMeta::set_value(const ::std::string& value) {
+  set_has_value();
+  value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.FactoryMeta.value)
+}
+#if LANG_CXX11
+void FactoryMeta::set_value(::std::string&& value) {
+  set_has_value();
+  value_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.FactoryMeta.value)
+}
+#endif
+void FactoryMeta::set_value(const char* value) {
+  set_has_value();
+  value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.FactoryMeta.value)
+}
+void FactoryMeta::set_value(const char* value, size_t size) {
+  set_has_value();
+  value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.FactoryMeta.value)
+}
+::std::string* FactoryMeta::mutable_value() {
+  set_has_value();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.FactoryMeta.value)
+  return value_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* FactoryMeta::release_value() {
+  // @@protoc_insertion_point(field_release:GstDebugger.FactoryMeta.value)
+  clear_has_value();
+  return value_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void FactoryMeta::set_allocated_value(::std::string* value) {
+  if (value != NULL) {
+    set_has_value();
+  } else {
+    clear_has_value();
+  }
+  value_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.FactoryMeta.value)
+}
+
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int PadTemplate::kNameTemplateFieldNumber;
+const int PadTemplate::kDirectionFieldNumber;
+const int PadTemplate::kPresenceFieldNumber;
+const int PadTemplate::kCapsFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+PadTemplate::PadTemplate()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.PadTemplate)
+}
+PadTemplate::PadTemplate(const PadTemplate& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  name_template_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_name_template()) {
+    name_template_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.name_template_);
+  }
+  caps_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_caps()) {
+    caps_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.caps_);
+  }
+  ::memcpy(&direction_, &from.direction_,
+    reinterpret_cast<char*>(&presence_) -
+    reinterpret_cast<char*>(&direction_) + sizeof(presence_));
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.PadTemplate)
+}
+
+void PadTemplate::SharedCtor() {
+  _cached_size_ = 0;
+  name_template_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  caps_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  ::memset(&direction_, 0, reinterpret_cast<char*>(&presence_) -
+    reinterpret_cast<char*>(&direction_) + sizeof(presence_));
+}
+
+PadTemplate::~PadTemplate() {
+  // @@protoc_insertion_point(destructor:GstDebugger.PadTemplate)
+  SharedDtor();
+}
+
+void PadTemplate::SharedDtor() {
+  name_template_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  caps_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void PadTemplate::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* PadTemplate::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[22].descriptor;
+}
+
+const PadTemplate& PadTemplate::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+PadTemplate* PadTemplate::New(::google::protobuf::Arena* arena) const {
+  PadTemplate* n = new PadTemplate;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void PadTemplate::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.PadTemplate)
+  if (_has_bits_[0 / 32] & 3u) {
+    if (has_name_template()) {
+      GOOGLE_DCHECK(!name_template_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*name_template_.UnsafeRawStringPointer())->clear();
+    }
+    if (has_caps()) {
+      GOOGLE_DCHECK(!caps_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*caps_.UnsafeRawStringPointer())->clear();
+    }
+  }
+  if (_has_bits_[0 / 32] & 12u) {
+    ::memset(&direction_, 0, reinterpret_cast<char*>(&presence_) -
+      reinterpret_cast<char*>(&direction_) + sizeof(presence_));
+  }
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool PadTemplate::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.PadTemplate)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required string name_template = 1;
+      case 1: {
+        if (tag == 10u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_name_template()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->name_template().data(), this->name_template().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.PadTemplate.name_template");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required int32 direction = 2;
+      case 2: {
+        if (tag == 16u) {
+          set_has_direction();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &direction_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required int32 presence = 3;
+      case 3: {
+        if (tag == 24u) {
+          set_has_presence();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &presence_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required string caps = 4;
+      case 4: {
+        if (tag == 34u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_caps()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->caps().data(), this->caps().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.PadTemplate.caps");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.PadTemplate)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.PadTemplate)
+  return false;
+#undef DO_
+}
+
+void PadTemplate::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.PadTemplate)
+  // required string name_template = 1;
+  if (has_name_template()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->name_template().data(), this->name_template().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.PadTemplate.name_template");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      1, this->name_template(), output);
+  }
+
+  // required int32 direction = 2;
+  if (has_direction()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->direction(), output);
+  }
+
+  // required int32 presence = 3;
+  if (has_presence()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->presence(), output);
+  }
+
+  // required string caps = 4;
+  if (has_caps()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->caps().data(), this->caps().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.PadTemplate.caps");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      4, this->caps(), output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.PadTemplate)
+}
+
+::google::protobuf::uint8* PadTemplate::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.PadTemplate)
+  // required string name_template = 1;
+  if (has_name_template()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->name_template().data(), this->name_template().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.PadTemplate.name_template");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        1, this->name_template(), target);
+  }
+
+  // required int32 direction = 2;
+  if (has_direction()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->direction(), target);
+  }
+
+  // required int32 presence = 3;
+  if (has_presence()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->presence(), target);
+  }
+
+  // required string caps = 4;
+  if (has_caps()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->caps().data(), this->caps().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.PadTemplate.caps");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        4, this->caps(), target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.PadTemplate)
+  return target;
+}
+
+size_t PadTemplate::RequiredFieldsByteSizeFallback() const {
+// @@protoc_insertion_point(required_fields_byte_size_fallback_start:GstDebugger.PadTemplate)
+  size_t total_size = 0;
+
+  if (has_name_template()) {
+    // required string name_template = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->name_template());
+  }
+
+  if (has_caps()) {
+    // required string caps = 4;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->caps());
+  }
+
+  if (has_direction()) {
+    // required int32 direction = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->direction());
+  }
+
+  if (has_presence()) {
+    // required int32 presence = 3;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->presence());
+  }
+
+  return total_size;
+}
+size_t PadTemplate::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.PadTemplate)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  if (((_has_bits_[0] & 0x0000000f) ^ 0x0000000f) == 0) {  // All required fields are present.
+    // required string name_template = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->name_template());
+
+    // required string caps = 4;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->caps());
+
+    // required int32 direction = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->direction());
+
+    // required int32 presence = 3;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->presence());
+
+  } else {
+    total_size += RequiredFieldsByteSizeFallback();
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void PadTemplate::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.PadTemplate)
+  GOOGLE_DCHECK_NE(&from, this);
+  const PadTemplate* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const PadTemplate>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.PadTemplate)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.PadTemplate)
+    MergeFrom(*source);
+  }
+}
+
+void PadTemplate::MergeFrom(const PadTemplate& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.PadTemplate)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from._has_bits_[0 / 32] & 15u) {
+    if (from.has_name_template()) {
+      set_has_name_template();
+      name_template_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.name_template_);
+    }
+    if (from.has_caps()) {
+      set_has_caps();
+      caps_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.caps_);
+    }
+    if (from.has_direction()) {
+      set_direction(from.direction());
+    }
+    if (from.has_presence()) {
+      set_presence(from.presence());
+    }
+  }
+}
+
+void PadTemplate::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.PadTemplate)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void PadTemplate::CopyFrom(const PadTemplate& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.PadTemplate)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool PadTemplate::IsInitialized() const {
+  if ((_has_bits_[0] & 0x0000000f) != 0x0000000f) return false;
+  return true;
+}
+
+void PadTemplate::Swap(PadTemplate* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void PadTemplate::InternalSwap(PadTemplate* other) {
+  name_template_.Swap(&other->name_template_);
+  caps_.Swap(&other->caps_);
+  std::swap(direction_, other->direction_);
+  std::swap(presence_, other->presence_);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata PadTemplate::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[22];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// PadTemplate
+
+// required string name_template = 1;
+bool PadTemplate::has_name_template() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void PadTemplate::set_has_name_template() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void PadTemplate::clear_has_name_template() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void PadTemplate::clear_name_template() {
+  name_template_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_name_template();
+}
+const ::std::string& PadTemplate::name_template() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PadTemplate.name_template)
+  return name_template_.GetNoArena();
+}
+void PadTemplate::set_name_template(const ::std::string& value) {
+  set_has_name_template();
+  name_template_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.PadTemplate.name_template)
+}
+#if LANG_CXX11
+void PadTemplate::set_name_template(::std::string&& value) {
+  set_has_name_template();
+  name_template_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.PadTemplate.name_template)
+}
+#endif
+void PadTemplate::set_name_template(const char* value) {
+  set_has_name_template();
+  name_template_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.PadTemplate.name_template)
+}
+void PadTemplate::set_name_template(const char* value, size_t size) {
+  set_has_name_template();
+  name_template_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.PadTemplate.name_template)
+}
+::std::string* PadTemplate::mutable_name_template() {
+  set_has_name_template();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PadTemplate.name_template)
+  return name_template_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* PadTemplate::release_name_template() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PadTemplate.name_template)
+  clear_has_name_template();
+  return name_template_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void PadTemplate::set_allocated_name_template(::std::string* name_template) {
+  if (name_template != NULL) {
+    set_has_name_template();
+  } else {
+    clear_has_name_template();
+  }
+  name_template_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
name_template);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PadTemplate.name_template)
+}
+
+// required int32 direction = 2;
+bool PadTemplate::has_direction() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+void PadTemplate::set_has_direction() {
+  _has_bits_[0] |= 0x00000004u;
+}
+void PadTemplate::clear_has_direction() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+void PadTemplate::clear_direction() {
+  direction_ = 0;
+  clear_has_direction();
+}
+::google::protobuf::int32 PadTemplate::direction() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PadTemplate.direction)
+  return direction_;
+}
+void PadTemplate::set_direction(::google::protobuf::int32 value) {
+  set_has_direction();
+  direction_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.PadTemplate.direction)
+}
+
+// required int32 presence = 3;
+bool PadTemplate::has_presence() const {
+  return (_has_bits_[0] & 0x00000008u) != 0;
+}
+void PadTemplate::set_has_presence() {
+  _has_bits_[0] |= 0x00000008u;
+}
+void PadTemplate::clear_has_presence() {
+  _has_bits_[0] &= ~0x00000008u;
+}
+void PadTemplate::clear_presence() {
+  presence_ = 0;
+  clear_has_presence();
+}
+::google::protobuf::int32 PadTemplate::presence() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PadTemplate.presence)
+  return presence_;
+}
+void PadTemplate::set_presence(::google::protobuf::int32 value) {
+  set_has_presence();
+  presence_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.PadTemplate.presence)
+}
+
+// required string caps = 4;
+bool PadTemplate::has_caps() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+void PadTemplate::set_has_caps() {
+  _has_bits_[0] |= 0x00000002u;
+}
+void PadTemplate::clear_has_caps() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+void PadTemplate::clear_caps() {
+  caps_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_caps();
+}
+const ::std::string& PadTemplate::caps() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PadTemplate.caps)
+  return caps_.GetNoArena();
+}
+void PadTemplate::set_caps(const ::std::string& value) {
+  set_has_caps();
+  caps_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.PadTemplate.caps)
+}
+#if LANG_CXX11
+void PadTemplate::set_caps(::std::string&& value) {
+  set_has_caps();
+  caps_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.PadTemplate.caps)
+}
+#endif
+void PadTemplate::set_caps(const char* value) {
+  set_has_caps();
+  caps_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.PadTemplate.caps)
+}
+void PadTemplate::set_caps(const char* value, size_t size) {
+  set_has_caps();
+  caps_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.PadTemplate.caps)
+}
+::std::string* PadTemplate::mutable_caps() {
+  set_has_caps();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PadTemplate.caps)
+  return caps_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* PadTemplate::release_caps() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PadTemplate.caps)
+  clear_has_caps();
+  return caps_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void PadTemplate::set_allocated_caps(::std::string* caps) {
+  if (caps != NULL) {
+    set_has_caps();
+  } else {
+    clear_has_caps();
+  }
+  caps_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), caps);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PadTemplate.caps)
+}
+
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int FactoryType::kNameFieldNumber;
+const int FactoryType::kMetadataFieldNumber;
+const int FactoryType::kTemplatesFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+FactoryType::FactoryType()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.FactoryType)
+}
+FactoryType::FactoryType(const FactoryType& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0),
+      metadata_(from.metadata_),
+      templates_(from.templates_) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_name()) {
+    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
+  }
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.FactoryType)
+}
+
+void FactoryType::SharedCtor() {
+  _cached_size_ = 0;
+  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+FactoryType::~FactoryType() {
+  // @@protoc_insertion_point(destructor:GstDebugger.FactoryType)
+  SharedDtor();
+}
+
+void FactoryType::SharedDtor() {
+  name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void FactoryType::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* FactoryType::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[23].descriptor;
+}
+
+const FactoryType& FactoryType::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+FactoryType* FactoryType::New(::google::protobuf::Arena* arena) const {
+  FactoryType* n = new FactoryType;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void FactoryType::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.FactoryType)
+  metadata_.Clear();
+  templates_.Clear();
+  if (has_name()) {
+    GOOGLE_DCHECK(!name_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+    (*name_.UnsafeRawStringPointer())->clear();
+  }
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool FactoryType::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.FactoryType)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required string name = 1;
+      case 1: {
+        if (tag == 10u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_name()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->name().data(), this->name().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.FactoryType.name");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // repeated .GstDebugger.FactoryMeta metadata = 2;
+      case 2: {
+        if (tag == 18u) {
+          DO_(input->IncrementRecursionDepth());
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
+                input, add_metadata()));
+        } else {
+          goto handle_unusual;
+        }
+        input->UnsafeDecrementRecursionDepth();
+        break;
+      }
+
+      // repeated .GstDebugger.PadTemplate templates = 3;
+      case 3: {
+        if (tag == 26u) {
+          DO_(input->IncrementRecursionDepth());
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
+                input, add_templates()));
+        } else {
+          goto handle_unusual;
+        }
+        input->UnsafeDecrementRecursionDepth();
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.FactoryType)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.FactoryType)
+  return false;
+#undef DO_
+}
+
+void FactoryType::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.FactoryType)
+  // required string name = 1;
+  if (has_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->name().data(), this->name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.FactoryType.name");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      1, this->name(), output);
+  }
+
+  // repeated .GstDebugger.FactoryMeta metadata = 2;
+  for (unsigned int i = 0, n = this->metadata_size(); i < n; i++) {
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      2, this->metadata(i), output);
+  }
+
+  // repeated .GstDebugger.PadTemplate templates = 3;
+  for (unsigned int i = 0, n = this->templates_size(); i < n; i++) {
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      3, this->templates(i), output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.FactoryType)
+}
+
+::google::protobuf::uint8* FactoryType::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.FactoryType)
+  // required string name = 1;
+  if (has_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->name().data(), this->name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.FactoryType.name");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        1, this->name(), target);
+  }
+
+  // repeated .GstDebugger.FactoryMeta metadata = 2;
+  for (unsigned int i = 0, n = this->metadata_size(); i < n; i++) {
+    target = ::google::protobuf::internal::WireFormatLite::
+      InternalWriteMessageNoVirtualToArray(
+        2, this->metadata(i), false, target);
+  }
+
+  // repeated .GstDebugger.PadTemplate templates = 3;
+  for (unsigned int i = 0, n = this->templates_size(); i < n; i++) {
+    target = ::google::protobuf::internal::WireFormatLite::
+      InternalWriteMessageNoVirtualToArray(
+        3, this->templates(i), false, target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.FactoryType)
+  return target;
+}
+
+size_t FactoryType::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.FactoryType)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  // required string name = 1;
+  if (has_name()) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->name());
+  }
+  // repeated .GstDebugger.FactoryMeta metadata = 2;
+  {
+    unsigned int count = this->metadata_size();
+    total_size += 1UL * count;
+    for (unsigned int i = 0; i < count; i++) {
+      total_size +=
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          this->metadata(i));
+    }
+  }
+
+  // repeated .GstDebugger.PadTemplate templates = 3;
+  {
+    unsigned int count = this->templates_size();
+    total_size += 1UL * count;
+    for (unsigned int i = 0; i < count; i++) {
+      total_size +=
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          this->templates(i));
+    }
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void FactoryType::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.FactoryType)
+  GOOGLE_DCHECK_NE(&from, this);
+  const FactoryType* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const FactoryType>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.FactoryType)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.FactoryType)
+    MergeFrom(*source);
+  }
+}
+
+void FactoryType::MergeFrom(const FactoryType& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.FactoryType)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  metadata_.MergeFrom(from.metadata_);
+  templates_.MergeFrom(from.templates_);
+  if (from.has_name()) {
+    set_has_name();
+    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
+  }
+}
+
+void FactoryType::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.FactoryType)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void FactoryType::CopyFrom(const FactoryType& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.FactoryType)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool FactoryType::IsInitialized() const {
+  if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;
+  if (!::google::protobuf::internal::AllAreInitialized(this->metadata())) return false;
+  if (!::google::protobuf::internal::AllAreInitialized(this->templates())) return false;
+  return true;
+}
+
+void FactoryType::Swap(FactoryType* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void FactoryType::InternalSwap(FactoryType* other) {
+  metadata_.UnsafeArenaSwap(&other->metadata_);
+  templates_.UnsafeArenaSwap(&other->templates_);
+  name_.Swap(&other->name_);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata FactoryType::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[23];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// FactoryType
+
+// required string name = 1;
+bool FactoryType::has_name() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void FactoryType::set_has_name() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void FactoryType::clear_has_name() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void FactoryType::clear_name() {
+  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_name();
+}
+const ::std::string& FactoryType::name() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.FactoryType.name)
+  return name_.GetNoArena();
+}
+void FactoryType::set_name(const ::std::string& value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.FactoryType.name)
+}
+#if LANG_CXX11
+void FactoryType::set_name(::std::string&& value) {
+  set_has_name();
+  name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.FactoryType.name)
+}
+#endif
+void FactoryType::set_name(const char* value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.FactoryType.name)
+}
+void FactoryType::set_name(const char* value, size_t size) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.FactoryType.name)
+}
+::std::string* FactoryType::mutable_name() {
+  set_has_name();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.FactoryType.name)
+  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* FactoryType::release_name() {
+  // @@protoc_insertion_point(field_release:GstDebugger.FactoryType.name)
+  clear_has_name();
+  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void FactoryType::set_allocated_name(::std::string* name) {
+  if (name != NULL) {
+    set_has_name();
+  } else {
+    clear_has_name();
+  }
+  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.FactoryType.name)
+}
+
+// repeated .GstDebugger.FactoryMeta metadata = 2;
+int FactoryType::metadata_size() const {
+  return metadata_.size();
+}
+void FactoryType::clear_metadata() {
+  metadata_.Clear();
+}
+const ::GstDebugger::FactoryMeta& FactoryType::metadata(int index) const {
+  // @@protoc_insertion_point(field_get:GstDebugger.FactoryType.metadata)
+  return metadata_.Get(index);
+}
+::GstDebugger::FactoryMeta* FactoryType::mutable_metadata(int index) {
+  // @@protoc_insertion_point(field_mutable:GstDebugger.FactoryType.metadata)
+  return metadata_.Mutable(index);
+}
+::GstDebugger::FactoryMeta* FactoryType::add_metadata() {
+  // @@protoc_insertion_point(field_add:GstDebugger.FactoryType.metadata)
+  return metadata_.Add();
+}
+::google::protobuf::RepeatedPtrField< ::GstDebugger::FactoryMeta >*
+FactoryType::mutable_metadata() {
+  // @@protoc_insertion_point(field_mutable_list:GstDebugger.FactoryType.metadata)
+  return &metadata_;
+}
+const ::google::protobuf::RepeatedPtrField< ::GstDebugger::FactoryMeta >&
+FactoryType::metadata() const {
+  // @@protoc_insertion_point(field_list:GstDebugger.FactoryType.metadata)
+  return metadata_;
+}
+
+// repeated .GstDebugger.PadTemplate templates = 3;
+int FactoryType::templates_size() const {
+  return templates_.size();
+}
+void FactoryType::clear_templates() {
+  templates_.Clear();
+}
+const ::GstDebugger::PadTemplate& FactoryType::templates(int index) const {
+  // @@protoc_insertion_point(field_get:GstDebugger.FactoryType.templates)
+  return templates_.Get(index);
+}
+::GstDebugger::PadTemplate* FactoryType::mutable_templates(int index) {
+  // @@protoc_insertion_point(field_mutable:GstDebugger.FactoryType.templates)
+  return templates_.Mutable(index);
+}
+::GstDebugger::PadTemplate* FactoryType::add_templates() {
+  // @@protoc_insertion_point(field_add:GstDebugger.FactoryType.templates)
+  return templates_.Add();
+}
+::google::protobuf::RepeatedPtrField< ::GstDebugger::PadTemplate >*
+FactoryType::mutable_templates() {
+  // @@protoc_insertion_point(field_mutable_list:GstDebugger.FactoryType.templates)
+  return &templates_;
+}
+const ::google::protobuf::RepeatedPtrField< ::GstDebugger::PadTemplate >&
+FactoryType::templates() const {
+  // @@protoc_insertion_point(field_list:GstDebugger.FactoryType.templates)
+  return templates_;
+}
+
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int ElementKlass::kNameFieldNumber;
+const int ElementKlass::kPropertyInfoFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+ElementKlass::ElementKlass()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.ElementKlass)
+}
+ElementKlass::ElementKlass(const ElementKlass& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0),
+      property_info_(from.property_info_) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_name()) {
+    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
+  }
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.ElementKlass)
+}
+
+void ElementKlass::SharedCtor() {
+  _cached_size_ = 0;
+  name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+ElementKlass::~ElementKlass() {
+  // @@protoc_insertion_point(destructor:GstDebugger.ElementKlass)
+  SharedDtor();
+}
+
+void ElementKlass::SharedDtor() {
+  name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void ElementKlass::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* ElementKlass::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[24].descriptor;
+}
+
+const ElementKlass& ElementKlass::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+ElementKlass* ElementKlass::New(::google::protobuf::Arena* arena) const {
+  ElementKlass* n = new ElementKlass;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void ElementKlass::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.ElementKlass)
+  property_info_.Clear();
+  if (has_name()) {
+    GOOGLE_DCHECK(!name_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+    (*name_.UnsafeRawStringPointer())->clear();
+  }
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool ElementKlass::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.ElementKlass)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required string name = 1;
+      case 1: {
+        if (tag == 10u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_name()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->name().data(), this->name().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.ElementKlass.name");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // repeated .GstDebugger.PropertyInfo property_info = 2;
+      case 2: {
+        if (tag == 18u) {
+          DO_(input->IncrementRecursionDepth());
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth(
+                input, add_property_info()));
+        } else {
+          goto handle_unusual;
+        }
+        input->UnsafeDecrementRecursionDepth();
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.ElementKlass)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.ElementKlass)
+  return false;
+#undef DO_
+}
+
+void ElementKlass::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.ElementKlass)
+  // required string name = 1;
+  if (has_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->name().data(), this->name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.ElementKlass.name");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      1, this->name(), output);
+  }
+
+  // repeated .GstDebugger.PropertyInfo property_info = 2;
+  for (unsigned int i = 0, n = this->property_info_size(); i < n; i++) {
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      2, this->property_info(i), output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.ElementKlass)
+}
+
+::google::protobuf::uint8* ElementKlass::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.ElementKlass)
+  // required string name = 1;
+  if (has_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->name().data(), this->name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.ElementKlass.name");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        1, this->name(), target);
+  }
+
+  // repeated .GstDebugger.PropertyInfo property_info = 2;
+  for (unsigned int i = 0, n = this->property_info_size(); i < n; i++) {
+    target = ::google::protobuf::internal::WireFormatLite::
+      InternalWriteMessageNoVirtualToArray(
+        2, this->property_info(i), false, target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.ElementKlass)
+  return target;
+}
+
+size_t ElementKlass::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.ElementKlass)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  // required string name = 1;
+  if (has_name()) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->name());
+  }
+  // repeated .GstDebugger.PropertyInfo property_info = 2;
+  {
+    unsigned int count = this->property_info_size();
+    total_size += 1UL * count;
+    for (unsigned int i = 0; i < count; i++) {
+      total_size +=
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          this->property_info(i));
+    }
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void ElementKlass::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.ElementKlass)
+  GOOGLE_DCHECK_NE(&from, this);
+  const ElementKlass* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const ElementKlass>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.ElementKlass)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.ElementKlass)
+    MergeFrom(*source);
+  }
+}
+
+void ElementKlass::MergeFrom(const ElementKlass& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.ElementKlass)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  property_info_.MergeFrom(from.property_info_);
+  if (from.has_name()) {
+    set_has_name();
+    name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.name_);
+  }
+}
+
+void ElementKlass::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.ElementKlass)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void ElementKlass::CopyFrom(const ElementKlass& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.ElementKlass)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool ElementKlass::IsInitialized() const {
+  if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;
+  if (!::google::protobuf::internal::AllAreInitialized(this->property_info())) return false;
+  return true;
+}
+
+void ElementKlass::Swap(ElementKlass* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void ElementKlass::InternalSwap(ElementKlass* other) {
+  property_info_.UnsafeArenaSwap(&other->property_info_);
+  name_.Swap(&other->name_);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata ElementKlass::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[24];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// ElementKlass
+
+// required string name = 1;
+bool ElementKlass::has_name() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void ElementKlass::set_has_name() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void ElementKlass::clear_has_name() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void ElementKlass::clear_name() {
+  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_name();
+}
+const ::std::string& ElementKlass::name() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.ElementKlass.name)
+  return name_.GetNoArena();
+}
+void ElementKlass::set_name(const ::std::string& value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.ElementKlass.name)
+}
+#if LANG_CXX11
+void ElementKlass::set_name(::std::string&& value) {
+  set_has_name();
+  name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.ElementKlass.name)
+}
+#endif
+void ElementKlass::set_name(const char* value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.ElementKlass.name)
+}
+void ElementKlass::set_name(const char* value, size_t size) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.ElementKlass.name)
+}
+::std::string* ElementKlass::mutable_name() {
+  set_has_name();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.ElementKlass.name)
+  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* ElementKlass::release_name() {
+  // @@protoc_insertion_point(field_release:GstDebugger.ElementKlass.name)
+  clear_has_name();
+  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void ElementKlass::set_allocated_name(::std::string* name) {
+  if (name != NULL) {
+    set_has_name();
+  } else {
+    clear_has_name();
+  }
+  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.ElementKlass.name)
+}
+
+// repeated .GstDebugger.PropertyInfo property_info = 2;
+int ElementKlass::property_info_size() const {
+  return property_info_.size();
+}
+void ElementKlass::clear_property_info() {
+  property_info_.Clear();
+}
+const ::GstDebugger::PropertyInfo& ElementKlass::property_info(int index) const {
+  // @@protoc_insertion_point(field_get:GstDebugger.ElementKlass.property_info)
+  return property_info_.Get(index);
+}
+::GstDebugger::PropertyInfo* ElementKlass::mutable_property_info(int index) {
+  // @@protoc_insertion_point(field_mutable:GstDebugger.ElementKlass.property_info)
+  return property_info_.Mutable(index);
+}
+::GstDebugger::PropertyInfo* ElementKlass::add_property_info() {
+  // @@protoc_insertion_point(field_add:GstDebugger.ElementKlass.property_info)
+  return property_info_.Add();
+}
+::google::protobuf::RepeatedPtrField< ::GstDebugger::PropertyInfo >*
+ElementKlass::mutable_property_info() {
+  // @@protoc_insertion_point(field_mutable_list:GstDebugger.ElementKlass.property_info)
+  return &property_info_;
+}
+const ::google::protobuf::RepeatedPtrField< ::GstDebugger::PropertyInfo >&
+ElementKlass::property_info() const {
+  // @@protoc_insertion_point(field_list:GstDebugger.ElementKlass.property_info)
+  return property_info_;
+}
+
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int TopologyLink::kSrcPadFieldNumber;
+const int TopologyLink::kSinkPadFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+TopologyLink::TopologyLink()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.TopologyLink)
+}
+TopologyLink::TopologyLink(const TopologyLink& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  src_pad_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_src_pad()) {
+    src_pad_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.src_pad_);
+  }
+  sink_pad_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_sink_pad()) {
+    sink_pad_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.sink_pad_);
+  }
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.TopologyLink)
+}
+
+void TopologyLink::SharedCtor() {
+  _cached_size_ = 0;
+  src_pad_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  sink_pad_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+TopologyLink::~TopologyLink() {
+  // @@protoc_insertion_point(destructor:GstDebugger.TopologyLink)
+  SharedDtor();
+}
+
+void TopologyLink::SharedDtor() {
+  src_pad_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  sink_pad_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void TopologyLink::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* TopologyLink::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[25].descriptor;
+}
+
+const TopologyLink& TopologyLink::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+TopologyLink* TopologyLink::New(::google::protobuf::Arena* arena) const {
+  TopologyLink* n = new TopologyLink;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void TopologyLink::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.TopologyLink)
+  if (_has_bits_[0 / 32] & 3u) {
+    if (has_src_pad()) {
+      GOOGLE_DCHECK(!src_pad_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*src_pad_.UnsafeRawStringPointer())->clear();
+    }
+    if (has_sink_pad()) {
+      GOOGLE_DCHECK(!sink_pad_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*sink_pad_.UnsafeRawStringPointer())->clear();
+    }
+  }
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool TopologyLink::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.TopologyLink)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required string src_pad = 1;
+      case 1: {
+        if (tag == 10u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_src_pad()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->src_pad().data(), this->src_pad().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.TopologyLink.src_pad");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required string sink_pad = 2;
+      case 2: {
+        if (tag == 18u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_sink_pad()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->sink_pad().data(), this->sink_pad().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.TopologyLink.sink_pad");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.TopologyLink)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.TopologyLink)
+  return false;
+#undef DO_
+}
+
+void TopologyLink::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.TopologyLink)
+  // required string src_pad = 1;
+  if (has_src_pad()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->src_pad().data(), this->src_pad().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.TopologyLink.src_pad");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      1, this->src_pad(), output);
+  }
+
+  // required string sink_pad = 2;
+  if (has_sink_pad()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->sink_pad().data(), this->sink_pad().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.TopologyLink.sink_pad");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      2, this->sink_pad(), output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.TopologyLink)
+}
+
+::google::protobuf::uint8* TopologyLink::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.TopologyLink)
+  // required string src_pad = 1;
+  if (has_src_pad()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->src_pad().data(), this->src_pad().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.TopologyLink.src_pad");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        1, this->src_pad(), target);
+  }
+
+  // required string sink_pad = 2;
+  if (has_sink_pad()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->sink_pad().data(), this->sink_pad().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.TopologyLink.sink_pad");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        2, this->sink_pad(), target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.TopologyLink)
+  return target;
+}
+
+size_t TopologyLink::RequiredFieldsByteSizeFallback() const {
+// @@protoc_insertion_point(required_fields_byte_size_fallback_start:GstDebugger.TopologyLink)
+  size_t total_size = 0;
+
+  if (has_src_pad()) {
+    // required string src_pad = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->src_pad());
+  }
+
+  if (has_sink_pad()) {
+    // required string sink_pad = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->sink_pad());
+  }
+
+  return total_size;
+}
+size_t TopologyLink::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.TopologyLink)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  if (((_has_bits_[0] & 0x00000003) ^ 0x00000003) == 0) {  // All required fields are present.
+    // required string src_pad = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->src_pad());
+
+    // required string sink_pad = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->sink_pad());
+
+  } else {
+    total_size += RequiredFieldsByteSizeFallback();
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void TopologyLink::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.TopologyLink)
+  GOOGLE_DCHECK_NE(&from, this);
+  const TopologyLink* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const TopologyLink>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.TopologyLink)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.TopologyLink)
+    MergeFrom(*source);
+  }
+}
+
+void TopologyLink::MergeFrom(const TopologyLink& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.TopologyLink)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from._has_bits_[0 / 32] & 3u) {
+    if (from.has_src_pad()) {
+      set_has_src_pad();
+      src_pad_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.src_pad_);
+    }
+    if (from.has_sink_pad()) {
+      set_has_sink_pad();
+      sink_pad_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.sink_pad_);
+    }
+  }
+}
+
+void TopologyLink::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.TopologyLink)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void TopologyLink::CopyFrom(const TopologyLink& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.TopologyLink)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool TopologyLink::IsInitialized() const {
+  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;
+  return true;
+}
+
+void TopologyLink::Swap(TopologyLink* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void TopologyLink::InternalSwap(TopologyLink* other) {
+  src_pad_.Swap(&other->src_pad_);
+  sink_pad_.Swap(&other->sink_pad_);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata TopologyLink::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[25];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// TopologyLink
+
+// required string src_pad = 1;
+bool TopologyLink::has_src_pad() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void TopologyLink::set_has_src_pad() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void TopologyLink::clear_has_src_pad() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void TopologyLink::clear_src_pad() {
+  src_pad_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_src_pad();
+}
+const ::std::string& TopologyLink::src_pad() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyLink.src_pad)
+  return src_pad_.GetNoArena();
+}
+void TopologyLink::set_src_pad(const ::std::string& value) {
+  set_has_src_pad();
+  src_pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.TopologyLink.src_pad)
+}
+#if LANG_CXX11
+void TopologyLink::set_src_pad(::std::string&& value) {
+  set_has_src_pad();
+  src_pad_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.TopologyLink.src_pad)
+}
+#endif
+void TopologyLink::set_src_pad(const char* value) {
+  set_has_src_pad();
+  src_pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.TopologyLink.src_pad)
+}
+void TopologyLink::set_src_pad(const char* value, size_t size) {
+  set_has_src_pad();
+  src_pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.TopologyLink.src_pad)
+}
+::std::string* TopologyLink::mutable_src_pad() {
+  set_has_src_pad();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.TopologyLink.src_pad)
+  return src_pad_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* TopologyLink::release_src_pad() {
+  // @@protoc_insertion_point(field_release:GstDebugger.TopologyLink.src_pad)
+  clear_has_src_pad();
+  return src_pad_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void TopologyLink::set_allocated_src_pad(::std::string* src_pad) {
+  if (src_pad != NULL) {
+    set_has_src_pad();
+  } else {
+    clear_has_src_pad();
+  }
+  src_pad_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), src_pad);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.TopologyLink.src_pad)
+}
+
+// required string sink_pad = 2;
+bool TopologyLink::has_sink_pad() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+void TopologyLink::set_has_sink_pad() {
+  _has_bits_[0] |= 0x00000002u;
+}
+void TopologyLink::clear_has_sink_pad() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+void TopologyLink::clear_sink_pad() {
+  sink_pad_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_sink_pad();
+}
+const ::std::string& TopologyLink::sink_pad() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyLink.sink_pad)
+  return sink_pad_.GetNoArena();
+}
+void TopologyLink::set_sink_pad(const ::std::string& value) {
+  set_has_sink_pad();
+  sink_pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.TopologyLink.sink_pad)
+}
+#if LANG_CXX11
+void TopologyLink::set_sink_pad(::std::string&& value) {
+  set_has_sink_pad();
+  sink_pad_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.TopologyLink.sink_pad)
+}
+#endif
+void TopologyLink::set_sink_pad(const char* value) {
+  set_has_sink_pad();
+  sink_pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.TopologyLink.sink_pad)
+}
+void TopologyLink::set_sink_pad(const char* value, size_t size) {
+  set_has_sink_pad();
+  sink_pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.TopologyLink.sink_pad)
+}
+::std::string* TopologyLink::mutable_sink_pad() {
+  set_has_sink_pad();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.TopologyLink.sink_pad)
+  return sink_pad_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* TopologyLink::release_sink_pad() {
+  // @@protoc_insertion_point(field_release:GstDebugger.TopologyLink.sink_pad)
+  clear_has_sink_pad();
+  return sink_pad_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void TopologyLink::set_allocated_sink_pad(::std::string* sink_pad) {
+  if (sink_pad != NULL) {
+    set_has_sink_pad();
+  } else {
+    clear_has_sink_pad();
+  }
+  sink_pad_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), sink_pad);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.TopologyLink.sink_pad)
+}
+
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int TopologyElement::kPathFieldNumber;
+const int TopologyElement::kTypeNameFieldNumber;
+const int TopologyElement::kIsBinFieldNumber;
+const int TopologyElement::kFactoryNameFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+TopologyElement::TopologyElement()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.TopologyElement)
+}
+TopologyElement::TopologyElement(const TopologyElement& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  path_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_path()) {
+    path_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.path_);
+  }
+  type_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_type_name()) {
+    type_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.type_name_);
+  }
+  factory_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_factory_name()) {
+    factory_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.factory_name_);
+  }
+  is_bin_ = from.is_bin_;
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.TopologyElement)
+}
+
+void TopologyElement::SharedCtor() {
+  _cached_size_ = 0;
+  path_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  type_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  factory_name_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  is_bin_ = false;
+}
+
+TopologyElement::~TopologyElement() {
+  // @@protoc_insertion_point(destructor:GstDebugger.TopologyElement)
+  SharedDtor();
+}
+
+void TopologyElement::SharedDtor() {
+  path_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  type_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  factory_name_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void TopologyElement::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* TopologyElement::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[26].descriptor;
+}
+
+const TopologyElement& TopologyElement::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+TopologyElement* TopologyElement::New(::google::protobuf::Arena* arena) const {
+  TopologyElement* n = new TopologyElement;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void TopologyElement::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.TopologyElement)
+  if (_has_bits_[0 / 32] & 7u) {
+    if (has_path()) {
+      GOOGLE_DCHECK(!path_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*path_.UnsafeRawStringPointer())->clear();
+    }
+    if (has_type_name()) {
+      GOOGLE_DCHECK(!type_name_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*type_name_.UnsafeRawStringPointer())->clear();
+    }
+    if (has_factory_name()) {
+      GOOGLE_DCHECK(!factory_name_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*factory_name_.UnsafeRawStringPointer())->clear();
+    }
+  }
+  is_bin_ = false;
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool TopologyElement::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.TopologyElement)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required string path = 1;
+      case 1: {
+        if (tag == 10u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_path()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->path().data(), this->path().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.TopologyElement.path");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required string type_name = 2;
+      case 2: {
+        if (tag == 18u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_type_name()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->type_name().data(), this->type_name().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.TopologyElement.type_name");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required bool is_bin = 3;
+      case 3: {
+        if (tag == 24u) {
+          set_has_is_bin();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+                 input, &is_bin_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required string factory_name = 4;
+      case 4: {
+        if (tag == 34u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_factory_name()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->factory_name().data(), this->factory_name().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.TopologyElement.factory_name");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.TopologyElement)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.TopologyElement)
+  return false;
+#undef DO_
+}
+
+void TopologyElement::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.TopologyElement)
+  // required string path = 1;
+  if (has_path()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->path().data(), this->path().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.TopologyElement.path");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      1, this->path(), output);
+  }
+
+  // required string type_name = 2;
+  if (has_type_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->type_name().data(), this->type_name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.TopologyElement.type_name");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      2, this->type_name(), output);
+  }
+
+  // required bool is_bin = 3;
+  if (has_is_bin()) {
+    ::google::protobuf::internal::WireFormatLite::WriteBool(3, this->is_bin(), output);
+  }
+
+  // required string factory_name = 4;
+  if (has_factory_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->factory_name().data(), this->factory_name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.TopologyElement.factory_name");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      4, this->factory_name(), output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.TopologyElement)
+}
+
+::google::protobuf::uint8* TopologyElement::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.TopologyElement)
+  // required string path = 1;
+  if (has_path()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->path().data(), this->path().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.TopologyElement.path");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        1, this->path(), target);
+  }
+
+  // required string type_name = 2;
+  if (has_type_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->type_name().data(), this->type_name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.TopologyElement.type_name");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        2, this->type_name(), target);
+  }
+
+  // required bool is_bin = 3;
+  if (has_is_bin()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(3, this->is_bin(), target);
+  }
+
+  // required string factory_name = 4;
+  if (has_factory_name()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->factory_name().data(), this->factory_name().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.TopologyElement.factory_name");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        4, this->factory_name(), target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.TopologyElement)
+  return target;
+}
+
+size_t TopologyElement::RequiredFieldsByteSizeFallback() const {
+// @@protoc_insertion_point(required_fields_byte_size_fallback_start:GstDebugger.TopologyElement)
+  size_t total_size = 0;
+
+  if (has_path()) {
+    // required string path = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->path());
+  }
+
+  if (has_type_name()) {
+    // required string type_name = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->type_name());
+  }
+
+  if (has_factory_name()) {
+    // required string factory_name = 4;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->factory_name());
+  }
+
+  if (has_is_bin()) {
+    // required bool is_bin = 3;
+    total_size += 1 + 1;
+  }
+
+  return total_size;
+}
+size_t TopologyElement::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.TopologyElement)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  if (((_has_bits_[0] & 0x0000000f) ^ 0x0000000f) == 0) {  // All required fields are present.
+    // required string path = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->path());
+
+    // required string type_name = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->type_name());
+
+    // required string factory_name = 4;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->factory_name());
+
+    // required bool is_bin = 3;
+    total_size += 1 + 1;
+
+  } else {
+    total_size += RequiredFieldsByteSizeFallback();
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void TopologyElement::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.TopologyElement)
+  GOOGLE_DCHECK_NE(&from, this);
+  const TopologyElement* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const TopologyElement>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.TopologyElement)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.TopologyElement)
+    MergeFrom(*source);
+  }
+}
+
+void TopologyElement::MergeFrom(const TopologyElement& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.TopologyElement)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from._has_bits_[0 / 32] & 15u) {
+    if (from.has_path()) {
+      set_has_path();
+      path_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.path_);
+    }
+    if (from.has_type_name()) {
+      set_has_type_name();
+      type_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.type_name_);
+    }
+    if (from.has_factory_name()) {
+      set_has_factory_name();
+      factory_name_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.factory_name_);
+    }
+    if (from.has_is_bin()) {
+      set_is_bin(from.is_bin());
+    }
+  }
+}
+
+void TopologyElement::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.TopologyElement)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void TopologyElement::CopyFrom(const TopologyElement& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.TopologyElement)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool TopologyElement::IsInitialized() const {
+  if ((_has_bits_[0] & 0x0000000f) != 0x0000000f) return false;
+  return true;
+}
+
+void TopologyElement::Swap(TopologyElement* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void TopologyElement::InternalSwap(TopologyElement* other) {
+  path_.Swap(&other->path_);
+  type_name_.Swap(&other->type_name_);
+  factory_name_.Swap(&other->factory_name_);
+  std::swap(is_bin_, other->is_bin_);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata TopologyElement::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[26];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// TopologyElement
+
+// required string path = 1;
+bool TopologyElement::has_path() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void TopologyElement::set_has_path() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void TopologyElement::clear_has_path() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void TopologyElement::clear_path() {
+  path_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_path();
+}
+const ::std::string& TopologyElement::path() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyElement.path)
+  return path_.GetNoArena();
+}
+void TopologyElement::set_path(const ::std::string& value) {
+  set_has_path();
+  path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.TopologyElement.path)
+}
+#if LANG_CXX11
+void TopologyElement::set_path(::std::string&& value) {
+  set_has_path();
+  path_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.TopologyElement.path)
+}
+#endif
+void TopologyElement::set_path(const char* value) {
+  set_has_path();
+  path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.TopologyElement.path)
+}
+void TopologyElement::set_path(const char* value, size_t size) {
+  set_has_path();
+  path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.TopologyElement.path)
+}
+::std::string* TopologyElement::mutable_path() {
+  set_has_path();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.TopologyElement.path)
+  return path_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* TopologyElement::release_path() {
+  // @@protoc_insertion_point(field_release:GstDebugger.TopologyElement.path)
+  clear_has_path();
+  return path_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void TopologyElement::set_allocated_path(::std::string* path) {
+  if (path != NULL) {
+    set_has_path();
+  } else {
+    clear_has_path();
+  }
+  path_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), path);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.TopologyElement.path)
+}
+
+// required string type_name = 2;
+bool TopologyElement::has_type_name() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+void TopologyElement::set_has_type_name() {
+  _has_bits_[0] |= 0x00000002u;
+}
+void TopologyElement::clear_has_type_name() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+void TopologyElement::clear_type_name() {
+  type_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_type_name();
+}
+const ::std::string& TopologyElement::type_name() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyElement.type_name)
+  return type_name_.GetNoArena();
+}
+void TopologyElement::set_type_name(const ::std::string& value) {
+  set_has_type_name();
+  type_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.TopologyElement.type_name)
+}
+#if LANG_CXX11
+void TopologyElement::set_type_name(::std::string&& value) {
+  set_has_type_name();
+  type_name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.TopologyElement.type_name)
+}
+#endif
+void TopologyElement::set_type_name(const char* value) {
+  set_has_type_name();
+  type_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.TopologyElement.type_name)
+}
+void TopologyElement::set_type_name(const char* value, size_t size) {
+  set_has_type_name();
+  type_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.TopologyElement.type_name)
+}
+::std::string* TopologyElement::mutable_type_name() {
+  set_has_type_name();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.TopologyElement.type_name)
+  return type_name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* TopologyElement::release_type_name() {
+  // @@protoc_insertion_point(field_release:GstDebugger.TopologyElement.type_name)
+  clear_has_type_name();
+  return type_name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void TopologyElement::set_allocated_type_name(::std::string* type_name) {
+  if (type_name != NULL) {
+    set_has_type_name();
+  } else {
+    clear_has_type_name();
+  }
+  type_name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), type_name);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.TopologyElement.type_name)
+}
+
+// required bool is_bin = 3;
+bool TopologyElement::has_is_bin() const {
+  return (_has_bits_[0] & 0x00000008u) != 0;
+}
+void TopologyElement::set_has_is_bin() {
+  _has_bits_[0] |= 0x00000008u;
+}
+void TopologyElement::clear_has_is_bin() {
+  _has_bits_[0] &= ~0x00000008u;
+}
+void TopologyElement::clear_is_bin() {
+  is_bin_ = false;
+  clear_has_is_bin();
+}
+bool TopologyElement::is_bin() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyElement.is_bin)
+  return is_bin_;
+}
+void TopologyElement::set_is_bin(bool value) {
+  set_has_is_bin();
+  is_bin_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.TopologyElement.is_bin)
+}
+
+// required string factory_name = 4;
+bool TopologyElement::has_factory_name() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+void TopologyElement::set_has_factory_name() {
+  _has_bits_[0] |= 0x00000004u;
+}
+void TopologyElement::clear_has_factory_name() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+void TopologyElement::clear_factory_name() {
+  factory_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_factory_name();
+}
+const ::std::string& TopologyElement::factory_name() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyElement.factory_name)
+  return factory_name_.GetNoArena();
+}
+void TopologyElement::set_factory_name(const ::std::string& value) {
+  set_has_factory_name();
+  factory_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.TopologyElement.factory_name)
+}
+#if LANG_CXX11
+void TopologyElement::set_factory_name(::std::string&& value) {
+  set_has_factory_name();
+  factory_name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.TopologyElement.factory_name)
+}
+#endif
+void TopologyElement::set_factory_name(const char* value) {
+  set_has_factory_name();
+  factory_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.TopologyElement.factory_name)
+}
+void TopologyElement::set_factory_name(const char* value, size_t size) {
+  set_has_factory_name();
+  factory_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.TopologyElement.factory_name)
+}
+::std::string* TopologyElement::mutable_factory_name() {
+  set_has_factory_name();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.TopologyElement.factory_name)
+  return factory_name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* TopologyElement::release_factory_name() {
+  // @@protoc_insertion_point(field_release:GstDebugger.TopologyElement.factory_name)
+  clear_has_factory_name();
+  return factory_name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void TopologyElement::set_allocated_factory_name(::std::string* factory_name) {
+  if (factory_name != NULL) {
+    set_has_factory_name();
+  } else {
+    clear_has_factory_name();
+  }
+  factory_name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
factory_name);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.TopologyElement.factory_name)
+}
+
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int TopologyPad::kPathFieldNumber;
+const int TopologyPad::kIsGhostpadFieldNumber;
+const int TopologyPad::kDirectionFieldNumber;
+const int TopologyPad::kPresenceFieldNumber;
+const int TopologyPad::kTemplateFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+TopologyPad::TopologyPad()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.TopologyPad)
+}
+TopologyPad::TopologyPad(const TopologyPad& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  path_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_path()) {
+    path_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.path_);
+  }
+  if (from.has_template_()) {
+    template__ = new ::GstDebugger::PadTemplate(*from.template__);
+  } else {
+    template__ = NULL;
+  }
+  ::memcpy(&is_ghostpad_, &from.is_ghostpad_,
+    reinterpret_cast<char*>(&presence_) -
+    reinterpret_cast<char*>(&is_ghostpad_) + sizeof(presence_));
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.TopologyPad)
+}
+
+void TopologyPad::SharedCtor() {
+  _cached_size_ = 0;
+  path_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  ::memset(&template__, 0, reinterpret_cast<char*>(&presence_) -
+    reinterpret_cast<char*>(&template__) + sizeof(presence_));
+}
+
+TopologyPad::~TopologyPad() {
+  // @@protoc_insertion_point(destructor:GstDebugger.TopologyPad)
+  SharedDtor();
+}
+
+void TopologyPad::SharedDtor() {
+  path_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (this != internal_default_instance()) {
+    delete template__;
+  }
+}
+
+void TopologyPad::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* TopologyPad::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[27].descriptor;
+}
+
+const TopologyPad& TopologyPad::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+TopologyPad* TopologyPad::New(::google::protobuf::Arena* arena) const {
+  TopologyPad* n = new TopologyPad;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void TopologyPad::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.TopologyPad)
+  if (_has_bits_[0 / 32] & 3u) {
+    if (has_path()) {
+      GOOGLE_DCHECK(!path_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*path_.UnsafeRawStringPointer())->clear();
+    }
+    if (has_template_()) {
+      GOOGLE_DCHECK(template__ != NULL);
+      template__->::GstDebugger::PadTemplate::Clear();
+    }
+  }
+  if (_has_bits_[0 / 32] & 28u) {
+    ::memset(&is_ghostpad_, 0, reinterpret_cast<char*>(&presence_) -
+      reinterpret_cast<char*>(&is_ghostpad_) + sizeof(presence_));
+  }
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool TopologyPad::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.TopologyPad)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required string path = 1;
+      case 1: {
+        if (tag == 10u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_path()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->path().data(), this->path().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.TopologyPad.path");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required bool is_ghostpad = 2;
+      case 2: {
+        if (tag == 16u) {
+          set_has_is_ghostpad();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+                 input, &is_ghostpad_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required int32 direction = 3;
+      case 3: {
+        if (tag == 24u) {
+          set_has_direction();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &direction_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required int32 presence = 4;
+      case 4: {
+        if (tag == 32u) {
+          set_has_presence();
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+                 input, &presence_)));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional .GstDebugger.PadTemplate template = 5;
+      case 5: {
+        if (tag == 42u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_template_()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.TopologyPad)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.TopologyPad)
+  return false;
+#undef DO_
+}
+
+void TopologyPad::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.TopologyPad)
+  // required string path = 1;
+  if (has_path()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->path().data(), this->path().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.TopologyPad.path");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      1, this->path(), output);
+  }
+
+  // required bool is_ghostpad = 2;
+  if (has_is_ghostpad()) {
+    ::google::protobuf::internal::WireFormatLite::WriteBool(2, this->is_ghostpad(), output);
+  }
+
+  // required int32 direction = 3;
+  if (has_direction()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->direction(), output);
+  }
+
+  // required int32 presence = 4;
+  if (has_presence()) {
+    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->presence(), output);
+  }
+
+  // optional .GstDebugger.PadTemplate template = 5;
+  if (has_template_()) {
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      5, *this->template__, output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.TopologyPad)
+}
+
+::google::protobuf::uint8* TopologyPad::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.TopologyPad)
+  // required string path = 1;
+  if (has_path()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->path().data(), this->path().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.TopologyPad.path");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        1, this->path(), target);
+  }
+
+  // required bool is_ghostpad = 2;
+  if (has_is_ghostpad()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(2, this->is_ghostpad(), target);
+  }
+
+  // required int32 direction = 3;
+  if (has_direction()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->direction(), target);
+  }
+
+  // required int32 presence = 4;
+  if (has_presence()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->presence(), target);
+  }
+
+  // optional .GstDebugger.PadTemplate template = 5;
+  if (has_template_()) {
+    target = ::google::protobuf::internal::WireFormatLite::
+      InternalWriteMessageNoVirtualToArray(
+        5, *this->template__, false, target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.TopologyPad)
+  return target;
+}
+
+size_t TopologyPad::RequiredFieldsByteSizeFallback() const {
+// @@protoc_insertion_point(required_fields_byte_size_fallback_start:GstDebugger.TopologyPad)
+  size_t total_size = 0;
+
+  if (has_path()) {
+    // required string path = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->path());
+  }
+
+  if (has_is_ghostpad()) {
+    // required bool is_ghostpad = 2;
+    total_size += 1 + 1;
+  }
+
+  if (has_direction()) {
+    // required int32 direction = 3;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->direction());
+  }
+
+  if (has_presence()) {
+    // required int32 presence = 4;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->presence());
+  }
+
+  return total_size;
+}
+size_t TopologyPad::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.TopologyPad)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  if (((_has_bits_[0] & 0x0000001d) ^ 0x0000001d) == 0) {  // All required fields are present.
+    // required string path = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->path());
+
+    // required bool is_ghostpad = 2;
+    total_size += 1 + 1;
+
+    // required int32 direction = 3;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->direction());
+
+    // required int32 presence = 4;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::Int32Size(
+        this->presence());
+
+  } else {
+    total_size += RequiredFieldsByteSizeFallback();
+  }
+  // optional .GstDebugger.PadTemplate template = 5;
+  if (has_template_()) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+        *this->template__);
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void TopologyPad::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.TopologyPad)
+  GOOGLE_DCHECK_NE(&from, this);
+  const TopologyPad* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const TopologyPad>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.TopologyPad)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.TopologyPad)
+    MergeFrom(*source);
+  }
+}
+
+void TopologyPad::MergeFrom(const TopologyPad& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.TopologyPad)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from._has_bits_[0 / 32] & 31u) {
+    if (from.has_path()) {
+      set_has_path();
+      path_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.path_);
+    }
+    if (from.has_template_()) {
+      mutable_template_()->::GstDebugger::PadTemplate::MergeFrom(from.template_());
+    }
+    if (from.has_is_ghostpad()) {
+      set_is_ghostpad(from.is_ghostpad());
+    }
+    if (from.has_direction()) {
+      set_direction(from.direction());
+    }
+    if (from.has_presence()) {
+      set_presence(from.presence());
+    }
+  }
+}
+
+void TopologyPad::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.TopologyPad)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void TopologyPad::CopyFrom(const TopologyPad& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.TopologyPad)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool TopologyPad::IsInitialized() const {
+  if ((_has_bits_[0] & 0x0000001d) != 0x0000001d) return false;
+  if (has_template_()) {
+    if (!this->template__->IsInitialized()) return false;
+  }
+  return true;
+}
+
+void TopologyPad::Swap(TopologyPad* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void TopologyPad::InternalSwap(TopologyPad* other) {
+  path_.Swap(&other->path_);
+  std::swap(template__, other->template__);
+  std::swap(is_ghostpad_, other->is_ghostpad_);
+  std::swap(direction_, other->direction_);
+  std::swap(presence_, other->presence_);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata TopologyPad::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[27];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// TopologyPad
+
+// required string path = 1;
+bool TopologyPad::has_path() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void TopologyPad::set_has_path() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void TopologyPad::clear_has_path() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void TopologyPad::clear_path() {
+  path_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_path();
+}
+const ::std::string& TopologyPad::path() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyPad.path)
+  return path_.GetNoArena();
+}
+void TopologyPad::set_path(const ::std::string& value) {
+  set_has_path();
+  path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.TopologyPad.path)
+}
+#if LANG_CXX11
+void TopologyPad::set_path(::std::string&& value) {
+  set_has_path();
+  path_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.TopologyPad.path)
+}
+#endif
+void TopologyPad::set_path(const char* value) {
+  set_has_path();
+  path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.TopologyPad.path)
+}
+void TopologyPad::set_path(const char* value, size_t size) {
+  set_has_path();
+  path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.TopologyPad.path)
+}
+::std::string* TopologyPad::mutable_path() {
+  set_has_path();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.TopologyPad.path)
+  return path_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* TopologyPad::release_path() {
+  // @@protoc_insertion_point(field_release:GstDebugger.TopologyPad.path)
+  clear_has_path();
+  return path_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void TopologyPad::set_allocated_path(::std::string* path) {
+  if (path != NULL) {
+    set_has_path();
+  } else {
+    clear_has_path();
+  }
+  path_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), path);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.TopologyPad.path)
+}
+
+// required bool is_ghostpad = 2;
+bool TopologyPad::has_is_ghostpad() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+void TopologyPad::set_has_is_ghostpad() {
+  _has_bits_[0] |= 0x00000004u;
+}
+void TopologyPad::clear_has_is_ghostpad() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+void TopologyPad::clear_is_ghostpad() {
+  is_ghostpad_ = false;
+  clear_has_is_ghostpad();
+}
+bool TopologyPad::is_ghostpad() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyPad.is_ghostpad)
+  return is_ghostpad_;
+}
+void TopologyPad::set_is_ghostpad(bool value) {
+  set_has_is_ghostpad();
+  is_ghostpad_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.TopologyPad.is_ghostpad)
+}
+
+// required int32 direction = 3;
+bool TopologyPad::has_direction() const {
+  return (_has_bits_[0] & 0x00000008u) != 0;
+}
+void TopologyPad::set_has_direction() {
+  _has_bits_[0] |= 0x00000008u;
+}
+void TopologyPad::clear_has_direction() {
+  _has_bits_[0] &= ~0x00000008u;
+}
+void TopologyPad::clear_direction() {
+  direction_ = 0;
+  clear_has_direction();
+}
+::google::protobuf::int32 TopologyPad::direction() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyPad.direction)
+  return direction_;
+}
+void TopologyPad::set_direction(::google::protobuf::int32 value) {
+  set_has_direction();
+  direction_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.TopologyPad.direction)
+}
+
+// required int32 presence = 4;
+bool TopologyPad::has_presence() const {
+  return (_has_bits_[0] & 0x00000010u) != 0;
+}
+void TopologyPad::set_has_presence() {
+  _has_bits_[0] |= 0x00000010u;
+}
+void TopologyPad::clear_has_presence() {
+  _has_bits_[0] &= ~0x00000010u;
+}
+void TopologyPad::clear_presence() {
+  presence_ = 0;
+  clear_has_presence();
+}
+::google::protobuf::int32 TopologyPad::presence() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyPad.presence)
+  return presence_;
+}
+void TopologyPad::set_presence(::google::protobuf::int32 value) {
+  set_has_presence();
+  presence_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.TopologyPad.presence)
+}
+
+// optional .GstDebugger.PadTemplate template = 5;
+bool TopologyPad::has_template_() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+void TopologyPad::set_has_template_() {
+  _has_bits_[0] |= 0x00000002u;
+}
+void TopologyPad::clear_has_template_() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+void TopologyPad::clear_template_() {
+  if (template__ != NULL) template__->::GstDebugger::PadTemplate::Clear();
+  clear_has_template_();
+}
+const ::GstDebugger::PadTemplate& TopologyPad::template_() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyPad.template)
+  return template__ != NULL ? *template__
+                         : *::GstDebugger::PadTemplate::internal_default_instance();
+}
+::GstDebugger::PadTemplate* TopologyPad::mutable_template_() {
+  set_has_template_();
+  if (template__ == NULL) {
+    template__ = new ::GstDebugger::PadTemplate;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.TopologyPad.template)
+  return template__;
+}
+::GstDebugger::PadTemplate* TopologyPad::release_template_() {
+  // @@protoc_insertion_point(field_release:GstDebugger.TopologyPad.template)
+  clear_has_template_();
+  ::GstDebugger::PadTemplate* temp = template__;
+  template__ = NULL;
+  return temp;
+}
+void TopologyPad::set_allocated_template_(::GstDebugger::PadTemplate* template_) {
+  delete template__;
+  template__ = template_;
+  if (template_) {
+    set_has_template_();
+  } else {
+    clear_has_template_();
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.TopologyPad.template)
+}
+
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int TopologyInfo::kActionFieldNumber;
+const int TopologyInfo::kLinkFieldNumber;
+const int TopologyInfo::kElementFieldNumber;
+const int TopologyInfo::kPadFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+TopologyInfo::TopologyInfo()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.TopologyInfo)
+}
+TopologyInfo::TopologyInfo(const TopologyInfo& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  action_ = from.action_;
+  clear_has_topology_type();
+  switch (from.topology_type_case()) {
+    case kLink: {
+      mutable_link()->::GstDebugger::TopologyLink::MergeFrom(from.link());
+      break;
+    }
+    case kElement: {
+      mutable_element()->::GstDebugger::TopologyElement::MergeFrom(from.element());
+      break;
+    }
+    case kPad: {
+      mutable_pad()->::GstDebugger::TopologyPad::MergeFrom(from.pad());
+      break;
+    }
+    case TOPOLOGY_TYPE_NOT_SET: {
+      break;
+    }
+  }
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.TopologyInfo)
+}
+
+void TopologyInfo::SharedCtor() {
+  _cached_size_ = 0;
+  action_ = 0;
+  clear_has_topology_type();
+}
+
+TopologyInfo::~TopologyInfo() {
+  // @@protoc_insertion_point(destructor:GstDebugger.TopologyInfo)
+  SharedDtor();
+}
+
+void TopologyInfo::SharedDtor() {
+  if (has_topology_type()) {
+    clear_topology_type();
+  }
+}
+
+void TopologyInfo::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* TopologyInfo::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[28].descriptor;
+}
+
+const TopologyInfo& TopologyInfo::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+TopologyInfo* TopologyInfo::New(::google::protobuf::Arena* arena) const {
+  TopologyInfo* n = new TopologyInfo;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void TopologyInfo::clear_topology_type() {
+// @@protoc_insertion_point(one_of_clear_start:GstDebugger.TopologyInfo)
+  switch (topology_type_case()) {
+    case kLink: {
+      delete topology_type_.link_;
+      break;
+    }
+    case kElement: {
+      delete topology_type_.element_;
+      break;
+    }
+    case kPad: {
+      delete topology_type_.pad_;
+      break;
+    }
+    case TOPOLOGY_TYPE_NOT_SET: {
+      break;
+    }
+  }
+  _oneof_case_[0] = TOPOLOGY_TYPE_NOT_SET;
+}
+
+
+void TopologyInfo::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.TopologyInfo)
+  action_ = 0;
+  clear_topology_type();
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool TopologyInfo::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.TopologyInfo)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required .GstDebugger.Action action = 1;
+      case 1: {
+        if (tag == 8u) {
+          int value;
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+                 input, &value)));
+          if (::GstDebugger::Action_IsValid(value)) {
+            set_action(static_cast< ::GstDebugger::Action >(value));
+          } else {
+            mutable_unknown_fields()->AddVarint(1, value);
+          }
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional .GstDebugger.TopologyLink link = 2;
+      case 2: {
+        if (tag == 18u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_link()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional .GstDebugger.TopologyElement element = 3;
+      case 3: {
+        if (tag == 26u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_element()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional .GstDebugger.TopologyPad pad = 4;
+      case 4: {
+        if (tag == 34u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_pad()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.TopologyInfo)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.TopologyInfo)
+  return false;
+#undef DO_
+}
+
+void TopologyInfo::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.TopologyInfo)
+  // required .GstDebugger.Action action = 1;
+  if (has_action()) {
+    ::google::protobuf::internal::WireFormatLite::WriteEnum(
+      1, this->action(), output);
+  }
+
+  switch (topology_type_case()) {
+    case kLink:
+      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+        2, *topology_type_.link_, output);
+      break;
+    case kElement:
+      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+        3, *topology_type_.element_, output);
+      break;
+    case kPad:
+      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+        4, *topology_type_.pad_, output);
+      break;
+    default: ;
+  }
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.TopologyInfo)
+}
+
+::google::protobuf::uint8* TopologyInfo::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.TopologyInfo)
+  // required .GstDebugger.Action action = 1;
+  if (has_action()) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
+      1, this->action(), target);
+  }
+
+  switch (topology_type_case()) {
+    case kLink:
+      target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessageNoVirtualToArray(
+          2, *topology_type_.link_, false, target);
+      break;
+    case kElement:
+      target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessageNoVirtualToArray(
+          3, *topology_type_.element_, false, target);
+      break;
+    case kPad:
+      target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessageNoVirtualToArray(
+          4, *topology_type_.pad_, false, target);
+      break;
+    default: ;
+  }
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.TopologyInfo)
+  return target;
+}
+
+size_t TopologyInfo::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.TopologyInfo)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  // required .GstDebugger.Action action = 1;
+  if (has_action()) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::EnumSize(this->action());
+  }
+  switch (topology_type_case()) {
+    // optional .GstDebugger.TopologyLink link = 2;
+    case kLink: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          *topology_type_.link_);
+      break;
+    }
+    // optional .GstDebugger.TopologyElement element = 3;
+    case kElement: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          *topology_type_.element_);
+      break;
+    }
+    // optional .GstDebugger.TopologyPad pad = 4;
+    case kPad: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          *topology_type_.pad_);
+      break;
+    }
+    case TOPOLOGY_TYPE_NOT_SET: {
+      break;
+    }
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void TopologyInfo::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.TopologyInfo)
+  GOOGLE_DCHECK_NE(&from, this);
+  const TopologyInfo* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const TopologyInfo>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.TopologyInfo)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.TopologyInfo)
+    MergeFrom(*source);
+  }
+}
+
+void TopologyInfo::MergeFrom(const TopologyInfo& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.TopologyInfo)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from.has_action()) {
+    set_action(from.action());
+  }
+  switch (from.topology_type_case()) {
+    case kLink: {
+      mutable_link()->::GstDebugger::TopologyLink::MergeFrom(from.link());
+      break;
+    }
+    case kElement: {
+      mutable_element()->::GstDebugger::TopologyElement::MergeFrom(from.element());
+      break;
+    }
+    case kPad: {
+      mutable_pad()->::GstDebugger::TopologyPad::MergeFrom(from.pad());
+      break;
+    }
+    case TOPOLOGY_TYPE_NOT_SET: {
+      break;
+    }
+  }
+}
+
+void TopologyInfo::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.TopologyInfo)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void TopologyInfo::CopyFrom(const TopologyInfo& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.TopologyInfo)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool TopologyInfo::IsInitialized() const {
+  if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;
+  switch (topology_type_case()) {
+    case kLink: {
+      if (has_link()) {
+        if (!this->link().IsInitialized()) return false;
+      }
+      break;
+    }
+    case kElement: {
+      if (has_element()) {
+        if (!this->element().IsInitialized()) return false;
+      }
+      break;
+    }
+    case kPad: {
+      if (has_pad()) {
+        if (!this->pad().IsInitialized()) return false;
+      }
+      break;
+    }
+    case TOPOLOGY_TYPE_NOT_SET: {
+      break;
+    }
+  }
+  return true;
+}
+
+void TopologyInfo::Swap(TopologyInfo* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void TopologyInfo::InternalSwap(TopologyInfo* other) {
+  std::swap(action_, other->action_);
+  std::swap(topology_type_, other->topology_type_);
+  std::swap(_oneof_case_[0], other->_oneof_case_[0]);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata TopologyInfo::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[28];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// TopologyInfo
+
+// required .GstDebugger.Action action = 1;
+bool TopologyInfo::has_action() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void TopologyInfo::set_has_action() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void TopologyInfo::clear_has_action() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void TopologyInfo::clear_action() {
+  action_ = 0;
+  clear_has_action();
+}
+::GstDebugger::Action TopologyInfo::action() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyInfo.action)
+  return static_cast< ::GstDebugger::Action >(action_);
+}
+void TopologyInfo::set_action(::GstDebugger::Action value) {
+  assert(::GstDebugger::Action_IsValid(value));
+  set_has_action();
+  action_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.TopologyInfo.action)
+}
+
+// optional .GstDebugger.TopologyLink link = 2;
+bool TopologyInfo::has_link() const {
+  return topology_type_case() == kLink;
+}
+void TopologyInfo::set_has_link() {
+  _oneof_case_[0] = kLink;
+}
+void TopologyInfo::clear_link() {
+  if (has_link()) {
+    delete topology_type_.link_;
+    clear_has_topology_type();
+  }
+}
+ const ::GstDebugger::TopologyLink& TopologyInfo::link() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyInfo.link)
+  return has_link()
+      ? *topology_type_.link_
+      : ::GstDebugger::TopologyLink::default_instance();
+}
+::GstDebugger::TopologyLink* TopologyInfo::mutable_link() {
+  if (!has_link()) {
+    clear_topology_type();
+    set_has_link();
+    topology_type_.link_ = new ::GstDebugger::TopologyLink;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.TopologyInfo.link)
+  return topology_type_.link_;
+}
+::GstDebugger::TopologyLink* TopologyInfo::release_link() {
+  // @@protoc_insertion_point(field_release:GstDebugger.TopologyInfo.link)
+  if (has_link()) {
+    clear_has_topology_type();
+    ::GstDebugger::TopologyLink* temp = topology_type_.link_;
+    topology_type_.link_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+void TopologyInfo::set_allocated_link(::GstDebugger::TopologyLink* link) {
+  clear_topology_type();
+  if (link) {
+    set_has_link();
+    topology_type_.link_ = link;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.TopologyInfo.link)
+}
+
+// optional .GstDebugger.TopologyElement element = 3;
+bool TopologyInfo::has_element() const {
+  return topology_type_case() == kElement;
+}
+void TopologyInfo::set_has_element() {
+  _oneof_case_[0] = kElement;
+}
+void TopologyInfo::clear_element() {
+  if (has_element()) {
+    delete topology_type_.element_;
+    clear_has_topology_type();
+  }
+}
+ const ::GstDebugger::TopologyElement& TopologyInfo::element() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyInfo.element)
+  return has_element()
+      ? *topology_type_.element_
+      : ::GstDebugger::TopologyElement::default_instance();
+}
+::GstDebugger::TopologyElement* TopologyInfo::mutable_element() {
+  if (!has_element()) {
+    clear_topology_type();
+    set_has_element();
+    topology_type_.element_ = new ::GstDebugger::TopologyElement;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.TopologyInfo.element)
+  return topology_type_.element_;
+}
+::GstDebugger::TopologyElement* TopologyInfo::release_element() {
+  // @@protoc_insertion_point(field_release:GstDebugger.TopologyInfo.element)
+  if (has_element()) {
+    clear_has_topology_type();
+    ::GstDebugger::TopologyElement* temp = topology_type_.element_;
+    topology_type_.element_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+void TopologyInfo::set_allocated_element(::GstDebugger::TopologyElement* element) {
+  clear_topology_type();
+  if (element) {
+    set_has_element();
+    topology_type_.element_ = element;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.TopologyInfo.element)
+}
+
+// optional .GstDebugger.TopologyPad pad = 4;
+bool TopologyInfo::has_pad() const {
+  return topology_type_case() == kPad;
+}
+void TopologyInfo::set_has_pad() {
+  _oneof_case_[0] = kPad;
+}
+void TopologyInfo::clear_pad() {
+  if (has_pad()) {
+    delete topology_type_.pad_;
+    clear_has_topology_type();
+  }
+}
+ const ::GstDebugger::TopologyPad& TopologyInfo::pad() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyInfo.pad)
+  return has_pad()
+      ? *topology_type_.pad_
+      : ::GstDebugger::TopologyPad::default_instance();
+}
+::GstDebugger::TopologyPad* TopologyInfo::mutable_pad() {
+  if (!has_pad()) {
+    clear_topology_type();
+    set_has_pad();
+    topology_type_.pad_ = new ::GstDebugger::TopologyPad;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.TopologyInfo.pad)
+  return topology_type_.pad_;
+}
+::GstDebugger::TopologyPad* TopologyInfo::release_pad() {
+  // @@protoc_insertion_point(field_release:GstDebugger.TopologyInfo.pad)
+  if (has_pad()) {
+    clear_has_topology_type();
+    ::GstDebugger::TopologyPad* temp = topology_type_.pad_;
+    topology_type_.pad_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+void TopologyInfo::set_allocated_pad(::GstDebugger::TopologyPad* pad) {
+  clear_topology_type();
+  if (pad) {
+    set_has_pad();
+    topology_type_.pad_ = pad;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.TopologyInfo.pad)
+}
+
+bool TopologyInfo::has_topology_type() const {
+  return topology_type_case() != TOPOLOGY_TYPE_NOT_SET;
+}
+void TopologyInfo::clear_has_topology_type() {
+  _oneof_case_[0] = TOPOLOGY_TYPE_NOT_SET;
+}
+TopologyInfo::TopologyTypeCase TopologyInfo::topology_type_case() const {
+  return TopologyInfo::TopologyTypeCase(_oneof_case_[0]);
+}
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int PadDynamicInfo::kAllowedCapsFieldNumber;
+const int PadDynamicInfo::kCurrentCapsFieldNumber;
+const int PadDynamicInfo::kPadFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+PadDynamicInfo::PadDynamicInfo()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.PadDynamicInfo)
+}
+PadDynamicInfo::PadDynamicInfo(const PadDynamicInfo& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  allowed_caps_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_allowed_caps()) {
+    allowed_caps_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.allowed_caps_);
+  }
+  current_caps_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_current_caps()) {
+    current_caps_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.current_caps_);
+  }
+  pad_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  if (from.has_pad()) {
+    pad_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.pad_);
+  }
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.PadDynamicInfo)
+}
+
+void PadDynamicInfo::SharedCtor() {
+  _cached_size_ = 0;
+  allowed_caps_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  current_caps_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  pad_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+PadDynamicInfo::~PadDynamicInfo() {
+  // @@protoc_insertion_point(destructor:GstDebugger.PadDynamicInfo)
+  SharedDtor();
+}
+
+void PadDynamicInfo::SharedDtor() {
+  allowed_caps_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  current_caps_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  pad_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void PadDynamicInfo::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* PadDynamicInfo::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[29].descriptor;
+}
+
+const PadDynamicInfo& PadDynamicInfo::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+PadDynamicInfo* PadDynamicInfo::New(::google::protobuf::Arena* arena) const {
+  PadDynamicInfo* n = new PadDynamicInfo;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void PadDynamicInfo::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.PadDynamicInfo)
+  if (_has_bits_[0 / 32] & 7u) {
+    if (has_allowed_caps()) {
+      GOOGLE_DCHECK(!allowed_caps_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*allowed_caps_.UnsafeRawStringPointer())->clear();
+    }
+    if (has_current_caps()) {
+      GOOGLE_DCHECK(!current_caps_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*current_caps_.UnsafeRawStringPointer())->clear();
+    }
+    if (has_pad()) {
+      GOOGLE_DCHECK(!pad_.IsDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited()));
+      (*pad_.UnsafeRawStringPointer())->clear();
+    }
+  }
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool PadDynamicInfo::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.PadDynamicInfo)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // required string allowed_caps = 1;
+      case 1: {
+        if (tag == 10u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_allowed_caps()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->allowed_caps().data(), this->allowed_caps().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.PadDynamicInfo.allowed_caps");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required string current_caps = 2;
+      case 2: {
+        if (tag == 18u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_current_caps()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->current_caps().data(), this->current_caps().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.PadDynamicInfo.current_caps");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // required string pad = 3;
+      case 3: {
+        if (tag == 26u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+                input, this->mutable_pad()));
+          ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+            this->pad().data(), this->pad().length(),
+            ::google::protobuf::internal::WireFormat::PARSE,
+            "GstDebugger.PadDynamicInfo.pad");
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.PadDynamicInfo)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.PadDynamicInfo)
+  return false;
+#undef DO_
+}
+
+void PadDynamicInfo::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.PadDynamicInfo)
+  // required string allowed_caps = 1;
+  if (has_allowed_caps()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->allowed_caps().data(), this->allowed_caps().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.PadDynamicInfo.allowed_caps");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      1, this->allowed_caps(), output);
+  }
+
+  // required string current_caps = 2;
+  if (has_current_caps()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->current_caps().data(), this->current_caps().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.PadDynamicInfo.current_caps");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      2, this->current_caps(), output);
+  }
+
+  // required string pad = 3;
+  if (has_pad()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->pad().data(), this->pad().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.PadDynamicInfo.pad");
+    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+      3, this->pad(), output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.PadDynamicInfo)
+}
+
+::google::protobuf::uint8* PadDynamicInfo::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.PadDynamicInfo)
+  // required string allowed_caps = 1;
+  if (has_allowed_caps()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->allowed_caps().data(), this->allowed_caps().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.PadDynamicInfo.allowed_caps");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        1, this->allowed_caps(), target);
+  }
+
+  // required string current_caps = 2;
+  if (has_current_caps()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->current_caps().data(), this->current_caps().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.PadDynamicInfo.current_caps");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        2, this->current_caps(), target);
+  }
+
+  // required string pad = 3;
+  if (has_pad()) {
+    ::google::protobuf::internal::WireFormat::VerifyUTF8StringNamedField(
+      this->pad().data(), this->pad().length(),
+      ::google::protobuf::internal::WireFormat::SERIALIZE,
+      "GstDebugger.PadDynamicInfo.pad");
+    target =
+      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+        3, this->pad(), target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.PadDynamicInfo)
+  return target;
+}
+
+size_t PadDynamicInfo::RequiredFieldsByteSizeFallback() const {
+// @@protoc_insertion_point(required_fields_byte_size_fallback_start:GstDebugger.PadDynamicInfo)
+  size_t total_size = 0;
+
+  if (has_allowed_caps()) {
+    // required string allowed_caps = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->allowed_caps());
+  }
+
+  if (has_current_caps()) {
+    // required string current_caps = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->current_caps());
+  }
+
+  if (has_pad()) {
+    // required string pad = 3;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->pad());
+  }
+
+  return total_size;
+}
+size_t PadDynamicInfo::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.PadDynamicInfo)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  if (((_has_bits_[0] & 0x00000007) ^ 0x00000007) == 0) {  // All required fields are present.
+    // required string allowed_caps = 1;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->allowed_caps());
+
+    // required string current_caps = 2;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->current_caps());
+
+    // required string pad = 3;
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::StringSize(
+        this->pad());
+
+  } else {
+    total_size += RequiredFieldsByteSizeFallback();
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void PadDynamicInfo::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.PadDynamicInfo)
+  GOOGLE_DCHECK_NE(&from, this);
+  const PadDynamicInfo* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const PadDynamicInfo>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.PadDynamicInfo)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.PadDynamicInfo)
+    MergeFrom(*source);
+  }
+}
+
+void PadDynamicInfo::MergeFrom(const PadDynamicInfo& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.PadDynamicInfo)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  if (from._has_bits_[0 / 32] & 7u) {
+    if (from.has_allowed_caps()) {
+      set_has_allowed_caps();
+      allowed_caps_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.allowed_caps_);
+    }
+    if (from.has_current_caps()) {
+      set_has_current_caps();
+      current_caps_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
from.current_caps_);
+    }
+    if (from.has_pad()) {
+      set_has_pad();
+      pad_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.pad_);
+    }
+  }
+}
+
+void PadDynamicInfo::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.PadDynamicInfo)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void PadDynamicInfo::CopyFrom(const PadDynamicInfo& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.PadDynamicInfo)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool PadDynamicInfo::IsInitialized() const {
+  if ((_has_bits_[0] & 0x00000007) != 0x00000007) return false;
+  return true;
+}
+
+void PadDynamicInfo::Swap(PadDynamicInfo* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void PadDynamicInfo::InternalSwap(PadDynamicInfo* other) {
+  allowed_caps_.Swap(&other->allowed_caps_);
+  current_caps_.Swap(&other->current_caps_);
+  pad_.Swap(&other->pad_);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata PadDynamicInfo::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[29];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// PadDynamicInfo
+
+// required string allowed_caps = 1;
+bool PadDynamicInfo::has_allowed_caps() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+void PadDynamicInfo::set_has_allowed_caps() {
+  _has_bits_[0] |= 0x00000001u;
+}
+void PadDynamicInfo::clear_has_allowed_caps() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+void PadDynamicInfo::clear_allowed_caps() {
+  allowed_caps_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_allowed_caps();
+}
+const ::std::string& PadDynamicInfo::allowed_caps() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PadDynamicInfo.allowed_caps)
+  return allowed_caps_.GetNoArena();
+}
+void PadDynamicInfo::set_allowed_caps(const ::std::string& value) {
+  set_has_allowed_caps();
+  allowed_caps_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.PadDynamicInfo.allowed_caps)
+}
+#if LANG_CXX11
+void PadDynamicInfo::set_allowed_caps(::std::string&& value) {
+  set_has_allowed_caps();
+  allowed_caps_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.PadDynamicInfo.allowed_caps)
+}
+#endif
+void PadDynamicInfo::set_allowed_caps(const char* value) {
+  set_has_allowed_caps();
+  allowed_caps_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.PadDynamicInfo.allowed_caps)
+}
+void PadDynamicInfo::set_allowed_caps(const char* value, size_t size) {
+  set_has_allowed_caps();
+  allowed_caps_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.PadDynamicInfo.allowed_caps)
+}
+::std::string* PadDynamicInfo::mutable_allowed_caps() {
+  set_has_allowed_caps();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PadDynamicInfo.allowed_caps)
+  return allowed_caps_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* PadDynamicInfo::release_allowed_caps() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PadDynamicInfo.allowed_caps)
+  clear_has_allowed_caps();
+  return allowed_caps_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void PadDynamicInfo::set_allocated_allowed_caps(::std::string* allowed_caps) {
+  if (allowed_caps != NULL) {
+    set_has_allowed_caps();
+  } else {
+    clear_has_allowed_caps();
+  }
+  allowed_caps_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
allowed_caps);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PadDynamicInfo.allowed_caps)
+}
+
+// required string current_caps = 2;
+bool PadDynamicInfo::has_current_caps() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+void PadDynamicInfo::set_has_current_caps() {
+  _has_bits_[0] |= 0x00000002u;
+}
+void PadDynamicInfo::clear_has_current_caps() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+void PadDynamicInfo::clear_current_caps() {
+  current_caps_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_current_caps();
+}
+const ::std::string& PadDynamicInfo::current_caps() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PadDynamicInfo.current_caps)
+  return current_caps_.GetNoArena();
+}
+void PadDynamicInfo::set_current_caps(const ::std::string& value) {
+  set_has_current_caps();
+  current_caps_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.PadDynamicInfo.current_caps)
+}
+#if LANG_CXX11
+void PadDynamicInfo::set_current_caps(::std::string&& value) {
+  set_has_current_caps();
+  current_caps_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.PadDynamicInfo.current_caps)
+}
+#endif
+void PadDynamicInfo::set_current_caps(const char* value) {
+  set_has_current_caps();
+  current_caps_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.PadDynamicInfo.current_caps)
+}
+void PadDynamicInfo::set_current_caps(const char* value, size_t size) {
+  set_has_current_caps();
+  current_caps_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.PadDynamicInfo.current_caps)
+}
+::std::string* PadDynamicInfo::mutable_current_caps() {
+  set_has_current_caps();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PadDynamicInfo.current_caps)
+  return current_caps_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* PadDynamicInfo::release_current_caps() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PadDynamicInfo.current_caps)
+  clear_has_current_caps();
+  return current_caps_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void PadDynamicInfo::set_allocated_current_caps(::std::string* current_caps) {
+  if (current_caps != NULL) {
+    set_has_current_caps();
+  } else {
+    clear_has_current_caps();
+  }
+  current_caps_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
current_caps);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PadDynamicInfo.current_caps)
+}
+
+// required string pad = 3;
+bool PadDynamicInfo::has_pad() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+void PadDynamicInfo::set_has_pad() {
+  _has_bits_[0] |= 0x00000004u;
+}
+void PadDynamicInfo::clear_has_pad() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+void PadDynamicInfo::clear_pad() {
+  pad_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_pad();
+}
+const ::std::string& PadDynamicInfo::pad() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PadDynamicInfo.pad)
+  return pad_.GetNoArena();
+}
+void PadDynamicInfo::set_pad(const ::std::string& value) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.PadDynamicInfo.pad)
+}
+#if LANG_CXX11
+void PadDynamicInfo::set_pad(::std::string&& value) {
+  set_has_pad();
+  pad_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.PadDynamicInfo.pad)
+}
+#endif
+void PadDynamicInfo::set_pad(const char* value) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.PadDynamicInfo.pad)
+}
+void PadDynamicInfo::set_pad(const char* value, size_t size) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.PadDynamicInfo.pad)
+}
+::std::string* PadDynamicInfo::mutable_pad() {
+  set_has_pad();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PadDynamicInfo.pad)
+  return pad_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* PadDynamicInfo::release_pad() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PadDynamicInfo.pad)
+  clear_has_pad();
+  return pad_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void PadDynamicInfo::set_allocated_pad(::std::string* pad) {
+  if (pad != NULL) {
+    set_has_pad();
+  } else {
+    clear_has_pad();
+  }
+  pad_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), pad);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PadDynamicInfo.pad)
+}
+
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int GStreamerData::kDebugCategoriesFieldNumber;
+const int GStreamerData::kLogInfoFieldNumber;
+const int GStreamerData::kEnumFlagsTypeFieldNumber;
+const int GStreamerData::kFactoryFieldNumber;
+const int GStreamerData::kMessageInfoFieldNumber;
+const int GStreamerData::kConfirmationFieldNumber;
+const int GStreamerData::kEventInfoFieldNumber;
+const int GStreamerData::kTopologyInfoFieldNumber;
+const int GStreamerData::kQueryInfoFieldNumber;
+const int GStreamerData::kPropertyValueFieldNumber;
+const int GStreamerData::kElementKlassFieldNumber;
+const int GStreamerData::kBufferInfoFieldNumber;
+const int GStreamerData::kPadDynamicInfoFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+GStreamerData::GStreamerData()
+  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+    protobuf_gstdebugger_2eproto::InitDefaults();
+  }
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:GstDebugger.GStreamerData)
+}
+GStreamerData::GStreamerData(const GStreamerData& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(NULL),
+      _has_bits_(from._has_bits_),
+      _cached_size_(0) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  clear_has_info_type();
+  switch (from.info_type_case()) {
+    case kDebugCategories: {
+      mutable_debug_categories()->::GstDebugger::DebugCategories::MergeFrom(from.debug_categories());
+      break;
+    }
+    case kLogInfo: {
+      mutable_log_info()->::GstDebugger::LogInfo::MergeFrom(from.log_info());
+      break;
+    }
+    case kEnumFlagsType: {
+      mutable_enum_flags_type()->::GstDebugger::EnumFlagsType::MergeFrom(from.enum_flags_type());
+      break;
+    }
+    case kFactory: {
+      mutable_factory()->::GstDebugger::FactoryType::MergeFrom(from.factory());
+      break;
+    }
+    case kMessageInfo: {
+      mutable_message_info()->::GstDebugger::MessageInfo::MergeFrom(from.message_info());
+      break;
+    }
+    case kConfirmation: {
+      mutable_confirmation()->::GstDebugger::Command::MergeFrom(from.confirmation());
+      break;
+    }
+    case kEventInfo: {
+      mutable_event_info()->::GstDebugger::EventInfo::MergeFrom(from.event_info());
+      break;
+    }
+    case kTopologyInfo: {
+      mutable_topology_info()->::GstDebugger::TopologyInfo::MergeFrom(from.topology_info());
+      break;
+    }
+    case kQueryInfo: {
+      mutable_query_info()->::GstDebugger::QueryInfo::MergeFrom(from.query_info());
+      break;
+    }
+    case kPropertyValue: {
+      mutable_property_value()->::GstDebugger::PropertyValue::MergeFrom(from.property_value());
+      break;
+    }
+    case kElementKlass: {
+      mutable_element_klass()->::GstDebugger::ElementKlass::MergeFrom(from.element_klass());
+      break;
+    }
+    case kBufferInfo: {
+      mutable_buffer_info()->::GstDebugger::BufferInfo::MergeFrom(from.buffer_info());
+      break;
+    }
+    case kPadDynamicInfo: {
+      mutable_pad_dynamic_info()->::GstDebugger::PadDynamicInfo::MergeFrom(from.pad_dynamic_info());
+      break;
+    }
+    case INFO_TYPE_NOT_SET: {
+      break;
+    }
+  }
+  // @@protoc_insertion_point(copy_constructor:GstDebugger.GStreamerData)
+}
+
+void GStreamerData::SharedCtor() {
+  _cached_size_ = 0;
+  clear_has_info_type();
+}
+
+GStreamerData::~GStreamerData() {
+  // @@protoc_insertion_point(destructor:GstDebugger.GStreamerData)
+  SharedDtor();
+}
+
+void GStreamerData::SharedDtor() {
+  if (has_info_type()) {
+    clear_info_type();
+  }
+}
+
+void GStreamerData::SetCachedSize(int size) const {
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* GStreamerData::descriptor() {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[30].descriptor;
+}
+
+const GStreamerData& GStreamerData::default_instance() {
+  protobuf_gstdebugger_2eproto::InitDefaults();
+  return *internal_default_instance();
+}
+
+GStreamerData* GStreamerData::New(::google::protobuf::Arena* arena) const {
+  GStreamerData* n = new GStreamerData;
+  if (arena != NULL) {
+    arena->Own(n);
+  }
+  return n;
+}
+
+void GStreamerData::clear_info_type() {
+// @@protoc_insertion_point(one_of_clear_start:GstDebugger.GStreamerData)
+  switch (info_type_case()) {
+    case kDebugCategories: {
+      delete info_type_.debug_categories_;
+      break;
+    }
+    case kLogInfo: {
+      delete info_type_.log_info_;
+      break;
+    }
+    case kEnumFlagsType: {
+      delete info_type_.enum_flags_type_;
+      break;
+    }
+    case kFactory: {
+      delete info_type_.factory_;
+      break;
+    }
+    case kMessageInfo: {
+      delete info_type_.message_info_;
+      break;
+    }
+    case kConfirmation: {
+      delete info_type_.confirmation_;
+      break;
+    }
+    case kEventInfo: {
+      delete info_type_.event_info_;
+      break;
+    }
+    case kTopologyInfo: {
+      delete info_type_.topology_info_;
+      break;
+    }
+    case kQueryInfo: {
+      delete info_type_.query_info_;
+      break;
+    }
+    case kPropertyValue: {
+      delete info_type_.property_value_;
+      break;
+    }
+    case kElementKlass: {
+      delete info_type_.element_klass_;
+      break;
+    }
+    case kBufferInfo: {
+      delete info_type_.buffer_info_;
+      break;
+    }
+    case kPadDynamicInfo: {
+      delete info_type_.pad_dynamic_info_;
+      break;
+    }
+    case INFO_TYPE_NOT_SET: {
+      break;
+    }
+  }
+  _oneof_case_[0] = INFO_TYPE_NOT_SET;
+}
+
+
+void GStreamerData::Clear() {
+// @@protoc_insertion_point(message_clear_start:GstDebugger.GStreamerData)
+  clear_info_type();
+  _has_bits_.Clear();
+  _internal_metadata_.Clear();
+}
+
+bool GStreamerData::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!GOOGLE_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:GstDebugger.GStreamerData)
+  for (;;) {
+    ::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // optional .GstDebugger.DebugCategories debug_categories = 1;
+      case 1: {
+        if (tag == 10u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_debug_categories()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional .GstDebugger.LogInfo log_info = 2;
+      case 2: {
+        if (tag == 18u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_log_info()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional .GstDebugger.EnumFlagsType enum_flags_type = 3;
+      case 3: {
+        if (tag == 26u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_enum_flags_type()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional .GstDebugger.FactoryType factory = 4;
+      case 4: {
+        if (tag == 34u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_factory()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional .GstDebugger.MessageInfo message_info = 5;
+      case 5: {
+        if (tag == 42u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_message_info()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional .GstDebugger.Command confirmation = 6;
+      case 6: {
+        if (tag == 50u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_confirmation()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional .GstDebugger.EventInfo event_info = 7;
+      case 7: {
+        if (tag == 58u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_event_info()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional .GstDebugger.TopologyInfo topology_info = 8;
+      case 8: {
+        if (tag == 66u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_topology_info()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional .GstDebugger.QueryInfo query_info = 9;
+      case 9: {
+        if (tag == 74u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_query_info()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional .GstDebugger.PropertyValue property_value = 10;
+      case 10: {
+        if (tag == 82u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_property_value()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional .GstDebugger.ElementKlass element_klass = 11;
+      case 11: {
+        if (tag == 90u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_element_klass()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional .GstDebugger.BufferInfo buffer_info = 12;
+      case 12: {
+        if (tag == 98u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_buffer_info()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      // optional .GstDebugger.PadDynamicInfo pad_dynamic_info = 13;
+      case 13: {
+        if (tag == 106u) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
+               input, mutable_pad_dynamic_info()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0 ||
+            ::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:GstDebugger.GStreamerData)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:GstDebugger.GStreamerData)
+  return false;
+#undef DO_
+}
+
+void GStreamerData::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:GstDebugger.GStreamerData)
+  switch (info_type_case()) {
+    case kDebugCategories:
+      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+        1, *info_type_.debug_categories_, output);
+      break;
+    case kLogInfo:
+      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+        2, *info_type_.log_info_, output);
+      break;
+    case kEnumFlagsType:
+      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+        3, *info_type_.enum_flags_type_, output);
+      break;
+    case kFactory:
+      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+        4, *info_type_.factory_, output);
+      break;
+    case kMessageInfo:
+      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+        5, *info_type_.message_info_, output);
+      break;
+    case kConfirmation:
+      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+        6, *info_type_.confirmation_, output);
+      break;
+    case kEventInfo:
+      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+        7, *info_type_.event_info_, output);
+      break;
+    case kTopologyInfo:
+      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+        8, *info_type_.topology_info_, output);
+      break;
+    case kQueryInfo:
+      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+        9, *info_type_.query_info_, output);
+      break;
+    case kPropertyValue:
+      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+        10, *info_type_.property_value_, output);
+      break;
+    case kElementKlass:
+      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+        11, *info_type_.element_klass_, output);
+      break;
+    case kBufferInfo:
+      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+        12, *info_type_.buffer_info_, output);
+      break;
+    case kPadDynamicInfo:
+      ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+        13, *info_type_.pad_dynamic_info_, output);
+      break;
+    default: ;
+  }
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:GstDebugger.GStreamerData)
+}
+
+::google::protobuf::uint8* GStreamerData::InternalSerializeWithCachedSizesToArray(
+    bool deterministic, ::google::protobuf::uint8* target) const {
+  (void)deterministic;  // Unused
+  // @@protoc_insertion_point(serialize_to_array_start:GstDebugger.GStreamerData)
+  switch (info_type_case()) {
+    case kDebugCategories:
+      target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessageNoVirtualToArray(
+          1, *info_type_.debug_categories_, false, target);
+      break;
+    case kLogInfo:
+      target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessageNoVirtualToArray(
+          2, *info_type_.log_info_, false, target);
+      break;
+    case kEnumFlagsType:
+      target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessageNoVirtualToArray(
+          3, *info_type_.enum_flags_type_, false, target);
+      break;
+    case kFactory:
+      target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessageNoVirtualToArray(
+          4, *info_type_.factory_, false, target);
+      break;
+    case kMessageInfo:
+      target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessageNoVirtualToArray(
+          5, *info_type_.message_info_, false, target);
+      break;
+    case kConfirmation:
+      target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessageNoVirtualToArray(
+          6, *info_type_.confirmation_, false, target);
+      break;
+    case kEventInfo:
+      target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessageNoVirtualToArray(
+          7, *info_type_.event_info_, false, target);
+      break;
+    case kTopologyInfo:
+      target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessageNoVirtualToArray(
+          8, *info_type_.topology_info_, false, target);
+      break;
+    case kQueryInfo:
+      target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessageNoVirtualToArray(
+          9, *info_type_.query_info_, false, target);
+      break;
+    case kPropertyValue:
+      target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessageNoVirtualToArray(
+          10, *info_type_.property_value_, false, target);
+      break;
+    case kElementKlass:
+      target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessageNoVirtualToArray(
+          11, *info_type_.element_klass_, false, target);
+      break;
+    case kBufferInfo:
+      target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessageNoVirtualToArray(
+          12, *info_type_.buffer_info_, false, target);
+      break;
+    case kPadDynamicInfo:
+      target = ::google::protobuf::internal::WireFormatLite::
+        InternalWriteMessageNoVirtualToArray(
+          13, *info_type_.pad_dynamic_info_, false, target);
+      break;
+    default: ;
+  }
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:GstDebugger.GStreamerData)
+  return target;
+}
+
+size_t GStreamerData::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:GstDebugger.GStreamerData)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        unknown_fields());
+  }
+  switch (info_type_case()) {
+    // optional .GstDebugger.DebugCategories debug_categories = 1;
+    case kDebugCategories: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          *info_type_.debug_categories_);
+      break;
+    }
+    // optional .GstDebugger.LogInfo log_info = 2;
+    case kLogInfo: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          *info_type_.log_info_);
+      break;
+    }
+    // optional .GstDebugger.EnumFlagsType enum_flags_type = 3;
+    case kEnumFlagsType: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          *info_type_.enum_flags_type_);
+      break;
+    }
+    // optional .GstDebugger.FactoryType factory = 4;
+    case kFactory: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          *info_type_.factory_);
+      break;
+    }
+    // optional .GstDebugger.MessageInfo message_info = 5;
+    case kMessageInfo: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          *info_type_.message_info_);
+      break;
+    }
+    // optional .GstDebugger.Command confirmation = 6;
+    case kConfirmation: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          *info_type_.confirmation_);
+      break;
+    }
+    // optional .GstDebugger.EventInfo event_info = 7;
+    case kEventInfo: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          *info_type_.event_info_);
+      break;
+    }
+    // optional .GstDebugger.TopologyInfo topology_info = 8;
+    case kTopologyInfo: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          *info_type_.topology_info_);
+      break;
+    }
+    // optional .GstDebugger.QueryInfo query_info = 9;
+    case kQueryInfo: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          *info_type_.query_info_);
+      break;
+    }
+    // optional .GstDebugger.PropertyValue property_value = 10;
+    case kPropertyValue: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          *info_type_.property_value_);
+      break;
+    }
+    // optional .GstDebugger.ElementKlass element_klass = 11;
+    case kElementKlass: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          *info_type_.element_klass_);
+      break;
+    }
+    // optional .GstDebugger.BufferInfo buffer_info = 12;
+    case kBufferInfo: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          *info_type_.buffer_info_);
+      break;
+    }
+    // optional .GstDebugger.PadDynamicInfo pad_dynamic_info = 13;
+    case kPadDynamicInfo: {
+      total_size += 1 +
+        ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
+          *info_type_.pad_dynamic_info_);
+      break;
+    }
+    case INFO_TYPE_NOT_SET: {
+      break;
+    }
+  }
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+  _cached_size_ = cached_size;
+  GOOGLE_SAFE_CONCURRENT_WRITES_END();
+  return total_size;
+}
+
+void GStreamerData::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:GstDebugger.GStreamerData)
+  GOOGLE_DCHECK_NE(&from, this);
+  const GStreamerData* source =
+      ::google::protobuf::internal::DynamicCastToGenerated<const GStreamerData>(
+          &from);
+  if (source == NULL) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:GstDebugger.GStreamerData)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:GstDebugger.GStreamerData)
+    MergeFrom(*source);
+  }
+}
+
+void GStreamerData::MergeFrom(const GStreamerData& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:GstDebugger.GStreamerData)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  switch (from.info_type_case()) {
+    case kDebugCategories: {
+      mutable_debug_categories()->::GstDebugger::DebugCategories::MergeFrom(from.debug_categories());
+      break;
+    }
+    case kLogInfo: {
+      mutable_log_info()->::GstDebugger::LogInfo::MergeFrom(from.log_info());
+      break;
+    }
+    case kEnumFlagsType: {
+      mutable_enum_flags_type()->::GstDebugger::EnumFlagsType::MergeFrom(from.enum_flags_type());
+      break;
+    }
+    case kFactory: {
+      mutable_factory()->::GstDebugger::FactoryType::MergeFrom(from.factory());
+      break;
+    }
+    case kMessageInfo: {
+      mutable_message_info()->::GstDebugger::MessageInfo::MergeFrom(from.message_info());
+      break;
+    }
+    case kConfirmation: {
+      mutable_confirmation()->::GstDebugger::Command::MergeFrom(from.confirmation());
+      break;
+    }
+    case kEventInfo: {
+      mutable_event_info()->::GstDebugger::EventInfo::MergeFrom(from.event_info());
+      break;
+    }
+    case kTopologyInfo: {
+      mutable_topology_info()->::GstDebugger::TopologyInfo::MergeFrom(from.topology_info());
+      break;
+    }
+    case kQueryInfo: {
+      mutable_query_info()->::GstDebugger::QueryInfo::MergeFrom(from.query_info());
+      break;
+    }
+    case kPropertyValue: {
+      mutable_property_value()->::GstDebugger::PropertyValue::MergeFrom(from.property_value());
+      break;
+    }
+    case kElementKlass: {
+      mutable_element_klass()->::GstDebugger::ElementKlass::MergeFrom(from.element_klass());
+      break;
+    }
+    case kBufferInfo: {
+      mutable_buffer_info()->::GstDebugger::BufferInfo::MergeFrom(from.buffer_info());
+      break;
+    }
+    case kPadDynamicInfo: {
+      mutable_pad_dynamic_info()->::GstDebugger::PadDynamicInfo::MergeFrom(from.pad_dynamic_info());
+      break;
+    }
+    case INFO_TYPE_NOT_SET: {
+      break;
+    }
+  }
+}
+
+void GStreamerData::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:GstDebugger.GStreamerData)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void GStreamerData::CopyFrom(const GStreamerData& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:GstDebugger.GStreamerData)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool GStreamerData::IsInitialized() const {
+  switch (info_type_case()) {
+    case kDebugCategories: {
+      break;
+    }
+    case kLogInfo: {
+      if (has_log_info()) {
+        if (!this->log_info().IsInitialized()) return false;
+      }
+      break;
+    }
+    case kEnumFlagsType: {
+      if (has_enum_flags_type()) {
+        if (!this->enum_flags_type().IsInitialized()) return false;
+      }
+      break;
+    }
+    case kFactory: {
+      if (has_factory()) {
+        if (!this->factory().IsInitialized()) return false;
+      }
+      break;
+    }
+    case kMessageInfo: {
+      if (has_message_info()) {
+        if (!this->message_info().IsInitialized()) return false;
+      }
+      break;
+    }
+    case kConfirmation: {
+      if (has_confirmation()) {
+        if (!this->confirmation().IsInitialized()) return false;
+      }
+      break;
+    }
+    case kEventInfo: {
+      if (has_event_info()) {
+        if (!this->event_info().IsInitialized()) return false;
+      }
+      break;
+    }
+    case kTopologyInfo: {
+      if (has_topology_info()) {
+        if (!this->topology_info().IsInitialized()) return false;
+      }
+      break;
+    }
+    case kQueryInfo: {
+      if (has_query_info()) {
+        if (!this->query_info().IsInitialized()) return false;
+      }
+      break;
+    }
+    case kPropertyValue: {
+      if (has_property_value()) {
+        if (!this->property_value().IsInitialized()) return false;
+      }
+      break;
+    }
+    case kElementKlass: {
+      if (has_element_klass()) {
+        if (!this->element_klass().IsInitialized()) return false;
+      }
+      break;
+    }
+    case kBufferInfo: {
+      if (has_buffer_info()) {
+        if (!this->buffer_info().IsInitialized()) return false;
+      }
+      break;
+    }
+    case kPadDynamicInfo: {
+      if (has_pad_dynamic_info()) {
+        if (!this->pad_dynamic_info().IsInitialized()) return false;
+      }
+      break;
+    }
+    case INFO_TYPE_NOT_SET: {
+      break;
+    }
+  }
+  return true;
+}
+
+void GStreamerData::Swap(GStreamerData* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void GStreamerData::InternalSwap(GStreamerData* other) {
+  std::swap(info_type_, other->info_type_);
+  std::swap(_oneof_case_[0], other->_oneof_case_[0]);
+  std::swap(_has_bits_[0], other->_has_bits_[0]);
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  std::swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata GStreamerData::GetMetadata() const {
+  protobuf_gstdebugger_2eproto::protobuf_AssignDescriptorsOnce();
+  return protobuf_gstdebugger_2eproto::file_level_metadata[30];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// GStreamerData
+
+// optional .GstDebugger.DebugCategories debug_categories = 1;
+bool GStreamerData::has_debug_categories() const {
+  return info_type_case() == kDebugCategories;
+}
+void GStreamerData::set_has_debug_categories() {
+  _oneof_case_[0] = kDebugCategories;
+}
+void GStreamerData::clear_debug_categories() {
+  if (has_debug_categories()) {
+    delete info_type_.debug_categories_;
+    clear_has_info_type();
+  }
+}
+ const ::GstDebugger::DebugCategories& GStreamerData::debug_categories() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.GStreamerData.debug_categories)
+  return has_debug_categories()
+      ? *info_type_.debug_categories_
+      : ::GstDebugger::DebugCategories::default_instance();
+}
+::GstDebugger::DebugCategories* GStreamerData::mutable_debug_categories() {
+  if (!has_debug_categories()) {
+    clear_info_type();
+    set_has_debug_categories();
+    info_type_.debug_categories_ = new ::GstDebugger::DebugCategories;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.GStreamerData.debug_categories)
+  return info_type_.debug_categories_;
+}
+::GstDebugger::DebugCategories* GStreamerData::release_debug_categories() {
+  // @@protoc_insertion_point(field_release:GstDebugger.GStreamerData.debug_categories)
+  if (has_debug_categories()) {
+    clear_has_info_type();
+    ::GstDebugger::DebugCategories* temp = info_type_.debug_categories_;
+    info_type_.debug_categories_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+void GStreamerData::set_allocated_debug_categories(::GstDebugger::DebugCategories* debug_categories) {
+  clear_info_type();
+  if (debug_categories) {
+    set_has_debug_categories();
+    info_type_.debug_categories_ = debug_categories;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.GStreamerData.debug_categories)
+}
+
+// optional .GstDebugger.LogInfo log_info = 2;
+bool GStreamerData::has_log_info() const {
+  return info_type_case() == kLogInfo;
+}
+void GStreamerData::set_has_log_info() {
+  _oneof_case_[0] = kLogInfo;
+}
+void GStreamerData::clear_log_info() {
+  if (has_log_info()) {
+    delete info_type_.log_info_;
+    clear_has_info_type();
+  }
+}
+ const ::GstDebugger::LogInfo& GStreamerData::log_info() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.GStreamerData.log_info)
+  return has_log_info()
+      ? *info_type_.log_info_
+      : ::GstDebugger::LogInfo::default_instance();
+}
+::GstDebugger::LogInfo* GStreamerData::mutable_log_info() {
+  if (!has_log_info()) {
+    clear_info_type();
+    set_has_log_info();
+    info_type_.log_info_ = new ::GstDebugger::LogInfo;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.GStreamerData.log_info)
+  return info_type_.log_info_;
+}
+::GstDebugger::LogInfo* GStreamerData::release_log_info() {
+  // @@protoc_insertion_point(field_release:GstDebugger.GStreamerData.log_info)
+  if (has_log_info()) {
+    clear_has_info_type();
+    ::GstDebugger::LogInfo* temp = info_type_.log_info_;
+    info_type_.log_info_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+void GStreamerData::set_allocated_log_info(::GstDebugger::LogInfo* log_info) {
+  clear_info_type();
+  if (log_info) {
+    set_has_log_info();
+    info_type_.log_info_ = log_info;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.GStreamerData.log_info)
+}
+
+// optional .GstDebugger.EnumFlagsType enum_flags_type = 3;
+bool GStreamerData::has_enum_flags_type() const {
+  return info_type_case() == kEnumFlagsType;
+}
+void GStreamerData::set_has_enum_flags_type() {
+  _oneof_case_[0] = kEnumFlagsType;
+}
+void GStreamerData::clear_enum_flags_type() {
+  if (has_enum_flags_type()) {
+    delete info_type_.enum_flags_type_;
+    clear_has_info_type();
+  }
+}
+ const ::GstDebugger::EnumFlagsType& GStreamerData::enum_flags_type() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.GStreamerData.enum_flags_type)
+  return has_enum_flags_type()
+      ? *info_type_.enum_flags_type_
+      : ::GstDebugger::EnumFlagsType::default_instance();
+}
+::GstDebugger::EnumFlagsType* GStreamerData::mutable_enum_flags_type() {
+  if (!has_enum_flags_type()) {
+    clear_info_type();
+    set_has_enum_flags_type();
+    info_type_.enum_flags_type_ = new ::GstDebugger::EnumFlagsType;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.GStreamerData.enum_flags_type)
+  return info_type_.enum_flags_type_;
+}
+::GstDebugger::EnumFlagsType* GStreamerData::release_enum_flags_type() {
+  // @@protoc_insertion_point(field_release:GstDebugger.GStreamerData.enum_flags_type)
+  if (has_enum_flags_type()) {
+    clear_has_info_type();
+    ::GstDebugger::EnumFlagsType* temp = info_type_.enum_flags_type_;
+    info_type_.enum_flags_type_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+void GStreamerData::set_allocated_enum_flags_type(::GstDebugger::EnumFlagsType* enum_flags_type) {
+  clear_info_type();
+  if (enum_flags_type) {
+    set_has_enum_flags_type();
+    info_type_.enum_flags_type_ = enum_flags_type;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.GStreamerData.enum_flags_type)
+}
+
+// optional .GstDebugger.FactoryType factory = 4;
+bool GStreamerData::has_factory() const {
+  return info_type_case() == kFactory;
+}
+void GStreamerData::set_has_factory() {
+  _oneof_case_[0] = kFactory;
+}
+void GStreamerData::clear_factory() {
+  if (has_factory()) {
+    delete info_type_.factory_;
+    clear_has_info_type();
+  }
+}
+ const ::GstDebugger::FactoryType& GStreamerData::factory() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.GStreamerData.factory)
+  return has_factory()
+      ? *info_type_.factory_
+      : ::GstDebugger::FactoryType::default_instance();
+}
+::GstDebugger::FactoryType* GStreamerData::mutable_factory() {
+  if (!has_factory()) {
+    clear_info_type();
+    set_has_factory();
+    info_type_.factory_ = new ::GstDebugger::FactoryType;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.GStreamerData.factory)
+  return info_type_.factory_;
+}
+::GstDebugger::FactoryType* GStreamerData::release_factory() {
+  // @@protoc_insertion_point(field_release:GstDebugger.GStreamerData.factory)
+  if (has_factory()) {
+    clear_has_info_type();
+    ::GstDebugger::FactoryType* temp = info_type_.factory_;
+    info_type_.factory_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+void GStreamerData::set_allocated_factory(::GstDebugger::FactoryType* factory) {
+  clear_info_type();
+  if (factory) {
+    set_has_factory();
+    info_type_.factory_ = factory;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.GStreamerData.factory)
+}
+
+// optional .GstDebugger.MessageInfo message_info = 5;
+bool GStreamerData::has_message_info() const {
+  return info_type_case() == kMessageInfo;
+}
+void GStreamerData::set_has_message_info() {
+  _oneof_case_[0] = kMessageInfo;
+}
+void GStreamerData::clear_message_info() {
+  if (has_message_info()) {
+    delete info_type_.message_info_;
+    clear_has_info_type();
+  }
+}
+ const ::GstDebugger::MessageInfo& GStreamerData::message_info() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.GStreamerData.message_info)
+  return has_message_info()
+      ? *info_type_.message_info_
+      : ::GstDebugger::MessageInfo::default_instance();
+}
+::GstDebugger::MessageInfo* GStreamerData::mutable_message_info() {
+  if (!has_message_info()) {
+    clear_info_type();
+    set_has_message_info();
+    info_type_.message_info_ = new ::GstDebugger::MessageInfo;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.GStreamerData.message_info)
+  return info_type_.message_info_;
+}
+::GstDebugger::MessageInfo* GStreamerData::release_message_info() {
+  // @@protoc_insertion_point(field_release:GstDebugger.GStreamerData.message_info)
+  if (has_message_info()) {
+    clear_has_info_type();
+    ::GstDebugger::MessageInfo* temp = info_type_.message_info_;
+    info_type_.message_info_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+void GStreamerData::set_allocated_message_info(::GstDebugger::MessageInfo* message_info) {
+  clear_info_type();
+  if (message_info) {
+    set_has_message_info();
+    info_type_.message_info_ = message_info;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.GStreamerData.message_info)
+}
+
+// optional .GstDebugger.Command confirmation = 6;
+bool GStreamerData::has_confirmation() const {
+  return info_type_case() == kConfirmation;
+}
+void GStreamerData::set_has_confirmation() {
+  _oneof_case_[0] = kConfirmation;
+}
+void GStreamerData::clear_confirmation() {
+  if (has_confirmation()) {
+    delete info_type_.confirmation_;
+    clear_has_info_type();
+  }
+}
+ const ::GstDebugger::Command& GStreamerData::confirmation() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.GStreamerData.confirmation)
+  return has_confirmation()
+      ? *info_type_.confirmation_
+      : ::GstDebugger::Command::default_instance();
+}
+::GstDebugger::Command* GStreamerData::mutable_confirmation() {
+  if (!has_confirmation()) {
+    clear_info_type();
+    set_has_confirmation();
+    info_type_.confirmation_ = new ::GstDebugger::Command;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.GStreamerData.confirmation)
+  return info_type_.confirmation_;
+}
+::GstDebugger::Command* GStreamerData::release_confirmation() {
+  // @@protoc_insertion_point(field_release:GstDebugger.GStreamerData.confirmation)
+  if (has_confirmation()) {
+    clear_has_info_type();
+    ::GstDebugger::Command* temp = info_type_.confirmation_;
+    info_type_.confirmation_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+void GStreamerData::set_allocated_confirmation(::GstDebugger::Command* confirmation) {
+  clear_info_type();
+  if (confirmation) {
+    set_has_confirmation();
+    info_type_.confirmation_ = confirmation;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.GStreamerData.confirmation)
+}
+
+// optional .GstDebugger.EventInfo event_info = 7;
+bool GStreamerData::has_event_info() const {
+  return info_type_case() == kEventInfo;
+}
+void GStreamerData::set_has_event_info() {
+  _oneof_case_[0] = kEventInfo;
+}
+void GStreamerData::clear_event_info() {
+  if (has_event_info()) {
+    delete info_type_.event_info_;
+    clear_has_info_type();
+  }
+}
+ const ::GstDebugger::EventInfo& GStreamerData::event_info() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.GStreamerData.event_info)
+  return has_event_info()
+      ? *info_type_.event_info_
+      : ::GstDebugger::EventInfo::default_instance();
+}
+::GstDebugger::EventInfo* GStreamerData::mutable_event_info() {
+  if (!has_event_info()) {
+    clear_info_type();
+    set_has_event_info();
+    info_type_.event_info_ = new ::GstDebugger::EventInfo;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.GStreamerData.event_info)
+  return info_type_.event_info_;
+}
+::GstDebugger::EventInfo* GStreamerData::release_event_info() {
+  // @@protoc_insertion_point(field_release:GstDebugger.GStreamerData.event_info)
+  if (has_event_info()) {
+    clear_has_info_type();
+    ::GstDebugger::EventInfo* temp = info_type_.event_info_;
+    info_type_.event_info_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+void GStreamerData::set_allocated_event_info(::GstDebugger::EventInfo* event_info) {
+  clear_info_type();
+  if (event_info) {
+    set_has_event_info();
+    info_type_.event_info_ = event_info;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.GStreamerData.event_info)
+}
+
+// optional .GstDebugger.TopologyInfo topology_info = 8;
+bool GStreamerData::has_topology_info() const {
+  return info_type_case() == kTopologyInfo;
+}
+void GStreamerData::set_has_topology_info() {
+  _oneof_case_[0] = kTopologyInfo;
+}
+void GStreamerData::clear_topology_info() {
+  if (has_topology_info()) {
+    delete info_type_.topology_info_;
+    clear_has_info_type();
+  }
+}
+ const ::GstDebugger::TopologyInfo& GStreamerData::topology_info() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.GStreamerData.topology_info)
+  return has_topology_info()
+      ? *info_type_.topology_info_
+      : ::GstDebugger::TopologyInfo::default_instance();
+}
+::GstDebugger::TopologyInfo* GStreamerData::mutable_topology_info() {
+  if (!has_topology_info()) {
+    clear_info_type();
+    set_has_topology_info();
+    info_type_.topology_info_ = new ::GstDebugger::TopologyInfo;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.GStreamerData.topology_info)
+  return info_type_.topology_info_;
+}
+::GstDebugger::TopologyInfo* GStreamerData::release_topology_info() {
+  // @@protoc_insertion_point(field_release:GstDebugger.GStreamerData.topology_info)
+  if (has_topology_info()) {
+    clear_has_info_type();
+    ::GstDebugger::TopologyInfo* temp = info_type_.topology_info_;
+    info_type_.topology_info_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+void GStreamerData::set_allocated_topology_info(::GstDebugger::TopologyInfo* topology_info) {
+  clear_info_type();
+  if (topology_info) {
+    set_has_topology_info();
+    info_type_.topology_info_ = topology_info;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.GStreamerData.topology_info)
+}
+
+// optional .GstDebugger.QueryInfo query_info = 9;
+bool GStreamerData::has_query_info() const {
+  return info_type_case() == kQueryInfo;
+}
+void GStreamerData::set_has_query_info() {
+  _oneof_case_[0] = kQueryInfo;
+}
+void GStreamerData::clear_query_info() {
+  if (has_query_info()) {
+    delete info_type_.query_info_;
+    clear_has_info_type();
+  }
+}
+ const ::GstDebugger::QueryInfo& GStreamerData::query_info() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.GStreamerData.query_info)
+  return has_query_info()
+      ? *info_type_.query_info_
+      : ::GstDebugger::QueryInfo::default_instance();
+}
+::GstDebugger::QueryInfo* GStreamerData::mutable_query_info() {
+  if (!has_query_info()) {
+    clear_info_type();
+    set_has_query_info();
+    info_type_.query_info_ = new ::GstDebugger::QueryInfo;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.GStreamerData.query_info)
+  return info_type_.query_info_;
+}
+::GstDebugger::QueryInfo* GStreamerData::release_query_info() {
+  // @@protoc_insertion_point(field_release:GstDebugger.GStreamerData.query_info)
+  if (has_query_info()) {
+    clear_has_info_type();
+    ::GstDebugger::QueryInfo* temp = info_type_.query_info_;
+    info_type_.query_info_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+void GStreamerData::set_allocated_query_info(::GstDebugger::QueryInfo* query_info) {
+  clear_info_type();
+  if (query_info) {
+    set_has_query_info();
+    info_type_.query_info_ = query_info;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.GStreamerData.query_info)
+}
+
+// optional .GstDebugger.PropertyValue property_value = 10;
+bool GStreamerData::has_property_value() const {
+  return info_type_case() == kPropertyValue;
+}
+void GStreamerData::set_has_property_value() {
+  _oneof_case_[0] = kPropertyValue;
+}
+void GStreamerData::clear_property_value() {
+  if (has_property_value()) {
+    delete info_type_.property_value_;
+    clear_has_info_type();
+  }
+}
+ const ::GstDebugger::PropertyValue& GStreamerData::property_value() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.GStreamerData.property_value)
+  return has_property_value()
+      ? *info_type_.property_value_
+      : ::GstDebugger::PropertyValue::default_instance();
+}
+::GstDebugger::PropertyValue* GStreamerData::mutable_property_value() {
+  if (!has_property_value()) {
+    clear_info_type();
+    set_has_property_value();
+    info_type_.property_value_ = new ::GstDebugger::PropertyValue;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.GStreamerData.property_value)
+  return info_type_.property_value_;
+}
+::GstDebugger::PropertyValue* GStreamerData::release_property_value() {
+  // @@protoc_insertion_point(field_release:GstDebugger.GStreamerData.property_value)
+  if (has_property_value()) {
+    clear_has_info_type();
+    ::GstDebugger::PropertyValue* temp = info_type_.property_value_;
+    info_type_.property_value_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+void GStreamerData::set_allocated_property_value(::GstDebugger::PropertyValue* property_value) {
+  clear_info_type();
+  if (property_value) {
+    set_has_property_value();
+    info_type_.property_value_ = property_value;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.GStreamerData.property_value)
+}
+
+// optional .GstDebugger.ElementKlass element_klass = 11;
+bool GStreamerData::has_element_klass() const {
+  return info_type_case() == kElementKlass;
+}
+void GStreamerData::set_has_element_klass() {
+  _oneof_case_[0] = kElementKlass;
+}
+void GStreamerData::clear_element_klass() {
+  if (has_element_klass()) {
+    delete info_type_.element_klass_;
+    clear_has_info_type();
+  }
+}
+ const ::GstDebugger::ElementKlass& GStreamerData::element_klass() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.GStreamerData.element_klass)
+  return has_element_klass()
+      ? *info_type_.element_klass_
+      : ::GstDebugger::ElementKlass::default_instance();
+}
+::GstDebugger::ElementKlass* GStreamerData::mutable_element_klass() {
+  if (!has_element_klass()) {
+    clear_info_type();
+    set_has_element_klass();
+    info_type_.element_klass_ = new ::GstDebugger::ElementKlass;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.GStreamerData.element_klass)
+  return info_type_.element_klass_;
+}
+::GstDebugger::ElementKlass* GStreamerData::release_element_klass() {
+  // @@protoc_insertion_point(field_release:GstDebugger.GStreamerData.element_klass)
+  if (has_element_klass()) {
+    clear_has_info_type();
+    ::GstDebugger::ElementKlass* temp = info_type_.element_klass_;
+    info_type_.element_klass_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+void GStreamerData::set_allocated_element_klass(::GstDebugger::ElementKlass* element_klass) {
+  clear_info_type();
+  if (element_klass) {
+    set_has_element_klass();
+    info_type_.element_klass_ = element_klass;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.GStreamerData.element_klass)
+}
+
+// optional .GstDebugger.BufferInfo buffer_info = 12;
+bool GStreamerData::has_buffer_info() const {
+  return info_type_case() == kBufferInfo;
+}
+void GStreamerData::set_has_buffer_info() {
+  _oneof_case_[0] = kBufferInfo;
+}
+void GStreamerData::clear_buffer_info() {
+  if (has_buffer_info()) {
+    delete info_type_.buffer_info_;
+    clear_has_info_type();
+  }
+}
+ const ::GstDebugger::BufferInfo& GStreamerData::buffer_info() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.GStreamerData.buffer_info)
+  return has_buffer_info()
+      ? *info_type_.buffer_info_
+      : ::GstDebugger::BufferInfo::default_instance();
+}
+::GstDebugger::BufferInfo* GStreamerData::mutable_buffer_info() {
+  if (!has_buffer_info()) {
+    clear_info_type();
+    set_has_buffer_info();
+    info_type_.buffer_info_ = new ::GstDebugger::BufferInfo;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.GStreamerData.buffer_info)
+  return info_type_.buffer_info_;
+}
+::GstDebugger::BufferInfo* GStreamerData::release_buffer_info() {
+  // @@protoc_insertion_point(field_release:GstDebugger.GStreamerData.buffer_info)
+  if (has_buffer_info()) {
+    clear_has_info_type();
+    ::GstDebugger::BufferInfo* temp = info_type_.buffer_info_;
+    info_type_.buffer_info_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+void GStreamerData::set_allocated_buffer_info(::GstDebugger::BufferInfo* buffer_info) {
+  clear_info_type();
+  if (buffer_info) {
+    set_has_buffer_info();
+    info_type_.buffer_info_ = buffer_info;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.GStreamerData.buffer_info)
+}
+
+// optional .GstDebugger.PadDynamicInfo pad_dynamic_info = 13;
+bool GStreamerData::has_pad_dynamic_info() const {
+  return info_type_case() == kPadDynamicInfo;
+}
+void GStreamerData::set_has_pad_dynamic_info() {
+  _oneof_case_[0] = kPadDynamicInfo;
+}
+void GStreamerData::clear_pad_dynamic_info() {
+  if (has_pad_dynamic_info()) {
+    delete info_type_.pad_dynamic_info_;
+    clear_has_info_type();
+  }
+}
+ const ::GstDebugger::PadDynamicInfo& GStreamerData::pad_dynamic_info() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.GStreamerData.pad_dynamic_info)
+  return has_pad_dynamic_info()
+      ? *info_type_.pad_dynamic_info_
+      : ::GstDebugger::PadDynamicInfo::default_instance();
+}
+::GstDebugger::PadDynamicInfo* GStreamerData::mutable_pad_dynamic_info() {
+  if (!has_pad_dynamic_info()) {
+    clear_info_type();
+    set_has_pad_dynamic_info();
+    info_type_.pad_dynamic_info_ = new ::GstDebugger::PadDynamicInfo;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.GStreamerData.pad_dynamic_info)
+  return info_type_.pad_dynamic_info_;
+}
+::GstDebugger::PadDynamicInfo* GStreamerData::release_pad_dynamic_info() {
+  // @@protoc_insertion_point(field_release:GstDebugger.GStreamerData.pad_dynamic_info)
+  if (has_pad_dynamic_info()) {
+    clear_has_info_type();
+    ::GstDebugger::PadDynamicInfo* temp = info_type_.pad_dynamic_info_;
+    info_type_.pad_dynamic_info_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+void GStreamerData::set_allocated_pad_dynamic_info(::GstDebugger::PadDynamicInfo* pad_dynamic_info) {
+  clear_info_type();
+  if (pad_dynamic_info) {
+    set_has_pad_dynamic_info();
+    info_type_.pad_dynamic_info_ = pad_dynamic_info;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.GStreamerData.pad_dynamic_info)
+}
+
+bool GStreamerData::has_info_type() const {
+  return info_type_case() != INFO_TYPE_NOT_SET;
+}
+void GStreamerData::clear_has_info_type() {
+  _oneof_case_[0] = INFO_TYPE_NOT_SET;
+}
+GStreamerData::InfoTypeCase GStreamerData::info_type_case() const {
+  return GStreamerData::InfoTypeCase(_oneof_case_[0]);
+}
+#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+}  // namespace GstDebugger
+
+// @@protoc_insertion_point(global_scope)
diff --git a/src/gst-debugger/gstdebugger.pb.h b/src/gst-debugger/gstdebugger.pb.h
new file mode 100644
index 0000000..f2a3c6e
--- /dev/null
+++ b/src/gst-debugger/gstdebugger.pb.h
@@ -0,0 +1,10153 @@
+// Generated by the protocol buffer compiler.  DO NOT EDIT!
+// source: gstdebugger.proto
+
+#ifndef PROTOBUF_gstdebugger_2eproto__INCLUDED
+#define PROTOBUF_gstdebugger_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3002000
+#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 3002000 < 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_util.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/generated_enum_reflection.h>
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace GstDebugger {
+class BufferHookRequest;
+class BufferHookRequestDefaultTypeInternal;
+extern BufferHookRequestDefaultTypeInternal _BufferHookRequest_default_instance_;
+class BufferInfo;
+class BufferInfoDefaultTypeInternal;
+extern BufferInfoDefaultTypeInternal _BufferInfo_default_instance_;
+class Command;
+class CommandDefaultTypeInternal;
+extern CommandDefaultTypeInternal _Command_default_instance_;
+class DebugCategories;
+class DebugCategoriesDefaultTypeInternal;
+extern DebugCategoriesDefaultTypeInternal _DebugCategories_default_instance_;
+class ElementKlass;
+class ElementKlassDefaultTypeInternal;
+extern ElementKlassDefaultTypeInternal _ElementKlass_default_instance_;
+class EnumFlagsType;
+class EnumFlagsTypeDefaultTypeInternal;
+extern EnumFlagsTypeDefaultTypeInternal _EnumFlagsType_default_instance_;
+class EnumFlagsValue;
+class EnumFlagsValueDefaultTypeInternal;
+extern EnumFlagsValueDefaultTypeInternal _EnumFlagsValue_default_instance_;
+class EventHookRequest;
+class EventHookRequestDefaultTypeInternal;
+extern EventHookRequestDefaultTypeInternal _EventHookRequest_default_instance_;
+class EventInfo;
+class EventInfoDefaultTypeInternal;
+extern EventInfoDefaultTypeInternal _EventInfo_default_instance_;
+class FactoryMeta;
+class FactoryMetaDefaultTypeInternal;
+extern FactoryMetaDefaultTypeInternal _FactoryMeta_default_instance_;
+class FactoryType;
+class FactoryTypeDefaultTypeInternal;
+extern FactoryTypeDefaultTypeInternal _FactoryType_default_instance_;
+class GStreamerData;
+class GStreamerDataDefaultTypeInternal;
+extern GStreamerDataDefaultTypeInternal _GStreamerData_default_instance_;
+class HookRequest;
+class HookRequestDefaultTypeInternal;
+extern HookRequestDefaultTypeInternal _HookRequest_default_instance_;
+class LogInfo;
+class LogInfoDefaultTypeInternal;
+extern LogInfoDefaultTypeInternal _LogInfo_default_instance_;
+class LogRequest;
+class LogRequestDefaultTypeInternal;
+extern LogRequestDefaultTypeInternal _LogRequest_default_instance_;
+class MessageInfo;
+class MessageInfoDefaultTypeInternal;
+extern MessageInfoDefaultTypeInternal _MessageInfo_default_instance_;
+class MessageRequest;
+class MessageRequestDefaultTypeInternal;
+extern MessageRequestDefaultTypeInternal _MessageRequest_default_instance_;
+class PadDynamicInfo;
+class PadDynamicInfoDefaultTypeInternal;
+extern PadDynamicInfoDefaultTypeInternal _PadDynamicInfo_default_instance_;
+class PadHookRequest;
+class PadHookRequestDefaultTypeInternal;
+extern PadHookRequestDefaultTypeInternal _PadHookRequest_default_instance_;
+class PadTemplate;
+class PadTemplateDefaultTypeInternal;
+extern PadTemplateDefaultTypeInternal _PadTemplate_default_instance_;
+class PropertyInfo;
+class PropertyInfoDefaultTypeInternal;
+extern PropertyInfoDefaultTypeInternal _PropertyInfo_default_instance_;
+class PropertyRequest;
+class PropertyRequestDefaultTypeInternal;
+extern PropertyRequestDefaultTypeInternal _PropertyRequest_default_instance_;
+class PropertyValue;
+class PropertyValueDefaultTypeInternal;
+extern PropertyValueDefaultTypeInternal _PropertyValue_default_instance_;
+class QueryHookRequest;
+class QueryHookRequestDefaultTypeInternal;
+extern QueryHookRequestDefaultTypeInternal _QueryHookRequest_default_instance_;
+class QueryInfo;
+class QueryInfoDefaultTypeInternal;
+extern QueryInfoDefaultTypeInternal _QueryInfo_default_instance_;
+class TopologyElement;
+class TopologyElementDefaultTypeInternal;
+extern TopologyElementDefaultTypeInternal _TopologyElement_default_instance_;
+class TopologyInfo;
+class TopologyInfoDefaultTypeInternal;
+extern TopologyInfoDefaultTypeInternal _TopologyInfo_default_instance_;
+class TopologyLink;
+class TopologyLinkDefaultTypeInternal;
+extern TopologyLinkDefaultTypeInternal _TopologyLink_default_instance_;
+class TopologyPad;
+class TopologyPadDefaultTypeInternal;
+extern TopologyPadDefaultTypeInternal _TopologyPad_default_instance_;
+class TypeDescriptionRequest;
+class TypeDescriptionRequestDefaultTypeInternal;
+extern TypeDescriptionRequestDefaultTypeInternal _TypeDescriptionRequest_default_instance_;
+class Value;
+class ValueDefaultTypeInternal;
+extern ValueDefaultTypeInternal _Value_default_instance_;
+}  // namespace GstDebugger
+
+namespace GstDebugger {
+
+namespace protobuf_gstdebugger_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+  static const ::google::protobuf::uint32 offsets[];
+  static void InitDefaultsImpl();
+  static void Shutdown();
+};
+void AddDescriptors();
+void InitDefaults();
+}  // namespace protobuf_gstdebugger_2eproto
+
+enum TypeDescriptionRequest_Type {
+  TypeDescriptionRequest_Type_FACTORY = 0,
+  TypeDescriptionRequest_Type_ENUM_FLAGS = 1,
+  TypeDescriptionRequest_Type_KLASS = 2
+};
+bool TypeDescriptionRequest_Type_IsValid(int value);
+const TypeDescriptionRequest_Type TypeDescriptionRequest_Type_Type_MIN = TypeDescriptionRequest_Type_FACTORY;
+const TypeDescriptionRequest_Type TypeDescriptionRequest_Type_Type_MAX = TypeDescriptionRequest_Type_KLASS;
+const int TypeDescriptionRequest_Type_Type_ARRAYSIZE = TypeDescriptionRequest_Type_Type_MAX + 1;
+
+const ::google::protobuf::EnumDescriptor* TypeDescriptionRequest_Type_descriptor();
+inline const ::std::string& TypeDescriptionRequest_Type_Name(TypeDescriptionRequest_Type value) {
+  return ::google::protobuf::internal::NameOfEnum(
+    TypeDescriptionRequest_Type_descriptor(), value);
+}
+inline bool TypeDescriptionRequest_Type_Parse(
+    const ::std::string& name, TypeDescriptionRequest_Type* value) {
+  return ::google::protobuf::internal::ParseNamedEnum<TypeDescriptionRequest_Type>(
+    TypeDescriptionRequest_Type_descriptor(), name, value);
+}
+enum EnumFlagsType_EnumFlagsKind {
+  EnumFlagsType_EnumFlagsKind_ENUM = 0,
+  EnumFlagsType_EnumFlagsKind_FLAGS = 1
+};
+bool EnumFlagsType_EnumFlagsKind_IsValid(int value);
+const EnumFlagsType_EnumFlagsKind EnumFlagsType_EnumFlagsKind_EnumFlagsKind_MIN = 
EnumFlagsType_EnumFlagsKind_ENUM;
+const EnumFlagsType_EnumFlagsKind EnumFlagsType_EnumFlagsKind_EnumFlagsKind_MAX = 
EnumFlagsType_EnumFlagsKind_FLAGS;
+const int EnumFlagsType_EnumFlagsKind_EnumFlagsKind_ARRAYSIZE = 
EnumFlagsType_EnumFlagsKind_EnumFlagsKind_MAX + 1;
+
+const ::google::protobuf::EnumDescriptor* EnumFlagsType_EnumFlagsKind_descriptor();
+inline const ::std::string& EnumFlagsType_EnumFlagsKind_Name(EnumFlagsType_EnumFlagsKind value) {
+  return ::google::protobuf::internal::NameOfEnum(
+    EnumFlagsType_EnumFlagsKind_descriptor(), value);
+}
+inline bool EnumFlagsType_EnumFlagsKind_Parse(
+    const ::std::string& name, EnumFlagsType_EnumFlagsKind* value) {
+  return ::google::protobuf::internal::ParseNamedEnum<EnumFlagsType_EnumFlagsKind>(
+    EnumFlagsType_EnumFlagsKind_descriptor(), name, value);
+}
+enum Action {
+  ADD = 0,
+  REMOVE = 1
+};
+bool Action_IsValid(int value);
+const Action Action_MIN = ADD;
+const Action Action_MAX = REMOVE;
+const int Action_ARRAYSIZE = Action_MAX + 1;
+
+const ::google::protobuf::EnumDescriptor* Action_descriptor();
+inline const ::std::string& Action_Name(Action value) {
+  return ::google::protobuf::internal::NameOfEnum(
+    Action_descriptor(), value);
+}
+inline bool Action_Parse(
+    const ::std::string& name, Action* value) {
+  return ::google::protobuf::internal::ParseNamedEnum<Action>(
+    Action_descriptor(), name, value);
+}
+// ===================================================================
+
+class Value : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.Value) */ {
+ public:
+  Value();
+  virtual ~Value();
+
+  Value(const Value& from);
+
+  inline Value& operator=(const Value& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const Value& default_instance();
+
+  static inline const Value* internal_default_instance() {
+    return reinterpret_cast<const Value*>(
+               &_Value_default_instance_);
+  }
+
+  void Swap(Value* other);
+
+  // implements Message ----------------------------------------------
+
+  inline Value* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  Value* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const Value& from);
+  void MergeFrom(const Value& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(Value* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // required bytes data = 3;
+  bool has_data() const;
+  void clear_data();
+  static const int kDataFieldNumber = 3;
+  const ::std::string& data() const;
+  void set_data(const ::std::string& value);
+  #if LANG_CXX11
+  void set_data(::std::string&& value);
+  #endif
+  void set_data(const char* value);
+  void set_data(const void* value, size_t size);
+  ::std::string* mutable_data();
+  ::std::string* release_data();
+  void set_allocated_data(::std::string* data);
+
+  // required string type_name = 4;
+  bool has_type_name() const;
+  void clear_type_name();
+  static const int kTypeNameFieldNumber = 4;
+  const ::std::string& type_name() const;
+  void set_type_name(const ::std::string& value);
+  #if LANG_CXX11
+  void set_type_name(::std::string&& value);
+  #endif
+  void set_type_name(const char* value);
+  void set_type_name(const char* value, size_t size);
+  ::std::string* mutable_type_name();
+  ::std::string* release_type_name();
+  void set_allocated_type_name(::std::string* type_name);
+
+  // required uint64 gtype = 1;
+  bool has_gtype() const;
+  void clear_gtype();
+  static const int kGtypeFieldNumber = 1;
+  ::google::protobuf::uint64 gtype() const;
+  void set_gtype(::google::protobuf::uint64 value);
+
+  // optional int32 internal_type = 2;
+  bool has_internal_type() const;
+  void clear_internal_type();
+  static const int kInternalTypeFieldNumber = 2;
+  ::google::protobuf::int32 internal_type() const;
+  void set_internal_type(::google::protobuf::int32 value);
+
+  // @@protoc_insertion_point(class_scope:GstDebugger.Value)
+ private:
+  void set_has_gtype();
+  void clear_has_gtype();
+  void set_has_internal_type();
+  void clear_has_internal_type();
+  void set_has_data();
+  void clear_has_data();
+  void set_has_type_name();
+  void clear_has_type_name();
+
+  // helper for ByteSizeLong()
+  size_t RequiredFieldsByteSizeFallback() const;
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::internal::ArenaStringPtr data_;
+  ::google::protobuf::internal::ArenaStringPtr type_name_;
+  ::google::protobuf::uint64 gtype_;
+  ::google::protobuf::int32 internal_type_;
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class PropertyInfo : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.PropertyInfo) */ {
+ public:
+  PropertyInfo();
+  virtual ~PropertyInfo();
+
+  PropertyInfo(const PropertyInfo& from);
+
+  inline PropertyInfo& operator=(const PropertyInfo& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const PropertyInfo& default_instance();
+
+  static inline const PropertyInfo* internal_default_instance() {
+    return reinterpret_cast<const PropertyInfo*>(
+               &_PropertyInfo_default_instance_);
+  }
+
+  void Swap(PropertyInfo* other);
+
+  // implements Message ----------------------------------------------
+
+  inline PropertyInfo* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  PropertyInfo* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const PropertyInfo& from);
+  void MergeFrom(const PropertyInfo& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(PropertyInfo* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // required string name = 1;
+  bool has_name() const;
+  void clear_name();
+  static const int kNameFieldNumber = 1;
+  const ::std::string& name() const;
+  void set_name(const ::std::string& value);
+  #if LANG_CXX11
+  void set_name(::std::string&& value);
+  #endif
+  void set_name(const char* value);
+  void set_name(const char* value, size_t size);
+  ::std::string* mutable_name();
+  ::std::string* release_name();
+  void set_allocated_name(::std::string* name);
+
+  // required string nick = 2;
+  bool has_nick() const;
+  void clear_nick();
+  static const int kNickFieldNumber = 2;
+  const ::std::string& nick() const;
+  void set_nick(const ::std::string& value);
+  #if LANG_CXX11
+  void set_nick(::std::string&& value);
+  #endif
+  void set_nick(const char* value);
+  void set_nick(const char* value, size_t size);
+  ::std::string* mutable_nick();
+  ::std::string* release_nick();
+  void set_allocated_nick(::std::string* nick);
+
+  // required string blurb = 3;
+  bool has_blurb() const;
+  void clear_blurb();
+  static const int kBlurbFieldNumber = 3;
+  const ::std::string& blurb() const;
+  void set_blurb(const ::std::string& value);
+  #if LANG_CXX11
+  void set_blurb(::std::string&& value);
+  #endif
+  void set_blurb(const char* value);
+  void set_blurb(const char* value, size_t size);
+  ::std::string* mutable_blurb();
+  ::std::string* release_blurb();
+  void set_allocated_blurb(::std::string* blurb);
+
+  // required .GstDebugger.Value default_value = 5;
+  bool has_default_value() const;
+  void clear_default_value();
+  static const int kDefaultValueFieldNumber = 5;
+  const ::GstDebugger::Value& default_value() const;
+  ::GstDebugger::Value* mutable_default_value();
+  ::GstDebugger::Value* release_default_value();
+  void set_allocated_default_value(::GstDebugger::Value* default_value);
+
+  // required int32 flags = 4;
+  bool has_flags() const;
+  void clear_flags();
+  static const int kFlagsFieldNumber = 4;
+  ::google::protobuf::int32 flags() const;
+  void set_flags(::google::protobuf::int32 value);
+
+  // @@protoc_insertion_point(class_scope:GstDebugger.PropertyInfo)
+ private:
+  void set_has_name();
+  void clear_has_name();
+  void set_has_nick();
+  void clear_has_nick();
+  void set_has_blurb();
+  void clear_has_blurb();
+  void set_has_flags();
+  void clear_has_flags();
+  void set_has_default_value();
+  void clear_has_default_value();
+
+  // helper for ByteSizeLong()
+  size_t RequiredFieldsByteSizeFallback() const;
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::internal::ArenaStringPtr name_;
+  ::google::protobuf::internal::ArenaStringPtr nick_;
+  ::google::protobuf::internal::ArenaStringPtr blurb_;
+  ::GstDebugger::Value* default_value_;
+  ::google::protobuf::int32 flags_;
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class PropertyValue : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.PropertyValue) */ {
+ public:
+  PropertyValue();
+  virtual ~PropertyValue();
+
+  PropertyValue(const PropertyValue& from);
+
+  inline PropertyValue& operator=(const PropertyValue& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const PropertyValue& default_instance();
+
+  static inline const PropertyValue* internal_default_instance() {
+    return reinterpret_cast<const PropertyValue*>(
+               &_PropertyValue_default_instance_);
+  }
+
+  void Swap(PropertyValue* other);
+
+  // implements Message ----------------------------------------------
+
+  inline PropertyValue* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  PropertyValue* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const PropertyValue& from);
+  void MergeFrom(const PropertyValue& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(PropertyValue* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // required string name = 1;
+  bool has_name() const;
+  void clear_name();
+  static const int kNameFieldNumber = 1;
+  const ::std::string& name() const;
+  void set_name(const ::std::string& value);
+  #if LANG_CXX11
+  void set_name(::std::string&& value);
+  #endif
+  void set_name(const char* value);
+  void set_name(const char* value, size_t size);
+  ::std::string* mutable_name();
+  ::std::string* release_name();
+  void set_allocated_name(::std::string* name);
+
+  // required string object = 2;
+  bool has_object() const;
+  void clear_object();
+  static const int kObjectFieldNumber = 2;
+  const ::std::string& object() const;
+  void set_object(const ::std::string& value);
+  #if LANG_CXX11
+  void set_object(::std::string&& value);
+  #endif
+  void set_object(const char* value);
+  void set_object(const char* value, size_t size);
+  ::std::string* mutable_object();
+  ::std::string* release_object();
+  void set_allocated_object(::std::string* object);
+
+  // required .GstDebugger.Value value = 3;
+  bool has_value() const;
+  void clear_value();
+  static const int kValueFieldNumber = 3;
+  const ::GstDebugger::Value& value() const;
+  ::GstDebugger::Value* mutable_value();
+  ::GstDebugger::Value* release_value();
+  void set_allocated_value(::GstDebugger::Value* value);
+
+  // @@protoc_insertion_point(class_scope:GstDebugger.PropertyValue)
+ private:
+  void set_has_name();
+  void clear_has_name();
+  void set_has_object();
+  void clear_has_object();
+  void set_has_value();
+  void clear_has_value();
+
+  // helper for ByteSizeLong()
+  size_t RequiredFieldsByteSizeFallback() const;
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::internal::ArenaStringPtr name_;
+  ::google::protobuf::internal::ArenaStringPtr object_;
+  ::GstDebugger::Value* value_;
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class PropertyRequest : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.PropertyRequest) */ {
+ public:
+  PropertyRequest();
+  virtual ~PropertyRequest();
+
+  PropertyRequest(const PropertyRequest& from);
+
+  inline PropertyRequest& operator=(const PropertyRequest& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const PropertyRequest& default_instance();
+
+  static inline const PropertyRequest* internal_default_instance() {
+    return reinterpret_cast<const PropertyRequest*>(
+               &_PropertyRequest_default_instance_);
+  }
+
+  void Swap(PropertyRequest* other);
+
+  // implements Message ----------------------------------------------
+
+  inline PropertyRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  PropertyRequest* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const PropertyRequest& from);
+  void MergeFrom(const PropertyRequest& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(PropertyRequest* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // optional string name = 1;
+  bool has_name() const;
+  void clear_name();
+  static const int kNameFieldNumber = 1;
+  const ::std::string& name() const;
+  void set_name(const ::std::string& value);
+  #if LANG_CXX11
+  void set_name(::std::string&& value);
+  #endif
+  void set_name(const char* value);
+  void set_name(const char* value, size_t size);
+  ::std::string* mutable_name();
+  ::std::string* release_name();
+  void set_allocated_name(::std::string* name);
+
+  // required string object = 2;
+  bool has_object() const;
+  void clear_object();
+  static const int kObjectFieldNumber = 2;
+  const ::std::string& object() const;
+  void set_object(const ::std::string& value);
+  #if LANG_CXX11
+  void set_object(::std::string&& value);
+  #endif
+  void set_object(const char* value);
+  void set_object(const char* value, size_t size);
+  ::std::string* mutable_object();
+  ::std::string* release_object();
+  void set_allocated_object(::std::string* object);
+
+  // @@protoc_insertion_point(class_scope:GstDebugger.PropertyRequest)
+ private:
+  void set_has_name();
+  void clear_has_name();
+  void set_has_object();
+  void clear_has_object();
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::internal::ArenaStringPtr name_;
+  ::google::protobuf::internal::ArenaStringPtr object_;
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class MessageInfo : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.MessageInfo) */ {
+ public:
+  MessageInfo();
+  virtual ~MessageInfo();
+
+  MessageInfo(const MessageInfo& from);
+
+  inline MessageInfo& operator=(const MessageInfo& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const MessageInfo& default_instance();
+
+  static inline const MessageInfo* internal_default_instance() {
+    return reinterpret_cast<const MessageInfo*>(
+               &_MessageInfo_default_instance_);
+  }
+
+  void Swap(MessageInfo* other);
+
+  // implements Message ----------------------------------------------
+
+  inline MessageInfo* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  MessageInfo* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const MessageInfo& from);
+  void MergeFrom(const MessageInfo& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(MessageInfo* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // required string source = 3;
+  bool has_source() const;
+  void clear_source();
+  static const int kSourceFieldNumber = 3;
+  const ::std::string& source() const;
+  void set_source(const ::std::string& value);
+  #if LANG_CXX11
+  void set_source(::std::string&& value);
+  #endif
+  void set_source(const char* value);
+  void set_source(const char* value, size_t size);
+  ::std::string* mutable_source();
+  ::std::string* release_source();
+  void set_allocated_source(::std::string* source);
+
+  // required bytes structure_data = 5;
+  bool has_structure_data() const;
+  void clear_structure_data();
+  static const int kStructureDataFieldNumber = 5;
+  const ::std::string& structure_data() const;
+  void set_structure_data(const ::std::string& value);
+  #if LANG_CXX11
+  void set_structure_data(::std::string&& value);
+  #endif
+  void set_structure_data(const char* value);
+  void set_structure_data(const void* value, size_t size);
+  ::std::string* mutable_structure_data();
+  ::std::string* release_structure_data();
+  void set_allocated_structure_data(::std::string* structure_data);
+
+  // required uint64 timestamp = 2;
+  bool has_timestamp() const;
+  void clear_timestamp();
+  static const int kTimestampFieldNumber = 2;
+  ::google::protobuf::uint64 timestamp() const;
+  void set_timestamp(::google::protobuf::uint64 value);
+
+  // required int32 type = 1;
+  bool has_type() const;
+  void clear_type();
+  static const int kTypeFieldNumber = 1;
+  ::google::protobuf::int32 type() const;
+  void set_type(::google::protobuf::int32 value);
+
+  // required uint32 seqnum = 4;
+  bool has_seqnum() const;
+  void clear_seqnum();
+  static const int kSeqnumFieldNumber = 4;
+  ::google::protobuf::uint32 seqnum() const;
+  void set_seqnum(::google::protobuf::uint32 value);
+
+  // @@protoc_insertion_point(class_scope:GstDebugger.MessageInfo)
+ private:
+  void set_has_type();
+  void clear_has_type();
+  void set_has_timestamp();
+  void clear_has_timestamp();
+  void set_has_source();
+  void clear_has_source();
+  void set_has_seqnum();
+  void clear_has_seqnum();
+  void set_has_structure_data();
+  void clear_has_structure_data();
+
+  // helper for ByteSizeLong()
+  size_t RequiredFieldsByteSizeFallback() const;
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::internal::ArenaStringPtr source_;
+  ::google::protobuf::internal::ArenaStringPtr structure_data_;
+  ::google::protobuf::uint64 timestamp_;
+  ::google::protobuf::int32 type_;
+  ::google::protobuf::uint32 seqnum_;
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class EventInfo : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.EventInfo) */ {
+ public:
+  EventInfo();
+  virtual ~EventInfo();
+
+  EventInfo(const EventInfo& from);
+
+  inline EventInfo& operator=(const EventInfo& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const EventInfo& default_instance();
+
+  static inline const EventInfo* internal_default_instance() {
+    return reinterpret_cast<const EventInfo*>(
+               &_EventInfo_default_instance_);
+  }
+
+  void Swap(EventInfo* other);
+
+  // implements Message ----------------------------------------------
+
+  inline EventInfo* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  EventInfo* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const EventInfo& from);
+  void MergeFrom(const EventInfo& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(EventInfo* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // required string pad = 4;
+  bool has_pad() const;
+  void clear_pad();
+  static const int kPadFieldNumber = 4;
+  const ::std::string& pad() const;
+  void set_pad(const ::std::string& value);
+  #if LANG_CXX11
+  void set_pad(::std::string&& value);
+  #endif
+  void set_pad(const char* value);
+  void set_pad(const char* value, size_t size);
+  ::std::string* mutable_pad();
+  ::std::string* release_pad();
+  void set_allocated_pad(::std::string* pad);
+
+  // required bytes structure_data = 5;
+  bool has_structure_data() const;
+  void clear_structure_data();
+  static const int kStructureDataFieldNumber = 5;
+  const ::std::string& structure_data() const;
+  void set_structure_data(const ::std::string& value);
+  #if LANG_CXX11
+  void set_structure_data(::std::string&& value);
+  #endif
+  void set_structure_data(const char* value);
+  void set_structure_data(const void* value, size_t size);
+  ::std::string* mutable_structure_data();
+  ::std::string* release_structure_data();
+  void set_allocated_structure_data(::std::string* structure_data);
+
+  // required uint64 timestamp = 2;
+  bool has_timestamp() const;
+  void clear_timestamp();
+  static const int kTimestampFieldNumber = 2;
+  ::google::protobuf::uint64 timestamp() const;
+  void set_timestamp(::google::protobuf::uint64 value);
+
+  // required int32 type = 1;
+  bool has_type() const;
+  void clear_type();
+  static const int kTypeFieldNumber = 1;
+  ::google::protobuf::int32 type() const;
+  void set_type(::google::protobuf::int32 value);
+
+  // required uint32 seqnum = 3;
+  bool has_seqnum() const;
+  void clear_seqnum();
+  static const int kSeqnumFieldNumber = 3;
+  ::google::protobuf::uint32 seqnum() const;
+  void set_seqnum(::google::protobuf::uint32 value);
+
+  // @@protoc_insertion_point(class_scope:GstDebugger.EventInfo)
+ private:
+  void set_has_type();
+  void clear_has_type();
+  void set_has_timestamp();
+  void clear_has_timestamp();
+  void set_has_seqnum();
+  void clear_has_seqnum();
+  void set_has_pad();
+  void clear_has_pad();
+  void set_has_structure_data();
+  void clear_has_structure_data();
+
+  // helper for ByteSizeLong()
+  size_t RequiredFieldsByteSizeFallback() const;
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::internal::ArenaStringPtr pad_;
+  ::google::protobuf::internal::ArenaStringPtr structure_data_;
+  ::google::protobuf::uint64 timestamp_;
+  ::google::protobuf::int32 type_;
+  ::google::protobuf::uint32 seqnum_;
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class QueryInfo : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.QueryInfo) */ {
+ public:
+  QueryInfo();
+  virtual ~QueryInfo();
+
+  QueryInfo(const QueryInfo& from);
+
+  inline QueryInfo& operator=(const QueryInfo& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const QueryInfo& default_instance();
+
+  static inline const QueryInfo* internal_default_instance() {
+    return reinterpret_cast<const QueryInfo*>(
+               &_QueryInfo_default_instance_);
+  }
+
+  void Swap(QueryInfo* other);
+
+  // implements Message ----------------------------------------------
+
+  inline QueryInfo* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  QueryInfo* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const QueryInfo& from);
+  void MergeFrom(const QueryInfo& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(QueryInfo* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // required string pad = 2;
+  bool has_pad() const;
+  void clear_pad();
+  static const int kPadFieldNumber = 2;
+  const ::std::string& pad() const;
+  void set_pad(const ::std::string& value);
+  #if LANG_CXX11
+  void set_pad(::std::string&& value);
+  #endif
+  void set_pad(const char* value);
+  void set_pad(const char* value, size_t size);
+  ::std::string* mutable_pad();
+  ::std::string* release_pad();
+  void set_allocated_pad(::std::string* pad);
+
+  // required bytes structure_data = 3;
+  bool has_structure_data() const;
+  void clear_structure_data();
+  static const int kStructureDataFieldNumber = 3;
+  const ::std::string& structure_data() const;
+  void set_structure_data(const ::std::string& value);
+  #if LANG_CXX11
+  void set_structure_data(::std::string&& value);
+  #endif
+  void set_structure_data(const char* value);
+  void set_structure_data(const void* value, size_t size);
+  ::std::string* mutable_structure_data();
+  ::std::string* release_structure_data();
+  void set_allocated_structure_data(::std::string* structure_data);
+
+  // required int32 type = 1;
+  bool has_type() const;
+  void clear_type();
+  static const int kTypeFieldNumber = 1;
+  ::google::protobuf::int32 type() const;
+  void set_type(::google::protobuf::int32 value);
+
+  // @@protoc_insertion_point(class_scope:GstDebugger.QueryInfo)
+ private:
+  void set_has_type();
+  void clear_has_type();
+  void set_has_pad();
+  void clear_has_pad();
+  void set_has_structure_data();
+  void clear_has_structure_data();
+
+  // helper for ByteSizeLong()
+  size_t RequiredFieldsByteSizeFallback() const;
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::internal::ArenaStringPtr pad_;
+  ::google::protobuf::internal::ArenaStringPtr structure_data_;
+  ::google::protobuf::int32 type_;
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class BufferInfo : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.BufferInfo) */ {
+ public:
+  BufferInfo();
+  virtual ~BufferInfo();
+
+  BufferInfo(const BufferInfo& from);
+
+  inline BufferInfo& operator=(const BufferInfo& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const BufferInfo& default_instance();
+
+  static inline const BufferInfo* internal_default_instance() {
+    return reinterpret_cast<const BufferInfo*>(
+               &_BufferInfo_default_instance_);
+  }
+
+  void Swap(BufferInfo* other);
+
+  // implements Message ----------------------------------------------
+
+  inline BufferInfo* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  BufferInfo* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const BufferInfo& from);
+  void MergeFrom(const BufferInfo& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(BufferInfo* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // required string pad = 7;
+  bool has_pad() const;
+  void clear_pad();
+  static const int kPadFieldNumber = 7;
+  const ::std::string& pad() const;
+  void set_pad(const ::std::string& value);
+  #if LANG_CXX11
+  void set_pad(::std::string&& value);
+  #endif
+  void set_pad(const char* value);
+  void set_pad(const char* value, size_t size);
+  ::std::string* mutable_pad();
+  ::std::string* release_pad();
+  void set_allocated_pad(::std::string* pad);
+
+  // optional bytes data = 8;
+  bool has_data() const;
+  void clear_data();
+  static const int kDataFieldNumber = 8;
+  const ::std::string& data() const;
+  void set_data(const ::std::string& value);
+  #if LANG_CXX11
+  void set_data(::std::string&& value);
+  #endif
+  void set_data(const char* value);
+  void set_data(const void* value, size_t size);
+  ::std::string* mutable_data();
+  ::std::string* release_data();
+  void set_allocated_data(::std::string* data);
+
+  // required uint64 pts = 1;
+  bool has_pts() const;
+  void clear_pts();
+  static const int kPtsFieldNumber = 1;
+  ::google::protobuf::uint64 pts() const;
+  void set_pts(::google::protobuf::uint64 value);
+
+  // required uint64 dts = 2;
+  bool has_dts() const;
+  void clear_dts();
+  static const int kDtsFieldNumber = 2;
+  ::google::protobuf::uint64 dts() const;
+  void set_dts(::google::protobuf::uint64 value);
+
+  // required uint64 duration = 3;
+  bool has_duration() const;
+  void clear_duration();
+  static const int kDurationFieldNumber = 3;
+  ::google::protobuf::uint64 duration() const;
+  void set_duration(::google::protobuf::uint64 value);
+
+  // required uint64 offset = 4;
+  bool has_offset() const;
+  void clear_offset();
+  static const int kOffsetFieldNumber = 4;
+  ::google::protobuf::uint64 offset() const;
+  void set_offset(::google::protobuf::uint64 value);
+
+  // required uint64 offset_end = 5;
+  bool has_offset_end() const;
+  void clear_offset_end();
+  static const int kOffsetEndFieldNumber = 5;
+  ::google::protobuf::uint64 offset_end() const;
+  void set_offset_end(::google::protobuf::uint64 value);
+
+  // required uint64 size = 6;
+  bool has_size() const;
+  void clear_size();
+  static const int kSizeFieldNumber = 6;
+  ::google::protobuf::uint64 size() const;
+  void set_size(::google::protobuf::uint64 value);
+
+  // @@protoc_insertion_point(class_scope:GstDebugger.BufferInfo)
+ private:
+  void set_has_pts();
+  void clear_has_pts();
+  void set_has_dts();
+  void clear_has_dts();
+  void set_has_duration();
+  void clear_has_duration();
+  void set_has_offset();
+  void clear_has_offset();
+  void set_has_offset_end();
+  void clear_has_offset_end();
+  void set_has_size();
+  void clear_has_size();
+  void set_has_pad();
+  void clear_has_pad();
+  void set_has_data();
+  void clear_has_data();
+
+  // helper for ByteSizeLong()
+  size_t RequiredFieldsByteSizeFallback() const;
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::internal::ArenaStringPtr pad_;
+  ::google::protobuf::internal::ArenaStringPtr data_;
+  ::google::protobuf::uint64 pts_;
+  ::google::protobuf::uint64 dts_;
+  ::google::protobuf::uint64 duration_;
+  ::google::protobuf::uint64 offset_;
+  ::google::protobuf::uint64 offset_end_;
+  ::google::protobuf::uint64 size_;
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class TypeDescriptionRequest : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.TypeDescriptionRequest) */ {
+ public:
+  TypeDescriptionRequest();
+  virtual ~TypeDescriptionRequest();
+
+  TypeDescriptionRequest(const TypeDescriptionRequest& from);
+
+  inline TypeDescriptionRequest& operator=(const TypeDescriptionRequest& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const TypeDescriptionRequest& default_instance();
+
+  static inline const TypeDescriptionRequest* internal_default_instance() {
+    return reinterpret_cast<const TypeDescriptionRequest*>(
+               &_TypeDescriptionRequest_default_instance_);
+  }
+
+  void Swap(TypeDescriptionRequest* other);
+
+  // implements Message ----------------------------------------------
+
+  inline TypeDescriptionRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  TypeDescriptionRequest* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const TypeDescriptionRequest& from);
+  void MergeFrom(const TypeDescriptionRequest& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(TypeDescriptionRequest* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  typedef TypeDescriptionRequest_Type Type;
+  static const Type FACTORY =
+    TypeDescriptionRequest_Type_FACTORY;
+  static const Type ENUM_FLAGS =
+    TypeDescriptionRequest_Type_ENUM_FLAGS;
+  static const Type KLASS =
+    TypeDescriptionRequest_Type_KLASS;
+  static inline bool Type_IsValid(int value) {
+    return TypeDescriptionRequest_Type_IsValid(value);
+  }
+  static const Type Type_MIN =
+    TypeDescriptionRequest_Type_Type_MIN;
+  static const Type Type_MAX =
+    TypeDescriptionRequest_Type_Type_MAX;
+  static const int Type_ARRAYSIZE =
+    TypeDescriptionRequest_Type_Type_ARRAYSIZE;
+  static inline const ::google::protobuf::EnumDescriptor*
+  Type_descriptor() {
+    return TypeDescriptionRequest_Type_descriptor();
+  }
+  static inline const ::std::string& Type_Name(Type value) {
+    return TypeDescriptionRequest_Type_Name(value);
+  }
+  static inline bool Type_Parse(const ::std::string& name,
+      Type* value) {
+    return TypeDescriptionRequest_Type_Parse(name, value);
+  }
+
+  // accessors -------------------------------------------------------
+
+  // required string name = 1;
+  bool has_name() const;
+  void clear_name();
+  static const int kNameFieldNumber = 1;
+  const ::std::string& name() const;
+  void set_name(const ::std::string& value);
+  #if LANG_CXX11
+  void set_name(::std::string&& value);
+  #endif
+  void set_name(const char* value);
+  void set_name(const char* value, size_t size);
+  ::std::string* mutable_name();
+  ::std::string* release_name();
+  void set_allocated_name(::std::string* name);
+
+  // required .GstDebugger.TypeDescriptionRequest.Type type = 2;
+  bool has_type() const;
+  void clear_type();
+  static const int kTypeFieldNumber = 2;
+  ::GstDebugger::TypeDescriptionRequest_Type type() const;
+  void set_type(::GstDebugger::TypeDescriptionRequest_Type value);
+
+  // @@protoc_insertion_point(class_scope:GstDebugger.TypeDescriptionRequest)
+ private:
+  void set_has_name();
+  void clear_has_name();
+  void set_has_type();
+  void clear_has_type();
+
+  // helper for ByteSizeLong()
+  size_t RequiredFieldsByteSizeFallback() const;
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::internal::ArenaStringPtr name_;
+  int type_;
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class QueryHookRequest : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.QueryHookRequest) */ {
+ public:
+  QueryHookRequest();
+  virtual ~QueryHookRequest();
+
+  QueryHookRequest(const QueryHookRequest& from);
+
+  inline QueryHookRequest& operator=(const QueryHookRequest& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const QueryHookRequest& default_instance();
+
+  static inline const QueryHookRequest* internal_default_instance() {
+    return reinterpret_cast<const QueryHookRequest*>(
+               &_QueryHookRequest_default_instance_);
+  }
+
+  void Swap(QueryHookRequest* other);
+
+  // implements Message ----------------------------------------------
+
+  inline QueryHookRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  QueryHookRequest* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const QueryHookRequest& from);
+  void MergeFrom(const QueryHookRequest& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(QueryHookRequest* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // required int32 type = 1;
+  bool has_type() const;
+  void clear_type();
+  static const int kTypeFieldNumber = 1;
+  ::google::protobuf::int32 type() const;
+  void set_type(::google::protobuf::int32 value);
+
+  // @@protoc_insertion_point(class_scope:GstDebugger.QueryHookRequest)
+ private:
+  void set_has_type();
+  void clear_has_type();
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::int32 type_;
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class BufferHookRequest : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.BufferHookRequest) */ {
+ public:
+  BufferHookRequest();
+  virtual ~BufferHookRequest();
+
+  BufferHookRequest(const BufferHookRequest& from);
+
+  inline BufferHookRequest& operator=(const BufferHookRequest& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const BufferHookRequest& default_instance();
+
+  static inline const BufferHookRequest* internal_default_instance() {
+    return reinterpret_cast<const BufferHookRequest*>(
+               &_BufferHookRequest_default_instance_);
+  }
+
+  void Swap(BufferHookRequest* other);
+
+  // implements Message ----------------------------------------------
+
+  inline BufferHookRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  BufferHookRequest* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const BufferHookRequest& from);
+  void MergeFrom(const BufferHookRequest& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(BufferHookRequest* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // required bool send_data = 1;
+  bool has_send_data() const;
+  void clear_send_data();
+  static const int kSendDataFieldNumber = 1;
+  bool send_data() const;
+  void set_send_data(bool value);
+
+  // @@protoc_insertion_point(class_scope:GstDebugger.BufferHookRequest)
+ private:
+  void set_has_send_data();
+  void clear_has_send_data();
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  bool send_data_;
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class EventHookRequest : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.EventHookRequest) */ {
+ public:
+  EventHookRequest();
+  virtual ~EventHookRequest();
+
+  EventHookRequest(const EventHookRequest& from);
+
+  inline EventHookRequest& operator=(const EventHookRequest& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const EventHookRequest& default_instance();
+
+  static inline const EventHookRequest* internal_default_instance() {
+    return reinterpret_cast<const EventHookRequest*>(
+               &_EventHookRequest_default_instance_);
+  }
+
+  void Swap(EventHookRequest* other);
+
+  // implements Message ----------------------------------------------
+
+  inline EventHookRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  EventHookRequest* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const EventHookRequest& from);
+  void MergeFrom(const EventHookRequest& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(EventHookRequest* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // required int32 type = 1;
+  bool has_type() const;
+  void clear_type();
+  static const int kTypeFieldNumber = 1;
+  ::google::protobuf::int32 type() const;
+  void set_type(::google::protobuf::int32 value);
+
+  // @@protoc_insertion_point(class_scope:GstDebugger.EventHookRequest)
+ private:
+  void set_has_type();
+  void clear_has_type();
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::int32 type_;
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class PadHookRequest : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.PadHookRequest) */ {
+ public:
+  PadHookRequest();
+  virtual ~PadHookRequest();
+
+  PadHookRequest(const PadHookRequest& from);
+
+  inline PadHookRequest& operator=(const PadHookRequest& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const PadHookRequest& default_instance();
+
+  enum PadHookTypeCase {
+    kQuery = 2,
+    kBuffer = 3,
+    kEvent = 4,
+    PAD_HOOK_TYPE_NOT_SET = 0,
+  };
+
+  static inline const PadHookRequest* internal_default_instance() {
+    return reinterpret_cast<const PadHookRequest*>(
+               &_PadHookRequest_default_instance_);
+  }
+
+  void Swap(PadHookRequest* other);
+
+  // implements Message ----------------------------------------------
+
+  inline PadHookRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  PadHookRequest* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const PadHookRequest& from);
+  void MergeFrom(const PadHookRequest& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(PadHookRequest* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // optional string pad = 1;
+  bool has_pad() const;
+  void clear_pad();
+  static const int kPadFieldNumber = 1;
+  const ::std::string& pad() const;
+  void set_pad(const ::std::string& value);
+  #if LANG_CXX11
+  void set_pad(::std::string&& value);
+  #endif
+  void set_pad(const char* value);
+  void set_pad(const char* value, size_t size);
+  ::std::string* mutable_pad();
+  ::std::string* release_pad();
+  void set_allocated_pad(::std::string* pad);
+
+  // optional .GstDebugger.QueryHookRequest query = 2;
+  bool has_query() const;
+  void clear_query();
+  static const int kQueryFieldNumber = 2;
+  const ::GstDebugger::QueryHookRequest& query() const;
+  ::GstDebugger::QueryHookRequest* mutable_query();
+  ::GstDebugger::QueryHookRequest* release_query();
+  void set_allocated_query(::GstDebugger::QueryHookRequest* query);
+
+  // optional .GstDebugger.BufferHookRequest buffer = 3;
+  bool has_buffer() const;
+  void clear_buffer();
+  static const int kBufferFieldNumber = 3;
+  const ::GstDebugger::BufferHookRequest& buffer() const;
+  ::GstDebugger::BufferHookRequest* mutable_buffer();
+  ::GstDebugger::BufferHookRequest* release_buffer();
+  void set_allocated_buffer(::GstDebugger::BufferHookRequest* buffer);
+
+  // optional .GstDebugger.EventHookRequest event = 4;
+  bool has_event() const;
+  void clear_event();
+  static const int kEventFieldNumber = 4;
+  const ::GstDebugger::EventHookRequest& event() const;
+  ::GstDebugger::EventHookRequest* mutable_event();
+  ::GstDebugger::EventHookRequest* release_event();
+  void set_allocated_event(::GstDebugger::EventHookRequest* event);
+
+  PadHookTypeCase pad_hook_type_case() const;
+  // @@protoc_insertion_point(class_scope:GstDebugger.PadHookRequest)
+ private:
+  void set_has_pad();
+  void clear_has_pad();
+  void set_has_query();
+  void set_has_buffer();
+  void set_has_event();
+
+  inline bool has_pad_hook_type() const;
+  void clear_pad_hook_type();
+  inline void clear_has_pad_hook_type();
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::internal::ArenaStringPtr pad_;
+  union PadHookTypeUnion {
+    PadHookTypeUnion() {}
+    ::GstDebugger::QueryHookRequest* query_;
+    ::GstDebugger::BufferHookRequest* buffer_;
+    ::GstDebugger::EventHookRequest* event_;
+  } pad_hook_type_;
+  ::google::protobuf::uint32 _oneof_case_[1];
+
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class LogRequest : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.LogRequest) */ {
+ public:
+  LogRequest();
+  virtual ~LogRequest();
+
+  LogRequest(const LogRequest& from);
+
+  inline LogRequest& operator=(const LogRequest& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const LogRequest& default_instance();
+
+  static inline const LogRequest* internal_default_instance() {
+    return reinterpret_cast<const LogRequest*>(
+               &_LogRequest_default_instance_);
+  }
+
+  void Swap(LogRequest* other);
+
+  // implements Message ----------------------------------------------
+
+  inline LogRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  LogRequest* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const LogRequest& from);
+  void MergeFrom(const LogRequest& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(LogRequest* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // optional string category = 2;
+  bool has_category() const;
+  void clear_category();
+  static const int kCategoryFieldNumber = 2;
+  const ::std::string& category() const;
+  void set_category(const ::std::string& value);
+  #if LANG_CXX11
+  void set_category(::std::string&& value);
+  #endif
+  void set_category(const char* value);
+  void set_category(const char* value, size_t size);
+  ::std::string* mutable_category();
+  ::std::string* release_category();
+  void set_allocated_category(::std::string* category);
+
+  // required int32 level = 1;
+  bool has_level() const;
+  void clear_level();
+  static const int kLevelFieldNumber = 1;
+  ::google::protobuf::int32 level() const;
+  void set_level(::google::protobuf::int32 value);
+
+  // @@protoc_insertion_point(class_scope:GstDebugger.LogRequest)
+ private:
+  void set_has_level();
+  void clear_has_level();
+  void set_has_category();
+  void clear_has_category();
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::internal::ArenaStringPtr category_;
+  ::google::protobuf::int32 level_;
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class MessageRequest : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.MessageRequest) */ {
+ public:
+  MessageRequest();
+  virtual ~MessageRequest();
+
+  MessageRequest(const MessageRequest& from);
+
+  inline MessageRequest& operator=(const MessageRequest& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const MessageRequest& default_instance();
+
+  static inline const MessageRequest* internal_default_instance() {
+    return reinterpret_cast<const MessageRequest*>(
+               &_MessageRequest_default_instance_);
+  }
+
+  void Swap(MessageRequest* other);
+
+  // implements Message ----------------------------------------------
+
+  inline MessageRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  MessageRequest* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const MessageRequest& from);
+  void MergeFrom(const MessageRequest& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(MessageRequest* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // required int32 type = 1;
+  bool has_type() const;
+  void clear_type();
+  static const int kTypeFieldNumber = 1;
+  ::google::protobuf::int32 type() const;
+  void set_type(::google::protobuf::int32 value);
+
+  // @@protoc_insertion_point(class_scope:GstDebugger.MessageRequest)
+ private:
+  void set_has_type();
+  void clear_has_type();
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::int32 type_;
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class HookRequest : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.HookRequest) */ {
+ public:
+  HookRequest();
+  virtual ~HookRequest();
+
+  HookRequest(const HookRequest& from);
+
+  inline HookRequest& operator=(const HookRequest& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const HookRequest& default_instance();
+
+  enum HookTypeCase {
+    kMessage = 2,
+    kLog = 3,
+    kPadHook = 4,
+    HOOK_TYPE_NOT_SET = 0,
+  };
+
+  static inline const HookRequest* internal_default_instance() {
+    return reinterpret_cast<const HookRequest*>(
+               &_HookRequest_default_instance_);
+  }
+
+  void Swap(HookRequest* other);
+
+  // implements Message ----------------------------------------------
+
+  inline HookRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  HookRequest* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const HookRequest& from);
+  void MergeFrom(const HookRequest& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(HookRequest* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // required .GstDebugger.Action action = 1;
+  bool has_action() const;
+  void clear_action();
+  static const int kActionFieldNumber = 1;
+  ::GstDebugger::Action action() const;
+  void set_action(::GstDebugger::Action value);
+
+  // optional .GstDebugger.MessageRequest message = 2;
+  bool has_message() const;
+  void clear_message();
+  static const int kMessageFieldNumber = 2;
+  const ::GstDebugger::MessageRequest& message() const;
+  ::GstDebugger::MessageRequest* mutable_message();
+  ::GstDebugger::MessageRequest* release_message();
+  void set_allocated_message(::GstDebugger::MessageRequest* message);
+
+  // optional .GstDebugger.LogRequest log = 3;
+  bool has_log() const;
+  void clear_log();
+  static const int kLogFieldNumber = 3;
+  const ::GstDebugger::LogRequest& log() const;
+  ::GstDebugger::LogRequest* mutable_log();
+  ::GstDebugger::LogRequest* release_log();
+  void set_allocated_log(::GstDebugger::LogRequest* log);
+
+  // optional .GstDebugger.PadHookRequest pad_hook = 4;
+  bool has_pad_hook() const;
+  void clear_pad_hook();
+  static const int kPadHookFieldNumber = 4;
+  const ::GstDebugger::PadHookRequest& pad_hook() const;
+  ::GstDebugger::PadHookRequest* mutable_pad_hook();
+  ::GstDebugger::PadHookRequest* release_pad_hook();
+  void set_allocated_pad_hook(::GstDebugger::PadHookRequest* pad_hook);
+
+  HookTypeCase hook_type_case() const;
+  // @@protoc_insertion_point(class_scope:GstDebugger.HookRequest)
+ private:
+  void set_has_action();
+  void clear_has_action();
+  void set_has_message();
+  void set_has_log();
+  void set_has_pad_hook();
+
+  inline bool has_hook_type() const;
+  void clear_hook_type();
+  inline void clear_has_hook_type();
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  int action_;
+  union HookTypeUnion {
+    HookTypeUnion() {}
+    ::GstDebugger::MessageRequest* message_;
+    ::GstDebugger::LogRequest* log_;
+    ::GstDebugger::PadHookRequest* pad_hook_;
+  } hook_type_;
+  ::google::protobuf::uint32 _oneof_case_[1];
+
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class Command : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.Command) */ {
+ public:
+  Command();
+  virtual ~Command();
+
+  Command(const Command& from);
+
+  inline Command& operator=(const Command& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const Command& default_instance();
+
+  enum CommandTypeCase {
+    kTypeDescription = 1,
+    kDebugCategoriesList = 2,
+    kHookRequest = 3,
+    kLogThreshold = 4,
+    kEntireTopology = 5,
+    kProperty = 6,
+    kPropertySet = 7,
+    kPadDynamicInfo = 8,
+    COMMAND_TYPE_NOT_SET = 0,
+  };
+
+  static inline const Command* internal_default_instance() {
+    return reinterpret_cast<const Command*>(
+               &_Command_default_instance_);
+  }
+
+  void Swap(Command* other);
+
+  // implements Message ----------------------------------------------
+
+  inline Command* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  Command* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const Command& from);
+  void MergeFrom(const Command& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(Command* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // optional .GstDebugger.TypeDescriptionRequest type_description = 1;
+  bool has_type_description() const;
+  void clear_type_description();
+  static const int kTypeDescriptionFieldNumber = 1;
+  const ::GstDebugger::TypeDescriptionRequest& type_description() const;
+  ::GstDebugger::TypeDescriptionRequest* mutable_type_description();
+  ::GstDebugger::TypeDescriptionRequest* release_type_description();
+  void set_allocated_type_description(::GstDebugger::TypeDescriptionRequest* type_description);
+
+  // optional bool debug_categories_list = 2;
+  bool has_debug_categories_list() const;
+  void clear_debug_categories_list();
+  static const int kDebugCategoriesListFieldNumber = 2;
+  bool debug_categories_list() const;
+  void set_debug_categories_list(bool value);
+
+  // optional .GstDebugger.HookRequest hook_request = 3;
+  bool has_hook_request() const;
+  void clear_hook_request();
+  static const int kHookRequestFieldNumber = 3;
+  const ::GstDebugger::HookRequest& hook_request() const;
+  ::GstDebugger::HookRequest* mutable_hook_request();
+  ::GstDebugger::HookRequest* release_hook_request();
+  void set_allocated_hook_request(::GstDebugger::HookRequest* hook_request);
+
+  // optional string log_threshold = 4;
+  bool has_log_threshold() const;
+  void clear_log_threshold();
+  static const int kLogThresholdFieldNumber = 4;
+  const ::std::string& log_threshold() const;
+  void set_log_threshold(const ::std::string& value);
+  #if LANG_CXX11
+  void set_log_threshold(::std::string&& value);
+  #endif
+  void set_log_threshold(const char* value);
+  void set_log_threshold(const char* value, size_t size);
+  ::std::string* mutable_log_threshold();
+  ::std::string* release_log_threshold();
+  void set_allocated_log_threshold(::std::string* log_threshold);
+
+  // optional bool entire_topology = 5;
+  bool has_entire_topology() const;
+  void clear_entire_topology();
+  static const int kEntireTopologyFieldNumber = 5;
+  bool entire_topology() const;
+  void set_entire_topology(bool value);
+
+  // optional .GstDebugger.PropertyRequest property = 6;
+  bool has_property() const;
+  void clear_property();
+  static const int kPropertyFieldNumber = 6;
+  const ::GstDebugger::PropertyRequest& property() const;
+  ::GstDebugger::PropertyRequest* mutable_property();
+  ::GstDebugger::PropertyRequest* release_property();
+  void set_allocated_property(::GstDebugger::PropertyRequest* property);
+
+  // optional .GstDebugger.PropertyValue property_set = 7;
+  bool has_property_set() const;
+  void clear_property_set();
+  static const int kPropertySetFieldNumber = 7;
+  const ::GstDebugger::PropertyValue& property_set() const;
+  ::GstDebugger::PropertyValue* mutable_property_set();
+  ::GstDebugger::PropertyValue* release_property_set();
+  void set_allocated_property_set(::GstDebugger::PropertyValue* property_set);
+
+  // optional string pad_dynamic_info = 8;
+  bool has_pad_dynamic_info() const;
+  void clear_pad_dynamic_info();
+  static const int kPadDynamicInfoFieldNumber = 8;
+  const ::std::string& pad_dynamic_info() const;
+  void set_pad_dynamic_info(const ::std::string& value);
+  #if LANG_CXX11
+  void set_pad_dynamic_info(::std::string&& value);
+  #endif
+  void set_pad_dynamic_info(const char* value);
+  void set_pad_dynamic_info(const char* value, size_t size);
+  ::std::string* mutable_pad_dynamic_info();
+  ::std::string* release_pad_dynamic_info();
+  void set_allocated_pad_dynamic_info(::std::string* pad_dynamic_info);
+
+  CommandTypeCase command_type_case() const;
+  // @@protoc_insertion_point(class_scope:GstDebugger.Command)
+ private:
+  void set_has_type_description();
+  void set_has_debug_categories_list();
+  void set_has_hook_request();
+  void set_has_log_threshold();
+  void set_has_entire_topology();
+  void set_has_property();
+  void set_has_property_set();
+  void set_has_pad_dynamic_info();
+
+  inline bool has_command_type() const;
+  void clear_command_type();
+  inline void clear_has_command_type();
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  union CommandTypeUnion {
+    CommandTypeUnion() {}
+    ::GstDebugger::TypeDescriptionRequest* type_description_;
+    bool debug_categories_list_;
+    ::GstDebugger::HookRequest* hook_request_;
+    ::google::protobuf::internal::ArenaStringPtr log_threshold_;
+    bool entire_topology_;
+    ::GstDebugger::PropertyRequest* property_;
+    ::GstDebugger::PropertyValue* property_set_;
+    ::google::protobuf::internal::ArenaStringPtr pad_dynamic_info_;
+  } command_type_;
+  ::google::protobuf::uint32 _oneof_case_[1];
+
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class DebugCategories : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.DebugCategories) */ {
+ public:
+  DebugCategories();
+  virtual ~DebugCategories();
+
+  DebugCategories(const DebugCategories& from);
+
+  inline DebugCategories& operator=(const DebugCategories& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const DebugCategories& default_instance();
+
+  static inline const DebugCategories* internal_default_instance() {
+    return reinterpret_cast<const DebugCategories*>(
+               &_DebugCategories_default_instance_);
+  }
+
+  void Swap(DebugCategories* other);
+
+  // implements Message ----------------------------------------------
+
+  inline DebugCategories* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  DebugCategories* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const DebugCategories& from);
+  void MergeFrom(const DebugCategories& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(DebugCategories* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // repeated string category = 1;
+  int category_size() const;
+  void clear_category();
+  static const int kCategoryFieldNumber = 1;
+  const ::std::string& category(int index) const;
+  ::std::string* mutable_category(int index);
+  void set_category(int index, const ::std::string& value);
+  void set_category(int index, const char* value);
+  void set_category(int index, const char* value, size_t size);
+  ::std::string* add_category();
+  void add_category(const ::std::string& value);
+  void add_category(const char* value);
+  void add_category(const char* value, size_t size);
+  const ::google::protobuf::RepeatedPtrField< ::std::string>& category() const;
+  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_category();
+
+  // @@protoc_insertion_point(class_scope:GstDebugger.DebugCategories)
+ private:
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::RepeatedPtrField< ::std::string> category_;
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class LogInfo : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.LogInfo) */ {
+ public:
+  LogInfo();
+  virtual ~LogInfo();
+
+  LogInfo(const LogInfo& from);
+
+  inline LogInfo& operator=(const LogInfo& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const LogInfo& default_instance();
+
+  static inline const LogInfo* internal_default_instance() {
+    return reinterpret_cast<const LogInfo*>(
+               &_LogInfo_default_instance_);
+  }
+
+  void Swap(LogInfo* other);
+
+  // implements Message ----------------------------------------------
+
+  inline LogInfo* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  LogInfo* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const LogInfo& from);
+  void MergeFrom(const LogInfo& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(LogInfo* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // required string category = 2;
+  bool has_category() const;
+  void clear_category();
+  static const int kCategoryFieldNumber = 2;
+  const ::std::string& category() const;
+  void set_category(const ::std::string& value);
+  #if LANG_CXX11
+  void set_category(::std::string&& value);
+  #endif
+  void set_category(const char* value);
+  void set_category(const char* value, size_t size);
+  ::std::string* mutable_category();
+  ::std::string* release_category();
+  void set_allocated_category(::std::string* category);
+
+  // required string file = 3;
+  bool has_file() const;
+  void clear_file();
+  static const int kFileFieldNumber = 3;
+  const ::std::string& file() const;
+  void set_file(const ::std::string& value);
+  #if LANG_CXX11
+  void set_file(::std::string&& value);
+  #endif
+  void set_file(const char* value);
+  void set_file(const char* value, size_t size);
+  ::std::string* mutable_file();
+  ::std::string* release_file();
+  void set_allocated_file(::std::string* file);
+
+  // required string function = 4;
+  bool has_function() const;
+  void clear_function();
+  static const int kFunctionFieldNumber = 4;
+  const ::std::string& function() const;
+  void set_function(const ::std::string& value);
+  #if LANG_CXX11
+  void set_function(::std::string&& value);
+  #endif
+  void set_function(const char* value);
+  void set_function(const char* value, size_t size);
+  ::std::string* mutable_function();
+  ::std::string* release_function();
+  void set_allocated_function(::std::string* function);
+
+  // required string object = 6;
+  bool has_object() const;
+  void clear_object();
+  static const int kObjectFieldNumber = 6;
+  const ::std::string& object() const;
+  void set_object(const ::std::string& value);
+  #if LANG_CXX11
+  void set_object(::std::string&& value);
+  #endif
+  void set_object(const char* value);
+  void set_object(const char* value, size_t size);
+  ::std::string* mutable_object();
+  ::std::string* release_object();
+  void set_allocated_object(::std::string* object);
+
+  // required string message = 7;
+  bool has_message() const;
+  void clear_message();
+  static const int kMessageFieldNumber = 7;
+  const ::std::string& message() const;
+  void set_message(const ::std::string& value);
+  #if LANG_CXX11
+  void set_message(::std::string&& value);
+  #endif
+  void set_message(const char* value);
+  void set_message(const char* value, size_t size);
+  ::std::string* mutable_message();
+  ::std::string* release_message();
+  void set_allocated_message(::std::string* message);
+
+  // required int32 level = 1;
+  bool has_level() const;
+  void clear_level();
+  static const int kLevelFieldNumber = 1;
+  ::google::protobuf::int32 level() const;
+  void set_level(::google::protobuf::int32 value);
+
+  // required int32 line = 5;
+  bool has_line() const;
+  void clear_line();
+  static const int kLineFieldNumber = 5;
+  ::google::protobuf::int32 line() const;
+  void set_line(::google::protobuf::int32 value);
+
+  // @@protoc_insertion_point(class_scope:GstDebugger.LogInfo)
+ private:
+  void set_has_level();
+  void clear_has_level();
+  void set_has_category();
+  void clear_has_category();
+  void set_has_file();
+  void clear_has_file();
+  void set_has_function();
+  void clear_has_function();
+  void set_has_line();
+  void clear_has_line();
+  void set_has_object();
+  void clear_has_object();
+  void set_has_message();
+  void clear_has_message();
+
+  // helper for ByteSizeLong()
+  size_t RequiredFieldsByteSizeFallback() const;
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::internal::ArenaStringPtr category_;
+  ::google::protobuf::internal::ArenaStringPtr file_;
+  ::google::protobuf::internal::ArenaStringPtr function_;
+  ::google::protobuf::internal::ArenaStringPtr object_;
+  ::google::protobuf::internal::ArenaStringPtr message_;
+  ::google::protobuf::int32 level_;
+  ::google::protobuf::int32 line_;
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class EnumFlagsValue : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.EnumFlagsValue) */ {
+ public:
+  EnumFlagsValue();
+  virtual ~EnumFlagsValue();
+
+  EnumFlagsValue(const EnumFlagsValue& from);
+
+  inline EnumFlagsValue& operator=(const EnumFlagsValue& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const EnumFlagsValue& default_instance();
+
+  static inline const EnumFlagsValue* internal_default_instance() {
+    return reinterpret_cast<const EnumFlagsValue*>(
+               &_EnumFlagsValue_default_instance_);
+  }
+
+  void Swap(EnumFlagsValue* other);
+
+  // implements Message ----------------------------------------------
+
+  inline EnumFlagsValue* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  EnumFlagsValue* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const EnumFlagsValue& from);
+  void MergeFrom(const EnumFlagsValue& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(EnumFlagsValue* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // required string name = 1;
+  bool has_name() const;
+  void clear_name();
+  static const int kNameFieldNumber = 1;
+  const ::std::string& name() const;
+  void set_name(const ::std::string& value);
+  #if LANG_CXX11
+  void set_name(::std::string&& value);
+  #endif
+  void set_name(const char* value);
+  void set_name(const char* value, size_t size);
+  ::std::string* mutable_name();
+  ::std::string* release_name();
+  void set_allocated_name(::std::string* name);
+
+  // required string nick = 3;
+  bool has_nick() const;
+  void clear_nick();
+  static const int kNickFieldNumber = 3;
+  const ::std::string& nick() const;
+  void set_nick(const ::std::string& value);
+  #if LANG_CXX11
+  void set_nick(::std::string&& value);
+  #endif
+  void set_nick(const char* value);
+  void set_nick(const char* value, size_t size);
+  ::std::string* mutable_nick();
+  ::std::string* release_nick();
+  void set_allocated_nick(::std::string* nick);
+
+  // required int32 value = 2;
+  bool has_value() const;
+  void clear_value();
+  static const int kValueFieldNumber = 2;
+  ::google::protobuf::int32 value() const;
+  void set_value(::google::protobuf::int32 value);
+
+  // @@protoc_insertion_point(class_scope:GstDebugger.EnumFlagsValue)
+ private:
+  void set_has_name();
+  void clear_has_name();
+  void set_has_value();
+  void clear_has_value();
+  void set_has_nick();
+  void clear_has_nick();
+
+  // helper for ByteSizeLong()
+  size_t RequiredFieldsByteSizeFallback() const;
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::internal::ArenaStringPtr name_;
+  ::google::protobuf::internal::ArenaStringPtr nick_;
+  ::google::protobuf::int32 value_;
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class EnumFlagsType : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.EnumFlagsType) */ {
+ public:
+  EnumFlagsType();
+  virtual ~EnumFlagsType();
+
+  EnumFlagsType(const EnumFlagsType& from);
+
+  inline EnumFlagsType& operator=(const EnumFlagsType& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const EnumFlagsType& default_instance();
+
+  static inline const EnumFlagsType* internal_default_instance() {
+    return reinterpret_cast<const EnumFlagsType*>(
+               &_EnumFlagsType_default_instance_);
+  }
+
+  void Swap(EnumFlagsType* other);
+
+  // implements Message ----------------------------------------------
+
+  inline EnumFlagsType* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  EnumFlagsType* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const EnumFlagsType& from);
+  void MergeFrom(const EnumFlagsType& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(EnumFlagsType* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  typedef EnumFlagsType_EnumFlagsKind EnumFlagsKind;
+  static const EnumFlagsKind ENUM =
+    EnumFlagsType_EnumFlagsKind_ENUM;
+  static const EnumFlagsKind FLAGS =
+    EnumFlagsType_EnumFlagsKind_FLAGS;
+  static inline bool EnumFlagsKind_IsValid(int value) {
+    return EnumFlagsType_EnumFlagsKind_IsValid(value);
+  }
+  static const EnumFlagsKind EnumFlagsKind_MIN =
+    EnumFlagsType_EnumFlagsKind_EnumFlagsKind_MIN;
+  static const EnumFlagsKind EnumFlagsKind_MAX =
+    EnumFlagsType_EnumFlagsKind_EnumFlagsKind_MAX;
+  static const int EnumFlagsKind_ARRAYSIZE =
+    EnumFlagsType_EnumFlagsKind_EnumFlagsKind_ARRAYSIZE;
+  static inline const ::google::protobuf::EnumDescriptor*
+  EnumFlagsKind_descriptor() {
+    return EnumFlagsType_EnumFlagsKind_descriptor();
+  }
+  static inline const ::std::string& EnumFlagsKind_Name(EnumFlagsKind value) {
+    return EnumFlagsType_EnumFlagsKind_Name(value);
+  }
+  static inline bool EnumFlagsKind_Parse(const ::std::string& name,
+      EnumFlagsKind* value) {
+    return EnumFlagsType_EnumFlagsKind_Parse(name, value);
+  }
+
+  // accessors -------------------------------------------------------
+
+  // repeated .GstDebugger.EnumFlagsValue values = 3;
+  int values_size() const;
+  void clear_values();
+  static const int kValuesFieldNumber = 3;
+  const ::GstDebugger::EnumFlagsValue& values(int index) const;
+  ::GstDebugger::EnumFlagsValue* mutable_values(int index);
+  ::GstDebugger::EnumFlagsValue* add_values();
+  ::google::protobuf::RepeatedPtrField< ::GstDebugger::EnumFlagsValue >*
+      mutable_values();
+  const ::google::protobuf::RepeatedPtrField< ::GstDebugger::EnumFlagsValue >&
+      values() const;
+
+  // required string type_name = 1;
+  bool has_type_name() const;
+  void clear_type_name();
+  static const int kTypeNameFieldNumber = 1;
+  const ::std::string& type_name() const;
+  void set_type_name(const ::std::string& value);
+  #if LANG_CXX11
+  void set_type_name(::std::string&& value);
+  #endif
+  void set_type_name(const char* value);
+  void set_type_name(const char* value, size_t size);
+  ::std::string* mutable_type_name();
+  ::std::string* release_type_name();
+  void set_allocated_type_name(::std::string* type_name);
+
+  // required .GstDebugger.EnumFlagsType.EnumFlagsKind kind = 2;
+  bool has_kind() const;
+  void clear_kind();
+  static const int kKindFieldNumber = 2;
+  ::GstDebugger::EnumFlagsType_EnumFlagsKind kind() const;
+  void set_kind(::GstDebugger::EnumFlagsType_EnumFlagsKind value);
+
+  // @@protoc_insertion_point(class_scope:GstDebugger.EnumFlagsType)
+ private:
+  void set_has_type_name();
+  void clear_has_type_name();
+  void set_has_kind();
+  void clear_has_kind();
+
+  // helper for ByteSizeLong()
+  size_t RequiredFieldsByteSizeFallback() const;
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::RepeatedPtrField< ::GstDebugger::EnumFlagsValue > values_;
+  ::google::protobuf::internal::ArenaStringPtr type_name_;
+  int kind_;
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class FactoryMeta : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.FactoryMeta) */ {
+ public:
+  FactoryMeta();
+  virtual ~FactoryMeta();
+
+  FactoryMeta(const FactoryMeta& from);
+
+  inline FactoryMeta& operator=(const FactoryMeta& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const FactoryMeta& default_instance();
+
+  static inline const FactoryMeta* internal_default_instance() {
+    return reinterpret_cast<const FactoryMeta*>(
+               &_FactoryMeta_default_instance_);
+  }
+
+  void Swap(FactoryMeta* other);
+
+  // implements Message ----------------------------------------------
+
+  inline FactoryMeta* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  FactoryMeta* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const FactoryMeta& from);
+  void MergeFrom(const FactoryMeta& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(FactoryMeta* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // required string key = 1;
+  bool has_key() const;
+  void clear_key();
+  static const int kKeyFieldNumber = 1;
+  const ::std::string& key() const;
+  void set_key(const ::std::string& value);
+  #if LANG_CXX11
+  void set_key(::std::string&& value);
+  #endif
+  void set_key(const char* value);
+  void set_key(const char* value, size_t size);
+  ::std::string* mutable_key();
+  ::std::string* release_key();
+  void set_allocated_key(::std::string* key);
+
+  // required string value = 2;
+  bool has_value() const;
+  void clear_value();
+  static const int kValueFieldNumber = 2;
+  const ::std::string& value() const;
+  void set_value(const ::std::string& value);
+  #if LANG_CXX11
+  void set_value(::std::string&& value);
+  #endif
+  void set_value(const char* value);
+  void set_value(const char* value, size_t size);
+  ::std::string* mutable_value();
+  ::std::string* release_value();
+  void set_allocated_value(::std::string* value);
+
+  // @@protoc_insertion_point(class_scope:GstDebugger.FactoryMeta)
+ private:
+  void set_has_key();
+  void clear_has_key();
+  void set_has_value();
+  void clear_has_value();
+
+  // helper for ByteSizeLong()
+  size_t RequiredFieldsByteSizeFallback() const;
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::internal::ArenaStringPtr key_;
+  ::google::protobuf::internal::ArenaStringPtr value_;
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class PadTemplate : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.PadTemplate) */ {
+ public:
+  PadTemplate();
+  virtual ~PadTemplate();
+
+  PadTemplate(const PadTemplate& from);
+
+  inline PadTemplate& operator=(const PadTemplate& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const PadTemplate& default_instance();
+
+  static inline const PadTemplate* internal_default_instance() {
+    return reinterpret_cast<const PadTemplate*>(
+               &_PadTemplate_default_instance_);
+  }
+
+  void Swap(PadTemplate* other);
+
+  // implements Message ----------------------------------------------
+
+  inline PadTemplate* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  PadTemplate* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const PadTemplate& from);
+  void MergeFrom(const PadTemplate& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(PadTemplate* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // required string name_template = 1;
+  bool has_name_template() const;
+  void clear_name_template();
+  static const int kNameTemplateFieldNumber = 1;
+  const ::std::string& name_template() const;
+  void set_name_template(const ::std::string& value);
+  #if LANG_CXX11
+  void set_name_template(::std::string&& value);
+  #endif
+  void set_name_template(const char* value);
+  void set_name_template(const char* value, size_t size);
+  ::std::string* mutable_name_template();
+  ::std::string* release_name_template();
+  void set_allocated_name_template(::std::string* name_template);
+
+  // required string caps = 4;
+  bool has_caps() const;
+  void clear_caps();
+  static const int kCapsFieldNumber = 4;
+  const ::std::string& caps() const;
+  void set_caps(const ::std::string& value);
+  #if LANG_CXX11
+  void set_caps(::std::string&& value);
+  #endif
+  void set_caps(const char* value);
+  void set_caps(const char* value, size_t size);
+  ::std::string* mutable_caps();
+  ::std::string* release_caps();
+  void set_allocated_caps(::std::string* caps);
+
+  // required int32 direction = 2;
+  bool has_direction() const;
+  void clear_direction();
+  static const int kDirectionFieldNumber = 2;
+  ::google::protobuf::int32 direction() const;
+  void set_direction(::google::protobuf::int32 value);
+
+  // required int32 presence = 3;
+  bool has_presence() const;
+  void clear_presence();
+  static const int kPresenceFieldNumber = 3;
+  ::google::protobuf::int32 presence() const;
+  void set_presence(::google::protobuf::int32 value);
+
+  // @@protoc_insertion_point(class_scope:GstDebugger.PadTemplate)
+ private:
+  void set_has_name_template();
+  void clear_has_name_template();
+  void set_has_direction();
+  void clear_has_direction();
+  void set_has_presence();
+  void clear_has_presence();
+  void set_has_caps();
+  void clear_has_caps();
+
+  // helper for ByteSizeLong()
+  size_t RequiredFieldsByteSizeFallback() const;
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::internal::ArenaStringPtr name_template_;
+  ::google::protobuf::internal::ArenaStringPtr caps_;
+  ::google::protobuf::int32 direction_;
+  ::google::protobuf::int32 presence_;
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class FactoryType : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.FactoryType) */ {
+ public:
+  FactoryType();
+  virtual ~FactoryType();
+
+  FactoryType(const FactoryType& from);
+
+  inline FactoryType& operator=(const FactoryType& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const FactoryType& default_instance();
+
+  static inline const FactoryType* internal_default_instance() {
+    return reinterpret_cast<const FactoryType*>(
+               &_FactoryType_default_instance_);
+  }
+
+  void Swap(FactoryType* other);
+
+  // implements Message ----------------------------------------------
+
+  inline FactoryType* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  FactoryType* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const FactoryType& from);
+  void MergeFrom(const FactoryType& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(FactoryType* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // repeated .GstDebugger.FactoryMeta metadata = 2;
+  int metadata_size() const;
+  void clear_metadata();
+  static const int kMetadataFieldNumber = 2;
+  const ::GstDebugger::FactoryMeta& metadata(int index) const;
+  ::GstDebugger::FactoryMeta* mutable_metadata(int index);
+  ::GstDebugger::FactoryMeta* add_metadata();
+  ::google::protobuf::RepeatedPtrField< ::GstDebugger::FactoryMeta >*
+      mutable_metadata();
+  const ::google::protobuf::RepeatedPtrField< ::GstDebugger::FactoryMeta >&
+      metadata() const;
+
+  // repeated .GstDebugger.PadTemplate templates = 3;
+  int templates_size() const;
+  void clear_templates();
+  static const int kTemplatesFieldNumber = 3;
+  const ::GstDebugger::PadTemplate& templates(int index) const;
+  ::GstDebugger::PadTemplate* mutable_templates(int index);
+  ::GstDebugger::PadTemplate* add_templates();
+  ::google::protobuf::RepeatedPtrField< ::GstDebugger::PadTemplate >*
+      mutable_templates();
+  const ::google::protobuf::RepeatedPtrField< ::GstDebugger::PadTemplate >&
+      templates() const;
+
+  // required string name = 1;
+  bool has_name() const;
+  void clear_name();
+  static const int kNameFieldNumber = 1;
+  const ::std::string& name() const;
+  void set_name(const ::std::string& value);
+  #if LANG_CXX11
+  void set_name(::std::string&& value);
+  #endif
+  void set_name(const char* value);
+  void set_name(const char* value, size_t size);
+  ::std::string* mutable_name();
+  ::std::string* release_name();
+  void set_allocated_name(::std::string* name);
+
+  // @@protoc_insertion_point(class_scope:GstDebugger.FactoryType)
+ private:
+  void set_has_name();
+  void clear_has_name();
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::RepeatedPtrField< ::GstDebugger::FactoryMeta > metadata_;
+  ::google::protobuf::RepeatedPtrField< ::GstDebugger::PadTemplate > templates_;
+  ::google::protobuf::internal::ArenaStringPtr name_;
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class ElementKlass : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.ElementKlass) */ {
+ public:
+  ElementKlass();
+  virtual ~ElementKlass();
+
+  ElementKlass(const ElementKlass& from);
+
+  inline ElementKlass& operator=(const ElementKlass& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const ElementKlass& default_instance();
+
+  static inline const ElementKlass* internal_default_instance() {
+    return reinterpret_cast<const ElementKlass*>(
+               &_ElementKlass_default_instance_);
+  }
+
+  void Swap(ElementKlass* other);
+
+  // implements Message ----------------------------------------------
+
+  inline ElementKlass* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  ElementKlass* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const ElementKlass& from);
+  void MergeFrom(const ElementKlass& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(ElementKlass* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // repeated .GstDebugger.PropertyInfo property_info = 2;
+  int property_info_size() const;
+  void clear_property_info();
+  static const int kPropertyInfoFieldNumber = 2;
+  const ::GstDebugger::PropertyInfo& property_info(int index) const;
+  ::GstDebugger::PropertyInfo* mutable_property_info(int index);
+  ::GstDebugger::PropertyInfo* add_property_info();
+  ::google::protobuf::RepeatedPtrField< ::GstDebugger::PropertyInfo >*
+      mutable_property_info();
+  const ::google::protobuf::RepeatedPtrField< ::GstDebugger::PropertyInfo >&
+      property_info() const;
+
+  // required string name = 1;
+  bool has_name() const;
+  void clear_name();
+  static const int kNameFieldNumber = 1;
+  const ::std::string& name() const;
+  void set_name(const ::std::string& value);
+  #if LANG_CXX11
+  void set_name(::std::string&& value);
+  #endif
+  void set_name(const char* value);
+  void set_name(const char* value, size_t size);
+  ::std::string* mutable_name();
+  ::std::string* release_name();
+  void set_allocated_name(::std::string* name);
+
+  // @@protoc_insertion_point(class_scope:GstDebugger.ElementKlass)
+ private:
+  void set_has_name();
+  void clear_has_name();
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::RepeatedPtrField< ::GstDebugger::PropertyInfo > property_info_;
+  ::google::protobuf::internal::ArenaStringPtr name_;
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class TopologyLink : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.TopologyLink) */ {
+ public:
+  TopologyLink();
+  virtual ~TopologyLink();
+
+  TopologyLink(const TopologyLink& from);
+
+  inline TopologyLink& operator=(const TopologyLink& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const TopologyLink& default_instance();
+
+  static inline const TopologyLink* internal_default_instance() {
+    return reinterpret_cast<const TopologyLink*>(
+               &_TopologyLink_default_instance_);
+  }
+
+  void Swap(TopologyLink* other);
+
+  // implements Message ----------------------------------------------
+
+  inline TopologyLink* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  TopologyLink* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const TopologyLink& from);
+  void MergeFrom(const TopologyLink& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(TopologyLink* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // required string src_pad = 1;
+  bool has_src_pad() const;
+  void clear_src_pad();
+  static const int kSrcPadFieldNumber = 1;
+  const ::std::string& src_pad() const;
+  void set_src_pad(const ::std::string& value);
+  #if LANG_CXX11
+  void set_src_pad(::std::string&& value);
+  #endif
+  void set_src_pad(const char* value);
+  void set_src_pad(const char* value, size_t size);
+  ::std::string* mutable_src_pad();
+  ::std::string* release_src_pad();
+  void set_allocated_src_pad(::std::string* src_pad);
+
+  // required string sink_pad = 2;
+  bool has_sink_pad() const;
+  void clear_sink_pad();
+  static const int kSinkPadFieldNumber = 2;
+  const ::std::string& sink_pad() const;
+  void set_sink_pad(const ::std::string& value);
+  #if LANG_CXX11
+  void set_sink_pad(::std::string&& value);
+  #endif
+  void set_sink_pad(const char* value);
+  void set_sink_pad(const char* value, size_t size);
+  ::std::string* mutable_sink_pad();
+  ::std::string* release_sink_pad();
+  void set_allocated_sink_pad(::std::string* sink_pad);
+
+  // @@protoc_insertion_point(class_scope:GstDebugger.TopologyLink)
+ private:
+  void set_has_src_pad();
+  void clear_has_src_pad();
+  void set_has_sink_pad();
+  void clear_has_sink_pad();
+
+  // helper for ByteSizeLong()
+  size_t RequiredFieldsByteSizeFallback() const;
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::internal::ArenaStringPtr src_pad_;
+  ::google::protobuf::internal::ArenaStringPtr sink_pad_;
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class TopologyElement : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.TopologyElement) */ {
+ public:
+  TopologyElement();
+  virtual ~TopologyElement();
+
+  TopologyElement(const TopologyElement& from);
+
+  inline TopologyElement& operator=(const TopologyElement& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const TopologyElement& default_instance();
+
+  static inline const TopologyElement* internal_default_instance() {
+    return reinterpret_cast<const TopologyElement*>(
+               &_TopologyElement_default_instance_);
+  }
+
+  void Swap(TopologyElement* other);
+
+  // implements Message ----------------------------------------------
+
+  inline TopologyElement* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  TopologyElement* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const TopologyElement& from);
+  void MergeFrom(const TopologyElement& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(TopologyElement* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // required string path = 1;
+  bool has_path() const;
+  void clear_path();
+  static const int kPathFieldNumber = 1;
+  const ::std::string& path() const;
+  void set_path(const ::std::string& value);
+  #if LANG_CXX11
+  void set_path(::std::string&& value);
+  #endif
+  void set_path(const char* value);
+  void set_path(const char* value, size_t size);
+  ::std::string* mutable_path();
+  ::std::string* release_path();
+  void set_allocated_path(::std::string* path);
+
+  // required string type_name = 2;
+  bool has_type_name() const;
+  void clear_type_name();
+  static const int kTypeNameFieldNumber = 2;
+  const ::std::string& type_name() const;
+  void set_type_name(const ::std::string& value);
+  #if LANG_CXX11
+  void set_type_name(::std::string&& value);
+  #endif
+  void set_type_name(const char* value);
+  void set_type_name(const char* value, size_t size);
+  ::std::string* mutable_type_name();
+  ::std::string* release_type_name();
+  void set_allocated_type_name(::std::string* type_name);
+
+  // required string factory_name = 4;
+  bool has_factory_name() const;
+  void clear_factory_name();
+  static const int kFactoryNameFieldNumber = 4;
+  const ::std::string& factory_name() const;
+  void set_factory_name(const ::std::string& value);
+  #if LANG_CXX11
+  void set_factory_name(::std::string&& value);
+  #endif
+  void set_factory_name(const char* value);
+  void set_factory_name(const char* value, size_t size);
+  ::std::string* mutable_factory_name();
+  ::std::string* release_factory_name();
+  void set_allocated_factory_name(::std::string* factory_name);
+
+  // required bool is_bin = 3;
+  bool has_is_bin() const;
+  void clear_is_bin();
+  static const int kIsBinFieldNumber = 3;
+  bool is_bin() const;
+  void set_is_bin(bool value);
+
+  // @@protoc_insertion_point(class_scope:GstDebugger.TopologyElement)
+ private:
+  void set_has_path();
+  void clear_has_path();
+  void set_has_type_name();
+  void clear_has_type_name();
+  void set_has_is_bin();
+  void clear_has_is_bin();
+  void set_has_factory_name();
+  void clear_has_factory_name();
+
+  // helper for ByteSizeLong()
+  size_t RequiredFieldsByteSizeFallback() const;
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::internal::ArenaStringPtr path_;
+  ::google::protobuf::internal::ArenaStringPtr type_name_;
+  ::google::protobuf::internal::ArenaStringPtr factory_name_;
+  bool is_bin_;
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class TopologyPad : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.TopologyPad) */ {
+ public:
+  TopologyPad();
+  virtual ~TopologyPad();
+
+  TopologyPad(const TopologyPad& from);
+
+  inline TopologyPad& operator=(const TopologyPad& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const TopologyPad& default_instance();
+
+  static inline const TopologyPad* internal_default_instance() {
+    return reinterpret_cast<const TopologyPad*>(
+               &_TopologyPad_default_instance_);
+  }
+
+  void Swap(TopologyPad* other);
+
+  // implements Message ----------------------------------------------
+
+  inline TopologyPad* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  TopologyPad* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const TopologyPad& from);
+  void MergeFrom(const TopologyPad& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(TopologyPad* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // required string path = 1;
+  bool has_path() const;
+  void clear_path();
+  static const int kPathFieldNumber = 1;
+  const ::std::string& path() const;
+  void set_path(const ::std::string& value);
+  #if LANG_CXX11
+  void set_path(::std::string&& value);
+  #endif
+  void set_path(const char* value);
+  void set_path(const char* value, size_t size);
+  ::std::string* mutable_path();
+  ::std::string* release_path();
+  void set_allocated_path(::std::string* path);
+
+  // optional .GstDebugger.PadTemplate template = 5;
+  bool has_template_() const;
+  void clear_template_();
+  static const int kTemplateFieldNumber = 5;
+  const ::GstDebugger::PadTemplate& template_() const;
+  ::GstDebugger::PadTemplate* mutable_template_();
+  ::GstDebugger::PadTemplate* release_template_();
+  void set_allocated_template_(::GstDebugger::PadTemplate* template_);
+
+  // required bool is_ghostpad = 2;
+  bool has_is_ghostpad() const;
+  void clear_is_ghostpad();
+  static const int kIsGhostpadFieldNumber = 2;
+  bool is_ghostpad() const;
+  void set_is_ghostpad(bool value);
+
+  // required int32 direction = 3;
+  bool has_direction() const;
+  void clear_direction();
+  static const int kDirectionFieldNumber = 3;
+  ::google::protobuf::int32 direction() const;
+  void set_direction(::google::protobuf::int32 value);
+
+  // required int32 presence = 4;
+  bool has_presence() const;
+  void clear_presence();
+  static const int kPresenceFieldNumber = 4;
+  ::google::protobuf::int32 presence() const;
+  void set_presence(::google::protobuf::int32 value);
+
+  // @@protoc_insertion_point(class_scope:GstDebugger.TopologyPad)
+ private:
+  void set_has_path();
+  void clear_has_path();
+  void set_has_is_ghostpad();
+  void clear_has_is_ghostpad();
+  void set_has_direction();
+  void clear_has_direction();
+  void set_has_presence();
+  void clear_has_presence();
+  void set_has_template_();
+  void clear_has_template_();
+
+  // helper for ByteSizeLong()
+  size_t RequiredFieldsByteSizeFallback() const;
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::internal::ArenaStringPtr path_;
+  ::GstDebugger::PadTemplate* template__;
+  bool is_ghostpad_;
+  ::google::protobuf::int32 direction_;
+  ::google::protobuf::int32 presence_;
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class TopologyInfo : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.TopologyInfo) */ {
+ public:
+  TopologyInfo();
+  virtual ~TopologyInfo();
+
+  TopologyInfo(const TopologyInfo& from);
+
+  inline TopologyInfo& operator=(const TopologyInfo& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const TopologyInfo& default_instance();
+
+  enum TopologyTypeCase {
+    kLink = 2,
+    kElement = 3,
+    kPad = 4,
+    TOPOLOGY_TYPE_NOT_SET = 0,
+  };
+
+  static inline const TopologyInfo* internal_default_instance() {
+    return reinterpret_cast<const TopologyInfo*>(
+               &_TopologyInfo_default_instance_);
+  }
+
+  void Swap(TopologyInfo* other);
+
+  // implements Message ----------------------------------------------
+
+  inline TopologyInfo* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  TopologyInfo* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const TopologyInfo& from);
+  void MergeFrom(const TopologyInfo& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(TopologyInfo* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // required .GstDebugger.Action action = 1;
+  bool has_action() const;
+  void clear_action();
+  static const int kActionFieldNumber = 1;
+  ::GstDebugger::Action action() const;
+  void set_action(::GstDebugger::Action value);
+
+  // optional .GstDebugger.TopologyLink link = 2;
+  bool has_link() const;
+  void clear_link();
+  static const int kLinkFieldNumber = 2;
+  const ::GstDebugger::TopologyLink& link() const;
+  ::GstDebugger::TopologyLink* mutable_link();
+  ::GstDebugger::TopologyLink* release_link();
+  void set_allocated_link(::GstDebugger::TopologyLink* link);
+
+  // optional .GstDebugger.TopologyElement element = 3;
+  bool has_element() const;
+  void clear_element();
+  static const int kElementFieldNumber = 3;
+  const ::GstDebugger::TopologyElement& element() const;
+  ::GstDebugger::TopologyElement* mutable_element();
+  ::GstDebugger::TopologyElement* release_element();
+  void set_allocated_element(::GstDebugger::TopologyElement* element);
+
+  // optional .GstDebugger.TopologyPad pad = 4;
+  bool has_pad() const;
+  void clear_pad();
+  static const int kPadFieldNumber = 4;
+  const ::GstDebugger::TopologyPad& pad() const;
+  ::GstDebugger::TopologyPad* mutable_pad();
+  ::GstDebugger::TopologyPad* release_pad();
+  void set_allocated_pad(::GstDebugger::TopologyPad* pad);
+
+  TopologyTypeCase topology_type_case() const;
+  // @@protoc_insertion_point(class_scope:GstDebugger.TopologyInfo)
+ private:
+  void set_has_action();
+  void clear_has_action();
+  void set_has_link();
+  void set_has_element();
+  void set_has_pad();
+
+  inline bool has_topology_type() const;
+  void clear_topology_type();
+  inline void clear_has_topology_type();
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  int action_;
+  union TopologyTypeUnion {
+    TopologyTypeUnion() {}
+    ::GstDebugger::TopologyLink* link_;
+    ::GstDebugger::TopologyElement* element_;
+    ::GstDebugger::TopologyPad* pad_;
+  } topology_type_;
+  ::google::protobuf::uint32 _oneof_case_[1];
+
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class PadDynamicInfo : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.PadDynamicInfo) */ {
+ public:
+  PadDynamicInfo();
+  virtual ~PadDynamicInfo();
+
+  PadDynamicInfo(const PadDynamicInfo& from);
+
+  inline PadDynamicInfo& operator=(const PadDynamicInfo& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const PadDynamicInfo& default_instance();
+
+  static inline const PadDynamicInfo* internal_default_instance() {
+    return reinterpret_cast<const PadDynamicInfo*>(
+               &_PadDynamicInfo_default_instance_);
+  }
+
+  void Swap(PadDynamicInfo* other);
+
+  // implements Message ----------------------------------------------
+
+  inline PadDynamicInfo* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  PadDynamicInfo* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const PadDynamicInfo& from);
+  void MergeFrom(const PadDynamicInfo& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(PadDynamicInfo* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // required string allowed_caps = 1;
+  bool has_allowed_caps() const;
+  void clear_allowed_caps();
+  static const int kAllowedCapsFieldNumber = 1;
+  const ::std::string& allowed_caps() const;
+  void set_allowed_caps(const ::std::string& value);
+  #if LANG_CXX11
+  void set_allowed_caps(::std::string&& value);
+  #endif
+  void set_allowed_caps(const char* value);
+  void set_allowed_caps(const char* value, size_t size);
+  ::std::string* mutable_allowed_caps();
+  ::std::string* release_allowed_caps();
+  void set_allocated_allowed_caps(::std::string* allowed_caps);
+
+  // required string current_caps = 2;
+  bool has_current_caps() const;
+  void clear_current_caps();
+  static const int kCurrentCapsFieldNumber = 2;
+  const ::std::string& current_caps() const;
+  void set_current_caps(const ::std::string& value);
+  #if LANG_CXX11
+  void set_current_caps(::std::string&& value);
+  #endif
+  void set_current_caps(const char* value);
+  void set_current_caps(const char* value, size_t size);
+  ::std::string* mutable_current_caps();
+  ::std::string* release_current_caps();
+  void set_allocated_current_caps(::std::string* current_caps);
+
+  // required string pad = 3;
+  bool has_pad() const;
+  void clear_pad();
+  static const int kPadFieldNumber = 3;
+  const ::std::string& pad() const;
+  void set_pad(const ::std::string& value);
+  #if LANG_CXX11
+  void set_pad(::std::string&& value);
+  #endif
+  void set_pad(const char* value);
+  void set_pad(const char* value, size_t size);
+  ::std::string* mutable_pad();
+  ::std::string* release_pad();
+  void set_allocated_pad(::std::string* pad);
+
+  // @@protoc_insertion_point(class_scope:GstDebugger.PadDynamicInfo)
+ private:
+  void set_has_allowed_caps();
+  void clear_has_allowed_caps();
+  void set_has_current_caps();
+  void clear_has_current_caps();
+  void set_has_pad();
+  void clear_has_pad();
+
+  // helper for ByteSizeLong()
+  size_t RequiredFieldsByteSizeFallback() const;
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  ::google::protobuf::internal::ArenaStringPtr allowed_caps_;
+  ::google::protobuf::internal::ArenaStringPtr current_caps_;
+  ::google::protobuf::internal::ArenaStringPtr pad_;
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// -------------------------------------------------------------------
+
+class GStreamerData : public ::google::protobuf::Message /* 
@@protoc_insertion_point(class_definition:GstDebugger.GStreamerData) */ {
+ public:
+  GStreamerData();
+  virtual ~GStreamerData();
+
+  GStreamerData(const GStreamerData& from);
+
+  inline GStreamerData& operator=(const GStreamerData& from) {
+    CopyFrom(from);
+    return *this;
+  }
+
+  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+    return _internal_metadata_.unknown_fields();
+  }
+
+  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+    return _internal_metadata_.mutable_unknown_fields();
+  }
+
+  static const ::google::protobuf::Descriptor* descriptor();
+  static const GStreamerData& default_instance();
+
+  enum InfoTypeCase {
+    kDebugCategories = 1,
+    kLogInfo = 2,
+    kEnumFlagsType = 3,
+    kFactory = 4,
+    kMessageInfo = 5,
+    kConfirmation = 6,
+    kEventInfo = 7,
+    kTopologyInfo = 8,
+    kQueryInfo = 9,
+    kPropertyValue = 10,
+    kElementKlass = 11,
+    kBufferInfo = 12,
+    kPadDynamicInfo = 13,
+    INFO_TYPE_NOT_SET = 0,
+  };
+
+  static inline const GStreamerData* internal_default_instance() {
+    return reinterpret_cast<const GStreamerData*>(
+               &_GStreamerData_default_instance_);
+  }
+
+  void Swap(GStreamerData* other);
+
+  // implements Message ----------------------------------------------
+
+  inline GStreamerData* New() const PROTOBUF_FINAL { return New(NULL); }
+
+  GStreamerData* New(::google::protobuf::Arena* arena) const PROTOBUF_FINAL;
+  void CopyFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void MergeFrom(const ::google::protobuf::Message& from) PROTOBUF_FINAL;
+  void CopyFrom(const GStreamerData& from);
+  void MergeFrom(const GStreamerData& from);
+  void Clear() PROTOBUF_FINAL;
+  bool IsInitialized() const PROTOBUF_FINAL;
+
+  size_t ByteSizeLong() const PROTOBUF_FINAL;
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) PROTOBUF_FINAL;
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      bool deterministic, ::google::protobuf::uint8* target) const PROTOBUF_FINAL;
+  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output)
+      const PROTOBUF_FINAL {
+    return InternalSerializeWithCachedSizesToArray(
+        ::google::protobuf::io::CodedOutputStream::IsDefaultSerializationDeterministic(), output);
+  }
+  int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const PROTOBUF_FINAL;
+  void InternalSwap(GStreamerData* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return NULL;
+  }
+  inline void* MaybeArenaPtr() const {
+    return NULL;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const PROTOBUF_FINAL;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // optional .GstDebugger.DebugCategories debug_categories = 1;
+  bool has_debug_categories() const;
+  void clear_debug_categories();
+  static const int kDebugCategoriesFieldNumber = 1;
+  const ::GstDebugger::DebugCategories& debug_categories() const;
+  ::GstDebugger::DebugCategories* mutable_debug_categories();
+  ::GstDebugger::DebugCategories* release_debug_categories();
+  void set_allocated_debug_categories(::GstDebugger::DebugCategories* debug_categories);
+
+  // optional .GstDebugger.LogInfo log_info = 2;
+  bool has_log_info() const;
+  void clear_log_info();
+  static const int kLogInfoFieldNumber = 2;
+  const ::GstDebugger::LogInfo& log_info() const;
+  ::GstDebugger::LogInfo* mutable_log_info();
+  ::GstDebugger::LogInfo* release_log_info();
+  void set_allocated_log_info(::GstDebugger::LogInfo* log_info);
+
+  // optional .GstDebugger.EnumFlagsType enum_flags_type = 3;
+  bool has_enum_flags_type() const;
+  void clear_enum_flags_type();
+  static const int kEnumFlagsTypeFieldNumber = 3;
+  const ::GstDebugger::EnumFlagsType& enum_flags_type() const;
+  ::GstDebugger::EnumFlagsType* mutable_enum_flags_type();
+  ::GstDebugger::EnumFlagsType* release_enum_flags_type();
+  void set_allocated_enum_flags_type(::GstDebugger::EnumFlagsType* enum_flags_type);
+
+  // optional .GstDebugger.FactoryType factory = 4;
+  bool has_factory() const;
+  void clear_factory();
+  static const int kFactoryFieldNumber = 4;
+  const ::GstDebugger::FactoryType& factory() const;
+  ::GstDebugger::FactoryType* mutable_factory();
+  ::GstDebugger::FactoryType* release_factory();
+  void set_allocated_factory(::GstDebugger::FactoryType* factory);
+
+  // optional .GstDebugger.MessageInfo message_info = 5;
+  bool has_message_info() const;
+  void clear_message_info();
+  static const int kMessageInfoFieldNumber = 5;
+  const ::GstDebugger::MessageInfo& message_info() const;
+  ::GstDebugger::MessageInfo* mutable_message_info();
+  ::GstDebugger::MessageInfo* release_message_info();
+  void set_allocated_message_info(::GstDebugger::MessageInfo* message_info);
+
+  // optional .GstDebugger.Command confirmation = 6;
+  bool has_confirmation() const;
+  void clear_confirmation();
+  static const int kConfirmationFieldNumber = 6;
+  const ::GstDebugger::Command& confirmation() const;
+  ::GstDebugger::Command* mutable_confirmation();
+  ::GstDebugger::Command* release_confirmation();
+  void set_allocated_confirmation(::GstDebugger::Command* confirmation);
+
+  // optional .GstDebugger.EventInfo event_info = 7;
+  bool has_event_info() const;
+  void clear_event_info();
+  static const int kEventInfoFieldNumber = 7;
+  const ::GstDebugger::EventInfo& event_info() const;
+  ::GstDebugger::EventInfo* mutable_event_info();
+  ::GstDebugger::EventInfo* release_event_info();
+  void set_allocated_event_info(::GstDebugger::EventInfo* event_info);
+
+  // optional .GstDebugger.TopologyInfo topology_info = 8;
+  bool has_topology_info() const;
+  void clear_topology_info();
+  static const int kTopologyInfoFieldNumber = 8;
+  const ::GstDebugger::TopologyInfo& topology_info() const;
+  ::GstDebugger::TopologyInfo* mutable_topology_info();
+  ::GstDebugger::TopologyInfo* release_topology_info();
+  void set_allocated_topology_info(::GstDebugger::TopologyInfo* topology_info);
+
+  // optional .GstDebugger.QueryInfo query_info = 9;
+  bool has_query_info() const;
+  void clear_query_info();
+  static const int kQueryInfoFieldNumber = 9;
+  const ::GstDebugger::QueryInfo& query_info() const;
+  ::GstDebugger::QueryInfo* mutable_query_info();
+  ::GstDebugger::QueryInfo* release_query_info();
+  void set_allocated_query_info(::GstDebugger::QueryInfo* query_info);
+
+  // optional .GstDebugger.PropertyValue property_value = 10;
+  bool has_property_value() const;
+  void clear_property_value();
+  static const int kPropertyValueFieldNumber = 10;
+  const ::GstDebugger::PropertyValue& property_value() const;
+  ::GstDebugger::PropertyValue* mutable_property_value();
+  ::GstDebugger::PropertyValue* release_property_value();
+  void set_allocated_property_value(::GstDebugger::PropertyValue* property_value);
+
+  // optional .GstDebugger.ElementKlass element_klass = 11;
+  bool has_element_klass() const;
+  void clear_element_klass();
+  static const int kElementKlassFieldNumber = 11;
+  const ::GstDebugger::ElementKlass& element_klass() const;
+  ::GstDebugger::ElementKlass* mutable_element_klass();
+  ::GstDebugger::ElementKlass* release_element_klass();
+  void set_allocated_element_klass(::GstDebugger::ElementKlass* element_klass);
+
+  // optional .GstDebugger.BufferInfo buffer_info = 12;
+  bool has_buffer_info() const;
+  void clear_buffer_info();
+  static const int kBufferInfoFieldNumber = 12;
+  const ::GstDebugger::BufferInfo& buffer_info() const;
+  ::GstDebugger::BufferInfo* mutable_buffer_info();
+  ::GstDebugger::BufferInfo* release_buffer_info();
+  void set_allocated_buffer_info(::GstDebugger::BufferInfo* buffer_info);
+
+  // optional .GstDebugger.PadDynamicInfo pad_dynamic_info = 13;
+  bool has_pad_dynamic_info() const;
+  void clear_pad_dynamic_info();
+  static const int kPadDynamicInfoFieldNumber = 13;
+  const ::GstDebugger::PadDynamicInfo& pad_dynamic_info() const;
+  ::GstDebugger::PadDynamicInfo* mutable_pad_dynamic_info();
+  ::GstDebugger::PadDynamicInfo* release_pad_dynamic_info();
+  void set_allocated_pad_dynamic_info(::GstDebugger::PadDynamicInfo* pad_dynamic_info);
+
+  InfoTypeCase info_type_case() const;
+  // @@protoc_insertion_point(class_scope:GstDebugger.GStreamerData)
+ private:
+  void set_has_debug_categories();
+  void set_has_log_info();
+  void set_has_enum_flags_type();
+  void set_has_factory();
+  void set_has_message_info();
+  void set_has_confirmation();
+  void set_has_event_info();
+  void set_has_topology_info();
+  void set_has_query_info();
+  void set_has_property_value();
+  void set_has_element_klass();
+  void set_has_buffer_info();
+  void set_has_pad_dynamic_info();
+
+  inline bool has_info_type() const;
+  void clear_info_type();
+  inline void clear_has_info_type();
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  ::google::protobuf::internal::HasBits<1> _has_bits_;
+  mutable int _cached_size_;
+  union InfoTypeUnion {
+    InfoTypeUnion() {}
+    ::GstDebugger::DebugCategories* debug_categories_;
+    ::GstDebugger::LogInfo* log_info_;
+    ::GstDebugger::EnumFlagsType* enum_flags_type_;
+    ::GstDebugger::FactoryType* factory_;
+    ::GstDebugger::MessageInfo* message_info_;
+    ::GstDebugger::Command* confirmation_;
+    ::GstDebugger::EventInfo* event_info_;
+    ::GstDebugger::TopologyInfo* topology_info_;
+    ::GstDebugger::QueryInfo* query_info_;
+    ::GstDebugger::PropertyValue* property_value_;
+    ::GstDebugger::ElementKlass* element_klass_;
+    ::GstDebugger::BufferInfo* buffer_info_;
+    ::GstDebugger::PadDynamicInfo* pad_dynamic_info_;
+  } info_type_;
+  ::google::protobuf::uint32 _oneof_case_[1];
+
+  friend struct  protobuf_gstdebugger_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+// Value
+
+// required uint64 gtype = 1;
+inline bool Value::has_gtype() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+inline void Value::set_has_gtype() {
+  _has_bits_[0] |= 0x00000004u;
+}
+inline void Value::clear_has_gtype() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+inline void Value::clear_gtype() {
+  gtype_ = GOOGLE_ULONGLONG(0);
+  clear_has_gtype();
+}
+inline ::google::protobuf::uint64 Value::gtype() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.Value.gtype)
+  return gtype_;
+}
+inline void Value::set_gtype(::google::protobuf::uint64 value) {
+  set_has_gtype();
+  gtype_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.Value.gtype)
+}
+
+// optional int32 internal_type = 2;
+inline bool Value::has_internal_type() const {
+  return (_has_bits_[0] & 0x00000008u) != 0;
+}
+inline void Value::set_has_internal_type() {
+  _has_bits_[0] |= 0x00000008u;
+}
+inline void Value::clear_has_internal_type() {
+  _has_bits_[0] &= ~0x00000008u;
+}
+inline void Value::clear_internal_type() {
+  internal_type_ = 0;
+  clear_has_internal_type();
+}
+inline ::google::protobuf::int32 Value::internal_type() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.Value.internal_type)
+  return internal_type_;
+}
+inline void Value::set_internal_type(::google::protobuf::int32 value) {
+  set_has_internal_type();
+  internal_type_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.Value.internal_type)
+}
+
+// required bytes data = 3;
+inline bool Value::has_data() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void Value::set_has_data() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void Value::clear_has_data() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void Value::clear_data() {
+  data_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_data();
+}
+inline const ::std::string& Value::data() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.Value.data)
+  return data_.GetNoArena();
+}
+inline void Value::set_data(const ::std::string& value) {
+  set_has_data();
+  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.Value.data)
+}
+#if LANG_CXX11
+inline void Value::set_data(::std::string&& value) {
+  set_has_data();
+  data_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.Value.data)
+}
+#endif
+inline void Value::set_data(const char* value) {
+  set_has_data();
+  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.Value.data)
+}
+inline void Value::set_data(const void* value, size_t size) {
+  set_has_data();
+  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.Value.data)
+}
+inline ::std::string* Value::mutable_data() {
+  set_has_data();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.Value.data)
+  return data_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* Value::release_data() {
+  // @@protoc_insertion_point(field_release:GstDebugger.Value.data)
+  clear_has_data();
+  return data_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Value::set_allocated_data(::std::string* data) {
+  if (data != NULL) {
+    set_has_data();
+  } else {
+    clear_has_data();
+  }
+  data_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), data);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.Value.data)
+}
+
+// required string type_name = 4;
+inline bool Value::has_type_name() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void Value::set_has_type_name() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void Value::clear_has_type_name() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void Value::clear_type_name() {
+  type_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_type_name();
+}
+inline const ::std::string& Value::type_name() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.Value.type_name)
+  return type_name_.GetNoArena();
+}
+inline void Value::set_type_name(const ::std::string& value) {
+  set_has_type_name();
+  type_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.Value.type_name)
+}
+#if LANG_CXX11
+inline void Value::set_type_name(::std::string&& value) {
+  set_has_type_name();
+  type_name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.Value.type_name)
+}
+#endif
+inline void Value::set_type_name(const char* value) {
+  set_has_type_name();
+  type_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.Value.type_name)
+}
+inline void Value::set_type_name(const char* value, size_t size) {
+  set_has_type_name();
+  type_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.Value.type_name)
+}
+inline ::std::string* Value::mutable_type_name() {
+  set_has_type_name();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.Value.type_name)
+  return type_name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* Value::release_type_name() {
+  // @@protoc_insertion_point(field_release:GstDebugger.Value.type_name)
+  clear_has_type_name();
+  return type_name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void Value::set_allocated_type_name(::std::string* type_name) {
+  if (type_name != NULL) {
+    set_has_type_name();
+  } else {
+    clear_has_type_name();
+  }
+  type_name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), type_name);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.Value.type_name)
+}
+
+// -------------------------------------------------------------------
+
+// PropertyInfo
+
+// required string name = 1;
+inline bool PropertyInfo::has_name() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void PropertyInfo::set_has_name() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void PropertyInfo::clear_has_name() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void PropertyInfo::clear_name() {
+  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_name();
+}
+inline const ::std::string& PropertyInfo::name() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PropertyInfo.name)
+  return name_.GetNoArena();
+}
+inline void PropertyInfo::set_name(const ::std::string& value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.PropertyInfo.name)
+}
+#if LANG_CXX11
+inline void PropertyInfo::set_name(::std::string&& value) {
+  set_has_name();
+  name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.PropertyInfo.name)
+}
+#endif
+inline void PropertyInfo::set_name(const char* value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.PropertyInfo.name)
+}
+inline void PropertyInfo::set_name(const char* value, size_t size) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.PropertyInfo.name)
+}
+inline ::std::string* PropertyInfo::mutable_name() {
+  set_has_name();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PropertyInfo.name)
+  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* PropertyInfo::release_name() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PropertyInfo.name)
+  clear_has_name();
+  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void PropertyInfo::set_allocated_name(::std::string* name) {
+  if (name != NULL) {
+    set_has_name();
+  } else {
+    clear_has_name();
+  }
+  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PropertyInfo.name)
+}
+
+// required string nick = 2;
+inline bool PropertyInfo::has_nick() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void PropertyInfo::set_has_nick() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void PropertyInfo::clear_has_nick() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void PropertyInfo::clear_nick() {
+  nick_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_nick();
+}
+inline const ::std::string& PropertyInfo::nick() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PropertyInfo.nick)
+  return nick_.GetNoArena();
+}
+inline void PropertyInfo::set_nick(const ::std::string& value) {
+  set_has_nick();
+  nick_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.PropertyInfo.nick)
+}
+#if LANG_CXX11
+inline void PropertyInfo::set_nick(::std::string&& value) {
+  set_has_nick();
+  nick_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.PropertyInfo.nick)
+}
+#endif
+inline void PropertyInfo::set_nick(const char* value) {
+  set_has_nick();
+  nick_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.PropertyInfo.nick)
+}
+inline void PropertyInfo::set_nick(const char* value, size_t size) {
+  set_has_nick();
+  nick_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.PropertyInfo.nick)
+}
+inline ::std::string* PropertyInfo::mutable_nick() {
+  set_has_nick();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PropertyInfo.nick)
+  return nick_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* PropertyInfo::release_nick() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PropertyInfo.nick)
+  clear_has_nick();
+  return nick_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void PropertyInfo::set_allocated_nick(::std::string* nick) {
+  if (nick != NULL) {
+    set_has_nick();
+  } else {
+    clear_has_nick();
+  }
+  nick_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), nick);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PropertyInfo.nick)
+}
+
+// required string blurb = 3;
+inline bool PropertyInfo::has_blurb() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+inline void PropertyInfo::set_has_blurb() {
+  _has_bits_[0] |= 0x00000004u;
+}
+inline void PropertyInfo::clear_has_blurb() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+inline void PropertyInfo::clear_blurb() {
+  blurb_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_blurb();
+}
+inline const ::std::string& PropertyInfo::blurb() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PropertyInfo.blurb)
+  return blurb_.GetNoArena();
+}
+inline void PropertyInfo::set_blurb(const ::std::string& value) {
+  set_has_blurb();
+  blurb_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.PropertyInfo.blurb)
+}
+#if LANG_CXX11
+inline void PropertyInfo::set_blurb(::std::string&& value) {
+  set_has_blurb();
+  blurb_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.PropertyInfo.blurb)
+}
+#endif
+inline void PropertyInfo::set_blurb(const char* value) {
+  set_has_blurb();
+  blurb_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.PropertyInfo.blurb)
+}
+inline void PropertyInfo::set_blurb(const char* value, size_t size) {
+  set_has_blurb();
+  blurb_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.PropertyInfo.blurb)
+}
+inline ::std::string* PropertyInfo::mutable_blurb() {
+  set_has_blurb();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PropertyInfo.blurb)
+  return blurb_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* PropertyInfo::release_blurb() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PropertyInfo.blurb)
+  clear_has_blurb();
+  return blurb_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void PropertyInfo::set_allocated_blurb(::std::string* blurb) {
+  if (blurb != NULL) {
+    set_has_blurb();
+  } else {
+    clear_has_blurb();
+  }
+  blurb_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), blurb);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PropertyInfo.blurb)
+}
+
+// required int32 flags = 4;
+inline bool PropertyInfo::has_flags() const {
+  return (_has_bits_[0] & 0x00000010u) != 0;
+}
+inline void PropertyInfo::set_has_flags() {
+  _has_bits_[0] |= 0x00000010u;
+}
+inline void PropertyInfo::clear_has_flags() {
+  _has_bits_[0] &= ~0x00000010u;
+}
+inline void PropertyInfo::clear_flags() {
+  flags_ = 0;
+  clear_has_flags();
+}
+inline ::google::protobuf::int32 PropertyInfo::flags() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PropertyInfo.flags)
+  return flags_;
+}
+inline void PropertyInfo::set_flags(::google::protobuf::int32 value) {
+  set_has_flags();
+  flags_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.PropertyInfo.flags)
+}
+
+// required .GstDebugger.Value default_value = 5;
+inline bool PropertyInfo::has_default_value() const {
+  return (_has_bits_[0] & 0x00000008u) != 0;
+}
+inline void PropertyInfo::set_has_default_value() {
+  _has_bits_[0] |= 0x00000008u;
+}
+inline void PropertyInfo::clear_has_default_value() {
+  _has_bits_[0] &= ~0x00000008u;
+}
+inline void PropertyInfo::clear_default_value() {
+  if (default_value_ != NULL) default_value_->::GstDebugger::Value::Clear();
+  clear_has_default_value();
+}
+inline const ::GstDebugger::Value& PropertyInfo::default_value() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PropertyInfo.default_value)
+  return default_value_ != NULL ? *default_value_
+                         : *::GstDebugger::Value::internal_default_instance();
+}
+inline ::GstDebugger::Value* PropertyInfo::mutable_default_value() {
+  set_has_default_value();
+  if (default_value_ == NULL) {
+    default_value_ = new ::GstDebugger::Value;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PropertyInfo.default_value)
+  return default_value_;
+}
+inline ::GstDebugger::Value* PropertyInfo::release_default_value() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PropertyInfo.default_value)
+  clear_has_default_value();
+  ::GstDebugger::Value* temp = default_value_;
+  default_value_ = NULL;
+  return temp;
+}
+inline void PropertyInfo::set_allocated_default_value(::GstDebugger::Value* default_value) {
+  delete default_value_;
+  default_value_ = default_value;
+  if (default_value) {
+    set_has_default_value();
+  } else {
+    clear_has_default_value();
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PropertyInfo.default_value)
+}
+
+// -------------------------------------------------------------------
+
+// PropertyValue
+
+// required string name = 1;
+inline bool PropertyValue::has_name() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void PropertyValue::set_has_name() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void PropertyValue::clear_has_name() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void PropertyValue::clear_name() {
+  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_name();
+}
+inline const ::std::string& PropertyValue::name() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PropertyValue.name)
+  return name_.GetNoArena();
+}
+inline void PropertyValue::set_name(const ::std::string& value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.PropertyValue.name)
+}
+#if LANG_CXX11
+inline void PropertyValue::set_name(::std::string&& value) {
+  set_has_name();
+  name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.PropertyValue.name)
+}
+#endif
+inline void PropertyValue::set_name(const char* value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.PropertyValue.name)
+}
+inline void PropertyValue::set_name(const char* value, size_t size) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.PropertyValue.name)
+}
+inline ::std::string* PropertyValue::mutable_name() {
+  set_has_name();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PropertyValue.name)
+  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* PropertyValue::release_name() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PropertyValue.name)
+  clear_has_name();
+  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void PropertyValue::set_allocated_name(::std::string* name) {
+  if (name != NULL) {
+    set_has_name();
+  } else {
+    clear_has_name();
+  }
+  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PropertyValue.name)
+}
+
+// required string object = 2;
+inline bool PropertyValue::has_object() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void PropertyValue::set_has_object() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void PropertyValue::clear_has_object() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void PropertyValue::clear_object() {
+  object_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_object();
+}
+inline const ::std::string& PropertyValue::object() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PropertyValue.object)
+  return object_.GetNoArena();
+}
+inline void PropertyValue::set_object(const ::std::string& value) {
+  set_has_object();
+  object_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.PropertyValue.object)
+}
+#if LANG_CXX11
+inline void PropertyValue::set_object(::std::string&& value) {
+  set_has_object();
+  object_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.PropertyValue.object)
+}
+#endif
+inline void PropertyValue::set_object(const char* value) {
+  set_has_object();
+  object_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.PropertyValue.object)
+}
+inline void PropertyValue::set_object(const char* value, size_t size) {
+  set_has_object();
+  object_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.PropertyValue.object)
+}
+inline ::std::string* PropertyValue::mutable_object() {
+  set_has_object();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PropertyValue.object)
+  return object_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* PropertyValue::release_object() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PropertyValue.object)
+  clear_has_object();
+  return object_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void PropertyValue::set_allocated_object(::std::string* object) {
+  if (object != NULL) {
+    set_has_object();
+  } else {
+    clear_has_object();
+  }
+  object_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), object);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PropertyValue.object)
+}
+
+// required .GstDebugger.Value value = 3;
+inline bool PropertyValue::has_value() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+inline void PropertyValue::set_has_value() {
+  _has_bits_[0] |= 0x00000004u;
+}
+inline void PropertyValue::clear_has_value() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+inline void PropertyValue::clear_value() {
+  if (value_ != NULL) value_->::GstDebugger::Value::Clear();
+  clear_has_value();
+}
+inline const ::GstDebugger::Value& PropertyValue::value() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PropertyValue.value)
+  return value_ != NULL ? *value_
+                         : *::GstDebugger::Value::internal_default_instance();
+}
+inline ::GstDebugger::Value* PropertyValue::mutable_value() {
+  set_has_value();
+  if (value_ == NULL) {
+    value_ = new ::GstDebugger::Value;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PropertyValue.value)
+  return value_;
+}
+inline ::GstDebugger::Value* PropertyValue::release_value() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PropertyValue.value)
+  clear_has_value();
+  ::GstDebugger::Value* temp = value_;
+  value_ = NULL;
+  return temp;
+}
+inline void PropertyValue::set_allocated_value(::GstDebugger::Value* value) {
+  delete value_;
+  value_ = value;
+  if (value) {
+    set_has_value();
+  } else {
+    clear_has_value();
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PropertyValue.value)
+}
+
+// -------------------------------------------------------------------
+
+// PropertyRequest
+
+// optional string name = 1;
+inline bool PropertyRequest::has_name() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void PropertyRequest::set_has_name() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void PropertyRequest::clear_has_name() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void PropertyRequest::clear_name() {
+  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_name();
+}
+inline const ::std::string& PropertyRequest::name() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PropertyRequest.name)
+  return name_.GetNoArena();
+}
+inline void PropertyRequest::set_name(const ::std::string& value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.PropertyRequest.name)
+}
+#if LANG_CXX11
+inline void PropertyRequest::set_name(::std::string&& value) {
+  set_has_name();
+  name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.PropertyRequest.name)
+}
+#endif
+inline void PropertyRequest::set_name(const char* value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.PropertyRequest.name)
+}
+inline void PropertyRequest::set_name(const char* value, size_t size) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.PropertyRequest.name)
+}
+inline ::std::string* PropertyRequest::mutable_name() {
+  set_has_name();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PropertyRequest.name)
+  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* PropertyRequest::release_name() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PropertyRequest.name)
+  clear_has_name();
+  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void PropertyRequest::set_allocated_name(::std::string* name) {
+  if (name != NULL) {
+    set_has_name();
+  } else {
+    clear_has_name();
+  }
+  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PropertyRequest.name)
+}
+
+// required string object = 2;
+inline bool PropertyRequest::has_object() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void PropertyRequest::set_has_object() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void PropertyRequest::clear_has_object() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void PropertyRequest::clear_object() {
+  object_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_object();
+}
+inline const ::std::string& PropertyRequest::object() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PropertyRequest.object)
+  return object_.GetNoArena();
+}
+inline void PropertyRequest::set_object(const ::std::string& value) {
+  set_has_object();
+  object_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.PropertyRequest.object)
+}
+#if LANG_CXX11
+inline void PropertyRequest::set_object(::std::string&& value) {
+  set_has_object();
+  object_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.PropertyRequest.object)
+}
+#endif
+inline void PropertyRequest::set_object(const char* value) {
+  set_has_object();
+  object_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.PropertyRequest.object)
+}
+inline void PropertyRequest::set_object(const char* value, size_t size) {
+  set_has_object();
+  object_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.PropertyRequest.object)
+}
+inline ::std::string* PropertyRequest::mutable_object() {
+  set_has_object();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PropertyRequest.object)
+  return object_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* PropertyRequest::release_object() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PropertyRequest.object)
+  clear_has_object();
+  return object_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void PropertyRequest::set_allocated_object(::std::string* object) {
+  if (object != NULL) {
+    set_has_object();
+  } else {
+    clear_has_object();
+  }
+  object_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), object);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PropertyRequest.object)
+}
+
+// -------------------------------------------------------------------
+
+// MessageInfo
+
+// required int32 type = 1;
+inline bool MessageInfo::has_type() const {
+  return (_has_bits_[0] & 0x00000008u) != 0;
+}
+inline void MessageInfo::set_has_type() {
+  _has_bits_[0] |= 0x00000008u;
+}
+inline void MessageInfo::clear_has_type() {
+  _has_bits_[0] &= ~0x00000008u;
+}
+inline void MessageInfo::clear_type() {
+  type_ = 0;
+  clear_has_type();
+}
+inline ::google::protobuf::int32 MessageInfo::type() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.MessageInfo.type)
+  return type_;
+}
+inline void MessageInfo::set_type(::google::protobuf::int32 value) {
+  set_has_type();
+  type_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.MessageInfo.type)
+}
+
+// required uint64 timestamp = 2;
+inline bool MessageInfo::has_timestamp() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+inline void MessageInfo::set_has_timestamp() {
+  _has_bits_[0] |= 0x00000004u;
+}
+inline void MessageInfo::clear_has_timestamp() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+inline void MessageInfo::clear_timestamp() {
+  timestamp_ = GOOGLE_ULONGLONG(0);
+  clear_has_timestamp();
+}
+inline ::google::protobuf::uint64 MessageInfo::timestamp() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.MessageInfo.timestamp)
+  return timestamp_;
+}
+inline void MessageInfo::set_timestamp(::google::protobuf::uint64 value) {
+  set_has_timestamp();
+  timestamp_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.MessageInfo.timestamp)
+}
+
+// required string source = 3;
+inline bool MessageInfo::has_source() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void MessageInfo::set_has_source() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void MessageInfo::clear_has_source() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void MessageInfo::clear_source() {
+  source_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_source();
+}
+inline const ::std::string& MessageInfo::source() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.MessageInfo.source)
+  return source_.GetNoArena();
+}
+inline void MessageInfo::set_source(const ::std::string& value) {
+  set_has_source();
+  source_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.MessageInfo.source)
+}
+#if LANG_CXX11
+inline void MessageInfo::set_source(::std::string&& value) {
+  set_has_source();
+  source_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.MessageInfo.source)
+}
+#endif
+inline void MessageInfo::set_source(const char* value) {
+  set_has_source();
+  source_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.MessageInfo.source)
+}
+inline void MessageInfo::set_source(const char* value, size_t size) {
+  set_has_source();
+  source_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.MessageInfo.source)
+}
+inline ::std::string* MessageInfo::mutable_source() {
+  set_has_source();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.MessageInfo.source)
+  return source_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* MessageInfo::release_source() {
+  // @@protoc_insertion_point(field_release:GstDebugger.MessageInfo.source)
+  clear_has_source();
+  return source_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void MessageInfo::set_allocated_source(::std::string* source) {
+  if (source != NULL) {
+    set_has_source();
+  } else {
+    clear_has_source();
+  }
+  source_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), source);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.MessageInfo.source)
+}
+
+// required uint32 seqnum = 4;
+inline bool MessageInfo::has_seqnum() const {
+  return (_has_bits_[0] & 0x00000010u) != 0;
+}
+inline void MessageInfo::set_has_seqnum() {
+  _has_bits_[0] |= 0x00000010u;
+}
+inline void MessageInfo::clear_has_seqnum() {
+  _has_bits_[0] &= ~0x00000010u;
+}
+inline void MessageInfo::clear_seqnum() {
+  seqnum_ = 0u;
+  clear_has_seqnum();
+}
+inline ::google::protobuf::uint32 MessageInfo::seqnum() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.MessageInfo.seqnum)
+  return seqnum_;
+}
+inline void MessageInfo::set_seqnum(::google::protobuf::uint32 value) {
+  set_has_seqnum();
+  seqnum_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.MessageInfo.seqnum)
+}
+
+// required bytes structure_data = 5;
+inline bool MessageInfo::has_structure_data() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void MessageInfo::set_has_structure_data() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void MessageInfo::clear_has_structure_data() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void MessageInfo::clear_structure_data() {
+  structure_data_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_structure_data();
+}
+inline const ::std::string& MessageInfo::structure_data() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.MessageInfo.structure_data)
+  return structure_data_.GetNoArena();
+}
+inline void MessageInfo::set_structure_data(const ::std::string& value) {
+  set_has_structure_data();
+  structure_data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.MessageInfo.structure_data)
+}
+#if LANG_CXX11
+inline void MessageInfo::set_structure_data(::std::string&& value) {
+  set_has_structure_data();
+  structure_data_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.MessageInfo.structure_data)
+}
+#endif
+inline void MessageInfo::set_structure_data(const char* value) {
+  set_has_structure_data();
+  structure_data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.MessageInfo.structure_data)
+}
+inline void MessageInfo::set_structure_data(const void* value, size_t size) {
+  set_has_structure_data();
+  structure_data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.MessageInfo.structure_data)
+}
+inline ::std::string* MessageInfo::mutable_structure_data() {
+  set_has_structure_data();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.MessageInfo.structure_data)
+  return structure_data_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* MessageInfo::release_structure_data() {
+  // @@protoc_insertion_point(field_release:GstDebugger.MessageInfo.structure_data)
+  clear_has_structure_data();
+  return structure_data_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void MessageInfo::set_allocated_structure_data(::std::string* structure_data) {
+  if (structure_data != NULL) {
+    set_has_structure_data();
+  } else {
+    clear_has_structure_data();
+  }
+  structure_data_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
structure_data);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.MessageInfo.structure_data)
+}
+
+// -------------------------------------------------------------------
+
+// EventInfo
+
+// required int32 type = 1;
+inline bool EventInfo::has_type() const {
+  return (_has_bits_[0] & 0x00000008u) != 0;
+}
+inline void EventInfo::set_has_type() {
+  _has_bits_[0] |= 0x00000008u;
+}
+inline void EventInfo::clear_has_type() {
+  _has_bits_[0] &= ~0x00000008u;
+}
+inline void EventInfo::clear_type() {
+  type_ = 0;
+  clear_has_type();
+}
+inline ::google::protobuf::int32 EventInfo::type() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.EventInfo.type)
+  return type_;
+}
+inline void EventInfo::set_type(::google::protobuf::int32 value) {
+  set_has_type();
+  type_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.EventInfo.type)
+}
+
+// required uint64 timestamp = 2;
+inline bool EventInfo::has_timestamp() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+inline void EventInfo::set_has_timestamp() {
+  _has_bits_[0] |= 0x00000004u;
+}
+inline void EventInfo::clear_has_timestamp() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+inline void EventInfo::clear_timestamp() {
+  timestamp_ = GOOGLE_ULONGLONG(0);
+  clear_has_timestamp();
+}
+inline ::google::protobuf::uint64 EventInfo::timestamp() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.EventInfo.timestamp)
+  return timestamp_;
+}
+inline void EventInfo::set_timestamp(::google::protobuf::uint64 value) {
+  set_has_timestamp();
+  timestamp_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.EventInfo.timestamp)
+}
+
+// required uint32 seqnum = 3;
+inline bool EventInfo::has_seqnum() const {
+  return (_has_bits_[0] & 0x00000010u) != 0;
+}
+inline void EventInfo::set_has_seqnum() {
+  _has_bits_[0] |= 0x00000010u;
+}
+inline void EventInfo::clear_has_seqnum() {
+  _has_bits_[0] &= ~0x00000010u;
+}
+inline void EventInfo::clear_seqnum() {
+  seqnum_ = 0u;
+  clear_has_seqnum();
+}
+inline ::google::protobuf::uint32 EventInfo::seqnum() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.EventInfo.seqnum)
+  return seqnum_;
+}
+inline void EventInfo::set_seqnum(::google::protobuf::uint32 value) {
+  set_has_seqnum();
+  seqnum_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.EventInfo.seqnum)
+}
+
+// required string pad = 4;
+inline bool EventInfo::has_pad() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void EventInfo::set_has_pad() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void EventInfo::clear_has_pad() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void EventInfo::clear_pad() {
+  pad_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_pad();
+}
+inline const ::std::string& EventInfo::pad() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.EventInfo.pad)
+  return pad_.GetNoArena();
+}
+inline void EventInfo::set_pad(const ::std::string& value) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.EventInfo.pad)
+}
+#if LANG_CXX11
+inline void EventInfo::set_pad(::std::string&& value) {
+  set_has_pad();
+  pad_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.EventInfo.pad)
+}
+#endif
+inline void EventInfo::set_pad(const char* value) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.EventInfo.pad)
+}
+inline void EventInfo::set_pad(const char* value, size_t size) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.EventInfo.pad)
+}
+inline ::std::string* EventInfo::mutable_pad() {
+  set_has_pad();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.EventInfo.pad)
+  return pad_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* EventInfo::release_pad() {
+  // @@protoc_insertion_point(field_release:GstDebugger.EventInfo.pad)
+  clear_has_pad();
+  return pad_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void EventInfo::set_allocated_pad(::std::string* pad) {
+  if (pad != NULL) {
+    set_has_pad();
+  } else {
+    clear_has_pad();
+  }
+  pad_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), pad);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.EventInfo.pad)
+}
+
+// required bytes structure_data = 5;
+inline bool EventInfo::has_structure_data() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void EventInfo::set_has_structure_data() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void EventInfo::clear_has_structure_data() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void EventInfo::clear_structure_data() {
+  structure_data_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_structure_data();
+}
+inline const ::std::string& EventInfo::structure_data() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.EventInfo.structure_data)
+  return structure_data_.GetNoArena();
+}
+inline void EventInfo::set_structure_data(const ::std::string& value) {
+  set_has_structure_data();
+  structure_data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.EventInfo.structure_data)
+}
+#if LANG_CXX11
+inline void EventInfo::set_structure_data(::std::string&& value) {
+  set_has_structure_data();
+  structure_data_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.EventInfo.structure_data)
+}
+#endif
+inline void EventInfo::set_structure_data(const char* value) {
+  set_has_structure_data();
+  structure_data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.EventInfo.structure_data)
+}
+inline void EventInfo::set_structure_data(const void* value, size_t size) {
+  set_has_structure_data();
+  structure_data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.EventInfo.structure_data)
+}
+inline ::std::string* EventInfo::mutable_structure_data() {
+  set_has_structure_data();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.EventInfo.structure_data)
+  return structure_data_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* EventInfo::release_structure_data() {
+  // @@protoc_insertion_point(field_release:GstDebugger.EventInfo.structure_data)
+  clear_has_structure_data();
+  return structure_data_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void EventInfo::set_allocated_structure_data(::std::string* structure_data) {
+  if (structure_data != NULL) {
+    set_has_structure_data();
+  } else {
+    clear_has_structure_data();
+  }
+  structure_data_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
structure_data);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.EventInfo.structure_data)
+}
+
+// -------------------------------------------------------------------
+
+// QueryInfo
+
+// required int32 type = 1;
+inline bool QueryInfo::has_type() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+inline void QueryInfo::set_has_type() {
+  _has_bits_[0] |= 0x00000004u;
+}
+inline void QueryInfo::clear_has_type() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+inline void QueryInfo::clear_type() {
+  type_ = 0;
+  clear_has_type();
+}
+inline ::google::protobuf::int32 QueryInfo::type() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.QueryInfo.type)
+  return type_;
+}
+inline void QueryInfo::set_type(::google::protobuf::int32 value) {
+  set_has_type();
+  type_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.QueryInfo.type)
+}
+
+// required string pad = 2;
+inline bool QueryInfo::has_pad() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void QueryInfo::set_has_pad() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void QueryInfo::clear_has_pad() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void QueryInfo::clear_pad() {
+  pad_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_pad();
+}
+inline const ::std::string& QueryInfo::pad() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.QueryInfo.pad)
+  return pad_.GetNoArena();
+}
+inline void QueryInfo::set_pad(const ::std::string& value) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.QueryInfo.pad)
+}
+#if LANG_CXX11
+inline void QueryInfo::set_pad(::std::string&& value) {
+  set_has_pad();
+  pad_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.QueryInfo.pad)
+}
+#endif
+inline void QueryInfo::set_pad(const char* value) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.QueryInfo.pad)
+}
+inline void QueryInfo::set_pad(const char* value, size_t size) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.QueryInfo.pad)
+}
+inline ::std::string* QueryInfo::mutable_pad() {
+  set_has_pad();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.QueryInfo.pad)
+  return pad_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* QueryInfo::release_pad() {
+  // @@protoc_insertion_point(field_release:GstDebugger.QueryInfo.pad)
+  clear_has_pad();
+  return pad_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void QueryInfo::set_allocated_pad(::std::string* pad) {
+  if (pad != NULL) {
+    set_has_pad();
+  } else {
+    clear_has_pad();
+  }
+  pad_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), pad);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.QueryInfo.pad)
+}
+
+// required bytes structure_data = 3;
+inline bool QueryInfo::has_structure_data() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void QueryInfo::set_has_structure_data() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void QueryInfo::clear_has_structure_data() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void QueryInfo::clear_structure_data() {
+  structure_data_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_structure_data();
+}
+inline const ::std::string& QueryInfo::structure_data() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.QueryInfo.structure_data)
+  return structure_data_.GetNoArena();
+}
+inline void QueryInfo::set_structure_data(const ::std::string& value) {
+  set_has_structure_data();
+  structure_data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.QueryInfo.structure_data)
+}
+#if LANG_CXX11
+inline void QueryInfo::set_structure_data(::std::string&& value) {
+  set_has_structure_data();
+  structure_data_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.QueryInfo.structure_data)
+}
+#endif
+inline void QueryInfo::set_structure_data(const char* value) {
+  set_has_structure_data();
+  structure_data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.QueryInfo.structure_data)
+}
+inline void QueryInfo::set_structure_data(const void* value, size_t size) {
+  set_has_structure_data();
+  structure_data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.QueryInfo.structure_data)
+}
+inline ::std::string* QueryInfo::mutable_structure_data() {
+  set_has_structure_data();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.QueryInfo.structure_data)
+  return structure_data_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* QueryInfo::release_structure_data() {
+  // @@protoc_insertion_point(field_release:GstDebugger.QueryInfo.structure_data)
+  clear_has_structure_data();
+  return structure_data_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void QueryInfo::set_allocated_structure_data(::std::string* structure_data) {
+  if (structure_data != NULL) {
+    set_has_structure_data();
+  } else {
+    clear_has_structure_data();
+  }
+  structure_data_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
structure_data);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.QueryInfo.structure_data)
+}
+
+// -------------------------------------------------------------------
+
+// BufferInfo
+
+// required uint64 pts = 1;
+inline bool BufferInfo::has_pts() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+inline void BufferInfo::set_has_pts() {
+  _has_bits_[0] |= 0x00000004u;
+}
+inline void BufferInfo::clear_has_pts() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+inline void BufferInfo::clear_pts() {
+  pts_ = GOOGLE_ULONGLONG(0);
+  clear_has_pts();
+}
+inline ::google::protobuf::uint64 BufferInfo::pts() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.BufferInfo.pts)
+  return pts_;
+}
+inline void BufferInfo::set_pts(::google::protobuf::uint64 value) {
+  set_has_pts();
+  pts_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.BufferInfo.pts)
+}
+
+// required uint64 dts = 2;
+inline bool BufferInfo::has_dts() const {
+  return (_has_bits_[0] & 0x00000008u) != 0;
+}
+inline void BufferInfo::set_has_dts() {
+  _has_bits_[0] |= 0x00000008u;
+}
+inline void BufferInfo::clear_has_dts() {
+  _has_bits_[0] &= ~0x00000008u;
+}
+inline void BufferInfo::clear_dts() {
+  dts_ = GOOGLE_ULONGLONG(0);
+  clear_has_dts();
+}
+inline ::google::protobuf::uint64 BufferInfo::dts() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.BufferInfo.dts)
+  return dts_;
+}
+inline void BufferInfo::set_dts(::google::protobuf::uint64 value) {
+  set_has_dts();
+  dts_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.BufferInfo.dts)
+}
+
+// required uint64 duration = 3;
+inline bool BufferInfo::has_duration() const {
+  return (_has_bits_[0] & 0x00000010u) != 0;
+}
+inline void BufferInfo::set_has_duration() {
+  _has_bits_[0] |= 0x00000010u;
+}
+inline void BufferInfo::clear_has_duration() {
+  _has_bits_[0] &= ~0x00000010u;
+}
+inline void BufferInfo::clear_duration() {
+  duration_ = GOOGLE_ULONGLONG(0);
+  clear_has_duration();
+}
+inline ::google::protobuf::uint64 BufferInfo::duration() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.BufferInfo.duration)
+  return duration_;
+}
+inline void BufferInfo::set_duration(::google::protobuf::uint64 value) {
+  set_has_duration();
+  duration_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.BufferInfo.duration)
+}
+
+// required uint64 offset = 4;
+inline bool BufferInfo::has_offset() const {
+  return (_has_bits_[0] & 0x00000020u) != 0;
+}
+inline void BufferInfo::set_has_offset() {
+  _has_bits_[0] |= 0x00000020u;
+}
+inline void BufferInfo::clear_has_offset() {
+  _has_bits_[0] &= ~0x00000020u;
+}
+inline void BufferInfo::clear_offset() {
+  offset_ = GOOGLE_ULONGLONG(0);
+  clear_has_offset();
+}
+inline ::google::protobuf::uint64 BufferInfo::offset() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.BufferInfo.offset)
+  return offset_;
+}
+inline void BufferInfo::set_offset(::google::protobuf::uint64 value) {
+  set_has_offset();
+  offset_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.BufferInfo.offset)
+}
+
+// required uint64 offset_end = 5;
+inline bool BufferInfo::has_offset_end() const {
+  return (_has_bits_[0] & 0x00000040u) != 0;
+}
+inline void BufferInfo::set_has_offset_end() {
+  _has_bits_[0] |= 0x00000040u;
+}
+inline void BufferInfo::clear_has_offset_end() {
+  _has_bits_[0] &= ~0x00000040u;
+}
+inline void BufferInfo::clear_offset_end() {
+  offset_end_ = GOOGLE_ULONGLONG(0);
+  clear_has_offset_end();
+}
+inline ::google::protobuf::uint64 BufferInfo::offset_end() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.BufferInfo.offset_end)
+  return offset_end_;
+}
+inline void BufferInfo::set_offset_end(::google::protobuf::uint64 value) {
+  set_has_offset_end();
+  offset_end_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.BufferInfo.offset_end)
+}
+
+// required uint64 size = 6;
+inline bool BufferInfo::has_size() const {
+  return (_has_bits_[0] & 0x00000080u) != 0;
+}
+inline void BufferInfo::set_has_size() {
+  _has_bits_[0] |= 0x00000080u;
+}
+inline void BufferInfo::clear_has_size() {
+  _has_bits_[0] &= ~0x00000080u;
+}
+inline void BufferInfo::clear_size() {
+  size_ = GOOGLE_ULONGLONG(0);
+  clear_has_size();
+}
+inline ::google::protobuf::uint64 BufferInfo::size() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.BufferInfo.size)
+  return size_;
+}
+inline void BufferInfo::set_size(::google::protobuf::uint64 value) {
+  set_has_size();
+  size_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.BufferInfo.size)
+}
+
+// required string pad = 7;
+inline bool BufferInfo::has_pad() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void BufferInfo::set_has_pad() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void BufferInfo::clear_has_pad() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void BufferInfo::clear_pad() {
+  pad_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_pad();
+}
+inline const ::std::string& BufferInfo::pad() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.BufferInfo.pad)
+  return pad_.GetNoArena();
+}
+inline void BufferInfo::set_pad(const ::std::string& value) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.BufferInfo.pad)
+}
+#if LANG_CXX11
+inline void BufferInfo::set_pad(::std::string&& value) {
+  set_has_pad();
+  pad_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.BufferInfo.pad)
+}
+#endif
+inline void BufferInfo::set_pad(const char* value) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.BufferInfo.pad)
+}
+inline void BufferInfo::set_pad(const char* value, size_t size) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.BufferInfo.pad)
+}
+inline ::std::string* BufferInfo::mutable_pad() {
+  set_has_pad();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.BufferInfo.pad)
+  return pad_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* BufferInfo::release_pad() {
+  // @@protoc_insertion_point(field_release:GstDebugger.BufferInfo.pad)
+  clear_has_pad();
+  return pad_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void BufferInfo::set_allocated_pad(::std::string* pad) {
+  if (pad != NULL) {
+    set_has_pad();
+  } else {
+    clear_has_pad();
+  }
+  pad_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), pad);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.BufferInfo.pad)
+}
+
+// optional bytes data = 8;
+inline bool BufferInfo::has_data() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void BufferInfo::set_has_data() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void BufferInfo::clear_has_data() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void BufferInfo::clear_data() {
+  data_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_data();
+}
+inline const ::std::string& BufferInfo::data() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.BufferInfo.data)
+  return data_.GetNoArena();
+}
+inline void BufferInfo::set_data(const ::std::string& value) {
+  set_has_data();
+  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.BufferInfo.data)
+}
+#if LANG_CXX11
+inline void BufferInfo::set_data(::std::string&& value) {
+  set_has_data();
+  data_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.BufferInfo.data)
+}
+#endif
+inline void BufferInfo::set_data(const char* value) {
+  set_has_data();
+  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.BufferInfo.data)
+}
+inline void BufferInfo::set_data(const void* value, size_t size) {
+  set_has_data();
+  data_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.BufferInfo.data)
+}
+inline ::std::string* BufferInfo::mutable_data() {
+  set_has_data();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.BufferInfo.data)
+  return data_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* BufferInfo::release_data() {
+  // @@protoc_insertion_point(field_release:GstDebugger.BufferInfo.data)
+  clear_has_data();
+  return data_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void BufferInfo::set_allocated_data(::std::string* data) {
+  if (data != NULL) {
+    set_has_data();
+  } else {
+    clear_has_data();
+  }
+  data_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), data);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.BufferInfo.data)
+}
+
+// -------------------------------------------------------------------
+
+// TypeDescriptionRequest
+
+// required string name = 1;
+inline bool TypeDescriptionRequest::has_name() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void TypeDescriptionRequest::set_has_name() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void TypeDescriptionRequest::clear_has_name() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void TypeDescriptionRequest::clear_name() {
+  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_name();
+}
+inline const ::std::string& TypeDescriptionRequest::name() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TypeDescriptionRequest.name)
+  return name_.GetNoArena();
+}
+inline void TypeDescriptionRequest::set_name(const ::std::string& value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.TypeDescriptionRequest.name)
+}
+#if LANG_CXX11
+inline void TypeDescriptionRequest::set_name(::std::string&& value) {
+  set_has_name();
+  name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.TypeDescriptionRequest.name)
+}
+#endif
+inline void TypeDescriptionRequest::set_name(const char* value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.TypeDescriptionRequest.name)
+}
+inline void TypeDescriptionRequest::set_name(const char* value, size_t size) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.TypeDescriptionRequest.name)
+}
+inline ::std::string* TypeDescriptionRequest::mutable_name() {
+  set_has_name();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.TypeDescriptionRequest.name)
+  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* TypeDescriptionRequest::release_name() {
+  // @@protoc_insertion_point(field_release:GstDebugger.TypeDescriptionRequest.name)
+  clear_has_name();
+  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void TypeDescriptionRequest::set_allocated_name(::std::string* name) {
+  if (name != NULL) {
+    set_has_name();
+  } else {
+    clear_has_name();
+  }
+  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.TypeDescriptionRequest.name)
+}
+
+// required .GstDebugger.TypeDescriptionRequest.Type type = 2;
+inline bool TypeDescriptionRequest::has_type() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void TypeDescriptionRequest::set_has_type() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void TypeDescriptionRequest::clear_has_type() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void TypeDescriptionRequest::clear_type() {
+  type_ = 0;
+  clear_has_type();
+}
+inline ::GstDebugger::TypeDescriptionRequest_Type TypeDescriptionRequest::type() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TypeDescriptionRequest.type)
+  return static_cast< ::GstDebugger::TypeDescriptionRequest_Type >(type_);
+}
+inline void TypeDescriptionRequest::set_type(::GstDebugger::TypeDescriptionRequest_Type value) {
+  assert(::GstDebugger::TypeDescriptionRequest_Type_IsValid(value));
+  set_has_type();
+  type_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.TypeDescriptionRequest.type)
+}
+
+// -------------------------------------------------------------------
+
+// QueryHookRequest
+
+// required int32 type = 1;
+inline bool QueryHookRequest::has_type() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void QueryHookRequest::set_has_type() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void QueryHookRequest::clear_has_type() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void QueryHookRequest::clear_type() {
+  type_ = 0;
+  clear_has_type();
+}
+inline ::google::protobuf::int32 QueryHookRequest::type() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.QueryHookRequest.type)
+  return type_;
+}
+inline void QueryHookRequest::set_type(::google::protobuf::int32 value) {
+  set_has_type();
+  type_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.QueryHookRequest.type)
+}
+
+// -------------------------------------------------------------------
+
+// BufferHookRequest
+
+// required bool send_data = 1;
+inline bool BufferHookRequest::has_send_data() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void BufferHookRequest::set_has_send_data() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void BufferHookRequest::clear_has_send_data() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void BufferHookRequest::clear_send_data() {
+  send_data_ = false;
+  clear_has_send_data();
+}
+inline bool BufferHookRequest::send_data() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.BufferHookRequest.send_data)
+  return send_data_;
+}
+inline void BufferHookRequest::set_send_data(bool value) {
+  set_has_send_data();
+  send_data_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.BufferHookRequest.send_data)
+}
+
+// -------------------------------------------------------------------
+
+// EventHookRequest
+
+// required int32 type = 1;
+inline bool EventHookRequest::has_type() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void EventHookRequest::set_has_type() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void EventHookRequest::clear_has_type() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void EventHookRequest::clear_type() {
+  type_ = 0;
+  clear_has_type();
+}
+inline ::google::protobuf::int32 EventHookRequest::type() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.EventHookRequest.type)
+  return type_;
+}
+inline void EventHookRequest::set_type(::google::protobuf::int32 value) {
+  set_has_type();
+  type_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.EventHookRequest.type)
+}
+
+// -------------------------------------------------------------------
+
+// PadHookRequest
+
+// optional string pad = 1;
+inline bool PadHookRequest::has_pad() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void PadHookRequest::set_has_pad() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void PadHookRequest::clear_has_pad() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void PadHookRequest::clear_pad() {
+  pad_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_pad();
+}
+inline const ::std::string& PadHookRequest::pad() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PadHookRequest.pad)
+  return pad_.GetNoArena();
+}
+inline void PadHookRequest::set_pad(const ::std::string& value) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.PadHookRequest.pad)
+}
+#if LANG_CXX11
+inline void PadHookRequest::set_pad(::std::string&& value) {
+  set_has_pad();
+  pad_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.PadHookRequest.pad)
+}
+#endif
+inline void PadHookRequest::set_pad(const char* value) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.PadHookRequest.pad)
+}
+inline void PadHookRequest::set_pad(const char* value, size_t size) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.PadHookRequest.pad)
+}
+inline ::std::string* PadHookRequest::mutable_pad() {
+  set_has_pad();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PadHookRequest.pad)
+  return pad_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* PadHookRequest::release_pad() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PadHookRequest.pad)
+  clear_has_pad();
+  return pad_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void PadHookRequest::set_allocated_pad(::std::string* pad) {
+  if (pad != NULL) {
+    set_has_pad();
+  } else {
+    clear_has_pad();
+  }
+  pad_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), pad);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PadHookRequest.pad)
+}
+
+// optional .GstDebugger.QueryHookRequest query = 2;
+inline bool PadHookRequest::has_query() const {
+  return pad_hook_type_case() == kQuery;
+}
+inline void PadHookRequest::set_has_query() {
+  _oneof_case_[0] = kQuery;
+}
+inline void PadHookRequest::clear_query() {
+  if (has_query()) {
+    delete pad_hook_type_.query_;
+    clear_has_pad_hook_type();
+  }
+}
+inline  const ::GstDebugger::QueryHookRequest& PadHookRequest::query() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PadHookRequest.query)
+  return has_query()
+      ? *pad_hook_type_.query_
+      : ::GstDebugger::QueryHookRequest::default_instance();
+}
+inline ::GstDebugger::QueryHookRequest* PadHookRequest::mutable_query() {
+  if (!has_query()) {
+    clear_pad_hook_type();
+    set_has_query();
+    pad_hook_type_.query_ = new ::GstDebugger::QueryHookRequest;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PadHookRequest.query)
+  return pad_hook_type_.query_;
+}
+inline ::GstDebugger::QueryHookRequest* PadHookRequest::release_query() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PadHookRequest.query)
+  if (has_query()) {
+    clear_has_pad_hook_type();
+    ::GstDebugger::QueryHookRequest* temp = pad_hook_type_.query_;
+    pad_hook_type_.query_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+inline void PadHookRequest::set_allocated_query(::GstDebugger::QueryHookRequest* query) {
+  clear_pad_hook_type();
+  if (query) {
+    set_has_query();
+    pad_hook_type_.query_ = query;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PadHookRequest.query)
+}
+
+// optional .GstDebugger.BufferHookRequest buffer = 3;
+inline bool PadHookRequest::has_buffer() const {
+  return pad_hook_type_case() == kBuffer;
+}
+inline void PadHookRequest::set_has_buffer() {
+  _oneof_case_[0] = kBuffer;
+}
+inline void PadHookRequest::clear_buffer() {
+  if (has_buffer()) {
+    delete pad_hook_type_.buffer_;
+    clear_has_pad_hook_type();
+  }
+}
+inline  const ::GstDebugger::BufferHookRequest& PadHookRequest::buffer() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PadHookRequest.buffer)
+  return has_buffer()
+      ? *pad_hook_type_.buffer_
+      : ::GstDebugger::BufferHookRequest::default_instance();
+}
+inline ::GstDebugger::BufferHookRequest* PadHookRequest::mutable_buffer() {
+  if (!has_buffer()) {
+    clear_pad_hook_type();
+    set_has_buffer();
+    pad_hook_type_.buffer_ = new ::GstDebugger::BufferHookRequest;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PadHookRequest.buffer)
+  return pad_hook_type_.buffer_;
+}
+inline ::GstDebugger::BufferHookRequest* PadHookRequest::release_buffer() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PadHookRequest.buffer)
+  if (has_buffer()) {
+    clear_has_pad_hook_type();
+    ::GstDebugger::BufferHookRequest* temp = pad_hook_type_.buffer_;
+    pad_hook_type_.buffer_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+inline void PadHookRequest::set_allocated_buffer(::GstDebugger::BufferHookRequest* buffer) {
+  clear_pad_hook_type();
+  if (buffer) {
+    set_has_buffer();
+    pad_hook_type_.buffer_ = buffer;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PadHookRequest.buffer)
+}
+
+// optional .GstDebugger.EventHookRequest event = 4;
+inline bool PadHookRequest::has_event() const {
+  return pad_hook_type_case() == kEvent;
+}
+inline void PadHookRequest::set_has_event() {
+  _oneof_case_[0] = kEvent;
+}
+inline void PadHookRequest::clear_event() {
+  if (has_event()) {
+    delete pad_hook_type_.event_;
+    clear_has_pad_hook_type();
+  }
+}
+inline  const ::GstDebugger::EventHookRequest& PadHookRequest::event() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PadHookRequest.event)
+  return has_event()
+      ? *pad_hook_type_.event_
+      : ::GstDebugger::EventHookRequest::default_instance();
+}
+inline ::GstDebugger::EventHookRequest* PadHookRequest::mutable_event() {
+  if (!has_event()) {
+    clear_pad_hook_type();
+    set_has_event();
+    pad_hook_type_.event_ = new ::GstDebugger::EventHookRequest;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PadHookRequest.event)
+  return pad_hook_type_.event_;
+}
+inline ::GstDebugger::EventHookRequest* PadHookRequest::release_event() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PadHookRequest.event)
+  if (has_event()) {
+    clear_has_pad_hook_type();
+    ::GstDebugger::EventHookRequest* temp = pad_hook_type_.event_;
+    pad_hook_type_.event_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+inline void PadHookRequest::set_allocated_event(::GstDebugger::EventHookRequest* event) {
+  clear_pad_hook_type();
+  if (event) {
+    set_has_event();
+    pad_hook_type_.event_ = event;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PadHookRequest.event)
+}
+
+inline bool PadHookRequest::has_pad_hook_type() const {
+  return pad_hook_type_case() != PAD_HOOK_TYPE_NOT_SET;
+}
+inline void PadHookRequest::clear_has_pad_hook_type() {
+  _oneof_case_[0] = PAD_HOOK_TYPE_NOT_SET;
+}
+inline PadHookRequest::PadHookTypeCase PadHookRequest::pad_hook_type_case() const {
+  return PadHookRequest::PadHookTypeCase(_oneof_case_[0]);
+}
+// -------------------------------------------------------------------
+
+// LogRequest
+
+// required int32 level = 1;
+inline bool LogRequest::has_level() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void LogRequest::set_has_level() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void LogRequest::clear_has_level() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void LogRequest::clear_level() {
+  level_ = 0;
+  clear_has_level();
+}
+inline ::google::protobuf::int32 LogRequest::level() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.LogRequest.level)
+  return level_;
+}
+inline void LogRequest::set_level(::google::protobuf::int32 value) {
+  set_has_level();
+  level_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.LogRequest.level)
+}
+
+// optional string category = 2;
+inline bool LogRequest::has_category() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void LogRequest::set_has_category() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void LogRequest::clear_has_category() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void LogRequest::clear_category() {
+  category_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_category();
+}
+inline const ::std::string& LogRequest::category() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.LogRequest.category)
+  return category_.GetNoArena();
+}
+inline void LogRequest::set_category(const ::std::string& value) {
+  set_has_category();
+  category_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.LogRequest.category)
+}
+#if LANG_CXX11
+inline void LogRequest::set_category(::std::string&& value) {
+  set_has_category();
+  category_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.LogRequest.category)
+}
+#endif
+inline void LogRequest::set_category(const char* value) {
+  set_has_category();
+  category_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.LogRequest.category)
+}
+inline void LogRequest::set_category(const char* value, size_t size) {
+  set_has_category();
+  category_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.LogRequest.category)
+}
+inline ::std::string* LogRequest::mutable_category() {
+  set_has_category();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.LogRequest.category)
+  return category_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* LogRequest::release_category() {
+  // @@protoc_insertion_point(field_release:GstDebugger.LogRequest.category)
+  clear_has_category();
+  return category_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void LogRequest::set_allocated_category(::std::string* category) {
+  if (category != NULL) {
+    set_has_category();
+  } else {
+    clear_has_category();
+  }
+  category_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), category);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.LogRequest.category)
+}
+
+// -------------------------------------------------------------------
+
+// MessageRequest
+
+// required int32 type = 1;
+inline bool MessageRequest::has_type() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void MessageRequest::set_has_type() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void MessageRequest::clear_has_type() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void MessageRequest::clear_type() {
+  type_ = 0;
+  clear_has_type();
+}
+inline ::google::protobuf::int32 MessageRequest::type() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.MessageRequest.type)
+  return type_;
+}
+inline void MessageRequest::set_type(::google::protobuf::int32 value) {
+  set_has_type();
+  type_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.MessageRequest.type)
+}
+
+// -------------------------------------------------------------------
+
+// HookRequest
+
+// required .GstDebugger.Action action = 1;
+inline bool HookRequest::has_action() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void HookRequest::set_has_action() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void HookRequest::clear_has_action() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void HookRequest::clear_action() {
+  action_ = 0;
+  clear_has_action();
+}
+inline ::GstDebugger::Action HookRequest::action() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.HookRequest.action)
+  return static_cast< ::GstDebugger::Action >(action_);
+}
+inline void HookRequest::set_action(::GstDebugger::Action value) {
+  assert(::GstDebugger::Action_IsValid(value));
+  set_has_action();
+  action_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.HookRequest.action)
+}
+
+// optional .GstDebugger.MessageRequest message = 2;
+inline bool HookRequest::has_message() const {
+  return hook_type_case() == kMessage;
+}
+inline void HookRequest::set_has_message() {
+  _oneof_case_[0] = kMessage;
+}
+inline void HookRequest::clear_message() {
+  if (has_message()) {
+    delete hook_type_.message_;
+    clear_has_hook_type();
+  }
+}
+inline  const ::GstDebugger::MessageRequest& HookRequest::message() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.HookRequest.message)
+  return has_message()
+      ? *hook_type_.message_
+      : ::GstDebugger::MessageRequest::default_instance();
+}
+inline ::GstDebugger::MessageRequest* HookRequest::mutable_message() {
+  if (!has_message()) {
+    clear_hook_type();
+    set_has_message();
+    hook_type_.message_ = new ::GstDebugger::MessageRequest;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.HookRequest.message)
+  return hook_type_.message_;
+}
+inline ::GstDebugger::MessageRequest* HookRequest::release_message() {
+  // @@protoc_insertion_point(field_release:GstDebugger.HookRequest.message)
+  if (has_message()) {
+    clear_has_hook_type();
+    ::GstDebugger::MessageRequest* temp = hook_type_.message_;
+    hook_type_.message_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+inline void HookRequest::set_allocated_message(::GstDebugger::MessageRequest* message) {
+  clear_hook_type();
+  if (message) {
+    set_has_message();
+    hook_type_.message_ = message;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.HookRequest.message)
+}
+
+// optional .GstDebugger.LogRequest log = 3;
+inline bool HookRequest::has_log() const {
+  return hook_type_case() == kLog;
+}
+inline void HookRequest::set_has_log() {
+  _oneof_case_[0] = kLog;
+}
+inline void HookRequest::clear_log() {
+  if (has_log()) {
+    delete hook_type_.log_;
+    clear_has_hook_type();
+  }
+}
+inline  const ::GstDebugger::LogRequest& HookRequest::log() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.HookRequest.log)
+  return has_log()
+      ? *hook_type_.log_
+      : ::GstDebugger::LogRequest::default_instance();
+}
+inline ::GstDebugger::LogRequest* HookRequest::mutable_log() {
+  if (!has_log()) {
+    clear_hook_type();
+    set_has_log();
+    hook_type_.log_ = new ::GstDebugger::LogRequest;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.HookRequest.log)
+  return hook_type_.log_;
+}
+inline ::GstDebugger::LogRequest* HookRequest::release_log() {
+  // @@protoc_insertion_point(field_release:GstDebugger.HookRequest.log)
+  if (has_log()) {
+    clear_has_hook_type();
+    ::GstDebugger::LogRequest* temp = hook_type_.log_;
+    hook_type_.log_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+inline void HookRequest::set_allocated_log(::GstDebugger::LogRequest* log) {
+  clear_hook_type();
+  if (log) {
+    set_has_log();
+    hook_type_.log_ = log;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.HookRequest.log)
+}
+
+// optional .GstDebugger.PadHookRequest pad_hook = 4;
+inline bool HookRequest::has_pad_hook() const {
+  return hook_type_case() == kPadHook;
+}
+inline void HookRequest::set_has_pad_hook() {
+  _oneof_case_[0] = kPadHook;
+}
+inline void HookRequest::clear_pad_hook() {
+  if (has_pad_hook()) {
+    delete hook_type_.pad_hook_;
+    clear_has_hook_type();
+  }
+}
+inline  const ::GstDebugger::PadHookRequest& HookRequest::pad_hook() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.HookRequest.pad_hook)
+  return has_pad_hook()
+      ? *hook_type_.pad_hook_
+      : ::GstDebugger::PadHookRequest::default_instance();
+}
+inline ::GstDebugger::PadHookRequest* HookRequest::mutable_pad_hook() {
+  if (!has_pad_hook()) {
+    clear_hook_type();
+    set_has_pad_hook();
+    hook_type_.pad_hook_ = new ::GstDebugger::PadHookRequest;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.HookRequest.pad_hook)
+  return hook_type_.pad_hook_;
+}
+inline ::GstDebugger::PadHookRequest* HookRequest::release_pad_hook() {
+  // @@protoc_insertion_point(field_release:GstDebugger.HookRequest.pad_hook)
+  if (has_pad_hook()) {
+    clear_has_hook_type();
+    ::GstDebugger::PadHookRequest* temp = hook_type_.pad_hook_;
+    hook_type_.pad_hook_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+inline void HookRequest::set_allocated_pad_hook(::GstDebugger::PadHookRequest* pad_hook) {
+  clear_hook_type();
+  if (pad_hook) {
+    set_has_pad_hook();
+    hook_type_.pad_hook_ = pad_hook;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.HookRequest.pad_hook)
+}
+
+inline bool HookRequest::has_hook_type() const {
+  return hook_type_case() != HOOK_TYPE_NOT_SET;
+}
+inline void HookRequest::clear_has_hook_type() {
+  _oneof_case_[0] = HOOK_TYPE_NOT_SET;
+}
+inline HookRequest::HookTypeCase HookRequest::hook_type_case() const {
+  return HookRequest::HookTypeCase(_oneof_case_[0]);
+}
+// -------------------------------------------------------------------
+
+// Command
+
+// optional .GstDebugger.TypeDescriptionRequest type_description = 1;
+inline bool Command::has_type_description() const {
+  return command_type_case() == kTypeDescription;
+}
+inline void Command::set_has_type_description() {
+  _oneof_case_[0] = kTypeDescription;
+}
+inline void Command::clear_type_description() {
+  if (has_type_description()) {
+    delete command_type_.type_description_;
+    clear_has_command_type();
+  }
+}
+inline  const ::GstDebugger::TypeDescriptionRequest& Command::type_description() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.Command.type_description)
+  return has_type_description()
+      ? *command_type_.type_description_
+      : ::GstDebugger::TypeDescriptionRequest::default_instance();
+}
+inline ::GstDebugger::TypeDescriptionRequest* Command::mutable_type_description() {
+  if (!has_type_description()) {
+    clear_command_type();
+    set_has_type_description();
+    command_type_.type_description_ = new ::GstDebugger::TypeDescriptionRequest;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.Command.type_description)
+  return command_type_.type_description_;
+}
+inline ::GstDebugger::TypeDescriptionRequest* Command::release_type_description() {
+  // @@protoc_insertion_point(field_release:GstDebugger.Command.type_description)
+  if (has_type_description()) {
+    clear_has_command_type();
+    ::GstDebugger::TypeDescriptionRequest* temp = command_type_.type_description_;
+    command_type_.type_description_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+inline void Command::set_allocated_type_description(::GstDebugger::TypeDescriptionRequest* type_description) 
{
+  clear_command_type();
+  if (type_description) {
+    set_has_type_description();
+    command_type_.type_description_ = type_description;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.Command.type_description)
+}
+
+// optional bool debug_categories_list = 2;
+inline bool Command::has_debug_categories_list() const {
+  return command_type_case() == kDebugCategoriesList;
+}
+inline void Command::set_has_debug_categories_list() {
+  _oneof_case_[0] = kDebugCategoriesList;
+}
+inline void Command::clear_debug_categories_list() {
+  if (has_debug_categories_list()) {
+    command_type_.debug_categories_list_ = false;
+    clear_has_command_type();
+  }
+}
+inline bool Command::debug_categories_list() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.Command.debug_categories_list)
+  if (has_debug_categories_list()) {
+    return command_type_.debug_categories_list_;
+  }
+  return false;
+}
+inline void Command::set_debug_categories_list(bool value) {
+  if (!has_debug_categories_list()) {
+    clear_command_type();
+    set_has_debug_categories_list();
+  }
+  command_type_.debug_categories_list_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.Command.debug_categories_list)
+}
+
+// optional .GstDebugger.HookRequest hook_request = 3;
+inline bool Command::has_hook_request() const {
+  return command_type_case() == kHookRequest;
+}
+inline void Command::set_has_hook_request() {
+  _oneof_case_[0] = kHookRequest;
+}
+inline void Command::clear_hook_request() {
+  if (has_hook_request()) {
+    delete command_type_.hook_request_;
+    clear_has_command_type();
+  }
+}
+inline  const ::GstDebugger::HookRequest& Command::hook_request() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.Command.hook_request)
+  return has_hook_request()
+      ? *command_type_.hook_request_
+      : ::GstDebugger::HookRequest::default_instance();
+}
+inline ::GstDebugger::HookRequest* Command::mutable_hook_request() {
+  if (!has_hook_request()) {
+    clear_command_type();
+    set_has_hook_request();
+    command_type_.hook_request_ = new ::GstDebugger::HookRequest;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.Command.hook_request)
+  return command_type_.hook_request_;
+}
+inline ::GstDebugger::HookRequest* Command::release_hook_request() {
+  // @@protoc_insertion_point(field_release:GstDebugger.Command.hook_request)
+  if (has_hook_request()) {
+    clear_has_command_type();
+    ::GstDebugger::HookRequest* temp = command_type_.hook_request_;
+    command_type_.hook_request_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+inline void Command::set_allocated_hook_request(::GstDebugger::HookRequest* hook_request) {
+  clear_command_type();
+  if (hook_request) {
+    set_has_hook_request();
+    command_type_.hook_request_ = hook_request;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.Command.hook_request)
+}
+
+// optional string log_threshold = 4;
+inline bool Command::has_log_threshold() const {
+  return command_type_case() == kLogThreshold;
+}
+inline void Command::set_has_log_threshold() {
+  _oneof_case_[0] = kLogThreshold;
+}
+inline void Command::clear_log_threshold() {
+  if (has_log_threshold()) {
+    
command_type_.log_threshold_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+    clear_has_command_type();
+  }
+}
+inline const ::std::string& Command::log_threshold() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.Command.log_threshold)
+  if (has_log_threshold()) {
+    return command_type_.log_threshold_.GetNoArena();
+  }
+  return *&::google::protobuf::internal::GetEmptyStringAlreadyInited();
+}
+inline void Command::set_log_threshold(const ::std::string& value) {
+  // @@protoc_insertion_point(field_set:GstDebugger.Command.log_threshold)
+  if (!has_log_threshold()) {
+    clear_command_type();
+    set_has_log_threshold();
+    
command_type_.log_threshold_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  }
+  command_type_.log_threshold_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
value);
+  // @@protoc_insertion_point(field_set:GstDebugger.Command.log_threshold)
+}
+#if LANG_CXX11
+inline void Command::set_log_threshold(::std::string&& value) {
+  // @@protoc_insertion_point(field_set:GstDebugger.Command.log_threshold)
+  if (!has_log_threshold()) {
+    clear_command_type();
+    set_has_log_threshold();
+    
command_type_.log_threshold_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  }
+  command_type_.log_threshold_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.Command.log_threshold)
+}
+#endif
+inline void Command::set_log_threshold(const char* value) {
+  if (!has_log_threshold()) {
+    clear_command_type();
+    set_has_log_threshold();
+    
command_type_.log_threshold_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  }
+  command_type_.log_threshold_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.Command.log_threshold)
+}
+inline void Command::set_log_threshold(const char* value, size_t size) {
+  if (!has_log_threshold()) {
+    clear_command_type();
+    set_has_log_threshold();
+    
command_type_.log_threshold_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  }
+  command_type_.log_threshold_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
::std::string(
+      reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.Command.log_threshold)
+}
+inline ::std::string* Command::mutable_log_threshold() {
+  if (!has_log_threshold()) {
+    clear_command_type();
+    set_has_log_threshold();
+    
command_type_.log_threshold_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.Command.log_threshold)
+  return 
command_type_.log_threshold_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* Command::release_log_threshold() {
+  // @@protoc_insertion_point(field_release:GstDebugger.Command.log_threshold)
+  if (has_log_threshold()) {
+    clear_has_command_type();
+    return 
command_type_.log_threshold_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  } else {
+    return NULL;
+  }
+}
+inline void Command::set_allocated_log_threshold(::std::string* log_threshold) {
+  if (!has_log_threshold()) {
+    
command_type_.log_threshold_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  }
+  clear_command_type();
+  if (log_threshold != NULL) {
+    set_has_log_threshold();
+    
command_type_.log_threshold_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+        log_threshold);
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.Command.log_threshold)
+}
+
+// optional bool entire_topology = 5;
+inline bool Command::has_entire_topology() const {
+  return command_type_case() == kEntireTopology;
+}
+inline void Command::set_has_entire_topology() {
+  _oneof_case_[0] = kEntireTopology;
+}
+inline void Command::clear_entire_topology() {
+  if (has_entire_topology()) {
+    command_type_.entire_topology_ = false;
+    clear_has_command_type();
+  }
+}
+inline bool Command::entire_topology() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.Command.entire_topology)
+  if (has_entire_topology()) {
+    return command_type_.entire_topology_;
+  }
+  return false;
+}
+inline void Command::set_entire_topology(bool value) {
+  if (!has_entire_topology()) {
+    clear_command_type();
+    set_has_entire_topology();
+  }
+  command_type_.entire_topology_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.Command.entire_topology)
+}
+
+// optional .GstDebugger.PropertyRequest property = 6;
+inline bool Command::has_property() const {
+  return command_type_case() == kProperty;
+}
+inline void Command::set_has_property() {
+  _oneof_case_[0] = kProperty;
+}
+inline void Command::clear_property() {
+  if (has_property()) {
+    delete command_type_.property_;
+    clear_has_command_type();
+  }
+}
+inline  const ::GstDebugger::PropertyRequest& Command::property() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.Command.property)
+  return has_property()
+      ? *command_type_.property_
+      : ::GstDebugger::PropertyRequest::default_instance();
+}
+inline ::GstDebugger::PropertyRequest* Command::mutable_property() {
+  if (!has_property()) {
+    clear_command_type();
+    set_has_property();
+    command_type_.property_ = new ::GstDebugger::PropertyRequest;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.Command.property)
+  return command_type_.property_;
+}
+inline ::GstDebugger::PropertyRequest* Command::release_property() {
+  // @@protoc_insertion_point(field_release:GstDebugger.Command.property)
+  if (has_property()) {
+    clear_has_command_type();
+    ::GstDebugger::PropertyRequest* temp = command_type_.property_;
+    command_type_.property_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+inline void Command::set_allocated_property(::GstDebugger::PropertyRequest* property) {
+  clear_command_type();
+  if (property) {
+    set_has_property();
+    command_type_.property_ = property;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.Command.property)
+}
+
+// optional .GstDebugger.PropertyValue property_set = 7;
+inline bool Command::has_property_set() const {
+  return command_type_case() == kPropertySet;
+}
+inline void Command::set_has_property_set() {
+  _oneof_case_[0] = kPropertySet;
+}
+inline void Command::clear_property_set() {
+  if (has_property_set()) {
+    delete command_type_.property_set_;
+    clear_has_command_type();
+  }
+}
+inline  const ::GstDebugger::PropertyValue& Command::property_set() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.Command.property_set)
+  return has_property_set()
+      ? *command_type_.property_set_
+      : ::GstDebugger::PropertyValue::default_instance();
+}
+inline ::GstDebugger::PropertyValue* Command::mutable_property_set() {
+  if (!has_property_set()) {
+    clear_command_type();
+    set_has_property_set();
+    command_type_.property_set_ = new ::GstDebugger::PropertyValue;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.Command.property_set)
+  return command_type_.property_set_;
+}
+inline ::GstDebugger::PropertyValue* Command::release_property_set() {
+  // @@protoc_insertion_point(field_release:GstDebugger.Command.property_set)
+  if (has_property_set()) {
+    clear_has_command_type();
+    ::GstDebugger::PropertyValue* temp = command_type_.property_set_;
+    command_type_.property_set_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+inline void Command::set_allocated_property_set(::GstDebugger::PropertyValue* property_set) {
+  clear_command_type();
+  if (property_set) {
+    set_has_property_set();
+    command_type_.property_set_ = property_set;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.Command.property_set)
+}
+
+// optional string pad_dynamic_info = 8;
+inline bool Command::has_pad_dynamic_info() const {
+  return command_type_case() == kPadDynamicInfo;
+}
+inline void Command::set_has_pad_dynamic_info() {
+  _oneof_case_[0] = kPadDynamicInfo;
+}
+inline void Command::clear_pad_dynamic_info() {
+  if (has_pad_dynamic_info()) {
+    
command_type_.pad_dynamic_info_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+    clear_has_command_type();
+  }
+}
+inline const ::std::string& Command::pad_dynamic_info() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.Command.pad_dynamic_info)
+  if (has_pad_dynamic_info()) {
+    return command_type_.pad_dynamic_info_.GetNoArena();
+  }
+  return *&::google::protobuf::internal::GetEmptyStringAlreadyInited();
+}
+inline void Command::set_pad_dynamic_info(const ::std::string& value) {
+  // @@protoc_insertion_point(field_set:GstDebugger.Command.pad_dynamic_info)
+  if (!has_pad_dynamic_info()) {
+    clear_command_type();
+    set_has_pad_dynamic_info();
+    
command_type_.pad_dynamic_info_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  }
+  command_type_.pad_dynamic_info_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
value);
+  // @@protoc_insertion_point(field_set:GstDebugger.Command.pad_dynamic_info)
+}
+#if LANG_CXX11
+inline void Command::set_pad_dynamic_info(::std::string&& value) {
+  // @@protoc_insertion_point(field_set:GstDebugger.Command.pad_dynamic_info)
+  if (!has_pad_dynamic_info()) {
+    clear_command_type();
+    set_has_pad_dynamic_info();
+    
command_type_.pad_dynamic_info_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  }
+  command_type_.pad_dynamic_info_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.Command.pad_dynamic_info)
+}
+#endif
+inline void Command::set_pad_dynamic_info(const char* value) {
+  if (!has_pad_dynamic_info()) {
+    clear_command_type();
+    set_has_pad_dynamic_info();
+    
command_type_.pad_dynamic_info_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  }
+  command_type_.pad_dynamic_info_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.Command.pad_dynamic_info)
+}
+inline void Command::set_pad_dynamic_info(const char* value, size_t size) {
+  if (!has_pad_dynamic_info()) {
+    clear_command_type();
+    set_has_pad_dynamic_info();
+    
command_type_.pad_dynamic_info_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  }
+  command_type_.pad_dynamic_info_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
::std::string(
+      reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.Command.pad_dynamic_info)
+}
+inline ::std::string* Command::mutable_pad_dynamic_info() {
+  if (!has_pad_dynamic_info()) {
+    clear_command_type();
+    set_has_pad_dynamic_info();
+    
command_type_.pad_dynamic_info_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.Command.pad_dynamic_info)
+  return 
command_type_.pad_dynamic_info_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* Command::release_pad_dynamic_info() {
+  // @@protoc_insertion_point(field_release:GstDebugger.Command.pad_dynamic_info)
+  if (has_pad_dynamic_info()) {
+    clear_has_command_type();
+    return 
command_type_.pad_dynamic_info_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  } else {
+    return NULL;
+  }
+}
+inline void Command::set_allocated_pad_dynamic_info(::std::string* pad_dynamic_info) {
+  if (!has_pad_dynamic_info()) {
+    
command_type_.pad_dynamic_info_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  }
+  clear_command_type();
+  if (pad_dynamic_info != NULL) {
+    set_has_pad_dynamic_info();
+    
command_type_.pad_dynamic_info_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+        pad_dynamic_info);
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.Command.pad_dynamic_info)
+}
+
+inline bool Command::has_command_type() const {
+  return command_type_case() != COMMAND_TYPE_NOT_SET;
+}
+inline void Command::clear_has_command_type() {
+  _oneof_case_[0] = COMMAND_TYPE_NOT_SET;
+}
+inline Command::CommandTypeCase Command::command_type_case() const {
+  return Command::CommandTypeCase(_oneof_case_[0]);
+}
+// -------------------------------------------------------------------
+
+// DebugCategories
+
+// repeated string category = 1;
+inline int DebugCategories::category_size() const {
+  return category_.size();
+}
+inline void DebugCategories::clear_category() {
+  category_.Clear();
+}
+inline const ::std::string& DebugCategories::category(int index) const {
+  // @@protoc_insertion_point(field_get:GstDebugger.DebugCategories.category)
+  return category_.Get(index);
+}
+inline ::std::string* DebugCategories::mutable_category(int index) {
+  // @@protoc_insertion_point(field_mutable:GstDebugger.DebugCategories.category)
+  return category_.Mutable(index);
+}
+inline void DebugCategories::set_category(int index, const ::std::string& value) {
+  // @@protoc_insertion_point(field_set:GstDebugger.DebugCategories.category)
+  category_.Mutable(index)->assign(value);
+}
+inline void DebugCategories::set_category(int index, const char* value) {
+  category_.Mutable(index)->assign(value);
+  // @@protoc_insertion_point(field_set_char:GstDebugger.DebugCategories.category)
+}
+inline void DebugCategories::set_category(int index, const char* value, size_t size) {
+  category_.Mutable(index)->assign(
+    reinterpret_cast<const char*>(value), size);
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.DebugCategories.category)
+}
+inline ::std::string* DebugCategories::add_category() {
+  // @@protoc_insertion_point(field_add_mutable:GstDebugger.DebugCategories.category)
+  return category_.Add();
+}
+inline void DebugCategories::add_category(const ::std::string& value) {
+  category_.Add()->assign(value);
+  // @@protoc_insertion_point(field_add:GstDebugger.DebugCategories.category)
+}
+inline void DebugCategories::add_category(const char* value) {
+  category_.Add()->assign(value);
+  // @@protoc_insertion_point(field_add_char:GstDebugger.DebugCategories.category)
+}
+inline void DebugCategories::add_category(const char* value, size_t size) {
+  category_.Add()->assign(reinterpret_cast<const char*>(value), size);
+  // @@protoc_insertion_point(field_add_pointer:GstDebugger.DebugCategories.category)
+}
+inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
+DebugCategories::category() const {
+  // @@protoc_insertion_point(field_list:GstDebugger.DebugCategories.category)
+  return category_;
+}
+inline ::google::protobuf::RepeatedPtrField< ::std::string>*
+DebugCategories::mutable_category() {
+  // @@protoc_insertion_point(field_mutable_list:GstDebugger.DebugCategories.category)
+  return &category_;
+}
+
+// -------------------------------------------------------------------
+
+// LogInfo
+
+// required int32 level = 1;
+inline bool LogInfo::has_level() const {
+  return (_has_bits_[0] & 0x00000020u) != 0;
+}
+inline void LogInfo::set_has_level() {
+  _has_bits_[0] |= 0x00000020u;
+}
+inline void LogInfo::clear_has_level() {
+  _has_bits_[0] &= ~0x00000020u;
+}
+inline void LogInfo::clear_level() {
+  level_ = 0;
+  clear_has_level();
+}
+inline ::google::protobuf::int32 LogInfo::level() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.LogInfo.level)
+  return level_;
+}
+inline void LogInfo::set_level(::google::protobuf::int32 value) {
+  set_has_level();
+  level_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.LogInfo.level)
+}
+
+// required string category = 2;
+inline bool LogInfo::has_category() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void LogInfo::set_has_category() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void LogInfo::clear_has_category() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void LogInfo::clear_category() {
+  category_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_category();
+}
+inline const ::std::string& LogInfo::category() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.LogInfo.category)
+  return category_.GetNoArena();
+}
+inline void LogInfo::set_category(const ::std::string& value) {
+  set_has_category();
+  category_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.LogInfo.category)
+}
+#if LANG_CXX11
+inline void LogInfo::set_category(::std::string&& value) {
+  set_has_category();
+  category_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.LogInfo.category)
+}
+#endif
+inline void LogInfo::set_category(const char* value) {
+  set_has_category();
+  category_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.LogInfo.category)
+}
+inline void LogInfo::set_category(const char* value, size_t size) {
+  set_has_category();
+  category_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.LogInfo.category)
+}
+inline ::std::string* LogInfo::mutable_category() {
+  set_has_category();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.LogInfo.category)
+  return category_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* LogInfo::release_category() {
+  // @@protoc_insertion_point(field_release:GstDebugger.LogInfo.category)
+  clear_has_category();
+  return category_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void LogInfo::set_allocated_category(::std::string* category) {
+  if (category != NULL) {
+    set_has_category();
+  } else {
+    clear_has_category();
+  }
+  category_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), category);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.LogInfo.category)
+}
+
+// required string file = 3;
+inline bool LogInfo::has_file() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void LogInfo::set_has_file() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void LogInfo::clear_has_file() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void LogInfo::clear_file() {
+  file_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_file();
+}
+inline const ::std::string& LogInfo::file() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.LogInfo.file)
+  return file_.GetNoArena();
+}
+inline void LogInfo::set_file(const ::std::string& value) {
+  set_has_file();
+  file_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.LogInfo.file)
+}
+#if LANG_CXX11
+inline void LogInfo::set_file(::std::string&& value) {
+  set_has_file();
+  file_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.LogInfo.file)
+}
+#endif
+inline void LogInfo::set_file(const char* value) {
+  set_has_file();
+  file_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.LogInfo.file)
+}
+inline void LogInfo::set_file(const char* value, size_t size) {
+  set_has_file();
+  file_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.LogInfo.file)
+}
+inline ::std::string* LogInfo::mutable_file() {
+  set_has_file();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.LogInfo.file)
+  return file_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* LogInfo::release_file() {
+  // @@protoc_insertion_point(field_release:GstDebugger.LogInfo.file)
+  clear_has_file();
+  return file_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void LogInfo::set_allocated_file(::std::string* file) {
+  if (file != NULL) {
+    set_has_file();
+  } else {
+    clear_has_file();
+  }
+  file_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), file);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.LogInfo.file)
+}
+
+// required string function = 4;
+inline bool LogInfo::has_function() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+inline void LogInfo::set_has_function() {
+  _has_bits_[0] |= 0x00000004u;
+}
+inline void LogInfo::clear_has_function() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+inline void LogInfo::clear_function() {
+  function_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_function();
+}
+inline const ::std::string& LogInfo::function() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.LogInfo.function)
+  return function_.GetNoArena();
+}
+inline void LogInfo::set_function(const ::std::string& value) {
+  set_has_function();
+  function_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.LogInfo.function)
+}
+#if LANG_CXX11
+inline void LogInfo::set_function(::std::string&& value) {
+  set_has_function();
+  function_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.LogInfo.function)
+}
+#endif
+inline void LogInfo::set_function(const char* value) {
+  set_has_function();
+  function_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.LogInfo.function)
+}
+inline void LogInfo::set_function(const char* value, size_t size) {
+  set_has_function();
+  function_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.LogInfo.function)
+}
+inline ::std::string* LogInfo::mutable_function() {
+  set_has_function();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.LogInfo.function)
+  return function_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* LogInfo::release_function() {
+  // @@protoc_insertion_point(field_release:GstDebugger.LogInfo.function)
+  clear_has_function();
+  return function_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void LogInfo::set_allocated_function(::std::string* function) {
+  if (function != NULL) {
+    set_has_function();
+  } else {
+    clear_has_function();
+  }
+  function_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), function);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.LogInfo.function)
+}
+
+// required int32 line = 5;
+inline bool LogInfo::has_line() const {
+  return (_has_bits_[0] & 0x00000040u) != 0;
+}
+inline void LogInfo::set_has_line() {
+  _has_bits_[0] |= 0x00000040u;
+}
+inline void LogInfo::clear_has_line() {
+  _has_bits_[0] &= ~0x00000040u;
+}
+inline void LogInfo::clear_line() {
+  line_ = 0;
+  clear_has_line();
+}
+inline ::google::protobuf::int32 LogInfo::line() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.LogInfo.line)
+  return line_;
+}
+inline void LogInfo::set_line(::google::protobuf::int32 value) {
+  set_has_line();
+  line_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.LogInfo.line)
+}
+
+// required string object = 6;
+inline bool LogInfo::has_object() const {
+  return (_has_bits_[0] & 0x00000008u) != 0;
+}
+inline void LogInfo::set_has_object() {
+  _has_bits_[0] |= 0x00000008u;
+}
+inline void LogInfo::clear_has_object() {
+  _has_bits_[0] &= ~0x00000008u;
+}
+inline void LogInfo::clear_object() {
+  object_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_object();
+}
+inline const ::std::string& LogInfo::object() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.LogInfo.object)
+  return object_.GetNoArena();
+}
+inline void LogInfo::set_object(const ::std::string& value) {
+  set_has_object();
+  object_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.LogInfo.object)
+}
+#if LANG_CXX11
+inline void LogInfo::set_object(::std::string&& value) {
+  set_has_object();
+  object_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.LogInfo.object)
+}
+#endif
+inline void LogInfo::set_object(const char* value) {
+  set_has_object();
+  object_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.LogInfo.object)
+}
+inline void LogInfo::set_object(const char* value, size_t size) {
+  set_has_object();
+  object_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.LogInfo.object)
+}
+inline ::std::string* LogInfo::mutable_object() {
+  set_has_object();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.LogInfo.object)
+  return object_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* LogInfo::release_object() {
+  // @@protoc_insertion_point(field_release:GstDebugger.LogInfo.object)
+  clear_has_object();
+  return object_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void LogInfo::set_allocated_object(::std::string* object) {
+  if (object != NULL) {
+    set_has_object();
+  } else {
+    clear_has_object();
+  }
+  object_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), object);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.LogInfo.object)
+}
+
+// required string message = 7;
+inline bool LogInfo::has_message() const {
+  return (_has_bits_[0] & 0x00000010u) != 0;
+}
+inline void LogInfo::set_has_message() {
+  _has_bits_[0] |= 0x00000010u;
+}
+inline void LogInfo::clear_has_message() {
+  _has_bits_[0] &= ~0x00000010u;
+}
+inline void LogInfo::clear_message() {
+  message_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_message();
+}
+inline const ::std::string& LogInfo::message() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.LogInfo.message)
+  return message_.GetNoArena();
+}
+inline void LogInfo::set_message(const ::std::string& value) {
+  set_has_message();
+  message_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.LogInfo.message)
+}
+#if LANG_CXX11
+inline void LogInfo::set_message(::std::string&& value) {
+  set_has_message();
+  message_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.LogInfo.message)
+}
+#endif
+inline void LogInfo::set_message(const char* value) {
+  set_has_message();
+  message_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.LogInfo.message)
+}
+inline void LogInfo::set_message(const char* value, size_t size) {
+  set_has_message();
+  message_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.LogInfo.message)
+}
+inline ::std::string* LogInfo::mutable_message() {
+  set_has_message();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.LogInfo.message)
+  return message_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* LogInfo::release_message() {
+  // @@protoc_insertion_point(field_release:GstDebugger.LogInfo.message)
+  clear_has_message();
+  return message_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void LogInfo::set_allocated_message(::std::string* message) {
+  if (message != NULL) {
+    set_has_message();
+  } else {
+    clear_has_message();
+  }
+  message_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), message);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.LogInfo.message)
+}
+
+// -------------------------------------------------------------------
+
+// EnumFlagsValue
+
+// required string name = 1;
+inline bool EnumFlagsValue::has_name() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void EnumFlagsValue::set_has_name() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void EnumFlagsValue::clear_has_name() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void EnumFlagsValue::clear_name() {
+  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_name();
+}
+inline const ::std::string& EnumFlagsValue::name() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.EnumFlagsValue.name)
+  return name_.GetNoArena();
+}
+inline void EnumFlagsValue::set_name(const ::std::string& value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.EnumFlagsValue.name)
+}
+#if LANG_CXX11
+inline void EnumFlagsValue::set_name(::std::string&& value) {
+  set_has_name();
+  name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.EnumFlagsValue.name)
+}
+#endif
+inline void EnumFlagsValue::set_name(const char* value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.EnumFlagsValue.name)
+}
+inline void EnumFlagsValue::set_name(const char* value, size_t size) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.EnumFlagsValue.name)
+}
+inline ::std::string* EnumFlagsValue::mutable_name() {
+  set_has_name();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.EnumFlagsValue.name)
+  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* EnumFlagsValue::release_name() {
+  // @@protoc_insertion_point(field_release:GstDebugger.EnumFlagsValue.name)
+  clear_has_name();
+  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void EnumFlagsValue::set_allocated_name(::std::string* name) {
+  if (name != NULL) {
+    set_has_name();
+  } else {
+    clear_has_name();
+  }
+  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.EnumFlagsValue.name)
+}
+
+// required int32 value = 2;
+inline bool EnumFlagsValue::has_value() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+inline void EnumFlagsValue::set_has_value() {
+  _has_bits_[0] |= 0x00000004u;
+}
+inline void EnumFlagsValue::clear_has_value() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+inline void EnumFlagsValue::clear_value() {
+  value_ = 0;
+  clear_has_value();
+}
+inline ::google::protobuf::int32 EnumFlagsValue::value() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.EnumFlagsValue.value)
+  return value_;
+}
+inline void EnumFlagsValue::set_value(::google::protobuf::int32 value) {
+  set_has_value();
+  value_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.EnumFlagsValue.value)
+}
+
+// required string nick = 3;
+inline bool EnumFlagsValue::has_nick() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void EnumFlagsValue::set_has_nick() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void EnumFlagsValue::clear_has_nick() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void EnumFlagsValue::clear_nick() {
+  nick_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_nick();
+}
+inline const ::std::string& EnumFlagsValue::nick() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.EnumFlagsValue.nick)
+  return nick_.GetNoArena();
+}
+inline void EnumFlagsValue::set_nick(const ::std::string& value) {
+  set_has_nick();
+  nick_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.EnumFlagsValue.nick)
+}
+#if LANG_CXX11
+inline void EnumFlagsValue::set_nick(::std::string&& value) {
+  set_has_nick();
+  nick_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.EnumFlagsValue.nick)
+}
+#endif
+inline void EnumFlagsValue::set_nick(const char* value) {
+  set_has_nick();
+  nick_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.EnumFlagsValue.nick)
+}
+inline void EnumFlagsValue::set_nick(const char* value, size_t size) {
+  set_has_nick();
+  nick_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.EnumFlagsValue.nick)
+}
+inline ::std::string* EnumFlagsValue::mutable_nick() {
+  set_has_nick();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.EnumFlagsValue.nick)
+  return nick_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* EnumFlagsValue::release_nick() {
+  // @@protoc_insertion_point(field_release:GstDebugger.EnumFlagsValue.nick)
+  clear_has_nick();
+  return nick_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void EnumFlagsValue::set_allocated_nick(::std::string* nick) {
+  if (nick != NULL) {
+    set_has_nick();
+  } else {
+    clear_has_nick();
+  }
+  nick_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), nick);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.EnumFlagsValue.nick)
+}
+
+// -------------------------------------------------------------------
+
+// EnumFlagsType
+
+// required string type_name = 1;
+inline bool EnumFlagsType::has_type_name() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void EnumFlagsType::set_has_type_name() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void EnumFlagsType::clear_has_type_name() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void EnumFlagsType::clear_type_name() {
+  type_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_type_name();
+}
+inline const ::std::string& EnumFlagsType::type_name() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.EnumFlagsType.type_name)
+  return type_name_.GetNoArena();
+}
+inline void EnumFlagsType::set_type_name(const ::std::string& value) {
+  set_has_type_name();
+  type_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.EnumFlagsType.type_name)
+}
+#if LANG_CXX11
+inline void EnumFlagsType::set_type_name(::std::string&& value) {
+  set_has_type_name();
+  type_name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.EnumFlagsType.type_name)
+}
+#endif
+inline void EnumFlagsType::set_type_name(const char* value) {
+  set_has_type_name();
+  type_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.EnumFlagsType.type_name)
+}
+inline void EnumFlagsType::set_type_name(const char* value, size_t size) {
+  set_has_type_name();
+  type_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.EnumFlagsType.type_name)
+}
+inline ::std::string* EnumFlagsType::mutable_type_name() {
+  set_has_type_name();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.EnumFlagsType.type_name)
+  return type_name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* EnumFlagsType::release_type_name() {
+  // @@protoc_insertion_point(field_release:GstDebugger.EnumFlagsType.type_name)
+  clear_has_type_name();
+  return type_name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void EnumFlagsType::set_allocated_type_name(::std::string* type_name) {
+  if (type_name != NULL) {
+    set_has_type_name();
+  } else {
+    clear_has_type_name();
+  }
+  type_name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), type_name);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.EnumFlagsType.type_name)
+}
+
+// required .GstDebugger.EnumFlagsType.EnumFlagsKind kind = 2;
+inline bool EnumFlagsType::has_kind() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void EnumFlagsType::set_has_kind() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void EnumFlagsType::clear_has_kind() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void EnumFlagsType::clear_kind() {
+  kind_ = 0;
+  clear_has_kind();
+}
+inline ::GstDebugger::EnumFlagsType_EnumFlagsKind EnumFlagsType::kind() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.EnumFlagsType.kind)
+  return static_cast< ::GstDebugger::EnumFlagsType_EnumFlagsKind >(kind_);
+}
+inline void EnumFlagsType::set_kind(::GstDebugger::EnumFlagsType_EnumFlagsKind value) {
+  assert(::GstDebugger::EnumFlagsType_EnumFlagsKind_IsValid(value));
+  set_has_kind();
+  kind_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.EnumFlagsType.kind)
+}
+
+// repeated .GstDebugger.EnumFlagsValue values = 3;
+inline int EnumFlagsType::values_size() const {
+  return values_.size();
+}
+inline void EnumFlagsType::clear_values() {
+  values_.Clear();
+}
+inline const ::GstDebugger::EnumFlagsValue& EnumFlagsType::values(int index) const {
+  // @@protoc_insertion_point(field_get:GstDebugger.EnumFlagsType.values)
+  return values_.Get(index);
+}
+inline ::GstDebugger::EnumFlagsValue* EnumFlagsType::mutable_values(int index) {
+  // @@protoc_insertion_point(field_mutable:GstDebugger.EnumFlagsType.values)
+  return values_.Mutable(index);
+}
+inline ::GstDebugger::EnumFlagsValue* EnumFlagsType::add_values() {
+  // @@protoc_insertion_point(field_add:GstDebugger.EnumFlagsType.values)
+  return values_.Add();
+}
+inline ::google::protobuf::RepeatedPtrField< ::GstDebugger::EnumFlagsValue >*
+EnumFlagsType::mutable_values() {
+  // @@protoc_insertion_point(field_mutable_list:GstDebugger.EnumFlagsType.values)
+  return &values_;
+}
+inline const ::google::protobuf::RepeatedPtrField< ::GstDebugger::EnumFlagsValue >&
+EnumFlagsType::values() const {
+  // @@protoc_insertion_point(field_list:GstDebugger.EnumFlagsType.values)
+  return values_;
+}
+
+// -------------------------------------------------------------------
+
+// FactoryMeta
+
+// required string key = 1;
+inline bool FactoryMeta::has_key() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void FactoryMeta::set_has_key() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void FactoryMeta::clear_has_key() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void FactoryMeta::clear_key() {
+  key_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_key();
+}
+inline const ::std::string& FactoryMeta::key() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.FactoryMeta.key)
+  return key_.GetNoArena();
+}
+inline void FactoryMeta::set_key(const ::std::string& value) {
+  set_has_key();
+  key_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.FactoryMeta.key)
+}
+#if LANG_CXX11
+inline void FactoryMeta::set_key(::std::string&& value) {
+  set_has_key();
+  key_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.FactoryMeta.key)
+}
+#endif
+inline void FactoryMeta::set_key(const char* value) {
+  set_has_key();
+  key_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.FactoryMeta.key)
+}
+inline void FactoryMeta::set_key(const char* value, size_t size) {
+  set_has_key();
+  key_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.FactoryMeta.key)
+}
+inline ::std::string* FactoryMeta::mutable_key() {
+  set_has_key();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.FactoryMeta.key)
+  return key_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* FactoryMeta::release_key() {
+  // @@protoc_insertion_point(field_release:GstDebugger.FactoryMeta.key)
+  clear_has_key();
+  return key_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void FactoryMeta::set_allocated_key(::std::string* key) {
+  if (key != NULL) {
+    set_has_key();
+  } else {
+    clear_has_key();
+  }
+  key_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), key);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.FactoryMeta.key)
+}
+
+// required string value = 2;
+inline bool FactoryMeta::has_value() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void FactoryMeta::set_has_value() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void FactoryMeta::clear_has_value() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void FactoryMeta::clear_value() {
+  value_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_value();
+}
+inline const ::std::string& FactoryMeta::value() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.FactoryMeta.value)
+  return value_.GetNoArena();
+}
+inline void FactoryMeta::set_value(const ::std::string& value) {
+  set_has_value();
+  value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.FactoryMeta.value)
+}
+#if LANG_CXX11
+inline void FactoryMeta::set_value(::std::string&& value) {
+  set_has_value();
+  value_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.FactoryMeta.value)
+}
+#endif
+inline void FactoryMeta::set_value(const char* value) {
+  set_has_value();
+  value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.FactoryMeta.value)
+}
+inline void FactoryMeta::set_value(const char* value, size_t size) {
+  set_has_value();
+  value_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.FactoryMeta.value)
+}
+inline ::std::string* FactoryMeta::mutable_value() {
+  set_has_value();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.FactoryMeta.value)
+  return value_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* FactoryMeta::release_value() {
+  // @@protoc_insertion_point(field_release:GstDebugger.FactoryMeta.value)
+  clear_has_value();
+  return value_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void FactoryMeta::set_allocated_value(::std::string* value) {
+  if (value != NULL) {
+    set_has_value();
+  } else {
+    clear_has_value();
+  }
+  value_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.FactoryMeta.value)
+}
+
+// -------------------------------------------------------------------
+
+// PadTemplate
+
+// required string name_template = 1;
+inline bool PadTemplate::has_name_template() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void PadTemplate::set_has_name_template() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void PadTemplate::clear_has_name_template() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void PadTemplate::clear_name_template() {
+  name_template_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_name_template();
+}
+inline const ::std::string& PadTemplate::name_template() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PadTemplate.name_template)
+  return name_template_.GetNoArena();
+}
+inline void PadTemplate::set_name_template(const ::std::string& value) {
+  set_has_name_template();
+  name_template_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.PadTemplate.name_template)
+}
+#if LANG_CXX11
+inline void PadTemplate::set_name_template(::std::string&& value) {
+  set_has_name_template();
+  name_template_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.PadTemplate.name_template)
+}
+#endif
+inline void PadTemplate::set_name_template(const char* value) {
+  set_has_name_template();
+  name_template_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.PadTemplate.name_template)
+}
+inline void PadTemplate::set_name_template(const char* value, size_t size) {
+  set_has_name_template();
+  name_template_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.PadTemplate.name_template)
+}
+inline ::std::string* PadTemplate::mutable_name_template() {
+  set_has_name_template();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PadTemplate.name_template)
+  return name_template_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* PadTemplate::release_name_template() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PadTemplate.name_template)
+  clear_has_name_template();
+  return name_template_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void PadTemplate::set_allocated_name_template(::std::string* name_template) {
+  if (name_template != NULL) {
+    set_has_name_template();
+  } else {
+    clear_has_name_template();
+  }
+  name_template_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
name_template);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PadTemplate.name_template)
+}
+
+// required int32 direction = 2;
+inline bool PadTemplate::has_direction() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+inline void PadTemplate::set_has_direction() {
+  _has_bits_[0] |= 0x00000004u;
+}
+inline void PadTemplate::clear_has_direction() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+inline void PadTemplate::clear_direction() {
+  direction_ = 0;
+  clear_has_direction();
+}
+inline ::google::protobuf::int32 PadTemplate::direction() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PadTemplate.direction)
+  return direction_;
+}
+inline void PadTemplate::set_direction(::google::protobuf::int32 value) {
+  set_has_direction();
+  direction_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.PadTemplate.direction)
+}
+
+// required int32 presence = 3;
+inline bool PadTemplate::has_presence() const {
+  return (_has_bits_[0] & 0x00000008u) != 0;
+}
+inline void PadTemplate::set_has_presence() {
+  _has_bits_[0] |= 0x00000008u;
+}
+inline void PadTemplate::clear_has_presence() {
+  _has_bits_[0] &= ~0x00000008u;
+}
+inline void PadTemplate::clear_presence() {
+  presence_ = 0;
+  clear_has_presence();
+}
+inline ::google::protobuf::int32 PadTemplate::presence() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PadTemplate.presence)
+  return presence_;
+}
+inline void PadTemplate::set_presence(::google::protobuf::int32 value) {
+  set_has_presence();
+  presence_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.PadTemplate.presence)
+}
+
+// required string caps = 4;
+inline bool PadTemplate::has_caps() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void PadTemplate::set_has_caps() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void PadTemplate::clear_has_caps() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void PadTemplate::clear_caps() {
+  caps_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_caps();
+}
+inline const ::std::string& PadTemplate::caps() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PadTemplate.caps)
+  return caps_.GetNoArena();
+}
+inline void PadTemplate::set_caps(const ::std::string& value) {
+  set_has_caps();
+  caps_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.PadTemplate.caps)
+}
+#if LANG_CXX11
+inline void PadTemplate::set_caps(::std::string&& value) {
+  set_has_caps();
+  caps_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.PadTemplate.caps)
+}
+#endif
+inline void PadTemplate::set_caps(const char* value) {
+  set_has_caps();
+  caps_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.PadTemplate.caps)
+}
+inline void PadTemplate::set_caps(const char* value, size_t size) {
+  set_has_caps();
+  caps_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.PadTemplate.caps)
+}
+inline ::std::string* PadTemplate::mutable_caps() {
+  set_has_caps();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PadTemplate.caps)
+  return caps_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* PadTemplate::release_caps() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PadTemplate.caps)
+  clear_has_caps();
+  return caps_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void PadTemplate::set_allocated_caps(::std::string* caps) {
+  if (caps != NULL) {
+    set_has_caps();
+  } else {
+    clear_has_caps();
+  }
+  caps_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), caps);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PadTemplate.caps)
+}
+
+// -------------------------------------------------------------------
+
+// FactoryType
+
+// required string name = 1;
+inline bool FactoryType::has_name() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void FactoryType::set_has_name() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void FactoryType::clear_has_name() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void FactoryType::clear_name() {
+  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_name();
+}
+inline const ::std::string& FactoryType::name() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.FactoryType.name)
+  return name_.GetNoArena();
+}
+inline void FactoryType::set_name(const ::std::string& value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.FactoryType.name)
+}
+#if LANG_CXX11
+inline void FactoryType::set_name(::std::string&& value) {
+  set_has_name();
+  name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.FactoryType.name)
+}
+#endif
+inline void FactoryType::set_name(const char* value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.FactoryType.name)
+}
+inline void FactoryType::set_name(const char* value, size_t size) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.FactoryType.name)
+}
+inline ::std::string* FactoryType::mutable_name() {
+  set_has_name();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.FactoryType.name)
+  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* FactoryType::release_name() {
+  // @@protoc_insertion_point(field_release:GstDebugger.FactoryType.name)
+  clear_has_name();
+  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void FactoryType::set_allocated_name(::std::string* name) {
+  if (name != NULL) {
+    set_has_name();
+  } else {
+    clear_has_name();
+  }
+  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.FactoryType.name)
+}
+
+// repeated .GstDebugger.FactoryMeta metadata = 2;
+inline int FactoryType::metadata_size() const {
+  return metadata_.size();
+}
+inline void FactoryType::clear_metadata() {
+  metadata_.Clear();
+}
+inline const ::GstDebugger::FactoryMeta& FactoryType::metadata(int index) const {
+  // @@protoc_insertion_point(field_get:GstDebugger.FactoryType.metadata)
+  return metadata_.Get(index);
+}
+inline ::GstDebugger::FactoryMeta* FactoryType::mutable_metadata(int index) {
+  // @@protoc_insertion_point(field_mutable:GstDebugger.FactoryType.metadata)
+  return metadata_.Mutable(index);
+}
+inline ::GstDebugger::FactoryMeta* FactoryType::add_metadata() {
+  // @@protoc_insertion_point(field_add:GstDebugger.FactoryType.metadata)
+  return metadata_.Add();
+}
+inline ::google::protobuf::RepeatedPtrField< ::GstDebugger::FactoryMeta >*
+FactoryType::mutable_metadata() {
+  // @@protoc_insertion_point(field_mutable_list:GstDebugger.FactoryType.metadata)
+  return &metadata_;
+}
+inline const ::google::protobuf::RepeatedPtrField< ::GstDebugger::FactoryMeta >&
+FactoryType::metadata() const {
+  // @@protoc_insertion_point(field_list:GstDebugger.FactoryType.metadata)
+  return metadata_;
+}
+
+// repeated .GstDebugger.PadTemplate templates = 3;
+inline int FactoryType::templates_size() const {
+  return templates_.size();
+}
+inline void FactoryType::clear_templates() {
+  templates_.Clear();
+}
+inline const ::GstDebugger::PadTemplate& FactoryType::templates(int index) const {
+  // @@protoc_insertion_point(field_get:GstDebugger.FactoryType.templates)
+  return templates_.Get(index);
+}
+inline ::GstDebugger::PadTemplate* FactoryType::mutable_templates(int index) {
+  // @@protoc_insertion_point(field_mutable:GstDebugger.FactoryType.templates)
+  return templates_.Mutable(index);
+}
+inline ::GstDebugger::PadTemplate* FactoryType::add_templates() {
+  // @@protoc_insertion_point(field_add:GstDebugger.FactoryType.templates)
+  return templates_.Add();
+}
+inline ::google::protobuf::RepeatedPtrField< ::GstDebugger::PadTemplate >*
+FactoryType::mutable_templates() {
+  // @@protoc_insertion_point(field_mutable_list:GstDebugger.FactoryType.templates)
+  return &templates_;
+}
+inline const ::google::protobuf::RepeatedPtrField< ::GstDebugger::PadTemplate >&
+FactoryType::templates() const {
+  // @@protoc_insertion_point(field_list:GstDebugger.FactoryType.templates)
+  return templates_;
+}
+
+// -------------------------------------------------------------------
+
+// ElementKlass
+
+// required string name = 1;
+inline bool ElementKlass::has_name() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void ElementKlass::set_has_name() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void ElementKlass::clear_has_name() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void ElementKlass::clear_name() {
+  name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_name();
+}
+inline const ::std::string& ElementKlass::name() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.ElementKlass.name)
+  return name_.GetNoArena();
+}
+inline void ElementKlass::set_name(const ::std::string& value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.ElementKlass.name)
+}
+#if LANG_CXX11
+inline void ElementKlass::set_name(::std::string&& value) {
+  set_has_name();
+  name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.ElementKlass.name)
+}
+#endif
+inline void ElementKlass::set_name(const char* value) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.ElementKlass.name)
+}
+inline void ElementKlass::set_name(const char* value, size_t size) {
+  set_has_name();
+  name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.ElementKlass.name)
+}
+inline ::std::string* ElementKlass::mutable_name() {
+  set_has_name();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.ElementKlass.name)
+  return name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* ElementKlass::release_name() {
+  // @@protoc_insertion_point(field_release:GstDebugger.ElementKlass.name)
+  clear_has_name();
+  return name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void ElementKlass::set_allocated_name(::std::string* name) {
+  if (name != NULL) {
+    set_has_name();
+  } else {
+    clear_has_name();
+  }
+  name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), name);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.ElementKlass.name)
+}
+
+// repeated .GstDebugger.PropertyInfo property_info = 2;
+inline int ElementKlass::property_info_size() const {
+  return property_info_.size();
+}
+inline void ElementKlass::clear_property_info() {
+  property_info_.Clear();
+}
+inline const ::GstDebugger::PropertyInfo& ElementKlass::property_info(int index) const {
+  // @@protoc_insertion_point(field_get:GstDebugger.ElementKlass.property_info)
+  return property_info_.Get(index);
+}
+inline ::GstDebugger::PropertyInfo* ElementKlass::mutable_property_info(int index) {
+  // @@protoc_insertion_point(field_mutable:GstDebugger.ElementKlass.property_info)
+  return property_info_.Mutable(index);
+}
+inline ::GstDebugger::PropertyInfo* ElementKlass::add_property_info() {
+  // @@protoc_insertion_point(field_add:GstDebugger.ElementKlass.property_info)
+  return property_info_.Add();
+}
+inline ::google::protobuf::RepeatedPtrField< ::GstDebugger::PropertyInfo >*
+ElementKlass::mutable_property_info() {
+  // @@protoc_insertion_point(field_mutable_list:GstDebugger.ElementKlass.property_info)
+  return &property_info_;
+}
+inline const ::google::protobuf::RepeatedPtrField< ::GstDebugger::PropertyInfo >&
+ElementKlass::property_info() const {
+  // @@protoc_insertion_point(field_list:GstDebugger.ElementKlass.property_info)
+  return property_info_;
+}
+
+// -------------------------------------------------------------------
+
+// TopologyLink
+
+// required string src_pad = 1;
+inline bool TopologyLink::has_src_pad() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void TopologyLink::set_has_src_pad() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void TopologyLink::clear_has_src_pad() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void TopologyLink::clear_src_pad() {
+  src_pad_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_src_pad();
+}
+inline const ::std::string& TopologyLink::src_pad() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyLink.src_pad)
+  return src_pad_.GetNoArena();
+}
+inline void TopologyLink::set_src_pad(const ::std::string& value) {
+  set_has_src_pad();
+  src_pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.TopologyLink.src_pad)
+}
+#if LANG_CXX11
+inline void TopologyLink::set_src_pad(::std::string&& value) {
+  set_has_src_pad();
+  src_pad_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.TopologyLink.src_pad)
+}
+#endif
+inline void TopologyLink::set_src_pad(const char* value) {
+  set_has_src_pad();
+  src_pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.TopologyLink.src_pad)
+}
+inline void TopologyLink::set_src_pad(const char* value, size_t size) {
+  set_has_src_pad();
+  src_pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.TopologyLink.src_pad)
+}
+inline ::std::string* TopologyLink::mutable_src_pad() {
+  set_has_src_pad();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.TopologyLink.src_pad)
+  return src_pad_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* TopologyLink::release_src_pad() {
+  // @@protoc_insertion_point(field_release:GstDebugger.TopologyLink.src_pad)
+  clear_has_src_pad();
+  return src_pad_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void TopologyLink::set_allocated_src_pad(::std::string* src_pad) {
+  if (src_pad != NULL) {
+    set_has_src_pad();
+  } else {
+    clear_has_src_pad();
+  }
+  src_pad_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), src_pad);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.TopologyLink.src_pad)
+}
+
+// required string sink_pad = 2;
+inline bool TopologyLink::has_sink_pad() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void TopologyLink::set_has_sink_pad() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void TopologyLink::clear_has_sink_pad() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void TopologyLink::clear_sink_pad() {
+  sink_pad_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_sink_pad();
+}
+inline const ::std::string& TopologyLink::sink_pad() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyLink.sink_pad)
+  return sink_pad_.GetNoArena();
+}
+inline void TopologyLink::set_sink_pad(const ::std::string& value) {
+  set_has_sink_pad();
+  sink_pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.TopologyLink.sink_pad)
+}
+#if LANG_CXX11
+inline void TopologyLink::set_sink_pad(::std::string&& value) {
+  set_has_sink_pad();
+  sink_pad_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.TopologyLink.sink_pad)
+}
+#endif
+inline void TopologyLink::set_sink_pad(const char* value) {
+  set_has_sink_pad();
+  sink_pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.TopologyLink.sink_pad)
+}
+inline void TopologyLink::set_sink_pad(const char* value, size_t size) {
+  set_has_sink_pad();
+  sink_pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.TopologyLink.sink_pad)
+}
+inline ::std::string* TopologyLink::mutable_sink_pad() {
+  set_has_sink_pad();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.TopologyLink.sink_pad)
+  return sink_pad_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* TopologyLink::release_sink_pad() {
+  // @@protoc_insertion_point(field_release:GstDebugger.TopologyLink.sink_pad)
+  clear_has_sink_pad();
+  return sink_pad_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void TopologyLink::set_allocated_sink_pad(::std::string* sink_pad) {
+  if (sink_pad != NULL) {
+    set_has_sink_pad();
+  } else {
+    clear_has_sink_pad();
+  }
+  sink_pad_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), sink_pad);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.TopologyLink.sink_pad)
+}
+
+// -------------------------------------------------------------------
+
+// TopologyElement
+
+// required string path = 1;
+inline bool TopologyElement::has_path() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void TopologyElement::set_has_path() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void TopologyElement::clear_has_path() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void TopologyElement::clear_path() {
+  path_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_path();
+}
+inline const ::std::string& TopologyElement::path() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyElement.path)
+  return path_.GetNoArena();
+}
+inline void TopologyElement::set_path(const ::std::string& value) {
+  set_has_path();
+  path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.TopologyElement.path)
+}
+#if LANG_CXX11
+inline void TopologyElement::set_path(::std::string&& value) {
+  set_has_path();
+  path_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.TopologyElement.path)
+}
+#endif
+inline void TopologyElement::set_path(const char* value) {
+  set_has_path();
+  path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.TopologyElement.path)
+}
+inline void TopologyElement::set_path(const char* value, size_t size) {
+  set_has_path();
+  path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.TopologyElement.path)
+}
+inline ::std::string* TopologyElement::mutable_path() {
+  set_has_path();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.TopologyElement.path)
+  return path_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* TopologyElement::release_path() {
+  // @@protoc_insertion_point(field_release:GstDebugger.TopologyElement.path)
+  clear_has_path();
+  return path_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void TopologyElement::set_allocated_path(::std::string* path) {
+  if (path != NULL) {
+    set_has_path();
+  } else {
+    clear_has_path();
+  }
+  path_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), path);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.TopologyElement.path)
+}
+
+// required string type_name = 2;
+inline bool TopologyElement::has_type_name() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void TopologyElement::set_has_type_name() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void TopologyElement::clear_has_type_name() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void TopologyElement::clear_type_name() {
+  type_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_type_name();
+}
+inline const ::std::string& TopologyElement::type_name() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyElement.type_name)
+  return type_name_.GetNoArena();
+}
+inline void TopologyElement::set_type_name(const ::std::string& value) {
+  set_has_type_name();
+  type_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.TopologyElement.type_name)
+}
+#if LANG_CXX11
+inline void TopologyElement::set_type_name(::std::string&& value) {
+  set_has_type_name();
+  type_name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.TopologyElement.type_name)
+}
+#endif
+inline void TopologyElement::set_type_name(const char* value) {
+  set_has_type_name();
+  type_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.TopologyElement.type_name)
+}
+inline void TopologyElement::set_type_name(const char* value, size_t size) {
+  set_has_type_name();
+  type_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.TopologyElement.type_name)
+}
+inline ::std::string* TopologyElement::mutable_type_name() {
+  set_has_type_name();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.TopologyElement.type_name)
+  return type_name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* TopologyElement::release_type_name() {
+  // @@protoc_insertion_point(field_release:GstDebugger.TopologyElement.type_name)
+  clear_has_type_name();
+  return type_name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void TopologyElement::set_allocated_type_name(::std::string* type_name) {
+  if (type_name != NULL) {
+    set_has_type_name();
+  } else {
+    clear_has_type_name();
+  }
+  type_name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), type_name);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.TopologyElement.type_name)
+}
+
+// required bool is_bin = 3;
+inline bool TopologyElement::has_is_bin() const {
+  return (_has_bits_[0] & 0x00000008u) != 0;
+}
+inline void TopologyElement::set_has_is_bin() {
+  _has_bits_[0] |= 0x00000008u;
+}
+inline void TopologyElement::clear_has_is_bin() {
+  _has_bits_[0] &= ~0x00000008u;
+}
+inline void TopologyElement::clear_is_bin() {
+  is_bin_ = false;
+  clear_has_is_bin();
+}
+inline bool TopologyElement::is_bin() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyElement.is_bin)
+  return is_bin_;
+}
+inline void TopologyElement::set_is_bin(bool value) {
+  set_has_is_bin();
+  is_bin_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.TopologyElement.is_bin)
+}
+
+// required string factory_name = 4;
+inline bool TopologyElement::has_factory_name() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+inline void TopologyElement::set_has_factory_name() {
+  _has_bits_[0] |= 0x00000004u;
+}
+inline void TopologyElement::clear_has_factory_name() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+inline void TopologyElement::clear_factory_name() {
+  factory_name_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_factory_name();
+}
+inline const ::std::string& TopologyElement::factory_name() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyElement.factory_name)
+  return factory_name_.GetNoArena();
+}
+inline void TopologyElement::set_factory_name(const ::std::string& value) {
+  set_has_factory_name();
+  factory_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.TopologyElement.factory_name)
+}
+#if LANG_CXX11
+inline void TopologyElement::set_factory_name(::std::string&& value) {
+  set_has_factory_name();
+  factory_name_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.TopologyElement.factory_name)
+}
+#endif
+inline void TopologyElement::set_factory_name(const char* value) {
+  set_has_factory_name();
+  factory_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.TopologyElement.factory_name)
+}
+inline void TopologyElement::set_factory_name(const char* value, size_t size) {
+  set_has_factory_name();
+  factory_name_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.TopologyElement.factory_name)
+}
+inline ::std::string* TopologyElement::mutable_factory_name() {
+  set_has_factory_name();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.TopologyElement.factory_name)
+  return factory_name_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* TopologyElement::release_factory_name() {
+  // @@protoc_insertion_point(field_release:GstDebugger.TopologyElement.factory_name)
+  clear_has_factory_name();
+  return factory_name_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void TopologyElement::set_allocated_factory_name(::std::string* factory_name) {
+  if (factory_name != NULL) {
+    set_has_factory_name();
+  } else {
+    clear_has_factory_name();
+  }
+  factory_name_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
factory_name);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.TopologyElement.factory_name)
+}
+
+// -------------------------------------------------------------------
+
+// TopologyPad
+
+// required string path = 1;
+inline bool TopologyPad::has_path() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void TopologyPad::set_has_path() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void TopologyPad::clear_has_path() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void TopologyPad::clear_path() {
+  path_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_path();
+}
+inline const ::std::string& TopologyPad::path() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyPad.path)
+  return path_.GetNoArena();
+}
+inline void TopologyPad::set_path(const ::std::string& value) {
+  set_has_path();
+  path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.TopologyPad.path)
+}
+#if LANG_CXX11
+inline void TopologyPad::set_path(::std::string&& value) {
+  set_has_path();
+  path_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.TopologyPad.path)
+}
+#endif
+inline void TopologyPad::set_path(const char* value) {
+  set_has_path();
+  path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.TopologyPad.path)
+}
+inline void TopologyPad::set_path(const char* value, size_t size) {
+  set_has_path();
+  path_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.TopologyPad.path)
+}
+inline ::std::string* TopologyPad::mutable_path() {
+  set_has_path();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.TopologyPad.path)
+  return path_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* TopologyPad::release_path() {
+  // @@protoc_insertion_point(field_release:GstDebugger.TopologyPad.path)
+  clear_has_path();
+  return path_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void TopologyPad::set_allocated_path(::std::string* path) {
+  if (path != NULL) {
+    set_has_path();
+  } else {
+    clear_has_path();
+  }
+  path_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), path);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.TopologyPad.path)
+}
+
+// required bool is_ghostpad = 2;
+inline bool TopologyPad::has_is_ghostpad() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+inline void TopologyPad::set_has_is_ghostpad() {
+  _has_bits_[0] |= 0x00000004u;
+}
+inline void TopologyPad::clear_has_is_ghostpad() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+inline void TopologyPad::clear_is_ghostpad() {
+  is_ghostpad_ = false;
+  clear_has_is_ghostpad();
+}
+inline bool TopologyPad::is_ghostpad() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyPad.is_ghostpad)
+  return is_ghostpad_;
+}
+inline void TopologyPad::set_is_ghostpad(bool value) {
+  set_has_is_ghostpad();
+  is_ghostpad_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.TopologyPad.is_ghostpad)
+}
+
+// required int32 direction = 3;
+inline bool TopologyPad::has_direction() const {
+  return (_has_bits_[0] & 0x00000008u) != 0;
+}
+inline void TopologyPad::set_has_direction() {
+  _has_bits_[0] |= 0x00000008u;
+}
+inline void TopologyPad::clear_has_direction() {
+  _has_bits_[0] &= ~0x00000008u;
+}
+inline void TopologyPad::clear_direction() {
+  direction_ = 0;
+  clear_has_direction();
+}
+inline ::google::protobuf::int32 TopologyPad::direction() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyPad.direction)
+  return direction_;
+}
+inline void TopologyPad::set_direction(::google::protobuf::int32 value) {
+  set_has_direction();
+  direction_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.TopologyPad.direction)
+}
+
+// required int32 presence = 4;
+inline bool TopologyPad::has_presence() const {
+  return (_has_bits_[0] & 0x00000010u) != 0;
+}
+inline void TopologyPad::set_has_presence() {
+  _has_bits_[0] |= 0x00000010u;
+}
+inline void TopologyPad::clear_has_presence() {
+  _has_bits_[0] &= ~0x00000010u;
+}
+inline void TopologyPad::clear_presence() {
+  presence_ = 0;
+  clear_has_presence();
+}
+inline ::google::protobuf::int32 TopologyPad::presence() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyPad.presence)
+  return presence_;
+}
+inline void TopologyPad::set_presence(::google::protobuf::int32 value) {
+  set_has_presence();
+  presence_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.TopologyPad.presence)
+}
+
+// optional .GstDebugger.PadTemplate template = 5;
+inline bool TopologyPad::has_template_() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void TopologyPad::set_has_template_() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void TopologyPad::clear_has_template_() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void TopologyPad::clear_template_() {
+  if (template__ != NULL) template__->::GstDebugger::PadTemplate::Clear();
+  clear_has_template_();
+}
+inline const ::GstDebugger::PadTemplate& TopologyPad::template_() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyPad.template)
+  return template__ != NULL ? *template__
+                         : *::GstDebugger::PadTemplate::internal_default_instance();
+}
+inline ::GstDebugger::PadTemplate* TopologyPad::mutable_template_() {
+  set_has_template_();
+  if (template__ == NULL) {
+    template__ = new ::GstDebugger::PadTemplate;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.TopologyPad.template)
+  return template__;
+}
+inline ::GstDebugger::PadTemplate* TopologyPad::release_template_() {
+  // @@protoc_insertion_point(field_release:GstDebugger.TopologyPad.template)
+  clear_has_template_();
+  ::GstDebugger::PadTemplate* temp = template__;
+  template__ = NULL;
+  return temp;
+}
+inline void TopologyPad::set_allocated_template_(::GstDebugger::PadTemplate* template_) {
+  delete template__;
+  template__ = template_;
+  if (template_) {
+    set_has_template_();
+  } else {
+    clear_has_template_();
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.TopologyPad.template)
+}
+
+// -------------------------------------------------------------------
+
+// TopologyInfo
+
+// required .GstDebugger.Action action = 1;
+inline bool TopologyInfo::has_action() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void TopologyInfo::set_has_action() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void TopologyInfo::clear_has_action() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void TopologyInfo::clear_action() {
+  action_ = 0;
+  clear_has_action();
+}
+inline ::GstDebugger::Action TopologyInfo::action() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyInfo.action)
+  return static_cast< ::GstDebugger::Action >(action_);
+}
+inline void TopologyInfo::set_action(::GstDebugger::Action value) {
+  assert(::GstDebugger::Action_IsValid(value));
+  set_has_action();
+  action_ = value;
+  // @@protoc_insertion_point(field_set:GstDebugger.TopologyInfo.action)
+}
+
+// optional .GstDebugger.TopologyLink link = 2;
+inline bool TopologyInfo::has_link() const {
+  return topology_type_case() == kLink;
+}
+inline void TopologyInfo::set_has_link() {
+  _oneof_case_[0] = kLink;
+}
+inline void TopologyInfo::clear_link() {
+  if (has_link()) {
+    delete topology_type_.link_;
+    clear_has_topology_type();
+  }
+}
+inline  const ::GstDebugger::TopologyLink& TopologyInfo::link() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyInfo.link)
+  return has_link()
+      ? *topology_type_.link_
+      : ::GstDebugger::TopologyLink::default_instance();
+}
+inline ::GstDebugger::TopologyLink* TopologyInfo::mutable_link() {
+  if (!has_link()) {
+    clear_topology_type();
+    set_has_link();
+    topology_type_.link_ = new ::GstDebugger::TopologyLink;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.TopologyInfo.link)
+  return topology_type_.link_;
+}
+inline ::GstDebugger::TopologyLink* TopologyInfo::release_link() {
+  // @@protoc_insertion_point(field_release:GstDebugger.TopologyInfo.link)
+  if (has_link()) {
+    clear_has_topology_type();
+    ::GstDebugger::TopologyLink* temp = topology_type_.link_;
+    topology_type_.link_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+inline void TopologyInfo::set_allocated_link(::GstDebugger::TopologyLink* link) {
+  clear_topology_type();
+  if (link) {
+    set_has_link();
+    topology_type_.link_ = link;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.TopologyInfo.link)
+}
+
+// optional .GstDebugger.TopologyElement element = 3;
+inline bool TopologyInfo::has_element() const {
+  return topology_type_case() == kElement;
+}
+inline void TopologyInfo::set_has_element() {
+  _oneof_case_[0] = kElement;
+}
+inline void TopologyInfo::clear_element() {
+  if (has_element()) {
+    delete topology_type_.element_;
+    clear_has_topology_type();
+  }
+}
+inline  const ::GstDebugger::TopologyElement& TopologyInfo::element() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyInfo.element)
+  return has_element()
+      ? *topology_type_.element_
+      : ::GstDebugger::TopologyElement::default_instance();
+}
+inline ::GstDebugger::TopologyElement* TopologyInfo::mutable_element() {
+  if (!has_element()) {
+    clear_topology_type();
+    set_has_element();
+    topology_type_.element_ = new ::GstDebugger::TopologyElement;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.TopologyInfo.element)
+  return topology_type_.element_;
+}
+inline ::GstDebugger::TopologyElement* TopologyInfo::release_element() {
+  // @@protoc_insertion_point(field_release:GstDebugger.TopologyInfo.element)
+  if (has_element()) {
+    clear_has_topology_type();
+    ::GstDebugger::TopologyElement* temp = topology_type_.element_;
+    topology_type_.element_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+inline void TopologyInfo::set_allocated_element(::GstDebugger::TopologyElement* element) {
+  clear_topology_type();
+  if (element) {
+    set_has_element();
+    topology_type_.element_ = element;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.TopologyInfo.element)
+}
+
+// optional .GstDebugger.TopologyPad pad = 4;
+inline bool TopologyInfo::has_pad() const {
+  return topology_type_case() == kPad;
+}
+inline void TopologyInfo::set_has_pad() {
+  _oneof_case_[0] = kPad;
+}
+inline void TopologyInfo::clear_pad() {
+  if (has_pad()) {
+    delete topology_type_.pad_;
+    clear_has_topology_type();
+  }
+}
+inline  const ::GstDebugger::TopologyPad& TopologyInfo::pad() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.TopologyInfo.pad)
+  return has_pad()
+      ? *topology_type_.pad_
+      : ::GstDebugger::TopologyPad::default_instance();
+}
+inline ::GstDebugger::TopologyPad* TopologyInfo::mutable_pad() {
+  if (!has_pad()) {
+    clear_topology_type();
+    set_has_pad();
+    topology_type_.pad_ = new ::GstDebugger::TopologyPad;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.TopologyInfo.pad)
+  return topology_type_.pad_;
+}
+inline ::GstDebugger::TopologyPad* TopologyInfo::release_pad() {
+  // @@protoc_insertion_point(field_release:GstDebugger.TopologyInfo.pad)
+  if (has_pad()) {
+    clear_has_topology_type();
+    ::GstDebugger::TopologyPad* temp = topology_type_.pad_;
+    topology_type_.pad_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+inline void TopologyInfo::set_allocated_pad(::GstDebugger::TopologyPad* pad) {
+  clear_topology_type();
+  if (pad) {
+    set_has_pad();
+    topology_type_.pad_ = pad;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.TopologyInfo.pad)
+}
+
+inline bool TopologyInfo::has_topology_type() const {
+  return topology_type_case() != TOPOLOGY_TYPE_NOT_SET;
+}
+inline void TopologyInfo::clear_has_topology_type() {
+  _oneof_case_[0] = TOPOLOGY_TYPE_NOT_SET;
+}
+inline TopologyInfo::TopologyTypeCase TopologyInfo::topology_type_case() const {
+  return TopologyInfo::TopologyTypeCase(_oneof_case_[0]);
+}
+// -------------------------------------------------------------------
+
+// PadDynamicInfo
+
+// required string allowed_caps = 1;
+inline bool PadDynamicInfo::has_allowed_caps() const {
+  return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void PadDynamicInfo::set_has_allowed_caps() {
+  _has_bits_[0] |= 0x00000001u;
+}
+inline void PadDynamicInfo::clear_has_allowed_caps() {
+  _has_bits_[0] &= ~0x00000001u;
+}
+inline void PadDynamicInfo::clear_allowed_caps() {
+  allowed_caps_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_allowed_caps();
+}
+inline const ::std::string& PadDynamicInfo::allowed_caps() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PadDynamicInfo.allowed_caps)
+  return allowed_caps_.GetNoArena();
+}
+inline void PadDynamicInfo::set_allowed_caps(const ::std::string& value) {
+  set_has_allowed_caps();
+  allowed_caps_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.PadDynamicInfo.allowed_caps)
+}
+#if LANG_CXX11
+inline void PadDynamicInfo::set_allowed_caps(::std::string&& value) {
+  set_has_allowed_caps();
+  allowed_caps_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.PadDynamicInfo.allowed_caps)
+}
+#endif
+inline void PadDynamicInfo::set_allowed_caps(const char* value) {
+  set_has_allowed_caps();
+  allowed_caps_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.PadDynamicInfo.allowed_caps)
+}
+inline void PadDynamicInfo::set_allowed_caps(const char* value, size_t size) {
+  set_has_allowed_caps();
+  allowed_caps_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.PadDynamicInfo.allowed_caps)
+}
+inline ::std::string* PadDynamicInfo::mutable_allowed_caps() {
+  set_has_allowed_caps();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PadDynamicInfo.allowed_caps)
+  return allowed_caps_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* PadDynamicInfo::release_allowed_caps() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PadDynamicInfo.allowed_caps)
+  clear_has_allowed_caps();
+  return allowed_caps_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void PadDynamicInfo::set_allocated_allowed_caps(::std::string* allowed_caps) {
+  if (allowed_caps != NULL) {
+    set_has_allowed_caps();
+  } else {
+    clear_has_allowed_caps();
+  }
+  allowed_caps_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
allowed_caps);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PadDynamicInfo.allowed_caps)
+}
+
+// required string current_caps = 2;
+inline bool PadDynamicInfo::has_current_caps() const {
+  return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void PadDynamicInfo::set_has_current_caps() {
+  _has_bits_[0] |= 0x00000002u;
+}
+inline void PadDynamicInfo::clear_has_current_caps() {
+  _has_bits_[0] &= ~0x00000002u;
+}
+inline void PadDynamicInfo::clear_current_caps() {
+  current_caps_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_current_caps();
+}
+inline const ::std::string& PadDynamicInfo::current_caps() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PadDynamicInfo.current_caps)
+  return current_caps_.GetNoArena();
+}
+inline void PadDynamicInfo::set_current_caps(const ::std::string& value) {
+  set_has_current_caps();
+  current_caps_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.PadDynamicInfo.current_caps)
+}
+#if LANG_CXX11
+inline void PadDynamicInfo::set_current_caps(::std::string&& value) {
+  set_has_current_caps();
+  current_caps_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.PadDynamicInfo.current_caps)
+}
+#endif
+inline void PadDynamicInfo::set_current_caps(const char* value) {
+  set_has_current_caps();
+  current_caps_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.PadDynamicInfo.current_caps)
+}
+inline void PadDynamicInfo::set_current_caps(const char* value, size_t size) {
+  set_has_current_caps();
+  current_caps_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.PadDynamicInfo.current_caps)
+}
+inline ::std::string* PadDynamicInfo::mutable_current_caps() {
+  set_has_current_caps();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PadDynamicInfo.current_caps)
+  return current_caps_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* PadDynamicInfo::release_current_caps() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PadDynamicInfo.current_caps)
+  clear_has_current_caps();
+  return current_caps_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void PadDynamicInfo::set_allocated_current_caps(::std::string* current_caps) {
+  if (current_caps != NULL) {
+    set_has_current_caps();
+  } else {
+    clear_has_current_caps();
+  }
+  current_caps_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), 
current_caps);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PadDynamicInfo.current_caps)
+}
+
+// required string pad = 3;
+inline bool PadDynamicInfo::has_pad() const {
+  return (_has_bits_[0] & 0x00000004u) != 0;
+}
+inline void PadDynamicInfo::set_has_pad() {
+  _has_bits_[0] |= 0x00000004u;
+}
+inline void PadDynamicInfo::clear_has_pad() {
+  _has_bits_[0] &= ~0x00000004u;
+}
+inline void PadDynamicInfo::clear_pad() {
+  pad_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+  clear_has_pad();
+}
+inline const ::std::string& PadDynamicInfo::pad() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.PadDynamicInfo.pad)
+  return pad_.GetNoArena();
+}
+inline void PadDynamicInfo::set_pad(const ::std::string& value) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+  // @@protoc_insertion_point(field_set:GstDebugger.PadDynamicInfo.pad)
+}
+#if LANG_CXX11
+inline void PadDynamicInfo::set_pad(::std::string&& value) {
+  set_has_pad();
+  pad_.SetNoArena(
+    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), std::move(value));
+  // @@protoc_insertion_point(field_set_rvalue:GstDebugger.PadDynamicInfo.pad)
+}
+#endif
+inline void PadDynamicInfo::set_pad(const char* value) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+  // @@protoc_insertion_point(field_set_char:GstDebugger.PadDynamicInfo.pad)
+}
+inline void PadDynamicInfo::set_pad(const char* value, size_t size) {
+  set_has_pad();
+  pad_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+      ::std::string(reinterpret_cast<const char*>(value), size));
+  // @@protoc_insertion_point(field_set_pointer:GstDebugger.PadDynamicInfo.pad)
+}
+inline ::std::string* PadDynamicInfo::mutable_pad() {
+  set_has_pad();
+  // @@protoc_insertion_point(field_mutable:GstDebugger.PadDynamicInfo.pad)
+  return pad_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* PadDynamicInfo::release_pad() {
+  // @@protoc_insertion_point(field_release:GstDebugger.PadDynamicInfo.pad)
+  clear_has_pad();
+  return pad_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void PadDynamicInfo::set_allocated_pad(::std::string* pad) {
+  if (pad != NULL) {
+    set_has_pad();
+  } else {
+    clear_has_pad();
+  }
+  pad_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), pad);
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.PadDynamicInfo.pad)
+}
+
+// -------------------------------------------------------------------
+
+// GStreamerData
+
+// optional .GstDebugger.DebugCategories debug_categories = 1;
+inline bool GStreamerData::has_debug_categories() const {
+  return info_type_case() == kDebugCategories;
+}
+inline void GStreamerData::set_has_debug_categories() {
+  _oneof_case_[0] = kDebugCategories;
+}
+inline void GStreamerData::clear_debug_categories() {
+  if (has_debug_categories()) {
+    delete info_type_.debug_categories_;
+    clear_has_info_type();
+  }
+}
+inline  const ::GstDebugger::DebugCategories& GStreamerData::debug_categories() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.GStreamerData.debug_categories)
+  return has_debug_categories()
+      ? *info_type_.debug_categories_
+      : ::GstDebugger::DebugCategories::default_instance();
+}
+inline ::GstDebugger::DebugCategories* GStreamerData::mutable_debug_categories() {
+  if (!has_debug_categories()) {
+    clear_info_type();
+    set_has_debug_categories();
+    info_type_.debug_categories_ = new ::GstDebugger::DebugCategories;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.GStreamerData.debug_categories)
+  return info_type_.debug_categories_;
+}
+inline ::GstDebugger::DebugCategories* GStreamerData::release_debug_categories() {
+  // @@protoc_insertion_point(field_release:GstDebugger.GStreamerData.debug_categories)
+  if (has_debug_categories()) {
+    clear_has_info_type();
+    ::GstDebugger::DebugCategories* temp = info_type_.debug_categories_;
+    info_type_.debug_categories_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+inline void GStreamerData::set_allocated_debug_categories(::GstDebugger::DebugCategories* debug_categories) {
+  clear_info_type();
+  if (debug_categories) {
+    set_has_debug_categories();
+    info_type_.debug_categories_ = debug_categories;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.GStreamerData.debug_categories)
+}
+
+// optional .GstDebugger.LogInfo log_info = 2;
+inline bool GStreamerData::has_log_info() const {
+  return info_type_case() == kLogInfo;
+}
+inline void GStreamerData::set_has_log_info() {
+  _oneof_case_[0] = kLogInfo;
+}
+inline void GStreamerData::clear_log_info() {
+  if (has_log_info()) {
+    delete info_type_.log_info_;
+    clear_has_info_type();
+  }
+}
+inline  const ::GstDebugger::LogInfo& GStreamerData::log_info() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.GStreamerData.log_info)
+  return has_log_info()
+      ? *info_type_.log_info_
+      : ::GstDebugger::LogInfo::default_instance();
+}
+inline ::GstDebugger::LogInfo* GStreamerData::mutable_log_info() {
+  if (!has_log_info()) {
+    clear_info_type();
+    set_has_log_info();
+    info_type_.log_info_ = new ::GstDebugger::LogInfo;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.GStreamerData.log_info)
+  return info_type_.log_info_;
+}
+inline ::GstDebugger::LogInfo* GStreamerData::release_log_info() {
+  // @@protoc_insertion_point(field_release:GstDebugger.GStreamerData.log_info)
+  if (has_log_info()) {
+    clear_has_info_type();
+    ::GstDebugger::LogInfo* temp = info_type_.log_info_;
+    info_type_.log_info_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+inline void GStreamerData::set_allocated_log_info(::GstDebugger::LogInfo* log_info) {
+  clear_info_type();
+  if (log_info) {
+    set_has_log_info();
+    info_type_.log_info_ = log_info;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.GStreamerData.log_info)
+}
+
+// optional .GstDebugger.EnumFlagsType enum_flags_type = 3;
+inline bool GStreamerData::has_enum_flags_type() const {
+  return info_type_case() == kEnumFlagsType;
+}
+inline void GStreamerData::set_has_enum_flags_type() {
+  _oneof_case_[0] = kEnumFlagsType;
+}
+inline void GStreamerData::clear_enum_flags_type() {
+  if (has_enum_flags_type()) {
+    delete info_type_.enum_flags_type_;
+    clear_has_info_type();
+  }
+}
+inline  const ::GstDebugger::EnumFlagsType& GStreamerData::enum_flags_type() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.GStreamerData.enum_flags_type)
+  return has_enum_flags_type()
+      ? *info_type_.enum_flags_type_
+      : ::GstDebugger::EnumFlagsType::default_instance();
+}
+inline ::GstDebugger::EnumFlagsType* GStreamerData::mutable_enum_flags_type() {
+  if (!has_enum_flags_type()) {
+    clear_info_type();
+    set_has_enum_flags_type();
+    info_type_.enum_flags_type_ = new ::GstDebugger::EnumFlagsType;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.GStreamerData.enum_flags_type)
+  return info_type_.enum_flags_type_;
+}
+inline ::GstDebugger::EnumFlagsType* GStreamerData::release_enum_flags_type() {
+  // @@protoc_insertion_point(field_release:GstDebugger.GStreamerData.enum_flags_type)
+  if (has_enum_flags_type()) {
+    clear_has_info_type();
+    ::GstDebugger::EnumFlagsType* temp = info_type_.enum_flags_type_;
+    info_type_.enum_flags_type_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+inline void GStreamerData::set_allocated_enum_flags_type(::GstDebugger::EnumFlagsType* enum_flags_type) {
+  clear_info_type();
+  if (enum_flags_type) {
+    set_has_enum_flags_type();
+    info_type_.enum_flags_type_ = enum_flags_type;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.GStreamerData.enum_flags_type)
+}
+
+// optional .GstDebugger.FactoryType factory = 4;
+inline bool GStreamerData::has_factory() const {
+  return info_type_case() == kFactory;
+}
+inline void GStreamerData::set_has_factory() {
+  _oneof_case_[0] = kFactory;
+}
+inline void GStreamerData::clear_factory() {
+  if (has_factory()) {
+    delete info_type_.factory_;
+    clear_has_info_type();
+  }
+}
+inline  const ::GstDebugger::FactoryType& GStreamerData::factory() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.GStreamerData.factory)
+  return has_factory()
+      ? *info_type_.factory_
+      : ::GstDebugger::FactoryType::default_instance();
+}
+inline ::GstDebugger::FactoryType* GStreamerData::mutable_factory() {
+  if (!has_factory()) {
+    clear_info_type();
+    set_has_factory();
+    info_type_.factory_ = new ::GstDebugger::FactoryType;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.GStreamerData.factory)
+  return info_type_.factory_;
+}
+inline ::GstDebugger::FactoryType* GStreamerData::release_factory() {
+  // @@protoc_insertion_point(field_release:GstDebugger.GStreamerData.factory)
+  if (has_factory()) {
+    clear_has_info_type();
+    ::GstDebugger::FactoryType* temp = info_type_.factory_;
+    info_type_.factory_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+inline void GStreamerData::set_allocated_factory(::GstDebugger::FactoryType* factory) {
+  clear_info_type();
+  if (factory) {
+    set_has_factory();
+    info_type_.factory_ = factory;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.GStreamerData.factory)
+}
+
+// optional .GstDebugger.MessageInfo message_info = 5;
+inline bool GStreamerData::has_message_info() const {
+  return info_type_case() == kMessageInfo;
+}
+inline void GStreamerData::set_has_message_info() {
+  _oneof_case_[0] = kMessageInfo;
+}
+inline void GStreamerData::clear_message_info() {
+  if (has_message_info()) {
+    delete info_type_.message_info_;
+    clear_has_info_type();
+  }
+}
+inline  const ::GstDebugger::MessageInfo& GStreamerData::message_info() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.GStreamerData.message_info)
+  return has_message_info()
+      ? *info_type_.message_info_
+      : ::GstDebugger::MessageInfo::default_instance();
+}
+inline ::GstDebugger::MessageInfo* GStreamerData::mutable_message_info() {
+  if (!has_message_info()) {
+    clear_info_type();
+    set_has_message_info();
+    info_type_.message_info_ = new ::GstDebugger::MessageInfo;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.GStreamerData.message_info)
+  return info_type_.message_info_;
+}
+inline ::GstDebugger::MessageInfo* GStreamerData::release_message_info() {
+  // @@protoc_insertion_point(field_release:GstDebugger.GStreamerData.message_info)
+  if (has_message_info()) {
+    clear_has_info_type();
+    ::GstDebugger::MessageInfo* temp = info_type_.message_info_;
+    info_type_.message_info_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+inline void GStreamerData::set_allocated_message_info(::GstDebugger::MessageInfo* message_info) {
+  clear_info_type();
+  if (message_info) {
+    set_has_message_info();
+    info_type_.message_info_ = message_info;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.GStreamerData.message_info)
+}
+
+// optional .GstDebugger.Command confirmation = 6;
+inline bool GStreamerData::has_confirmation() const {
+  return info_type_case() == kConfirmation;
+}
+inline void GStreamerData::set_has_confirmation() {
+  _oneof_case_[0] = kConfirmation;
+}
+inline void GStreamerData::clear_confirmation() {
+  if (has_confirmation()) {
+    delete info_type_.confirmation_;
+    clear_has_info_type();
+  }
+}
+inline  const ::GstDebugger::Command& GStreamerData::confirmation() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.GStreamerData.confirmation)
+  return has_confirmation()
+      ? *info_type_.confirmation_
+      : ::GstDebugger::Command::default_instance();
+}
+inline ::GstDebugger::Command* GStreamerData::mutable_confirmation() {
+  if (!has_confirmation()) {
+    clear_info_type();
+    set_has_confirmation();
+    info_type_.confirmation_ = new ::GstDebugger::Command;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.GStreamerData.confirmation)
+  return info_type_.confirmation_;
+}
+inline ::GstDebugger::Command* GStreamerData::release_confirmation() {
+  // @@protoc_insertion_point(field_release:GstDebugger.GStreamerData.confirmation)
+  if (has_confirmation()) {
+    clear_has_info_type();
+    ::GstDebugger::Command* temp = info_type_.confirmation_;
+    info_type_.confirmation_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+inline void GStreamerData::set_allocated_confirmation(::GstDebugger::Command* confirmation) {
+  clear_info_type();
+  if (confirmation) {
+    set_has_confirmation();
+    info_type_.confirmation_ = confirmation;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.GStreamerData.confirmation)
+}
+
+// optional .GstDebugger.EventInfo event_info = 7;
+inline bool GStreamerData::has_event_info() const {
+  return info_type_case() == kEventInfo;
+}
+inline void GStreamerData::set_has_event_info() {
+  _oneof_case_[0] = kEventInfo;
+}
+inline void GStreamerData::clear_event_info() {
+  if (has_event_info()) {
+    delete info_type_.event_info_;
+    clear_has_info_type();
+  }
+}
+inline  const ::GstDebugger::EventInfo& GStreamerData::event_info() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.GStreamerData.event_info)
+  return has_event_info()
+      ? *info_type_.event_info_
+      : ::GstDebugger::EventInfo::default_instance();
+}
+inline ::GstDebugger::EventInfo* GStreamerData::mutable_event_info() {
+  if (!has_event_info()) {
+    clear_info_type();
+    set_has_event_info();
+    info_type_.event_info_ = new ::GstDebugger::EventInfo;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.GStreamerData.event_info)
+  return info_type_.event_info_;
+}
+inline ::GstDebugger::EventInfo* GStreamerData::release_event_info() {
+  // @@protoc_insertion_point(field_release:GstDebugger.GStreamerData.event_info)
+  if (has_event_info()) {
+    clear_has_info_type();
+    ::GstDebugger::EventInfo* temp = info_type_.event_info_;
+    info_type_.event_info_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+inline void GStreamerData::set_allocated_event_info(::GstDebugger::EventInfo* event_info) {
+  clear_info_type();
+  if (event_info) {
+    set_has_event_info();
+    info_type_.event_info_ = event_info;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.GStreamerData.event_info)
+}
+
+// optional .GstDebugger.TopologyInfo topology_info = 8;
+inline bool GStreamerData::has_topology_info() const {
+  return info_type_case() == kTopologyInfo;
+}
+inline void GStreamerData::set_has_topology_info() {
+  _oneof_case_[0] = kTopologyInfo;
+}
+inline void GStreamerData::clear_topology_info() {
+  if (has_topology_info()) {
+    delete info_type_.topology_info_;
+    clear_has_info_type();
+  }
+}
+inline  const ::GstDebugger::TopologyInfo& GStreamerData::topology_info() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.GStreamerData.topology_info)
+  return has_topology_info()
+      ? *info_type_.topology_info_
+      : ::GstDebugger::TopologyInfo::default_instance();
+}
+inline ::GstDebugger::TopologyInfo* GStreamerData::mutable_topology_info() {
+  if (!has_topology_info()) {
+    clear_info_type();
+    set_has_topology_info();
+    info_type_.topology_info_ = new ::GstDebugger::TopologyInfo;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.GStreamerData.topology_info)
+  return info_type_.topology_info_;
+}
+inline ::GstDebugger::TopologyInfo* GStreamerData::release_topology_info() {
+  // @@protoc_insertion_point(field_release:GstDebugger.GStreamerData.topology_info)
+  if (has_topology_info()) {
+    clear_has_info_type();
+    ::GstDebugger::TopologyInfo* temp = info_type_.topology_info_;
+    info_type_.topology_info_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+inline void GStreamerData::set_allocated_topology_info(::GstDebugger::TopologyInfo* topology_info) {
+  clear_info_type();
+  if (topology_info) {
+    set_has_topology_info();
+    info_type_.topology_info_ = topology_info;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.GStreamerData.topology_info)
+}
+
+// optional .GstDebugger.QueryInfo query_info = 9;
+inline bool GStreamerData::has_query_info() const {
+  return info_type_case() == kQueryInfo;
+}
+inline void GStreamerData::set_has_query_info() {
+  _oneof_case_[0] = kQueryInfo;
+}
+inline void GStreamerData::clear_query_info() {
+  if (has_query_info()) {
+    delete info_type_.query_info_;
+    clear_has_info_type();
+  }
+}
+inline  const ::GstDebugger::QueryInfo& GStreamerData::query_info() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.GStreamerData.query_info)
+  return has_query_info()
+      ? *info_type_.query_info_
+      : ::GstDebugger::QueryInfo::default_instance();
+}
+inline ::GstDebugger::QueryInfo* GStreamerData::mutable_query_info() {
+  if (!has_query_info()) {
+    clear_info_type();
+    set_has_query_info();
+    info_type_.query_info_ = new ::GstDebugger::QueryInfo;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.GStreamerData.query_info)
+  return info_type_.query_info_;
+}
+inline ::GstDebugger::QueryInfo* GStreamerData::release_query_info() {
+  // @@protoc_insertion_point(field_release:GstDebugger.GStreamerData.query_info)
+  if (has_query_info()) {
+    clear_has_info_type();
+    ::GstDebugger::QueryInfo* temp = info_type_.query_info_;
+    info_type_.query_info_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+inline void GStreamerData::set_allocated_query_info(::GstDebugger::QueryInfo* query_info) {
+  clear_info_type();
+  if (query_info) {
+    set_has_query_info();
+    info_type_.query_info_ = query_info;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.GStreamerData.query_info)
+}
+
+// optional .GstDebugger.PropertyValue property_value = 10;
+inline bool GStreamerData::has_property_value() const {
+  return info_type_case() == kPropertyValue;
+}
+inline void GStreamerData::set_has_property_value() {
+  _oneof_case_[0] = kPropertyValue;
+}
+inline void GStreamerData::clear_property_value() {
+  if (has_property_value()) {
+    delete info_type_.property_value_;
+    clear_has_info_type();
+  }
+}
+inline  const ::GstDebugger::PropertyValue& GStreamerData::property_value() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.GStreamerData.property_value)
+  return has_property_value()
+      ? *info_type_.property_value_
+      : ::GstDebugger::PropertyValue::default_instance();
+}
+inline ::GstDebugger::PropertyValue* GStreamerData::mutable_property_value() {
+  if (!has_property_value()) {
+    clear_info_type();
+    set_has_property_value();
+    info_type_.property_value_ = new ::GstDebugger::PropertyValue;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.GStreamerData.property_value)
+  return info_type_.property_value_;
+}
+inline ::GstDebugger::PropertyValue* GStreamerData::release_property_value() {
+  // @@protoc_insertion_point(field_release:GstDebugger.GStreamerData.property_value)
+  if (has_property_value()) {
+    clear_has_info_type();
+    ::GstDebugger::PropertyValue* temp = info_type_.property_value_;
+    info_type_.property_value_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+inline void GStreamerData::set_allocated_property_value(::GstDebugger::PropertyValue* property_value) {
+  clear_info_type();
+  if (property_value) {
+    set_has_property_value();
+    info_type_.property_value_ = property_value;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.GStreamerData.property_value)
+}
+
+// optional .GstDebugger.ElementKlass element_klass = 11;
+inline bool GStreamerData::has_element_klass() const {
+  return info_type_case() == kElementKlass;
+}
+inline void GStreamerData::set_has_element_klass() {
+  _oneof_case_[0] = kElementKlass;
+}
+inline void GStreamerData::clear_element_klass() {
+  if (has_element_klass()) {
+    delete info_type_.element_klass_;
+    clear_has_info_type();
+  }
+}
+inline  const ::GstDebugger::ElementKlass& GStreamerData::element_klass() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.GStreamerData.element_klass)
+  return has_element_klass()
+      ? *info_type_.element_klass_
+      : ::GstDebugger::ElementKlass::default_instance();
+}
+inline ::GstDebugger::ElementKlass* GStreamerData::mutable_element_klass() {
+  if (!has_element_klass()) {
+    clear_info_type();
+    set_has_element_klass();
+    info_type_.element_klass_ = new ::GstDebugger::ElementKlass;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.GStreamerData.element_klass)
+  return info_type_.element_klass_;
+}
+inline ::GstDebugger::ElementKlass* GStreamerData::release_element_klass() {
+  // @@protoc_insertion_point(field_release:GstDebugger.GStreamerData.element_klass)
+  if (has_element_klass()) {
+    clear_has_info_type();
+    ::GstDebugger::ElementKlass* temp = info_type_.element_klass_;
+    info_type_.element_klass_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+inline void GStreamerData::set_allocated_element_klass(::GstDebugger::ElementKlass* element_klass) {
+  clear_info_type();
+  if (element_klass) {
+    set_has_element_klass();
+    info_type_.element_klass_ = element_klass;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.GStreamerData.element_klass)
+}
+
+// optional .GstDebugger.BufferInfo buffer_info = 12;
+inline bool GStreamerData::has_buffer_info() const {
+  return info_type_case() == kBufferInfo;
+}
+inline void GStreamerData::set_has_buffer_info() {
+  _oneof_case_[0] = kBufferInfo;
+}
+inline void GStreamerData::clear_buffer_info() {
+  if (has_buffer_info()) {
+    delete info_type_.buffer_info_;
+    clear_has_info_type();
+  }
+}
+inline  const ::GstDebugger::BufferInfo& GStreamerData::buffer_info() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.GStreamerData.buffer_info)
+  return has_buffer_info()
+      ? *info_type_.buffer_info_
+      : ::GstDebugger::BufferInfo::default_instance();
+}
+inline ::GstDebugger::BufferInfo* GStreamerData::mutable_buffer_info() {
+  if (!has_buffer_info()) {
+    clear_info_type();
+    set_has_buffer_info();
+    info_type_.buffer_info_ = new ::GstDebugger::BufferInfo;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.GStreamerData.buffer_info)
+  return info_type_.buffer_info_;
+}
+inline ::GstDebugger::BufferInfo* GStreamerData::release_buffer_info() {
+  // @@protoc_insertion_point(field_release:GstDebugger.GStreamerData.buffer_info)
+  if (has_buffer_info()) {
+    clear_has_info_type();
+    ::GstDebugger::BufferInfo* temp = info_type_.buffer_info_;
+    info_type_.buffer_info_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+inline void GStreamerData::set_allocated_buffer_info(::GstDebugger::BufferInfo* buffer_info) {
+  clear_info_type();
+  if (buffer_info) {
+    set_has_buffer_info();
+    info_type_.buffer_info_ = buffer_info;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.GStreamerData.buffer_info)
+}
+
+// optional .GstDebugger.PadDynamicInfo pad_dynamic_info = 13;
+inline bool GStreamerData::has_pad_dynamic_info() const {
+  return info_type_case() == kPadDynamicInfo;
+}
+inline void GStreamerData::set_has_pad_dynamic_info() {
+  _oneof_case_[0] = kPadDynamicInfo;
+}
+inline void GStreamerData::clear_pad_dynamic_info() {
+  if (has_pad_dynamic_info()) {
+    delete info_type_.pad_dynamic_info_;
+    clear_has_info_type();
+  }
+}
+inline  const ::GstDebugger::PadDynamicInfo& GStreamerData::pad_dynamic_info() const {
+  // @@protoc_insertion_point(field_get:GstDebugger.GStreamerData.pad_dynamic_info)
+  return has_pad_dynamic_info()
+      ? *info_type_.pad_dynamic_info_
+      : ::GstDebugger::PadDynamicInfo::default_instance();
+}
+inline ::GstDebugger::PadDynamicInfo* GStreamerData::mutable_pad_dynamic_info() {
+  if (!has_pad_dynamic_info()) {
+    clear_info_type();
+    set_has_pad_dynamic_info();
+    info_type_.pad_dynamic_info_ = new ::GstDebugger::PadDynamicInfo;
+  }
+  // @@protoc_insertion_point(field_mutable:GstDebugger.GStreamerData.pad_dynamic_info)
+  return info_type_.pad_dynamic_info_;
+}
+inline ::GstDebugger::PadDynamicInfo* GStreamerData::release_pad_dynamic_info() {
+  // @@protoc_insertion_point(field_release:GstDebugger.GStreamerData.pad_dynamic_info)
+  if (has_pad_dynamic_info()) {
+    clear_has_info_type();
+    ::GstDebugger::PadDynamicInfo* temp = info_type_.pad_dynamic_info_;
+    info_type_.pad_dynamic_info_ = NULL;
+    return temp;
+  } else {
+    return NULL;
+  }
+}
+inline void GStreamerData::set_allocated_pad_dynamic_info(::GstDebugger::PadDynamicInfo* pad_dynamic_info) {
+  clear_info_type();
+  if (pad_dynamic_info) {
+    set_has_pad_dynamic_info();
+    info_type_.pad_dynamic_info_ = pad_dynamic_info;
+  }
+  // @@protoc_insertion_point(field_set_allocated:GstDebugger.GStreamerData.pad_dynamic_info)
+}
+
+inline bool GStreamerData::has_info_type() const {
+  return info_type_case() != INFO_TYPE_NOT_SET;
+}
+inline void GStreamerData::clear_has_info_type() {
+  _oneof_case_[0] = INFO_TYPE_NOT_SET;
+}
+inline GStreamerData::InfoTypeCase GStreamerData::info_type_case() const {
+  return GStreamerData::InfoTypeCase(_oneof_case_[0]);
+}
+#endif  // !PROTOBUF_INLINE_NOT_IN_HEADERS
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+// -------------------------------------------------------------------
+
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+}  // namespace GstDebugger
+
+#ifndef SWIG
+namespace google {
+namespace protobuf {
+
+template <> struct is_proto_enum< ::GstDebugger::TypeDescriptionRequest_Type> : 
::google::protobuf::internal::true_type {};
+template <>
+inline const EnumDescriptor* GetEnumDescriptor< ::GstDebugger::TypeDescriptionRequest_Type>() {
+  return ::GstDebugger::TypeDescriptionRequest_Type_descriptor();
+}
+template <> struct is_proto_enum< ::GstDebugger::EnumFlagsType_EnumFlagsKind> : 
::google::protobuf::internal::true_type {};
+template <>
+inline const EnumDescriptor* GetEnumDescriptor< ::GstDebugger::EnumFlagsType_EnumFlagsKind>() {
+  return ::GstDebugger::EnumFlagsType_EnumFlagsKind_descriptor();
+}
+template <> struct is_proto_enum< ::GstDebugger::Action> : ::google::protobuf::internal::true_type {};
+template <>
+inline const EnumDescriptor* GetEnumDescriptor< ::GstDebugger::Action>() {
+  return ::GstDebugger::Action_descriptor();
+}
+
+}  // namespace protobuf
+}  // namespace google
+#endif  // SWIG
+
+// @@protoc_insertion_point(global_scope)
+
+#endif  // PROTOBUF_gstdebugger_2eproto__INCLUDED
diff --git a/src/gst-debugger/meson.build b/src/gst-debugger/meson.build
index 546c20e..a109f45 100644
--- a/src/gst-debugger/meson.build
+++ b/src/gst-debugger/meson.build
@@ -1,10 +1,3 @@
-proto_src_path = join_paths(meson.current_source_dir(), '..', 'common')
-protoc_gen = generator(find_program('protoc'),
-    output    : ['@BASENAME  pb cc', '@BASENAME@.pb.h'],
-    arguments : ['--proto_path=' + proto_src_path, '--cpp_out=@BUILD_DIR@', join_paths(proto_src_path, 
'gstdebugger.proto')])
-
-protoc_gen_src = protoc_gen.process(join_paths(proto_src_path, 'gstdebugger.proto'))
-
 gstd_resources = gnome.compile_resources(
     'gst-debugger-resources', 'gst-debugger-resources.xml',
     source_dir : '.',
@@ -14,6 +7,8 @@ gst_debugger_sources = [
     'main.cpp',
     'main_window.cpp',
     'main_window.h',
+    'gstdebugger.pb.cc',
+    'gstdebugger.pb.h',
     'controller/controller.cpp',
     'controller/controller.h',
     'controller/command_factory.cpp',
@@ -97,7 +92,6 @@ exe_name = '@0@-@1@'.format('gst-debugger', gst_apiversion)
 executable(
     exe_name,
     gst_debugger_sources,
-    protoc_gen_src,
     include_directories : config_inc_dir,
     install : true,
     dependencies : [
diff --git a/src/meson.build b/src/meson.build
index 250c20b..a7fbb2c 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -1,3 +1,11 @@
+# Generate proto source files
+run_target('generateproto',
+    command : [
+        python.find_python(),
+        join_paths(meson.source_root(), 'tools/generate-proto.py'),
+        join_paths(meson.current_source_dir(), 'common'),
+        join_paths(meson.current_source_dir(), 'gst-debugger')])
+
 subdir('common')
 subdir('debugserver')
 subdir('gst-debugger')
diff --git a/tools/generate-proto.py b/tools/generate-proto.py
new file mode 100644
index 0000000..3a37247
--- /dev/null
+++ b/tools/generate-proto.py
@@ -0,0 +1,18 @@
+from subprocess import call
+import os
+import sys
+
+if len(sys.argv) != 3:
+    raise Exception('Usage: python3 generate-proto.py <common_dir> <debugger_dir>')
+
+call([
+    'protoc',
+    '--proto_path=' + sys.argv[1],
+    '--cpp_out=' + sys.argv[2],
+    os.path.join(sys.argv[1], 'gstdebugger.proto')])
+
+call([
+    'protoc-c',
+    '--proto_path=' + sys.argv[1],
+    '--c_out=' + sys.argv[1],
+    os.path.join(sys.argv[1], 'gstdebugger.proto')])


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]