aboutsummaryrefslogtreecommitdiffstats
path: root/Software
diff options
context:
space:
mode:
Diffstat (limited to 'Software')
-rw-r--r--Software/Android_Studio/Tango.DAL/src/main/res/raw/tangodbbin557056 -> 557056 bytes
-rw-r--r--Software/DB/Tango.mdfbin8388608 -> 8388608 bytes
-rw-r--r--Software/DB/Tango_log.ldfbin8388608 -> 8388608 bytes
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/ColorLib.cpp54
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/ColorLib.h14
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/ErrorCode.pb-c.c37
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/ErrorCode.pb-c.h43
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/MessageContainer.pb-c.c170
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/MessageContainer.pb-c.h85
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/MessageType.pb-c.c99
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/MessageType.pb-c.h74
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/RGB.pb-c.c118
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/RGB.pb-c.h76
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Jobs/Job.pb-c.c105
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Jobs/Job.pb-c.h74
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Jobs/Segment.pb-c.c118
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Jobs/Segment.pb-c.h75
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/CalculateRequest.pb-c.c105
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/CalculateRequest.pb-c.h74
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/CalculateResponse.pb-c.c92
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/CalculateResponse.pb-c.h72
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/ProgressRequest.pb-c.c105
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/ProgressRequest.pb-c.h74
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/ProgressResponse.pb-c.c92
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/ProgressResponse.pb-c.h72
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeReadRequest.pb-c.c92
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeReadRequest.pb-c.h75
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeReadResponse.pb-c.c159
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeReadResponse.pb-c.h82
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeWriteRequest.pb-c.c144
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeWriteRequest.pb-c.h88
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeWriteResponse.pb-c.c106
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeWriteResponse.pb-c.h74
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubDispenserRequest.pb-c.c144
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubDispenserRequest.pb-c.h92
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubDispenserResponse.pb-c.c131
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubDispenserResponse.pb-c.h89
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOInputSetupRequest.pb-c.c131
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOInputSetupRequest.pb-c.h89
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOInputSetupResponse.pb-c.c118
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOInputSetupResponse.pb-c.h84
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadBitRequest.pb-c.c131
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadBitRequest.pb-c.h89
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadBitResponse.pb-c.c131
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadBitResponse.pb-c.h86
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadByteRequest.pb-c.c92
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadByteRequest.pb-c.h74
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadByteResponse.pb-c.c118
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadByteResponse.pb-c.h81
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteBitRequest.pb-c.c118
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteBitRequest.pb-c.h81
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteBitResponse.pb-c.c118
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteBitResponse.pb-c.h84
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteByteRequest.pb-c.c106
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteByteRequest.pb-c.h76
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteByteResponse.pb-c.c106
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteByteResponse.pb-c.h79
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubHeaterRequest.pb-c.c118
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubHeaterRequest.pb-c.h82
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubHeaterResponse.pb-c.c118
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubHeaterResponse.pb-c.h82
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubMotorEncoderRequest.pb-c.c131
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubMotorEncoderRequest.pb-c.h87
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubMotorEncoderResponse.pb-c.c144
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubMotorEncoderResponse.pb-c.h89
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubOptLimitSwitchRequest.pb-c.c105
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubOptLimitSwitchRequest.pb-c.h80
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubOptLimitSwitchResponse.pb-c.c118
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubOptLimitSwitchResponse.pb-c.h84
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubSteperMotorRequest.pb-c.c144
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubSteperMotorRequest.pb-c.h95
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubSteperMotorResponse.pb-c.c118
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubSteperMotorResponse.pb-c.h84
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubValveRequest.pb-c.c118
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubValveRequest.pb-c.h85
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubValveResponse.pb-c.c92
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubValveResponse.pb-c.h75
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Synchronization/SynchronizeDBRequest.pb-c.c105
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Synchronization/SynchronizeDBRequest.pb-c.h73
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Synchronization/SynchronizeDBResponse.pb-c.c92
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/PMR/Synchronization/SynchronizeDBResponse.pb-c.h72
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/Tango.ColorLib.vcxproj186
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/Tango.ColorLib.vcxproj.filters60
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/pch.h8
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/protobuf-c/protobuf-c.c3642
-rw-r--r--Software/Visual_Studio/Native/Tango.ColorLib/protobuf-c/protobuf-c.h1106
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/ErrorCode.pb.cc130
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/ErrorCode.pb.h118
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/MessageContainer.pb.cc132
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/MessageContainer.pb.h43
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/MessageType.pb.cc52
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/MessageType.pb.h28
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/ProgressRequest.pb.cc133
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/ProgressRequest.pb.h42
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeReadRequest.pb.cc392
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeReadRequest.pb.h199
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeReadResponse.pb.cc654
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeReadResponse.pb.h304
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeWriteRequest.pb.cc602
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeWriteRequest.pb.h283
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeWriteResponse.pb.cc449
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeWriteResponse.pb.h220
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubDispenserRequest.pb.cc600
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubDispenserRequest.pb.h283
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubDispenserResponse.pb.cc550
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubDispenserResponse.pb.h262
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOInputSetupRequest.pb.cc612
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOInputSetupRequest.pb.h309
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOInputSetupResponse.pb.cc561
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOInputSetupResponse.pb.h288
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadBitRequest.pb.cc608
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadBitRequest.pb.h309
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadBitResponse.pb.cc610
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadBitResponse.pb.h309
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadByteRequest.pb.cc449
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadByteRequest.pb.h246
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadByteResponse.pb.cc561
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadByteResponse.pb.h288
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteBitRequest.pb.cc559
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteBitRequest.pb.h288
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteBitResponse.pb.cc561
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteBitResponse.pb.h288
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteByteRequest.pb.cc503
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteByteRequest.pb.h267
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteByteResponse.pb.cc503
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteByteResponse.pb.h267
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubHeaterRequest.pb.cc499
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubHeaterRequest.pb.h241
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubHeaterResponse.pb.cc499
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubHeaterResponse.pb.h241
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubMotorEncoderRequest.pb.cc546
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubMotorEncoderRequest.pb.h262
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubMotorEncoderResponse.pb.cc600
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubMotorEncoderResponse.pb.h283
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubOptLimitSwitchRequest.pb.cc448
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubOptLimitSwitchRequest.pb.h220
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubOptLimitSwitchResponse.pb.cc497
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubOptLimitSwitchResponse.pb.h241
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubSteperMotorRequest.pb.cc600
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubSteperMotorRequest.pb.h283
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubSteperMotorResponse.pb.cc499
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubSteperMotorResponse.pb.h241
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubValveRequest.pb.cc498
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubValveRequest.pb.h241
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubValveResponse.pb.cc389
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubValveResponse.pb.h199
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/SynchronizeDBRequest.pb.cc549
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/SynchronizeDBRequest.pb.h314
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/SynchronizeDBResponse.pb.cc437
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/PMR/SynchronizeDBResponse.pb.h246
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/Tango.ProtoTest.vcxproj4
-rw-r--r--Software/Visual_Studio/Native/Tango.ProtoTest/Tango.ProtoTest.vcxproj.filters6
-rw-r--r--Software/Visual_Studio/Tango.sln309
-rw-r--r--Software/Visual_Studio/Web/Tango.MachineService/App_Data/Tango.dbbin557056 -> 557056 bytes
154 files changed, 35717 insertions, 26 deletions
diff --git a/Software/Android_Studio/Tango.DAL/src/main/res/raw/tangodb b/Software/Android_Studio/Tango.DAL/src/main/res/raw/tangodb
index 2a238547c..00c79da9c 100644
--- a/Software/Android_Studio/Tango.DAL/src/main/res/raw/tangodb
+++ b/Software/Android_Studio/Tango.DAL/src/main/res/raw/tangodb
Binary files differ
diff --git a/Software/DB/Tango.mdf b/Software/DB/Tango.mdf
index 4b61dad5b..565843b18 100644
--- a/Software/DB/Tango.mdf
+++ b/Software/DB/Tango.mdf
Binary files differ
diff --git a/Software/DB/Tango_log.ldf b/Software/DB/Tango_log.ldf
index 9fc49b058..2b0d991bc 100644
--- a/Software/DB/Tango_log.ldf
+++ b/Software/DB/Tango_log.ldf
Binary files differ
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/ColorLib.cpp b/Software/Visual_Studio/Native/Tango.ColorLib/ColorLib.cpp
new file mode 100644
index 000000000..6a0ee917e
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/ColorLib.cpp
@@ -0,0 +1,54 @@
+#include "ColorLib.h"
+#include "stdlib.h"
+
+#define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "ColorLib", __VA_ARGS__))
+#define LOGW(...) ((void)__android_log_print(ANDROID_LOG_WARN, "ColorLib", __VA_ARGS__))
+
+extern "C" {
+ /* This trivial function returns the platform ABI for which this dynamic native library is compiled.*/
+ const char * ColorLib::getPlatformABI()
+ {
+#if defined(__arm__)
+#if defined(__ARM_ARCH_7A__)
+#if defined(__ARM_NEON__)
+#define ABI "armeabi-v7a/NEON"
+#else
+#define ABI "armeabi-v7a"
+#endif
+#else
+#define ABI "armeabi"
+#endif
+#elif defined(__i386__)
+#define ABI "x86"
+#else
+#define ABI "unknown"
+#endif
+ //LOGI("This dynamic shared library is compiled with ABI: %s", ABI);
+ return "This native library is compiled with ABI: %s" ABI ".";
+ }
+
+ void ColorLib()
+ {
+ }
+
+ ColorLib::ColorLib()
+ {
+ }
+
+ ColorLib::~ColorLib()
+ {
+ }
+
+ size_t ColorLib::Calculate(uint8_t * request_buffer, size_t request_buffer_size, uint8_t * response_buffer)
+ {
+ CalculateRequest* request = calculate_request__unpack(NULL, request_buffer_size, request_buffer);
+
+
+ CalculateResponse response = CALCULATE_RESPONSE__INIT;
+ response.sum = request->a + request->b;
+
+
+ response_buffer = (uint8_t*)malloc(calculate_response__get_packed_size(&response));
+ return calculate_response__pack(&response, response_buffer);
+ }
+}
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/ColorLib.h b/Software/Visual_Studio/Native/Tango.ColorLib/ColorLib.h
new file mode 100644
index 000000000..c0ca905b5
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/ColorLib.h
@@ -0,0 +1,14 @@
+#include "PMR/Stubs/CalculateRequest.pb-c.h"
+#include "PMR/Stubs/CalculateResponse.pb-c.h"
+
+#pragma once
+
+class ColorLib
+{
+public:
+ const char * getPlatformABI();
+ ColorLib();
+ ~ColorLib();
+ size_t Calculate(uint8_t * request_buffer, size_t request_buffer_size, uint8_t * response_buffer);
+};
+
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/ErrorCode.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/ErrorCode.pb-c.c
new file mode 100644
index 000000000..4f930f614
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/ErrorCode.pb-c.c
@@ -0,0 +1,37 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: ErrorCode.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "ErrorCode.pb-c.h"
+static const ProtobufCEnumValue error_code__enum_values_by_number[2] =
+{
+ { "NONE", "ERROR_CODE__NONE", 0 },
+ { "BAD_CRC", "ERROR_CODE__BAD_CRC", 1 },
+};
+static const ProtobufCIntRange error_code__value_ranges[] = {
+{0, 0},{0, 2}
+};
+static const ProtobufCEnumValueIndex error_code__enum_values_by_name[2] =
+{
+ { "BAD_CRC", 1 },
+ { "NONE", 0 },
+};
+const ProtobufCEnumDescriptor error_code__descriptor =
+{
+ PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
+ "ErrorCode",
+ "ErrorCode",
+ "ErrorCode",
+ "",
+ 2,
+ error_code__enum_values_by_number,
+ 2,
+ error_code__enum_values_by_name,
+ 1,
+ error_code__value_ranges,
+ NULL,NULL,NULL,NULL /* reserved[1234] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/ErrorCode.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/ErrorCode.pb-c.h
new file mode 100644
index 000000000..7cc30c1d4
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/ErrorCode.pb-c.h
@@ -0,0 +1,43 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: ErrorCode.proto */
+
+#ifndef PROTOBUF_C_ErrorCode_2eproto__INCLUDED
+#define PROTOBUF_C_ErrorCode_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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
+
+
+
+
+/* --- enums --- */
+
+typedef enum _ErrorCode {
+ ERROR_CODE__NONE = 0,
+ ERROR_CODE__BAD_CRC = 1
+ PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(ERROR_CODE)
+} ErrorCode;
+
+/* --- messages --- */
+
+/* --- per-message closures --- */
+
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCEnumDescriptor error_code__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_ErrorCode_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/MessageContainer.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/MessageContainer.pb-c.c
new file mode 100644
index 000000000..de74c4054
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/MessageContainer.pb-c.c
@@ -0,0 +1,170 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: MessageContainer.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "MessageContainer.pb-c.h"
+void message_container__init
+ (MessageContainer *message)
+{
+ static const MessageContainer init_value = MESSAGE_CONTAINER__INIT;
+ *message = init_value;
+}
+size_t message_container__get_packed_size
+ (const MessageContainer *message)
+{
+ assert(message->base.descriptor == &message_container__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t message_container__pack
+ (const MessageContainer *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &message_container__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t message_container__pack_to_buffer
+ (const MessageContainer *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &message_container__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+MessageContainer *
+ message_container__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (MessageContainer *)
+ protobuf_c_message_unpack (&message_container__descriptor,
+ allocator, len, data);
+}
+void message_container__free_unpacked
+ (MessageContainer *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &message_container__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor message_container__field_descriptors[7] =
+{
+ {
+ "Type",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_ENUM,
+ offsetof(MessageContainer, has_type),
+ offsetof(MessageContainer, type),
+ &message_type__descriptor,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Token",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_STRING,
+ 0, /* quantifier_offset */
+ offsetof(MessageContainer, token),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Continuous",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(MessageContainer, has_continuous),
+ offsetof(MessageContainer, continuous),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Completed",
+ 4,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(MessageContainer, has_completed),
+ offsetof(MessageContainer, completed),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Data",
+ 5,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BYTES,
+ offsetof(MessageContainer, has_data),
+ offsetof(MessageContainer, data),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "CRC",
+ 6,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(MessageContainer, has_crc),
+ offsetof(MessageContainer, crc),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Error",
+ 7,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_ENUM,
+ offsetof(MessageContainer, has_error),
+ offsetof(MessageContainer, error),
+ &error_code__descriptor,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned message_container__field_indices_by_name[] = {
+ 5, /* field[5] = CRC */
+ 3, /* field[3] = Completed */
+ 2, /* field[2] = Continuous */
+ 4, /* field[4] = Data */
+ 6, /* field[6] = Error */
+ 1, /* field[1] = Token */
+ 0, /* field[0] = Type */
+};
+static const ProtobufCIntRange message_container__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 7 }
+};
+const ProtobufCMessageDescriptor message_container__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "MessageContainer",
+ "MessageContainer",
+ "MessageContainer",
+ "",
+ sizeof(MessageContainer),
+ 7,
+ message_container__field_descriptors,
+ message_container__field_indices_by_name,
+ 1, message_container__number_ranges,
+ (ProtobufCMessageInit) message_container__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/MessageContainer.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/MessageContainer.pb-c.h
new file mode 100644
index 000000000..e0849d4ad
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/MessageContainer.pb-c.h
@@ -0,0 +1,85 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: MessageContainer.proto */
+
+#ifndef PROTOBUF_C_MessageContainer_2eproto__INCLUDED
+#define PROTOBUF_C_MessageContainer_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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
+
+#include "MessageType.pb-c.h"
+#include "ErrorCode.pb-c.h"
+
+typedef struct _MessageContainer MessageContainer;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _MessageContainer
+{
+ ProtobufCMessage base;
+ protobuf_c_boolean has_type;
+ MessageType type;
+ char *token;
+ protobuf_c_boolean has_continuous;
+ protobuf_c_boolean continuous;
+ protobuf_c_boolean has_completed;
+ protobuf_c_boolean completed;
+ protobuf_c_boolean has_data;
+ ProtobufCBinaryData data;
+ protobuf_c_boolean has_crc;
+ uint32_t crc;
+ protobuf_c_boolean has_error;
+ ErrorCode error;
+};
+#define MESSAGE_CONTAINER__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&message_container__descriptor) \
+ , 0, MESSAGE_TYPE__RGB, NULL, 0, 0, 0, 0, 0, {0,NULL}, 0, 0, 0, ERROR_CODE__NONE }
+
+
+/* MessageContainer methods */
+void message_container__init
+ (MessageContainer *message);
+size_t message_container__get_packed_size
+ (const MessageContainer *message);
+size_t message_container__pack
+ (const MessageContainer *message,
+ uint8_t *out);
+size_t message_container__pack_to_buffer
+ (const MessageContainer *message,
+ ProtobufCBuffer *buffer);
+MessageContainer *
+ message_container__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void message_container__free_unpacked
+ (MessageContainer *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*MessageContainer_Closure)
+ (const MessageContainer *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor message_container__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_MessageContainer_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/MessageType.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/MessageType.pb-c.c
new file mode 100644
index 000000000..6416e1fcd
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/MessageType.pb-c.c
@@ -0,0 +1,99 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: MessageType.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "MessageType.pb-c.h"
+static const ProtobufCEnumValue message_type__enum_values_by_number[33] =
+{
+ { "RGB", "MESSAGE_TYPE__RGB", 0 },
+ { "Job", "MESSAGE_TYPE__Job", 1 },
+ { "Segment", "MESSAGE_TYPE__Segment", 2 },
+ { "CalculateRequest", "MESSAGE_TYPE__CalculateRequest", 3 },
+ { "CalculateResponse", "MESSAGE_TYPE__CalculateResponse", 4 },
+ { "ProgressRequest", "MESSAGE_TYPE__ProgressRequest", 5 },
+ { "ProgressResponse", "MESSAGE_TYPE__ProgressResponse", 6 },
+ { "StubCartridgeReadRequest", "MESSAGE_TYPE__StubCartridgeReadRequest", 7 },
+ { "StubCartridgeReadResponse", "MESSAGE_TYPE__StubCartridgeReadResponse", 8 },
+ { "StubCartridgeWriteRequest", "MESSAGE_TYPE__StubCartridgeWriteRequest", 9 },
+ { "StubCartridgeWriteResponse", "MESSAGE_TYPE__StubCartridgeWriteResponse", 10 },
+ { "StubDispenserRequest", "MESSAGE_TYPE__StubDispenserRequest", 11 },
+ { "StubDispenserResponse", "MESSAGE_TYPE__StubDispenserResponse", 12 },
+ { "StubGPIOInputSetupRequest", "MESSAGE_TYPE__StubGPIOInputSetupRequest", 13 },
+ { "StubGPIOInputSetupResponse", "MESSAGE_TYPE__StubGPIOInputSetupResponse", 14 },
+ { "StubGPIOReadBitRequest", "MESSAGE_TYPE__StubGPIOReadBitRequest", 15 },
+ { "StubGPIOReadBitResponse", "MESSAGE_TYPE__StubGPIOReadBitResponse", 16 },
+ { "StubGPIOReadByteRequest", "MESSAGE_TYPE__StubGPIOReadByteRequest", 17 },
+ { "StubGPIOReadByteResponse", "MESSAGE_TYPE__StubGPIOReadByteResponse", 18 },
+ { "StubGPIOWriteBitRequest", "MESSAGE_TYPE__StubGPIOWriteBitRequest", 19 },
+ { "StubGPIOWriteBitResponse", "MESSAGE_TYPE__StubGPIOWriteBitResponse", 20 },
+ { "StubGPIOWriteByteRequest", "MESSAGE_TYPE__StubGPIOWriteByteRequest", 21 },
+ { "StubGPIOWriteByteResponse", "MESSAGE_TYPE__StubGPIOWriteByteResponse", 22 },
+ { "StubHeaterRequest", "MESSAGE_TYPE__StubHeaterRequest", 23 },
+ { "StubHeaterResponse", "MESSAGE_TYPE__StubHeaterResponse", 24 },
+ { "StubMotorEncoderRequest", "MESSAGE_TYPE__StubMotorEncoderRequest", 25 },
+ { "StubMotorEncoderResponse", "MESSAGE_TYPE__StubMotorEncoderResponse", 26 },
+ { "StubOptLimitSwitchRequest", "MESSAGE_TYPE__StubOptLimitSwitchRequest", 27 },
+ { "StubOptLimitSwitchResponse", "MESSAGE_TYPE__StubOptLimitSwitchResponse", 28 },
+ { "StubSteperMotorRequest", "MESSAGE_TYPE__StubSteperMotorRequest", 29 },
+ { "StubSteperMotorResponse", "MESSAGE_TYPE__StubSteperMotorResponse", 30 },
+ { "StubValveRequest", "MESSAGE_TYPE__StubValveRequest", 31 },
+ { "StubValveResponse", "MESSAGE_TYPE__StubValveResponse", 32 },
+};
+static const ProtobufCIntRange message_type__value_ranges[] = {
+{0, 0},{0, 33}
+};
+static const ProtobufCEnumValueIndex message_type__enum_values_by_name[33] =
+{
+ { "CalculateRequest", 3 },
+ { "CalculateResponse", 4 },
+ { "Job", 1 },
+ { "ProgressRequest", 5 },
+ { "ProgressResponse", 6 },
+ { "RGB", 0 },
+ { "Segment", 2 },
+ { "StubCartridgeReadRequest", 7 },
+ { "StubCartridgeReadResponse", 8 },
+ { "StubCartridgeWriteRequest", 9 },
+ { "StubCartridgeWriteResponse", 10 },
+ { "StubDispenserRequest", 11 },
+ { "StubDispenserResponse", 12 },
+ { "StubGPIOInputSetupRequest", 13 },
+ { "StubGPIOInputSetupResponse", 14 },
+ { "StubGPIOReadBitRequest", 15 },
+ { "StubGPIOReadBitResponse", 16 },
+ { "StubGPIOReadByteRequest", 17 },
+ { "StubGPIOReadByteResponse", 18 },
+ { "StubGPIOWriteBitRequest", 19 },
+ { "StubGPIOWriteBitResponse", 20 },
+ { "StubGPIOWriteByteRequest", 21 },
+ { "StubGPIOWriteByteResponse", 22 },
+ { "StubHeaterRequest", 23 },
+ { "StubHeaterResponse", 24 },
+ { "StubMotorEncoderRequest", 25 },
+ { "StubMotorEncoderResponse", 26 },
+ { "StubOptLimitSwitchRequest", 27 },
+ { "StubOptLimitSwitchResponse", 28 },
+ { "StubSteperMotorRequest", 29 },
+ { "StubSteperMotorResponse", 30 },
+ { "StubValveRequest", 31 },
+ { "StubValveResponse", 32 },
+};
+const ProtobufCEnumDescriptor message_type__descriptor =
+{
+ PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
+ "MessageType",
+ "MessageType",
+ "MessageType",
+ "",
+ 33,
+ message_type__enum_values_by_number,
+ 33,
+ message_type__enum_values_by_name,
+ 1,
+ message_type__value_ranges,
+ NULL,NULL,NULL,NULL /* reserved[1234] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/MessageType.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/MessageType.pb-c.h
new file mode 100644
index 000000000..56f9af6ca
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/MessageType.pb-c.h
@@ -0,0 +1,74 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: MessageType.proto */
+
+#ifndef PROTOBUF_C_MessageType_2eproto__INCLUDED
+#define PROTOBUF_C_MessageType_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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
+
+
+
+
+/* --- enums --- */
+
+typedef enum _MessageType {
+ MESSAGE_TYPE__RGB = 0,
+ MESSAGE_TYPE__Job = 1,
+ MESSAGE_TYPE__Segment = 2,
+ MESSAGE_TYPE__CalculateRequest = 3,
+ MESSAGE_TYPE__CalculateResponse = 4,
+ MESSAGE_TYPE__ProgressRequest = 5,
+ MESSAGE_TYPE__ProgressResponse = 6,
+ MESSAGE_TYPE__StubCartridgeReadRequest = 7,
+ MESSAGE_TYPE__StubCartridgeReadResponse = 8,
+ MESSAGE_TYPE__StubCartridgeWriteRequest = 9,
+ MESSAGE_TYPE__StubCartridgeWriteResponse = 10,
+ MESSAGE_TYPE__StubDispenserRequest = 11,
+ MESSAGE_TYPE__StubDispenserResponse = 12,
+ MESSAGE_TYPE__StubGPIOInputSetupRequest = 13,
+ MESSAGE_TYPE__StubGPIOInputSetupResponse = 14,
+ MESSAGE_TYPE__StubGPIOReadBitRequest = 15,
+ MESSAGE_TYPE__StubGPIOReadBitResponse = 16,
+ MESSAGE_TYPE__StubGPIOReadByteRequest = 17,
+ MESSAGE_TYPE__StubGPIOReadByteResponse = 18,
+ MESSAGE_TYPE__StubGPIOWriteBitRequest = 19,
+ MESSAGE_TYPE__StubGPIOWriteBitResponse = 20,
+ MESSAGE_TYPE__StubGPIOWriteByteRequest = 21,
+ MESSAGE_TYPE__StubGPIOWriteByteResponse = 22,
+ MESSAGE_TYPE__StubHeaterRequest = 23,
+ MESSAGE_TYPE__StubHeaterResponse = 24,
+ MESSAGE_TYPE__StubMotorEncoderRequest = 25,
+ MESSAGE_TYPE__StubMotorEncoderResponse = 26,
+ MESSAGE_TYPE__StubOptLimitSwitchRequest = 27,
+ MESSAGE_TYPE__StubOptLimitSwitchResponse = 28,
+ MESSAGE_TYPE__StubSteperMotorRequest = 29,
+ MESSAGE_TYPE__StubSteperMotorResponse = 30,
+ MESSAGE_TYPE__StubValveRequest = 31,
+ MESSAGE_TYPE__StubValveResponse = 32
+ PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(MESSAGE_TYPE)
+} MessageType;
+
+/* --- messages --- */
+
+/* --- per-message closures --- */
+
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCEnumDescriptor message_type__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_MessageType_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/RGB.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/RGB.pb-c.c
new file mode 100644
index 000000000..df4a0e32f
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/RGB.pb-c.c
@@ -0,0 +1,118 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: RGB.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "RGB.pb-c.h"
+void rgb__init
+ (RGB *message)
+{
+ static const RGB init_value = RGB__INIT;
+ *message = init_value;
+}
+size_t rgb__get_packed_size
+ (const RGB *message)
+{
+ assert(message->base.descriptor == &rgb__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t rgb__pack
+ (const RGB *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &rgb__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t rgb__pack_to_buffer
+ (const RGB *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &rgb__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+RGB *
+ rgb__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (RGB *)
+ protobuf_c_message_unpack (&rgb__descriptor,
+ allocator, len, data);
+}
+void rgb__free_unpacked
+ (RGB *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &rgb__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor rgb__field_descriptors[3] =
+{
+ {
+ "R",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_INT32,
+ offsetof(RGB, has_r),
+ offsetof(RGB, r),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "G",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_INT32,
+ offsetof(RGB, has_g),
+ offsetof(RGB, g),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "B",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_INT32,
+ offsetof(RGB, has_b),
+ offsetof(RGB, b),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned rgb__field_indices_by_name[] = {
+ 2, /* field[2] = B */
+ 1, /* field[1] = G */
+ 0, /* field[0] = R */
+};
+static const ProtobufCIntRange rgb__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 3 }
+};
+const ProtobufCMessageDescriptor rgb__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "RGB",
+ "RGB",
+ "RGB",
+ "",
+ sizeof(RGB),
+ 3,
+ rgb__field_descriptors,
+ rgb__field_indices_by_name,
+ 1, rgb__number_ranges,
+ (ProtobufCMessageInit) rgb__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/RGB.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/RGB.pb-c.h
new file mode 100644
index 000000000..464d75297
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Common/RGB.pb-c.h
@@ -0,0 +1,76 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: RGB.proto */
+
+#ifndef PROTOBUF_C_RGB_2eproto__INCLUDED
+#define PROTOBUF_C_RGB_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _RGB RGB;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _RGB
+{
+ ProtobufCMessage base;
+ protobuf_c_boolean has_r;
+ int32_t r;
+ protobuf_c_boolean has_g;
+ int32_t g;
+ protobuf_c_boolean has_b;
+ int32_t b;
+};
+#define RGB__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&rgb__descriptor) \
+ , 0, 0, 0, 0, 0, 0 }
+
+
+/* RGB methods */
+void rgb__init
+ (RGB *message);
+size_t rgb__get_packed_size
+ (const RGB *message);
+size_t rgb__pack
+ (const RGB *message,
+ uint8_t *out);
+size_t rgb__pack_to_buffer
+ (const RGB *message,
+ ProtobufCBuffer *buffer);
+RGB *
+ rgb__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void rgb__free_unpacked
+ (RGB *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*RGB_Closure)
+ (const RGB *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor rgb__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_RGB_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Jobs/Job.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Jobs/Job.pb-c.c
new file mode 100644
index 000000000..0213521e5
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Jobs/Job.pb-c.c
@@ -0,0 +1,105 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Job.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "Job.pb-c.h"
+void job__init
+ (Job *message)
+{
+ static const Job init_value = JOB__INIT;
+ *message = init_value;
+}
+size_t job__get_packed_size
+ (const Job *message)
+{
+ assert(message->base.descriptor == &job__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t job__pack
+ (const Job *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &job__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t job__pack_to_buffer
+ (const Job *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &job__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+Job *
+ job__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (Job *)
+ protobuf_c_message_unpack (&job__descriptor,
+ allocator, len, data);
+}
+void job__free_unpacked
+ (Job *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &job__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor job__field_descriptors[2] =
+{
+ {
+ "Name",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_STRING,
+ 0, /* quantifier_offset */
+ offsetof(Job, name),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Segments",
+ 2,
+ PROTOBUF_C_LABEL_REPEATED,
+ PROTOBUF_C_TYPE_MESSAGE,
+ offsetof(Job, n_segments),
+ offsetof(Job, segments),
+ &segment__descriptor,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned job__field_indices_by_name[] = {
+ 0, /* field[0] = Name */
+ 1, /* field[1] = Segments */
+};
+static const ProtobufCIntRange job__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 2 }
+};
+const ProtobufCMessageDescriptor job__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "Job",
+ "Job",
+ "Job",
+ "",
+ sizeof(Job),
+ 2,
+ job__field_descriptors,
+ job__field_indices_by_name,
+ 1, job__number_ranges,
+ (ProtobufCMessageInit) job__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Jobs/Job.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Jobs/Job.pb-c.h
new file mode 100644
index 000000000..c94f78bbb
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Jobs/Job.pb-c.h
@@ -0,0 +1,74 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Job.proto */
+
+#ifndef PROTOBUF_C_Job_2eproto__INCLUDED
+#define PROTOBUF_C_Job_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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
+
+#include "Segment.pb-c.h"
+
+typedef struct _Job Job;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _Job
+{
+ ProtobufCMessage base;
+ char *name;
+ size_t n_segments;
+ Segment **segments;
+};
+#define JOB__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&job__descriptor) \
+ , NULL, 0,NULL }
+
+
+/* Job methods */
+void job__init
+ (Job *message);
+size_t job__get_packed_size
+ (const Job *message);
+size_t job__pack
+ (const Job *message,
+ uint8_t *out);
+size_t job__pack_to_buffer
+ (const Job *message,
+ ProtobufCBuffer *buffer);
+Job *
+ job__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void job__free_unpacked
+ (Job *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*Job_Closure)
+ (const Job *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor job__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_Job_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Jobs/Segment.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Jobs/Segment.pb-c.c
new file mode 100644
index 000000000..764b6721b
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Jobs/Segment.pb-c.c
@@ -0,0 +1,118 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Segment.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "Segment.pb-c.h"
+void segment__init
+ (Segment *message)
+{
+ static const Segment init_value = SEGMENT__INIT;
+ *message = init_value;
+}
+size_t segment__get_packed_size
+ (const Segment *message)
+{
+ assert(message->base.descriptor == &segment__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t segment__pack
+ (const Segment *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &segment__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t segment__pack_to_buffer
+ (const Segment *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &segment__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+Segment *
+ segment__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (Segment *)
+ protobuf_c_message_unpack (&segment__descriptor,
+ allocator, len, data);
+}
+void segment__free_unpacked
+ (Segment *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &segment__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor segment__field_descriptors[3] =
+{
+ {
+ "Name",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_STRING,
+ 0, /* quantifier_offset */
+ offsetof(Segment, name),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Length",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_INT32,
+ offsetof(Segment, has_length),
+ offsetof(Segment, length),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Color",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_MESSAGE,
+ 0, /* quantifier_offset */
+ offsetof(Segment, color),
+ &rgb__descriptor,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned segment__field_indices_by_name[] = {
+ 2, /* field[2] = Color */
+ 1, /* field[1] = Length */
+ 0, /* field[0] = Name */
+};
+static const ProtobufCIntRange segment__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 3 }
+};
+const ProtobufCMessageDescriptor segment__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "Segment",
+ "Segment",
+ "Segment",
+ "",
+ sizeof(Segment),
+ 3,
+ segment__field_descriptors,
+ segment__field_indices_by_name,
+ 1, segment__number_ranges,
+ (ProtobufCMessageInit) segment__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Jobs/Segment.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Jobs/Segment.pb-c.h
new file mode 100644
index 000000000..5991f3228
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Jobs/Segment.pb-c.h
@@ -0,0 +1,75 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: Segment.proto */
+
+#ifndef PROTOBUF_C_Segment_2eproto__INCLUDED
+#define PROTOBUF_C_Segment_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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
+
+#include "RGB.pb-c.h"
+
+typedef struct _Segment Segment;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _Segment
+{
+ ProtobufCMessage base;
+ char *name;
+ protobuf_c_boolean has_length;
+ int32_t length;
+ RGB *color;
+};
+#define SEGMENT__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&segment__descriptor) \
+ , NULL, 0, 0, NULL }
+
+
+/* Segment methods */
+void segment__init
+ (Segment *message);
+size_t segment__get_packed_size
+ (const Segment *message);
+size_t segment__pack
+ (const Segment *message,
+ uint8_t *out);
+size_t segment__pack_to_buffer
+ (const Segment *message,
+ ProtobufCBuffer *buffer);
+Segment *
+ segment__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void segment__free_unpacked
+ (Segment *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*Segment_Closure)
+ (const Segment *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor segment__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_Segment_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/CalculateRequest.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/CalculateRequest.pb-c.c
new file mode 100644
index 000000000..68134c1f8
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/CalculateRequest.pb-c.c
@@ -0,0 +1,105 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: CalculateRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "CalculateRequest.pb-c.h"
+void calculate_request__init
+ (CalculateRequest *message)
+{
+ static const CalculateRequest init_value = CALCULATE_REQUEST__INIT;
+ *message = init_value;
+}
+size_t calculate_request__get_packed_size
+ (const CalculateRequest *message)
+{
+ assert(message->base.descriptor == &calculate_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t calculate_request__pack
+ (const CalculateRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &calculate_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t calculate_request__pack_to_buffer
+ (const CalculateRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &calculate_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+CalculateRequest *
+ calculate_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (CalculateRequest *)
+ protobuf_c_message_unpack (&calculate_request__descriptor,
+ allocator, len, data);
+}
+void calculate_request__free_unpacked
+ (CalculateRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &calculate_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor calculate_request__field_descriptors[2] =
+{
+ {
+ "A",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_DOUBLE,
+ offsetof(CalculateRequest, has_a),
+ offsetof(CalculateRequest, a),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "B",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_DOUBLE,
+ offsetof(CalculateRequest, has_b),
+ offsetof(CalculateRequest, b),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned calculate_request__field_indices_by_name[] = {
+ 0, /* field[0] = A */
+ 1, /* field[1] = B */
+};
+static const ProtobufCIntRange calculate_request__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 2 }
+};
+const ProtobufCMessageDescriptor calculate_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "CalculateRequest",
+ "CalculateRequest",
+ "CalculateRequest",
+ "",
+ sizeof(CalculateRequest),
+ 2,
+ calculate_request__field_descriptors,
+ calculate_request__field_indices_by_name,
+ 1, calculate_request__number_ranges,
+ (ProtobufCMessageInit) calculate_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/CalculateRequest.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/CalculateRequest.pb-c.h
new file mode 100644
index 000000000..4ad015493
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/CalculateRequest.pb-c.h
@@ -0,0 +1,74 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: CalculateRequest.proto */
+
+#ifndef PROTOBUF_C_CalculateRequest_2eproto__INCLUDED
+#define PROTOBUF_C_CalculateRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _CalculateRequest CalculateRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _CalculateRequest
+{
+ ProtobufCMessage base;
+ protobuf_c_boolean has_a;
+ double a;
+ protobuf_c_boolean has_b;
+ double b;
+};
+#define CALCULATE_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&calculate_request__descriptor) \
+ , 0, 0, 0, 0 }
+
+
+/* CalculateRequest methods */
+void calculate_request__init
+ (CalculateRequest *message);
+size_t calculate_request__get_packed_size
+ (const CalculateRequest *message);
+size_t calculate_request__pack
+ (const CalculateRequest *message,
+ uint8_t *out);
+size_t calculate_request__pack_to_buffer
+ (const CalculateRequest *message,
+ ProtobufCBuffer *buffer);
+CalculateRequest *
+ calculate_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void calculate_request__free_unpacked
+ (CalculateRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*CalculateRequest_Closure)
+ (const CalculateRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor calculate_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_CalculateRequest_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/CalculateResponse.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/CalculateResponse.pb-c.c
new file mode 100644
index 000000000..920356a05
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/CalculateResponse.pb-c.c
@@ -0,0 +1,92 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: CalculateResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "CalculateResponse.pb-c.h"
+void calculate_response__init
+ (CalculateResponse *message)
+{
+ static const CalculateResponse init_value = CALCULATE_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t calculate_response__get_packed_size
+ (const CalculateResponse *message)
+{
+ assert(message->base.descriptor == &calculate_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t calculate_response__pack
+ (const CalculateResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &calculate_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t calculate_response__pack_to_buffer
+ (const CalculateResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &calculate_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+CalculateResponse *
+ calculate_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (CalculateResponse *)
+ protobuf_c_message_unpack (&calculate_response__descriptor,
+ allocator, len, data);
+}
+void calculate_response__free_unpacked
+ (CalculateResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &calculate_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor calculate_response__field_descriptors[1] =
+{
+ {
+ "Sum",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_DOUBLE,
+ offsetof(CalculateResponse, has_sum),
+ offsetof(CalculateResponse, sum),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned calculate_response__field_indices_by_name[] = {
+ 0, /* field[0] = Sum */
+};
+static const ProtobufCIntRange calculate_response__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 1 }
+};
+const ProtobufCMessageDescriptor calculate_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "CalculateResponse",
+ "CalculateResponse",
+ "CalculateResponse",
+ "",
+ sizeof(CalculateResponse),
+ 1,
+ calculate_response__field_descriptors,
+ calculate_response__field_indices_by_name,
+ 1, calculate_response__number_ranges,
+ (ProtobufCMessageInit) calculate_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/CalculateResponse.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/CalculateResponse.pb-c.h
new file mode 100644
index 000000000..05bdf2b52
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/CalculateResponse.pb-c.h
@@ -0,0 +1,72 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: CalculateResponse.proto */
+
+#ifndef PROTOBUF_C_CalculateResponse_2eproto__INCLUDED
+#define PROTOBUF_C_CalculateResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _CalculateResponse CalculateResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _CalculateResponse
+{
+ ProtobufCMessage base;
+ protobuf_c_boolean has_sum;
+ double sum;
+};
+#define CALCULATE_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&calculate_response__descriptor) \
+ , 0, 0 }
+
+
+/* CalculateResponse methods */
+void calculate_response__init
+ (CalculateResponse *message);
+size_t calculate_response__get_packed_size
+ (const CalculateResponse *message);
+size_t calculate_response__pack
+ (const CalculateResponse *message,
+ uint8_t *out);
+size_t calculate_response__pack_to_buffer
+ (const CalculateResponse *message,
+ ProtobufCBuffer *buffer);
+CalculateResponse *
+ calculate_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void calculate_response__free_unpacked
+ (CalculateResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*CalculateResponse_Closure)
+ (const CalculateResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor calculate_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_CalculateResponse_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/ProgressRequest.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/ProgressRequest.pb-c.c
new file mode 100644
index 000000000..9e074f376
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/ProgressRequest.pb-c.c
@@ -0,0 +1,105 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: ProgressRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "ProgressRequest.pb-c.h"
+void progress_request__init
+ (ProgressRequest *message)
+{
+ static const ProgressRequest init_value = PROGRESS_REQUEST__INIT;
+ *message = init_value;
+}
+size_t progress_request__get_packed_size
+ (const ProgressRequest *message)
+{
+ assert(message->base.descriptor == &progress_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t progress_request__pack
+ (const ProgressRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &progress_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t progress_request__pack_to_buffer
+ (const ProgressRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &progress_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+ProgressRequest *
+ progress_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (ProgressRequest *)
+ protobuf_c_message_unpack (&progress_request__descriptor,
+ allocator, len, data);
+}
+void progress_request__free_unpacked
+ (ProgressRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &progress_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor progress_request__field_descriptors[2] =
+{
+ {
+ "Amount",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_INT32,
+ offsetof(ProgressRequest, has_amount),
+ offsetof(ProgressRequest, amount),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Delay",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_INT32,
+ offsetof(ProgressRequest, has_delay),
+ offsetof(ProgressRequest, delay),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned progress_request__field_indices_by_name[] = {
+ 0, /* field[0] = Amount */
+ 1, /* field[1] = Delay */
+};
+static const ProtobufCIntRange progress_request__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 2 }
+};
+const ProtobufCMessageDescriptor progress_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "ProgressRequest",
+ "ProgressRequest",
+ "ProgressRequest",
+ "",
+ sizeof(ProgressRequest),
+ 2,
+ progress_request__field_descriptors,
+ progress_request__field_indices_by_name,
+ 1, progress_request__number_ranges,
+ (ProtobufCMessageInit) progress_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/ProgressRequest.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/ProgressRequest.pb-c.h
new file mode 100644
index 000000000..1ce2b6d6b
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/ProgressRequest.pb-c.h
@@ -0,0 +1,74 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: ProgressRequest.proto */
+
+#ifndef PROTOBUF_C_ProgressRequest_2eproto__INCLUDED
+#define PROTOBUF_C_ProgressRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _ProgressRequest ProgressRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _ProgressRequest
+{
+ ProtobufCMessage base;
+ protobuf_c_boolean has_amount;
+ int32_t amount;
+ protobuf_c_boolean has_delay;
+ int32_t delay;
+};
+#define PROGRESS_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&progress_request__descriptor) \
+ , 0, 0, 0, 0 }
+
+
+/* ProgressRequest methods */
+void progress_request__init
+ (ProgressRequest *message);
+size_t progress_request__get_packed_size
+ (const ProgressRequest *message);
+size_t progress_request__pack
+ (const ProgressRequest *message,
+ uint8_t *out);
+size_t progress_request__pack_to_buffer
+ (const ProgressRequest *message,
+ ProtobufCBuffer *buffer);
+ProgressRequest *
+ progress_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void progress_request__free_unpacked
+ (ProgressRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*ProgressRequest_Closure)
+ (const ProgressRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor progress_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_ProgressRequest_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/ProgressResponse.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/ProgressResponse.pb-c.c
new file mode 100644
index 000000000..9e54fb5d6
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/ProgressResponse.pb-c.c
@@ -0,0 +1,92 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: ProgressResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "ProgressResponse.pb-c.h"
+void progress_response__init
+ (ProgressResponse *message)
+{
+ static const ProgressResponse init_value = PROGRESS_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t progress_response__get_packed_size
+ (const ProgressResponse *message)
+{
+ assert(message->base.descriptor == &progress_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t progress_response__pack
+ (const ProgressResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &progress_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t progress_response__pack_to_buffer
+ (const ProgressResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &progress_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+ProgressResponse *
+ progress_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (ProgressResponse *)
+ protobuf_c_message_unpack (&progress_response__descriptor,
+ allocator, len, data);
+}
+void progress_response__free_unpacked
+ (ProgressResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &progress_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor progress_response__field_descriptors[1] =
+{
+ {
+ "Progress",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_DOUBLE,
+ offsetof(ProgressResponse, has_progress),
+ offsetof(ProgressResponse, progress),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned progress_response__field_indices_by_name[] = {
+ 0, /* field[0] = Progress */
+};
+static const ProtobufCIntRange progress_response__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 1 }
+};
+const ProtobufCMessageDescriptor progress_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "ProgressResponse",
+ "ProgressResponse",
+ "ProgressResponse",
+ "",
+ sizeof(ProgressResponse),
+ 1,
+ progress_response__field_descriptors,
+ progress_response__field_indices_by_name,
+ 1, progress_response__number_ranges,
+ (ProtobufCMessageInit) progress_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/ProgressResponse.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/ProgressResponse.pb-c.h
new file mode 100644
index 000000000..de5201ee5
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/ProgressResponse.pb-c.h
@@ -0,0 +1,72 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: ProgressResponse.proto */
+
+#ifndef PROTOBUF_C_ProgressResponse_2eproto__INCLUDED
+#define PROTOBUF_C_ProgressResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _ProgressResponse ProgressResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _ProgressResponse
+{
+ ProtobufCMessage base;
+ protobuf_c_boolean has_progress;
+ double progress;
+};
+#define PROGRESS_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&progress_response__descriptor) \
+ , 0, 0 }
+
+
+/* ProgressResponse methods */
+void progress_response__init
+ (ProgressResponse *message);
+size_t progress_response__get_packed_size
+ (const ProgressResponse *message);
+size_t progress_response__pack
+ (const ProgressResponse *message,
+ uint8_t *out);
+size_t progress_response__pack_to_buffer
+ (const ProgressResponse *message,
+ ProtobufCBuffer *buffer);
+ProgressResponse *
+ progress_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void progress_response__free_unpacked
+ (ProgressResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*ProgressResponse_Closure)
+ (const ProgressResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor progress_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_ProgressResponse_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeReadRequest.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeReadRequest.pb-c.c
new file mode 100644
index 000000000..6ecf34fcd
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeReadRequest.pb-c.c
@@ -0,0 +1,92 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubCartridgeReadRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "StubCartridgeReadRequest.pb-c.h"
+void stub_cartridge_read_request__init
+ (StubCartridgeReadRequest *message)
+{
+ static const StubCartridgeReadRequest init_value = STUB_CARTRIDGE_READ_REQUEST__INIT;
+ *message = init_value;
+}
+size_t stub_cartridge_read_request__get_packed_size
+ (const StubCartridgeReadRequest *message)
+{
+ assert(message->base.descriptor == &stub_cartridge_read_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub_cartridge_read_request__pack
+ (const StubCartridgeReadRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub_cartridge_read_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub_cartridge_read_request__pack_to_buffer
+ (const StubCartridgeReadRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub_cartridge_read_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubCartridgeReadRequest *
+ stub_cartridge_read_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubCartridgeReadRequest *)
+ protobuf_c_message_unpack (&stub_cartridge_read_request__descriptor,
+ allocator, len, data);
+}
+void stub_cartridge_read_request__free_unpacked
+ (StubCartridgeReadRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub_cartridge_read_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub_cartridge_read_request__field_descriptors[1] =
+{
+ {
+ "CartridgeId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubCartridgeReadRequest, has_cartridgeid),
+ offsetof(StubCartridgeReadRequest, cartridgeid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_cartridge_read_request__field_indices_by_name[] = {
+ 0, /* field[0] = CartridgeId */
+};
+static const ProtobufCIntRange stub_cartridge_read_request__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 1 }
+};
+const ProtobufCMessageDescriptor stub_cartridge_read_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "StubCartridgeReadRequest",
+ "StubCartridgeReadRequest",
+ "StubCartridgeReadRequest",
+ "",
+ sizeof(StubCartridgeReadRequest),
+ 1,
+ stub_cartridge_read_request__field_descriptors,
+ stub_cartridge_read_request__field_indices_by_name,
+ 1, stub_cartridge_read_request__number_ranges,
+ (ProtobufCMessageInit) stub_cartridge_read_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeReadRequest.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeReadRequest.pb-c.h
new file mode 100644
index 000000000..12ea3b514
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeReadRequest.pb-c.h
@@ -0,0 +1,75 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubCartridgeReadRequest.proto */
+
+#ifndef PROTOBUF_C_StubCartridgeReadRequest_2eproto__INCLUDED
+#define PROTOBUF_C_StubCartridgeReadRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _StubCartridgeReadRequest StubCartridgeReadRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubCartridgeReadRequest
+{
+ ProtobufCMessage base;
+ /*
+ *0..7
+ */
+ protobuf_c_boolean has_cartridgeid;
+ uint32_t cartridgeid;
+};
+#define STUB_CARTRIDGE_READ_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub_cartridge_read_request__descriptor) \
+ , 0, 0 }
+
+
+/* StubCartridgeReadRequest methods */
+void stub_cartridge_read_request__init
+ (StubCartridgeReadRequest *message);
+size_t stub_cartridge_read_request__get_packed_size
+ (const StubCartridgeReadRequest *message);
+size_t stub_cartridge_read_request__pack
+ (const StubCartridgeReadRequest *message,
+ uint8_t *out);
+size_t stub_cartridge_read_request__pack_to_buffer
+ (const StubCartridgeReadRequest *message,
+ ProtobufCBuffer *buffer);
+StubCartridgeReadRequest *
+ stub_cartridge_read_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub_cartridge_read_request__free_unpacked
+ (StubCartridgeReadRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubCartridgeReadRequest_Closure)
+ (const StubCartridgeReadRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub_cartridge_read_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_StubCartridgeReadRequest_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeReadResponse.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeReadResponse.pb-c.c
new file mode 100644
index 000000000..7c23c1ffa
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeReadResponse.pb-c.c
@@ -0,0 +1,159 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubCartridgeReadResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "StubCartridgeReadResponse.pb-c.h"
+void stub_cartridge_read_response__init
+ (StubCartridgeReadResponse *message)
+{
+ static const StubCartridgeReadResponse init_value = STUB_CARTRIDGE_READ_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t stub_cartridge_read_response__get_packed_size
+ (const StubCartridgeReadResponse *message)
+{
+ assert(message->base.descriptor == &stub_cartridge_read_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub_cartridge_read_response__pack
+ (const StubCartridgeReadResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub_cartridge_read_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub_cartridge_read_response__pack_to_buffer
+ (const StubCartridgeReadResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub_cartridge_read_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubCartridgeReadResponse *
+ stub_cartridge_read_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubCartridgeReadResponse *)
+ protobuf_c_message_unpack (&stub_cartridge_read_response__descriptor,
+ allocator, len, data);
+}
+void stub_cartridge_read_response__free_unpacked
+ (StubCartridgeReadResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub_cartridge_read_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub_cartridge_read_response__field_descriptors[6] =
+{
+ {
+ "CartridgeId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubCartridgeReadResponse, has_cartridgeid),
+ offsetof(StubCartridgeReadResponse, cartridgeid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "CartridgeColor",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubCartridgeReadResponse, has_cartridgecolor),
+ offsetof(StubCartridgeReadResponse, cartridgecolor),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "CartridgeVersion",
+ 4,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubCartridgeReadResponse, has_cartridgeversion),
+ offsetof(StubCartridgeReadResponse, cartridgeversion),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "CartridgeData",
+ 5,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_INT32,
+ offsetof(StubCartridgeReadResponse, has_cartridgedata),
+ offsetof(StubCartridgeReadResponse, cartridgedata),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "CartridgeUsed",
+ 6,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubCartridgeReadResponse, has_cartridgeused),
+ offsetof(StubCartridgeReadResponse, cartridgeused),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Status",
+ 8,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubCartridgeReadResponse, has_status),
+ offsetof(StubCartridgeReadResponse, status),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_cartridge_read_response__field_indices_by_name[] = {
+ 1, /* field[1] = CartridgeColor */
+ 3, /* field[3] = CartridgeData */
+ 0, /* field[0] = CartridgeId */
+ 4, /* field[4] = CartridgeUsed */
+ 2, /* field[2] = CartridgeVersion */
+ 5, /* field[5] = Status */
+};
+static const ProtobufCIntRange stub_cartridge_read_response__number_ranges[3 + 1] =
+{
+ { 1, 0 },
+ { 3, 1 },
+ { 8, 5 },
+ { 0, 6 }
+};
+const ProtobufCMessageDescriptor stub_cartridge_read_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "StubCartridgeReadResponse",
+ "StubCartridgeReadResponse",
+ "StubCartridgeReadResponse",
+ "",
+ sizeof(StubCartridgeReadResponse),
+ 6,
+ stub_cartridge_read_response__field_descriptors,
+ stub_cartridge_read_response__field_indices_by_name,
+ 3, stub_cartridge_read_response__number_ranges,
+ (ProtobufCMessageInit) stub_cartridge_read_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeReadResponse.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeReadResponse.pb-c.h
new file mode 100644
index 000000000..3b82ef645
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeReadResponse.pb-c.h
@@ -0,0 +1,82 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubCartridgeReadResponse.proto */
+
+#ifndef PROTOBUF_C_StubCartridgeReadResponse_2eproto__INCLUDED
+#define PROTOBUF_C_StubCartridgeReadResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _StubCartridgeReadResponse StubCartridgeReadResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubCartridgeReadResponse
+{
+ ProtobufCMessage base;
+ protobuf_c_boolean has_cartridgeid;
+ uint32_t cartridgeid;
+ protobuf_c_boolean has_cartridgecolor;
+ uint32_t cartridgecolor;
+ protobuf_c_boolean has_cartridgeversion;
+ uint32_t cartridgeversion;
+ protobuf_c_boolean has_cartridgedata;
+ int32_t cartridgedata;
+ protobuf_c_boolean has_cartridgeused;
+ protobuf_c_boolean cartridgeused;
+ protobuf_c_boolean has_status;
+ uint32_t status;
+};
+#define STUB_CARTRIDGE_READ_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub_cartridge_read_response__descriptor) \
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+
+
+/* StubCartridgeReadResponse methods */
+void stub_cartridge_read_response__init
+ (StubCartridgeReadResponse *message);
+size_t stub_cartridge_read_response__get_packed_size
+ (const StubCartridgeReadResponse *message);
+size_t stub_cartridge_read_response__pack
+ (const StubCartridgeReadResponse *message,
+ uint8_t *out);
+size_t stub_cartridge_read_response__pack_to_buffer
+ (const StubCartridgeReadResponse *message,
+ ProtobufCBuffer *buffer);
+StubCartridgeReadResponse *
+ stub_cartridge_read_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub_cartridge_read_response__free_unpacked
+ (StubCartridgeReadResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubCartridgeReadResponse_Closure)
+ (const StubCartridgeReadResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub_cartridge_read_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_StubCartridgeReadResponse_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeWriteRequest.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeWriteRequest.pb-c.c
new file mode 100644
index 000000000..fe528a34e
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeWriteRequest.pb-c.c
@@ -0,0 +1,144 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubCartridgeWriteRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "StubCartridgeWriteRequest.pb-c.h"
+void stub_cartridge_write_request__init
+ (StubCartridgeWriteRequest *message)
+{
+ static const StubCartridgeWriteRequest init_value = STUB_CARTRIDGE_WRITE_REQUEST__INIT;
+ *message = init_value;
+}
+size_t stub_cartridge_write_request__get_packed_size
+ (const StubCartridgeWriteRequest *message)
+{
+ assert(message->base.descriptor == &stub_cartridge_write_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub_cartridge_write_request__pack
+ (const StubCartridgeWriteRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub_cartridge_write_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub_cartridge_write_request__pack_to_buffer
+ (const StubCartridgeWriteRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub_cartridge_write_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubCartridgeWriteRequest *
+ stub_cartridge_write_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubCartridgeWriteRequest *)
+ protobuf_c_message_unpack (&stub_cartridge_write_request__descriptor,
+ allocator, len, data);
+}
+void stub_cartridge_write_request__free_unpacked
+ (StubCartridgeWriteRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub_cartridge_write_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub_cartridge_write_request__field_descriptors[5] =
+{
+ {
+ "CartridgeId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubCartridgeWriteRequest, has_cartridgeid),
+ offsetof(StubCartridgeWriteRequest, cartridgeid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "CartridgeColor",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubCartridgeWriteRequest, has_cartridgecolor),
+ offsetof(StubCartridgeWriteRequest, cartridgecolor),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "CartridgeVersion",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubCartridgeWriteRequest, has_cartridgeversion),
+ offsetof(StubCartridgeWriteRequest, cartridgeversion),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "CartridgeData",
+ 4,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubCartridgeWriteRequest, has_cartridgedata),
+ offsetof(StubCartridgeWriteRequest, cartridgedata),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "CartridgeUsed",
+ 5,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubCartridgeWriteRequest, has_cartridgeused),
+ offsetof(StubCartridgeWriteRequest, cartridgeused),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_cartridge_write_request__field_indices_by_name[] = {
+ 1, /* field[1] = CartridgeColor */
+ 3, /* field[3] = CartridgeData */
+ 0, /* field[0] = CartridgeId */
+ 4, /* field[4] = CartridgeUsed */
+ 2, /* field[2] = CartridgeVersion */
+};
+static const ProtobufCIntRange stub_cartridge_write_request__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 5 }
+};
+const ProtobufCMessageDescriptor stub_cartridge_write_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "StubCartridgeWriteRequest",
+ "StubCartridgeWriteRequest",
+ "StubCartridgeWriteRequest",
+ "",
+ sizeof(StubCartridgeWriteRequest),
+ 5,
+ stub_cartridge_write_request__field_descriptors,
+ stub_cartridge_write_request__field_indices_by_name,
+ 1, stub_cartridge_write_request__number_ranges,
+ (ProtobufCMessageInit) stub_cartridge_write_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeWriteRequest.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeWriteRequest.pb-c.h
new file mode 100644
index 000000000..ead0d6b2d
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeWriteRequest.pb-c.h
@@ -0,0 +1,88 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubCartridgeWriteRequest.proto */
+
+#ifndef PROTOBUF_C_StubCartridgeWriteRequest_2eproto__INCLUDED
+#define PROTOBUF_C_StubCartridgeWriteRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _StubCartridgeWriteRequest StubCartridgeWriteRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubCartridgeWriteRequest
+{
+ ProtobufCMessage base;
+ /*
+ *0..7
+ */
+ protobuf_c_boolean has_cartridgeid;
+ uint32_t cartridgeid;
+ /*
+ */
+ protobuf_c_boolean has_cartridgecolor;
+ uint32_t cartridgecolor;
+ protobuf_c_boolean has_cartridgeversion;
+ uint32_t cartridgeversion;
+ protobuf_c_boolean has_cartridgedata;
+ uint32_t cartridgedata;
+ /*
+ * 0 - new 1- used
+ */
+ protobuf_c_boolean has_cartridgeused;
+ protobuf_c_boolean cartridgeused;
+};
+#define STUB_CARTRIDGE_WRITE_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub_cartridge_write_request__descriptor) \
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+
+
+/* StubCartridgeWriteRequest methods */
+void stub_cartridge_write_request__init
+ (StubCartridgeWriteRequest *message);
+size_t stub_cartridge_write_request__get_packed_size
+ (const StubCartridgeWriteRequest *message);
+size_t stub_cartridge_write_request__pack
+ (const StubCartridgeWriteRequest *message,
+ uint8_t *out);
+size_t stub_cartridge_write_request__pack_to_buffer
+ (const StubCartridgeWriteRequest *message,
+ ProtobufCBuffer *buffer);
+StubCartridgeWriteRequest *
+ stub_cartridge_write_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub_cartridge_write_request__free_unpacked
+ (StubCartridgeWriteRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubCartridgeWriteRequest_Closure)
+ (const StubCartridgeWriteRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub_cartridge_write_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_StubCartridgeWriteRequest_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeWriteResponse.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeWriteResponse.pb-c.c
new file mode 100644
index 000000000..66454c20a
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeWriteResponse.pb-c.c
@@ -0,0 +1,106 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubCartridgeWriteResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "StubCartridgeWriteResponse.pb-c.h"
+void stub_cartridge_write_response__init
+ (StubCartridgeWriteResponse *message)
+{
+ static const StubCartridgeWriteResponse init_value = STUB_CARTRIDGE_WRITE_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t stub_cartridge_write_response__get_packed_size
+ (const StubCartridgeWriteResponse *message)
+{
+ assert(message->base.descriptor == &stub_cartridge_write_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub_cartridge_write_response__pack
+ (const StubCartridgeWriteResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub_cartridge_write_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub_cartridge_write_response__pack_to_buffer
+ (const StubCartridgeWriteResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub_cartridge_write_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubCartridgeWriteResponse *
+ stub_cartridge_write_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubCartridgeWriteResponse *)
+ protobuf_c_message_unpack (&stub_cartridge_write_response__descriptor,
+ allocator, len, data);
+}
+void stub_cartridge_write_response__free_unpacked
+ (StubCartridgeWriteResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub_cartridge_write_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub_cartridge_write_response__field_descriptors[2] =
+{
+ {
+ "CartridgeId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubCartridgeWriteResponse, has_cartridgeid),
+ offsetof(StubCartridgeWriteResponse, cartridgeid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Status",
+ 8,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubCartridgeWriteResponse, has_status),
+ offsetof(StubCartridgeWriteResponse, status),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_cartridge_write_response__field_indices_by_name[] = {
+ 0, /* field[0] = CartridgeId */
+ 1, /* field[1] = Status */
+};
+static const ProtobufCIntRange stub_cartridge_write_response__number_ranges[2 + 1] =
+{
+ { 1, 0 },
+ { 8, 1 },
+ { 0, 2 }
+};
+const ProtobufCMessageDescriptor stub_cartridge_write_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "StubCartridgeWriteResponse",
+ "StubCartridgeWriteResponse",
+ "StubCartridgeWriteResponse",
+ "",
+ sizeof(StubCartridgeWriteResponse),
+ 2,
+ stub_cartridge_write_response__field_descriptors,
+ stub_cartridge_write_response__field_indices_by_name,
+ 2, stub_cartridge_write_response__number_ranges,
+ (ProtobufCMessageInit) stub_cartridge_write_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeWriteResponse.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeWriteResponse.pb-c.h
new file mode 100644
index 000000000..5ba0eb28c
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubCartridgeWriteResponse.pb-c.h
@@ -0,0 +1,74 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubCartridgeWriteResponse.proto */
+
+#ifndef PROTOBUF_C_StubCartridgeWriteResponse_2eproto__INCLUDED
+#define PROTOBUF_C_StubCartridgeWriteResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _StubCartridgeWriteResponse StubCartridgeWriteResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubCartridgeWriteResponse
+{
+ ProtobufCMessage base;
+ protobuf_c_boolean has_cartridgeid;
+ uint32_t cartridgeid;
+ protobuf_c_boolean has_status;
+ uint32_t status;
+};
+#define STUB_CARTRIDGE_WRITE_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub_cartridge_write_response__descriptor) \
+ , 0, 0, 0, 0 }
+
+
+/* StubCartridgeWriteResponse methods */
+void stub_cartridge_write_response__init
+ (StubCartridgeWriteResponse *message);
+size_t stub_cartridge_write_response__get_packed_size
+ (const StubCartridgeWriteResponse *message);
+size_t stub_cartridge_write_response__pack
+ (const StubCartridgeWriteResponse *message,
+ uint8_t *out);
+size_t stub_cartridge_write_response__pack_to_buffer
+ (const StubCartridgeWriteResponse *message,
+ ProtobufCBuffer *buffer);
+StubCartridgeWriteResponse *
+ stub_cartridge_write_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub_cartridge_write_response__free_unpacked
+ (StubCartridgeWriteResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubCartridgeWriteResponse_Closure)
+ (const StubCartridgeWriteResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub_cartridge_write_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_StubCartridgeWriteResponse_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubDispenserRequest.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubDispenserRequest.pb-c.c
new file mode 100644
index 000000000..d8cdbdd8b
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubDispenserRequest.pb-c.c
@@ -0,0 +1,144 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubDispenserRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "StubDispenserRequest.pb-c.h"
+void stub_dispenser_request__init
+ (StubDispenserRequest *message)
+{
+ static const StubDispenserRequest init_value = STUB_DISPENSER_REQUEST__INIT;
+ *message = init_value;
+}
+size_t stub_dispenser_request__get_packed_size
+ (const StubDispenserRequest *message)
+{
+ assert(message->base.descriptor == &stub_dispenser_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub_dispenser_request__pack
+ (const StubDispenserRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub_dispenser_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub_dispenser_request__pack_to_buffer
+ (const StubDispenserRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub_dispenser_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubDispenserRequest *
+ stub_dispenser_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubDispenserRequest *)
+ protobuf_c_message_unpack (&stub_dispenser_request__descriptor,
+ allocator, len, data);
+}
+void stub_dispenser_request__free_unpacked
+ (StubDispenserRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub_dispenser_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub_dispenser_request__field_descriptors[5] =
+{
+ {
+ "DispenserId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubDispenserRequest, has_dispenserid),
+ offsetof(StubDispenserRequest, dispenserid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Start",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubDispenserRequest, has_start),
+ offsetof(StubDispenserRequest, start),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "SetDirection",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubDispenserRequest, has_setdirection),
+ offsetof(StubDispenserRequest, setdirection),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "SetMicrostepDivision",
+ 4,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubDispenserRequest, has_setmicrostepdivision),
+ offsetof(StubDispenserRequest, setmicrostepdivision),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "SetSpeed",
+ 5,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_INT32,
+ offsetof(StubDispenserRequest, has_setspeed),
+ offsetof(StubDispenserRequest, setspeed),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_dispenser_request__field_indices_by_name[] = {
+ 0, /* field[0] = DispenserId */
+ 2, /* field[2] = SetDirection */
+ 3, /* field[3] = SetMicrostepDivision */
+ 4, /* field[4] = SetSpeed */
+ 1, /* field[1] = Start */
+};
+static const ProtobufCIntRange stub_dispenser_request__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 5 }
+};
+const ProtobufCMessageDescriptor stub_dispenser_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "StubDispenserRequest",
+ "StubDispenserRequest",
+ "StubDispenserRequest",
+ "",
+ sizeof(StubDispenserRequest),
+ 5,
+ stub_dispenser_request__field_descriptors,
+ stub_dispenser_request__field_indices_by_name,
+ 1, stub_dispenser_request__number_ranges,
+ (ProtobufCMessageInit) stub_dispenser_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubDispenserRequest.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubDispenserRequest.pb-c.h
new file mode 100644
index 000000000..8f99287a9
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubDispenserRequest.pb-c.h
@@ -0,0 +1,92 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubDispenserRequest.proto */
+
+#ifndef PROTOBUF_C_StubDispenserRequest_2eproto__INCLUDED
+#define PROTOBUF_C_StubDispenserRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _StubDispenserRequest StubDispenserRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubDispenserRequest
+{
+ ProtobufCMessage base;
+ /*
+ * 0..7
+ */
+ protobuf_c_boolean has_dispenserid;
+ uint32_t dispenserid;
+ /*
+ * 1-start 0-stop
+ */
+ protobuf_c_boolean has_start;
+ protobuf_c_boolean start;
+ /*
+ * 1-cw 0-ccw
+ */
+ protobuf_c_boolean has_setdirection;
+ protobuf_c_boolean setdirection;
+ /*
+ * No. of steps for 360 deg.
+ */
+ protobuf_c_boolean has_setmicrostepdivision;
+ uint32_t setmicrostepdivision;
+ protobuf_c_boolean has_setspeed;
+ int32_t setspeed;
+};
+#define STUB_DISPENSER_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub_dispenser_request__descriptor) \
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+
+
+/* StubDispenserRequest methods */
+void stub_dispenser_request__init
+ (StubDispenserRequest *message);
+size_t stub_dispenser_request__get_packed_size
+ (const StubDispenserRequest *message);
+size_t stub_dispenser_request__pack
+ (const StubDispenserRequest *message,
+ uint8_t *out);
+size_t stub_dispenser_request__pack_to_buffer
+ (const StubDispenserRequest *message,
+ ProtobufCBuffer *buffer);
+StubDispenserRequest *
+ stub_dispenser_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub_dispenser_request__free_unpacked
+ (StubDispenserRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubDispenserRequest_Closure)
+ (const StubDispenserRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub_dispenser_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_StubDispenserRequest_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubDispenserResponse.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubDispenserResponse.pb-c.c
new file mode 100644
index 000000000..de699971a
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubDispenserResponse.pb-c.c
@@ -0,0 +1,131 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubDispenserResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "StubDispenserResponse.pb-c.h"
+void stub_dispenser_response__init
+ (StubDispenserResponse *message)
+{
+ static const StubDispenserResponse init_value = STUB_DISPENSER_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t stub_dispenser_response__get_packed_size
+ (const StubDispenserResponse *message)
+{
+ assert(message->base.descriptor == &stub_dispenser_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub_dispenser_response__pack
+ (const StubDispenserResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub_dispenser_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub_dispenser_response__pack_to_buffer
+ (const StubDispenserResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub_dispenser_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubDispenserResponse *
+ stub_dispenser_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubDispenserResponse *)
+ protobuf_c_message_unpack (&stub_dispenser_response__descriptor,
+ allocator, len, data);
+}
+void stub_dispenser_response__free_unpacked
+ (StubDispenserResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub_dispenser_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub_dispenser_response__field_descriptors[4] =
+{
+ {
+ "DispenserId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubDispenserResponse, has_dispenserid),
+ offsetof(StubDispenserResponse, dispenserid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "DispenserPosition",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubDispenserResponse, has_dispenserposition),
+ offsetof(StubDispenserResponse, dispenserposition),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "InkWorningLevel",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubDispenserResponse, has_inkworninglevel),
+ offsetof(StubDispenserResponse, inkworninglevel),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Status",
+ 4,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubDispenserResponse, has_status),
+ offsetof(StubDispenserResponse, status),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_dispenser_response__field_indices_by_name[] = {
+ 0, /* field[0] = DispenserId */
+ 1, /* field[1] = DispenserPosition */
+ 2, /* field[2] = InkWorningLevel */
+ 3, /* field[3] = Status */
+};
+static const ProtobufCIntRange stub_dispenser_response__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 4 }
+};
+const ProtobufCMessageDescriptor stub_dispenser_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "StubDispenserResponse",
+ "StubDispenserResponse",
+ "StubDispenserResponse",
+ "",
+ sizeof(StubDispenserResponse),
+ 4,
+ stub_dispenser_response__field_descriptors,
+ stub_dispenser_response__field_indices_by_name,
+ 1, stub_dispenser_response__number_ranges,
+ (ProtobufCMessageInit) stub_dispenser_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubDispenserResponse.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubDispenserResponse.pb-c.h
new file mode 100644
index 000000000..7598720df
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubDispenserResponse.pb-c.h
@@ -0,0 +1,89 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubDispenserResponse.proto */
+
+#ifndef PROTOBUF_C_StubDispenserResponse_2eproto__INCLUDED
+#define PROTOBUF_C_StubDispenserResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _StubDispenserResponse StubDispenserResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubDispenserResponse
+{
+ ProtobufCMessage base;
+ /*
+ * 0..7
+ */
+ protobuf_c_boolean has_dispenserid;
+ uint32_t dispenserid;
+ /*
+ */
+ protobuf_c_boolean has_dispenserposition;
+ uint32_t dispenserposition;
+ /*
+ * 1- critical 2- level 3- overflow
+ */
+ protobuf_c_boolean has_inkworninglevel;
+ uint32_t inkworninglevel;
+ /*
+ * 0-OK 1-Failed
+ */
+ protobuf_c_boolean has_status;
+ protobuf_c_boolean status;
+};
+#define STUB_DISPENSER_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub_dispenser_response__descriptor) \
+ , 0, 0, 0, 0, 0, 0, 0, 0 }
+
+
+/* StubDispenserResponse methods */
+void stub_dispenser_response__init
+ (StubDispenserResponse *message);
+size_t stub_dispenser_response__get_packed_size
+ (const StubDispenserResponse *message);
+size_t stub_dispenser_response__pack
+ (const StubDispenserResponse *message,
+ uint8_t *out);
+size_t stub_dispenser_response__pack_to_buffer
+ (const StubDispenserResponse *message,
+ ProtobufCBuffer *buffer);
+StubDispenserResponse *
+ stub_dispenser_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub_dispenser_response__free_unpacked
+ (StubDispenserResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubDispenserResponse_Closure)
+ (const StubDispenserResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub_dispenser_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_StubDispenserResponse_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOInputSetupRequest.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOInputSetupRequest.pb-c.c
new file mode 100644
index 000000000..9ea597eeb
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOInputSetupRequest.pb-c.c
@@ -0,0 +1,131 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubGPIOInputSetupRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "StubGPIOInputSetupRequest.pb-c.h"
+void stub_gpioinput_setup_request__init
+ (StubGPIOInputSetupRequest *message)
+{
+ static const StubGPIOInputSetupRequest init_value = STUB_GPIOINPUT_SETUP_REQUEST__INIT;
+ *message = init_value;
+}
+size_t stub_gpioinput_setup_request__get_packed_size
+ (const StubGPIOInputSetupRequest *message)
+{
+ assert(message->base.descriptor == &stub_gpioinput_setup_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub_gpioinput_setup_request__pack
+ (const StubGPIOInputSetupRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub_gpioinput_setup_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub_gpioinput_setup_request__pack_to_buffer
+ (const StubGPIOInputSetupRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub_gpioinput_setup_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubGPIOInputSetupRequest *
+ stub_gpioinput_setup_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubGPIOInputSetupRequest *)
+ protobuf_c_message_unpack (&stub_gpioinput_setup_request__descriptor,
+ allocator, len, data);
+}
+void stub_gpioinput_setup_request__free_unpacked
+ (StubGPIOInputSetupRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub_gpioinput_setup_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub_gpioinput_setup_request__field_descriptors[4] =
+{
+ {
+ "PortId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_STRING,
+ 0, /* quantifier_offset */
+ offsetof(StubGPIOInputSetupRequest, portid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "PinId",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOInputSetupRequest, has_pinid),
+ offsetof(StubGPIOInputSetupRequest, pinid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "SetInput",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOInputSetupRequest, has_setinput),
+ offsetof(StubGPIOInputSetupRequest, setinput),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "SetPullUP",
+ 4,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOInputSetupRequest, has_setpullup),
+ offsetof(StubGPIOInputSetupRequest, setpullup),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_gpioinput_setup_request__field_indices_by_name[] = {
+ 1, /* field[1] = PinId */
+ 0, /* field[0] = PortId */
+ 2, /* field[2] = SetInput */
+ 3, /* field[3] = SetPullUP */
+};
+static const ProtobufCIntRange stub_gpioinput_setup_request__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 4 }
+};
+const ProtobufCMessageDescriptor stub_gpioinput_setup_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "StubGPIOInputSetupRequest",
+ "StubGPIOInputSetupRequest",
+ "StubGPIOInputSetupRequest",
+ "",
+ sizeof(StubGPIOInputSetupRequest),
+ 4,
+ stub_gpioinput_setup_request__field_descriptors,
+ stub_gpioinput_setup_request__field_indices_by_name,
+ 1, stub_gpioinput_setup_request__number_ranges,
+ (ProtobufCMessageInit) stub_gpioinput_setup_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOInputSetupRequest.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOInputSetupRequest.pb-c.h
new file mode 100644
index 000000000..3e515a650
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOInputSetupRequest.pb-c.h
@@ -0,0 +1,89 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubGPIOInputSetupRequest.proto */
+
+#ifndef PROTOBUF_C_StubGPIOInputSetupRequest_2eproto__INCLUDED
+#define PROTOBUF_C_StubGPIOInputSetupRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _StubGPIOInputSetupRequest StubGPIOInputSetupRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubGPIOInputSetupRequest
+{
+ ProtobufCMessage base;
+ /*
+ * A..
+ */
+ char *portid;
+ /*
+ * 0..7
+ */
+ protobuf_c_boolean has_pinid;
+ uint32_t pinid;
+ /*
+ * 0 - Set OUTPUT, 1 - Set INPUT,
+ */
+ protobuf_c_boolean has_setinput;
+ uint32_t setinput;
+ /*
+ *0 - Down, 1 - Up
+ */
+ protobuf_c_boolean has_setpullup;
+ uint32_t setpullup;
+};
+#define STUB_GPIOINPUT_SETUP_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub_gpioinput_setup_request__descriptor) \
+ , NULL, 0, 0, 0, 0, 0, 0 }
+
+
+/* StubGPIOInputSetupRequest methods */
+void stub_gpioinput_setup_request__init
+ (StubGPIOInputSetupRequest *message);
+size_t stub_gpioinput_setup_request__get_packed_size
+ (const StubGPIOInputSetupRequest *message);
+size_t stub_gpioinput_setup_request__pack
+ (const StubGPIOInputSetupRequest *message,
+ uint8_t *out);
+size_t stub_gpioinput_setup_request__pack_to_buffer
+ (const StubGPIOInputSetupRequest *message,
+ ProtobufCBuffer *buffer);
+StubGPIOInputSetupRequest *
+ stub_gpioinput_setup_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub_gpioinput_setup_request__free_unpacked
+ (StubGPIOInputSetupRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubGPIOInputSetupRequest_Closure)
+ (const StubGPIOInputSetupRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub_gpioinput_setup_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_StubGPIOInputSetupRequest_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOInputSetupResponse.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOInputSetupResponse.pb-c.c
new file mode 100644
index 000000000..d9d10ab20
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOInputSetupResponse.pb-c.c
@@ -0,0 +1,118 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubGPIOInputSetupResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "StubGPIOInputSetupResponse.pb-c.h"
+void stub_gpioinput_setup_response__init
+ (StubGPIOInputSetupResponse *message)
+{
+ static const StubGPIOInputSetupResponse init_value = STUB_GPIOINPUT_SETUP_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t stub_gpioinput_setup_response__get_packed_size
+ (const StubGPIOInputSetupResponse *message)
+{
+ assert(message->base.descriptor == &stub_gpioinput_setup_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub_gpioinput_setup_response__pack
+ (const StubGPIOInputSetupResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub_gpioinput_setup_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub_gpioinput_setup_response__pack_to_buffer
+ (const StubGPIOInputSetupResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub_gpioinput_setup_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubGPIOInputSetupResponse *
+ stub_gpioinput_setup_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubGPIOInputSetupResponse *)
+ protobuf_c_message_unpack (&stub_gpioinput_setup_response__descriptor,
+ allocator, len, data);
+}
+void stub_gpioinput_setup_response__free_unpacked
+ (StubGPIOInputSetupResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub_gpioinput_setup_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub_gpioinput_setup_response__field_descriptors[3] =
+{
+ {
+ "PortId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_STRING,
+ 0, /* quantifier_offset */
+ offsetof(StubGPIOInputSetupResponse, portid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "PinId",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOInputSetupResponse, has_pinid),
+ offsetof(StubGPIOInputSetupResponse, pinid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Status",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOInputSetupResponse, has_status),
+ offsetof(StubGPIOInputSetupResponse, status),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_gpioinput_setup_response__field_indices_by_name[] = {
+ 1, /* field[1] = PinId */
+ 0, /* field[0] = PortId */
+ 2, /* field[2] = Status */
+};
+static const ProtobufCIntRange stub_gpioinput_setup_response__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 3 }
+};
+const ProtobufCMessageDescriptor stub_gpioinput_setup_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "StubGPIOInputSetupResponse",
+ "StubGPIOInputSetupResponse",
+ "StubGPIOInputSetupResponse",
+ "",
+ sizeof(StubGPIOInputSetupResponse),
+ 3,
+ stub_gpioinput_setup_response__field_descriptors,
+ stub_gpioinput_setup_response__field_indices_by_name,
+ 1, stub_gpioinput_setup_response__number_ranges,
+ (ProtobufCMessageInit) stub_gpioinput_setup_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOInputSetupResponse.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOInputSetupResponse.pb-c.h
new file mode 100644
index 000000000..c0c18fa8c
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOInputSetupResponse.pb-c.h
@@ -0,0 +1,84 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubGPIOInputSetupResponse.proto */
+
+#ifndef PROTOBUF_C_StubGPIOInputSetupResponse_2eproto__INCLUDED
+#define PROTOBUF_C_StubGPIOInputSetupResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _StubGPIOInputSetupResponse StubGPIOInputSetupResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubGPIOInputSetupResponse
+{
+ ProtobufCMessage base;
+ /*
+ * A..
+ */
+ char *portid;
+ /*
+ * 0..7
+ */
+ protobuf_c_boolean has_pinid;
+ uint32_t pinid;
+ /*
+ * 0-OK 1-Failed
+ */
+ protobuf_c_boolean has_status;
+ uint32_t status;
+};
+#define STUB_GPIOINPUT_SETUP_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub_gpioinput_setup_response__descriptor) \
+ , NULL, 0, 0, 0, 0 }
+
+
+/* StubGPIOInputSetupResponse methods */
+void stub_gpioinput_setup_response__init
+ (StubGPIOInputSetupResponse *message);
+size_t stub_gpioinput_setup_response__get_packed_size
+ (const StubGPIOInputSetupResponse *message);
+size_t stub_gpioinput_setup_response__pack
+ (const StubGPIOInputSetupResponse *message,
+ uint8_t *out);
+size_t stub_gpioinput_setup_response__pack_to_buffer
+ (const StubGPIOInputSetupResponse *message,
+ ProtobufCBuffer *buffer);
+StubGPIOInputSetupResponse *
+ stub_gpioinput_setup_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub_gpioinput_setup_response__free_unpacked
+ (StubGPIOInputSetupResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubGPIOInputSetupResponse_Closure)
+ (const StubGPIOInputSetupResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub_gpioinput_setup_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_StubGPIOInputSetupResponse_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadBitRequest.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadBitRequest.pb-c.c
new file mode 100644
index 000000000..68826631e
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadBitRequest.pb-c.c
@@ -0,0 +1,131 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubGPIOReadBitRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "StubGPIOReadBitRequest.pb-c.h"
+void stub_gpioread_bit_request__init
+ (StubGPIOReadBitRequest *message)
+{
+ static const StubGPIOReadBitRequest init_value = STUB_GPIOREAD_BIT_REQUEST__INIT;
+ *message = init_value;
+}
+size_t stub_gpioread_bit_request__get_packed_size
+ (const StubGPIOReadBitRequest *message)
+{
+ assert(message->base.descriptor == &stub_gpioread_bit_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub_gpioread_bit_request__pack
+ (const StubGPIOReadBitRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub_gpioread_bit_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub_gpioread_bit_request__pack_to_buffer
+ (const StubGPIOReadBitRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub_gpioread_bit_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubGPIOReadBitRequest *
+ stub_gpioread_bit_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubGPIOReadBitRequest *)
+ protobuf_c_message_unpack (&stub_gpioread_bit_request__descriptor,
+ allocator, len, data);
+}
+void stub_gpioread_bit_request__free_unpacked
+ (StubGPIOReadBitRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub_gpioread_bit_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub_gpioread_bit_request__field_descriptors[4] =
+{
+ {
+ "PortId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_STRING,
+ 0, /* quantifier_offset */
+ offsetof(StubGPIOReadBitRequest, portid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "PinId",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOReadBitRequest, has_pinid),
+ offsetof(StubGPIOReadBitRequest, pinid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Polling",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubGPIOReadBitRequest, has_polling),
+ offsetof(StubGPIOReadBitRequest, polling),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "PollExpValue",
+ 4,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubGPIOReadBitRequest, has_pollexpvalue),
+ offsetof(StubGPIOReadBitRequest, pollexpvalue),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_gpioread_bit_request__field_indices_by_name[] = {
+ 1, /* field[1] = PinId */
+ 3, /* field[3] = PollExpValue */
+ 2, /* field[2] = Polling */
+ 0, /* field[0] = PortId */
+};
+static const ProtobufCIntRange stub_gpioread_bit_request__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 4 }
+};
+const ProtobufCMessageDescriptor stub_gpioread_bit_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "StubGPIOReadBitRequest",
+ "StubGPIOReadBitRequest",
+ "StubGPIOReadBitRequest",
+ "",
+ sizeof(StubGPIOReadBitRequest),
+ 4,
+ stub_gpioread_bit_request__field_descriptors,
+ stub_gpioread_bit_request__field_indices_by_name,
+ 1, stub_gpioread_bit_request__number_ranges,
+ (ProtobufCMessageInit) stub_gpioread_bit_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadBitRequest.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadBitRequest.pb-c.h
new file mode 100644
index 000000000..263fb539e
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadBitRequest.pb-c.h
@@ -0,0 +1,89 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubGPIOReadBitRequest.proto */
+
+#ifndef PROTOBUF_C_StubGPIOReadBitRequest_2eproto__INCLUDED
+#define PROTOBUF_C_StubGPIOReadBitRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _StubGPIOReadBitRequest StubGPIOReadBitRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubGPIOReadBitRequest
+{
+ ProtobufCMessage base;
+ /*
+ * A..
+ */
+ char *portid;
+ /*
+ * 0..7
+ */
+ protobuf_c_boolean has_pinid;
+ uint32_t pinid;
+ /*
+ * 1 - Polling
+ */
+ protobuf_c_boolean has_polling;
+ protobuf_c_boolean polling;
+ /*
+ * 0/1
+ */
+ protobuf_c_boolean has_pollexpvalue;
+ protobuf_c_boolean pollexpvalue;
+};
+#define STUB_GPIOREAD_BIT_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub_gpioread_bit_request__descriptor) \
+ , NULL, 0, 0, 0, 0, 0, 0 }
+
+
+/* StubGPIOReadBitRequest methods */
+void stub_gpioread_bit_request__init
+ (StubGPIOReadBitRequest *message);
+size_t stub_gpioread_bit_request__get_packed_size
+ (const StubGPIOReadBitRequest *message);
+size_t stub_gpioread_bit_request__pack
+ (const StubGPIOReadBitRequest *message,
+ uint8_t *out);
+size_t stub_gpioread_bit_request__pack_to_buffer
+ (const StubGPIOReadBitRequest *message,
+ ProtobufCBuffer *buffer);
+StubGPIOReadBitRequest *
+ stub_gpioread_bit_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub_gpioread_bit_request__free_unpacked
+ (StubGPIOReadBitRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubGPIOReadBitRequest_Closure)
+ (const StubGPIOReadBitRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub_gpioread_bit_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_StubGPIOReadBitRequest_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadBitResponse.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadBitResponse.pb-c.c
new file mode 100644
index 000000000..95720a650
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadBitResponse.pb-c.c
@@ -0,0 +1,131 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubGPIOReadBitResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "StubGPIOReadBitResponse.pb-c.h"
+void stub_gpioread_bit_response__init
+ (StubGPIOReadBitResponse *message)
+{
+ static const StubGPIOReadBitResponse init_value = STUB_GPIOREAD_BIT_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t stub_gpioread_bit_response__get_packed_size
+ (const StubGPIOReadBitResponse *message)
+{
+ assert(message->base.descriptor == &stub_gpioread_bit_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub_gpioread_bit_response__pack
+ (const StubGPIOReadBitResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub_gpioread_bit_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub_gpioread_bit_response__pack_to_buffer
+ (const StubGPIOReadBitResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub_gpioread_bit_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubGPIOReadBitResponse *
+ stub_gpioread_bit_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubGPIOReadBitResponse *)
+ protobuf_c_message_unpack (&stub_gpioread_bit_response__descriptor,
+ allocator, len, data);
+}
+void stub_gpioread_bit_response__free_unpacked
+ (StubGPIOReadBitResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub_gpioread_bit_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub_gpioread_bit_response__field_descriptors[4] =
+{
+ {
+ "PortId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_STRING,
+ 0, /* quantifier_offset */
+ offsetof(StubGPIOReadBitResponse, portid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "PinId",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOReadBitResponse, has_pinid),
+ offsetof(StubGPIOReadBitResponse, pinid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "BitValue",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubGPIOReadBitResponse, has_bitvalue),
+ offsetof(StubGPIOReadBitResponse, bitvalue),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Status",
+ 4,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOReadBitResponse, has_status),
+ offsetof(StubGPIOReadBitResponse, status),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_gpioread_bit_response__field_indices_by_name[] = {
+ 2, /* field[2] = BitValue */
+ 1, /* field[1] = PinId */
+ 0, /* field[0] = PortId */
+ 3, /* field[3] = Status */
+};
+static const ProtobufCIntRange stub_gpioread_bit_response__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 4 }
+};
+const ProtobufCMessageDescriptor stub_gpioread_bit_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "StubGPIOReadBitResponse",
+ "StubGPIOReadBitResponse",
+ "StubGPIOReadBitResponse",
+ "",
+ sizeof(StubGPIOReadBitResponse),
+ 4,
+ stub_gpioread_bit_response__field_descriptors,
+ stub_gpioread_bit_response__field_indices_by_name,
+ 1, stub_gpioread_bit_response__number_ranges,
+ (ProtobufCMessageInit) stub_gpioread_bit_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadBitResponse.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadBitResponse.pb-c.h
new file mode 100644
index 000000000..09a7ea261
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadBitResponse.pb-c.h
@@ -0,0 +1,86 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubGPIOReadBitResponse.proto */
+
+#ifndef PROTOBUF_C_StubGPIOReadBitResponse_2eproto__INCLUDED
+#define PROTOBUF_C_StubGPIOReadBitResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _StubGPIOReadBitResponse StubGPIOReadBitResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubGPIOReadBitResponse
+{
+ ProtobufCMessage base;
+ /*
+ * A..
+ */
+ char *portid;
+ /*
+ * 0..7
+ */
+ protobuf_c_boolean has_pinid;
+ uint32_t pinid;
+ protobuf_c_boolean has_bitvalue;
+ protobuf_c_boolean bitvalue;
+ /*
+ * 0-OK 1-Failed
+ */
+ protobuf_c_boolean has_status;
+ uint32_t status;
+};
+#define STUB_GPIOREAD_BIT_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub_gpioread_bit_response__descriptor) \
+ , NULL, 0, 0, 0, 0, 0, 0 }
+
+
+/* StubGPIOReadBitResponse methods */
+void stub_gpioread_bit_response__init
+ (StubGPIOReadBitResponse *message);
+size_t stub_gpioread_bit_response__get_packed_size
+ (const StubGPIOReadBitResponse *message);
+size_t stub_gpioread_bit_response__pack
+ (const StubGPIOReadBitResponse *message,
+ uint8_t *out);
+size_t stub_gpioread_bit_response__pack_to_buffer
+ (const StubGPIOReadBitResponse *message,
+ ProtobufCBuffer *buffer);
+StubGPIOReadBitResponse *
+ stub_gpioread_bit_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub_gpioread_bit_response__free_unpacked
+ (StubGPIOReadBitResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubGPIOReadBitResponse_Closure)
+ (const StubGPIOReadBitResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub_gpioread_bit_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_StubGPIOReadBitResponse_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadByteRequest.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadByteRequest.pb-c.c
new file mode 100644
index 000000000..6707d7a6f
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadByteRequest.pb-c.c
@@ -0,0 +1,92 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubGPIOReadByteRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "StubGPIOReadByteRequest.pb-c.h"
+void stub_gpioread_byte_request__init
+ (StubGPIOReadByteRequest *message)
+{
+ static const StubGPIOReadByteRequest init_value = STUB_GPIOREAD_BYTE_REQUEST__INIT;
+ *message = init_value;
+}
+size_t stub_gpioread_byte_request__get_packed_size
+ (const StubGPIOReadByteRequest *message)
+{
+ assert(message->base.descriptor == &stub_gpioread_byte_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub_gpioread_byte_request__pack
+ (const StubGPIOReadByteRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub_gpioread_byte_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub_gpioread_byte_request__pack_to_buffer
+ (const StubGPIOReadByteRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub_gpioread_byte_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubGPIOReadByteRequest *
+ stub_gpioread_byte_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubGPIOReadByteRequest *)
+ protobuf_c_message_unpack (&stub_gpioread_byte_request__descriptor,
+ allocator, len, data);
+}
+void stub_gpioread_byte_request__free_unpacked
+ (StubGPIOReadByteRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub_gpioread_byte_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub_gpioread_byte_request__field_descriptors[1] =
+{
+ {
+ "PortId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_STRING,
+ 0, /* quantifier_offset */
+ offsetof(StubGPIOReadByteRequest, portid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_gpioread_byte_request__field_indices_by_name[] = {
+ 0, /* field[0] = PortId */
+};
+static const ProtobufCIntRange stub_gpioread_byte_request__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 1 }
+};
+const ProtobufCMessageDescriptor stub_gpioread_byte_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "StubGPIOReadByteRequest",
+ "StubGPIOReadByteRequest",
+ "StubGPIOReadByteRequest",
+ "",
+ sizeof(StubGPIOReadByteRequest),
+ 1,
+ stub_gpioread_byte_request__field_descriptors,
+ stub_gpioread_byte_request__field_indices_by_name,
+ 1, stub_gpioread_byte_request__number_ranges,
+ (ProtobufCMessageInit) stub_gpioread_byte_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadByteRequest.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadByteRequest.pb-c.h
new file mode 100644
index 000000000..53e49de7f
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadByteRequest.pb-c.h
@@ -0,0 +1,74 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubGPIOReadByteRequest.proto */
+
+#ifndef PROTOBUF_C_StubGPIOReadByteRequest_2eproto__INCLUDED
+#define PROTOBUF_C_StubGPIOReadByteRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _StubGPIOReadByteRequest StubGPIOReadByteRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubGPIOReadByteRequest
+{
+ ProtobufCMessage base;
+ /*
+ * A..
+ */
+ char *portid;
+};
+#define STUB_GPIOREAD_BYTE_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub_gpioread_byte_request__descriptor) \
+ , NULL }
+
+
+/* StubGPIOReadByteRequest methods */
+void stub_gpioread_byte_request__init
+ (StubGPIOReadByteRequest *message);
+size_t stub_gpioread_byte_request__get_packed_size
+ (const StubGPIOReadByteRequest *message);
+size_t stub_gpioread_byte_request__pack
+ (const StubGPIOReadByteRequest *message,
+ uint8_t *out);
+size_t stub_gpioread_byte_request__pack_to_buffer
+ (const StubGPIOReadByteRequest *message,
+ ProtobufCBuffer *buffer);
+StubGPIOReadByteRequest *
+ stub_gpioread_byte_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub_gpioread_byte_request__free_unpacked
+ (StubGPIOReadByteRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubGPIOReadByteRequest_Closure)
+ (const StubGPIOReadByteRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub_gpioread_byte_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_StubGPIOReadByteRequest_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadByteResponse.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadByteResponse.pb-c.c
new file mode 100644
index 000000000..a6ca419de
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadByteResponse.pb-c.c
@@ -0,0 +1,118 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubGPIOReadByteResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "StubGPIOReadByteResponse.pb-c.h"
+void stub_gpioread_byte_response__init
+ (StubGPIOReadByteResponse *message)
+{
+ static const StubGPIOReadByteResponse init_value = STUB_GPIOREAD_BYTE_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t stub_gpioread_byte_response__get_packed_size
+ (const StubGPIOReadByteResponse *message)
+{
+ assert(message->base.descriptor == &stub_gpioread_byte_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub_gpioread_byte_response__pack
+ (const StubGPIOReadByteResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub_gpioread_byte_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub_gpioread_byte_response__pack_to_buffer
+ (const StubGPIOReadByteResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub_gpioread_byte_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubGPIOReadByteResponse *
+ stub_gpioread_byte_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubGPIOReadByteResponse *)
+ protobuf_c_message_unpack (&stub_gpioread_byte_response__descriptor,
+ allocator, len, data);
+}
+void stub_gpioread_byte_response__free_unpacked
+ (StubGPIOReadByteResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub_gpioread_byte_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub_gpioread_byte_response__field_descriptors[3] =
+{
+ {
+ "PortId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_STRING,
+ 0, /* quantifier_offset */
+ offsetof(StubGPIOReadByteResponse, portid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "ByteValue",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOReadByteResponse, has_bytevalue),
+ offsetof(StubGPIOReadByteResponse, bytevalue),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "status",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOReadByteResponse, has_status),
+ offsetof(StubGPIOReadByteResponse, status),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_gpioread_byte_response__field_indices_by_name[] = {
+ 1, /* field[1] = ByteValue */
+ 0, /* field[0] = PortId */
+ 2, /* field[2] = status */
+};
+static const ProtobufCIntRange stub_gpioread_byte_response__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 3 }
+};
+const ProtobufCMessageDescriptor stub_gpioread_byte_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "StubGPIOReadByteResponse",
+ "StubGPIOReadByteResponse",
+ "StubGPIOReadByteResponse",
+ "",
+ sizeof(StubGPIOReadByteResponse),
+ 3,
+ stub_gpioread_byte_response__field_descriptors,
+ stub_gpioread_byte_response__field_indices_by_name,
+ 1, stub_gpioread_byte_response__number_ranges,
+ (ProtobufCMessageInit) stub_gpioread_byte_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadByteResponse.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadByteResponse.pb-c.h
new file mode 100644
index 000000000..a1a8fe399
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOReadByteResponse.pb-c.h
@@ -0,0 +1,81 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubGPIOReadByteResponse.proto */
+
+#ifndef PROTOBUF_C_StubGPIOReadByteResponse_2eproto__INCLUDED
+#define PROTOBUF_C_StubGPIOReadByteResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _StubGPIOReadByteResponse StubGPIOReadByteResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubGPIOReadByteResponse
+{
+ ProtobufCMessage base;
+ /*
+ * A..
+ */
+ char *portid;
+ protobuf_c_boolean has_bytevalue;
+ uint32_t bytevalue;
+ /*
+ * 0-OK 1-Failed
+ */
+ protobuf_c_boolean has_status;
+ uint32_t status;
+};
+#define STUB_GPIOREAD_BYTE_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub_gpioread_byte_response__descriptor) \
+ , NULL, 0, 0, 0, 0 }
+
+
+/* StubGPIOReadByteResponse methods */
+void stub_gpioread_byte_response__init
+ (StubGPIOReadByteResponse *message);
+size_t stub_gpioread_byte_response__get_packed_size
+ (const StubGPIOReadByteResponse *message);
+size_t stub_gpioread_byte_response__pack
+ (const StubGPIOReadByteResponse *message,
+ uint8_t *out);
+size_t stub_gpioread_byte_response__pack_to_buffer
+ (const StubGPIOReadByteResponse *message,
+ ProtobufCBuffer *buffer);
+StubGPIOReadByteResponse *
+ stub_gpioread_byte_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub_gpioread_byte_response__free_unpacked
+ (StubGPIOReadByteResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubGPIOReadByteResponse_Closure)
+ (const StubGPIOReadByteResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub_gpioread_byte_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_StubGPIOReadByteResponse_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteBitRequest.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteBitRequest.pb-c.c
new file mode 100644
index 000000000..0e8670609
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteBitRequest.pb-c.c
@@ -0,0 +1,118 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubGPIOWriteBitRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "StubGPIOWriteBitRequest.pb-c.h"
+void stub_gpiowrite_bit_request__init
+ (StubGPIOWriteBitRequest *message)
+{
+ static const StubGPIOWriteBitRequest init_value = STUB_GPIOWRITE_BIT_REQUEST__INIT;
+ *message = init_value;
+}
+size_t stub_gpiowrite_bit_request__get_packed_size
+ (const StubGPIOWriteBitRequest *message)
+{
+ assert(message->base.descriptor == &stub_gpiowrite_bit_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub_gpiowrite_bit_request__pack
+ (const StubGPIOWriteBitRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub_gpiowrite_bit_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub_gpiowrite_bit_request__pack_to_buffer
+ (const StubGPIOWriteBitRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub_gpiowrite_bit_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubGPIOWriteBitRequest *
+ stub_gpiowrite_bit_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubGPIOWriteBitRequest *)
+ protobuf_c_message_unpack (&stub_gpiowrite_bit_request__descriptor,
+ allocator, len, data);
+}
+void stub_gpiowrite_bit_request__free_unpacked
+ (StubGPIOWriteBitRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub_gpiowrite_bit_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub_gpiowrite_bit_request__field_descriptors[3] =
+{
+ {
+ "PortId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_STRING,
+ 0, /* quantifier_offset */
+ offsetof(StubGPIOWriteBitRequest, portid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "PinId",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOWriteBitRequest, has_pinid),
+ offsetof(StubGPIOWriteBitRequest, pinid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "BitToWrite",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubGPIOWriteBitRequest, has_bittowrite),
+ offsetof(StubGPIOWriteBitRequest, bittowrite),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_gpiowrite_bit_request__field_indices_by_name[] = {
+ 2, /* field[2] = BitToWrite */
+ 1, /* field[1] = PinId */
+ 0, /* field[0] = PortId */
+};
+static const ProtobufCIntRange stub_gpiowrite_bit_request__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 3 }
+};
+const ProtobufCMessageDescriptor stub_gpiowrite_bit_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "StubGPIOWriteBitRequest",
+ "StubGPIOWriteBitRequest",
+ "StubGPIOWriteBitRequest",
+ "",
+ sizeof(StubGPIOWriteBitRequest),
+ 3,
+ stub_gpiowrite_bit_request__field_descriptors,
+ stub_gpiowrite_bit_request__field_indices_by_name,
+ 1, stub_gpiowrite_bit_request__number_ranges,
+ (ProtobufCMessageInit) stub_gpiowrite_bit_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteBitRequest.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteBitRequest.pb-c.h
new file mode 100644
index 000000000..705ca7d38
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteBitRequest.pb-c.h
@@ -0,0 +1,81 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubGPIOWriteBitRequest.proto */
+
+#ifndef PROTOBUF_C_StubGPIOWriteBitRequest_2eproto__INCLUDED
+#define PROTOBUF_C_StubGPIOWriteBitRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _StubGPIOWriteBitRequest StubGPIOWriteBitRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubGPIOWriteBitRequest
+{
+ ProtobufCMessage base;
+ /*
+ * A..
+ */
+ char *portid;
+ /*
+ * 0..7
+ */
+ protobuf_c_boolean has_pinid;
+ uint32_t pinid;
+ protobuf_c_boolean has_bittowrite;
+ protobuf_c_boolean bittowrite;
+};
+#define STUB_GPIOWRITE_BIT_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub_gpiowrite_bit_request__descriptor) \
+ , NULL, 0, 0, 0, 0 }
+
+
+/* StubGPIOWriteBitRequest methods */
+void stub_gpiowrite_bit_request__init
+ (StubGPIOWriteBitRequest *message);
+size_t stub_gpiowrite_bit_request__get_packed_size
+ (const StubGPIOWriteBitRequest *message);
+size_t stub_gpiowrite_bit_request__pack
+ (const StubGPIOWriteBitRequest *message,
+ uint8_t *out);
+size_t stub_gpiowrite_bit_request__pack_to_buffer
+ (const StubGPIOWriteBitRequest *message,
+ ProtobufCBuffer *buffer);
+StubGPIOWriteBitRequest *
+ stub_gpiowrite_bit_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub_gpiowrite_bit_request__free_unpacked
+ (StubGPIOWriteBitRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubGPIOWriteBitRequest_Closure)
+ (const StubGPIOWriteBitRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub_gpiowrite_bit_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_StubGPIOWriteBitRequest_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteBitResponse.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteBitResponse.pb-c.c
new file mode 100644
index 000000000..f650dff67
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteBitResponse.pb-c.c
@@ -0,0 +1,118 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubGPIOWriteBitResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "StubGPIOWriteBitResponse.pb-c.h"
+void stub_gpiowrite_bit_response__init
+ (StubGPIOWriteBitResponse *message)
+{
+ static const StubGPIOWriteBitResponse init_value = STUB_GPIOWRITE_BIT_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t stub_gpiowrite_bit_response__get_packed_size
+ (const StubGPIOWriteBitResponse *message)
+{
+ assert(message->base.descriptor == &stub_gpiowrite_bit_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub_gpiowrite_bit_response__pack
+ (const StubGPIOWriteBitResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub_gpiowrite_bit_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub_gpiowrite_bit_response__pack_to_buffer
+ (const StubGPIOWriteBitResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub_gpiowrite_bit_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubGPIOWriteBitResponse *
+ stub_gpiowrite_bit_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubGPIOWriteBitResponse *)
+ protobuf_c_message_unpack (&stub_gpiowrite_bit_response__descriptor,
+ allocator, len, data);
+}
+void stub_gpiowrite_bit_response__free_unpacked
+ (StubGPIOWriteBitResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub_gpiowrite_bit_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub_gpiowrite_bit_response__field_descriptors[3] =
+{
+ {
+ "PortId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_STRING,
+ 0, /* quantifier_offset */
+ offsetof(StubGPIOWriteBitResponse, portid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "PinId",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOWriteBitResponse, has_pinid),
+ offsetof(StubGPIOWriteBitResponse, pinid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Status",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOWriteBitResponse, has_status),
+ offsetof(StubGPIOWriteBitResponse, status),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_gpiowrite_bit_response__field_indices_by_name[] = {
+ 1, /* field[1] = PinId */
+ 0, /* field[0] = PortId */
+ 2, /* field[2] = Status */
+};
+static const ProtobufCIntRange stub_gpiowrite_bit_response__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 3 }
+};
+const ProtobufCMessageDescriptor stub_gpiowrite_bit_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "StubGPIOWriteBitResponse",
+ "StubGPIOWriteBitResponse",
+ "StubGPIOWriteBitResponse",
+ "",
+ sizeof(StubGPIOWriteBitResponse),
+ 3,
+ stub_gpiowrite_bit_response__field_descriptors,
+ stub_gpiowrite_bit_response__field_indices_by_name,
+ 1, stub_gpiowrite_bit_response__number_ranges,
+ (ProtobufCMessageInit) stub_gpiowrite_bit_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteBitResponse.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteBitResponse.pb-c.h
new file mode 100644
index 000000000..0516ad60e
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteBitResponse.pb-c.h
@@ -0,0 +1,84 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubGPIOWriteBitResponse.proto */
+
+#ifndef PROTOBUF_C_StubGPIOWriteBitResponse_2eproto__INCLUDED
+#define PROTOBUF_C_StubGPIOWriteBitResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _StubGPIOWriteBitResponse StubGPIOWriteBitResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubGPIOWriteBitResponse
+{
+ ProtobufCMessage base;
+ /*
+ * A..
+ */
+ char *portid;
+ /*
+ * 0..7
+ */
+ protobuf_c_boolean has_pinid;
+ uint32_t pinid;
+ /*
+ * 0-OK 1-Failed
+ */
+ protobuf_c_boolean has_status;
+ uint32_t status;
+};
+#define STUB_GPIOWRITE_BIT_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub_gpiowrite_bit_response__descriptor) \
+ , NULL, 0, 0, 0, 0 }
+
+
+/* StubGPIOWriteBitResponse methods */
+void stub_gpiowrite_bit_response__init
+ (StubGPIOWriteBitResponse *message);
+size_t stub_gpiowrite_bit_response__get_packed_size
+ (const StubGPIOWriteBitResponse *message);
+size_t stub_gpiowrite_bit_response__pack
+ (const StubGPIOWriteBitResponse *message,
+ uint8_t *out);
+size_t stub_gpiowrite_bit_response__pack_to_buffer
+ (const StubGPIOWriteBitResponse *message,
+ ProtobufCBuffer *buffer);
+StubGPIOWriteBitResponse *
+ stub_gpiowrite_bit_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub_gpiowrite_bit_response__free_unpacked
+ (StubGPIOWriteBitResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubGPIOWriteBitResponse_Closure)
+ (const StubGPIOWriteBitResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub_gpiowrite_bit_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_StubGPIOWriteBitResponse_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteByteRequest.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteByteRequest.pb-c.c
new file mode 100644
index 000000000..fe4fe1981
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteByteRequest.pb-c.c
@@ -0,0 +1,106 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubGPIOWriteByteRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "StubGPIOWriteByteRequest.pb-c.h"
+void stub_gpiowrite_byte_request__init
+ (StubGPIOWriteByteRequest *message)
+{
+ static const StubGPIOWriteByteRequest init_value = STUB_GPIOWRITE_BYTE_REQUEST__INIT;
+ *message = init_value;
+}
+size_t stub_gpiowrite_byte_request__get_packed_size
+ (const StubGPIOWriteByteRequest *message)
+{
+ assert(message->base.descriptor == &stub_gpiowrite_byte_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub_gpiowrite_byte_request__pack
+ (const StubGPIOWriteByteRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub_gpiowrite_byte_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub_gpiowrite_byte_request__pack_to_buffer
+ (const StubGPIOWriteByteRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub_gpiowrite_byte_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubGPIOWriteByteRequest *
+ stub_gpiowrite_byte_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubGPIOWriteByteRequest *)
+ protobuf_c_message_unpack (&stub_gpiowrite_byte_request__descriptor,
+ allocator, len, data);
+}
+void stub_gpiowrite_byte_request__free_unpacked
+ (StubGPIOWriteByteRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub_gpiowrite_byte_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub_gpiowrite_byte_request__field_descriptors[2] =
+{
+ {
+ "PortId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_STRING,
+ 0, /* quantifier_offset */
+ offsetof(StubGPIOWriteByteRequest, portid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "DataToWrite",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOWriteByteRequest, has_datatowrite),
+ offsetof(StubGPIOWriteByteRequest, datatowrite),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_gpiowrite_byte_request__field_indices_by_name[] = {
+ 1, /* field[1] = DataToWrite */
+ 0, /* field[0] = PortId */
+};
+static const ProtobufCIntRange stub_gpiowrite_byte_request__number_ranges[2 + 1] =
+{
+ { 1, 0 },
+ { 3, 1 },
+ { 0, 2 }
+};
+const ProtobufCMessageDescriptor stub_gpiowrite_byte_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "StubGPIOWriteByteRequest",
+ "StubGPIOWriteByteRequest",
+ "StubGPIOWriteByteRequest",
+ "",
+ sizeof(StubGPIOWriteByteRequest),
+ 2,
+ stub_gpiowrite_byte_request__field_descriptors,
+ stub_gpiowrite_byte_request__field_indices_by_name,
+ 2, stub_gpiowrite_byte_request__number_ranges,
+ (ProtobufCMessageInit) stub_gpiowrite_byte_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteByteRequest.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteByteRequest.pb-c.h
new file mode 100644
index 000000000..a69934e01
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteByteRequest.pb-c.h
@@ -0,0 +1,76 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubGPIOWriteByteRequest.proto */
+
+#ifndef PROTOBUF_C_StubGPIOWriteByteRequest_2eproto__INCLUDED
+#define PROTOBUF_C_StubGPIOWriteByteRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _StubGPIOWriteByteRequest StubGPIOWriteByteRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubGPIOWriteByteRequest
+{
+ ProtobufCMessage base;
+ /*
+ * A..
+ */
+ char *portid;
+ protobuf_c_boolean has_datatowrite;
+ uint32_t datatowrite;
+};
+#define STUB_GPIOWRITE_BYTE_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub_gpiowrite_byte_request__descriptor) \
+ , NULL, 0, 0 }
+
+
+/* StubGPIOWriteByteRequest methods */
+void stub_gpiowrite_byte_request__init
+ (StubGPIOWriteByteRequest *message);
+size_t stub_gpiowrite_byte_request__get_packed_size
+ (const StubGPIOWriteByteRequest *message);
+size_t stub_gpiowrite_byte_request__pack
+ (const StubGPIOWriteByteRequest *message,
+ uint8_t *out);
+size_t stub_gpiowrite_byte_request__pack_to_buffer
+ (const StubGPIOWriteByteRequest *message,
+ ProtobufCBuffer *buffer);
+StubGPIOWriteByteRequest *
+ stub_gpiowrite_byte_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub_gpiowrite_byte_request__free_unpacked
+ (StubGPIOWriteByteRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubGPIOWriteByteRequest_Closure)
+ (const StubGPIOWriteByteRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub_gpiowrite_byte_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_StubGPIOWriteByteRequest_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteByteResponse.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteByteResponse.pb-c.c
new file mode 100644
index 000000000..4a72207c7
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteByteResponse.pb-c.c
@@ -0,0 +1,106 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubGPIOWriteByteResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "StubGPIOWriteByteResponse.pb-c.h"
+void stub_gpiowrite_byte_response__init
+ (StubGPIOWriteByteResponse *message)
+{
+ static const StubGPIOWriteByteResponse init_value = STUB_GPIOWRITE_BYTE_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t stub_gpiowrite_byte_response__get_packed_size
+ (const StubGPIOWriteByteResponse *message)
+{
+ assert(message->base.descriptor == &stub_gpiowrite_byte_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub_gpiowrite_byte_response__pack
+ (const StubGPIOWriteByteResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub_gpiowrite_byte_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub_gpiowrite_byte_response__pack_to_buffer
+ (const StubGPIOWriteByteResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub_gpiowrite_byte_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubGPIOWriteByteResponse *
+ stub_gpiowrite_byte_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubGPIOWriteByteResponse *)
+ protobuf_c_message_unpack (&stub_gpiowrite_byte_response__descriptor,
+ allocator, len, data);
+}
+void stub_gpiowrite_byte_response__free_unpacked
+ (StubGPIOWriteByteResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub_gpiowrite_byte_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub_gpiowrite_byte_response__field_descriptors[2] =
+{
+ {
+ "PortId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_STRING,
+ 0, /* quantifier_offset */
+ offsetof(StubGPIOWriteByteResponse, portid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "status",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubGPIOWriteByteResponse, has_status),
+ offsetof(StubGPIOWriteByteResponse, status),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_gpiowrite_byte_response__field_indices_by_name[] = {
+ 0, /* field[0] = PortId */
+ 1, /* field[1] = status */
+};
+static const ProtobufCIntRange stub_gpiowrite_byte_response__number_ranges[2 + 1] =
+{
+ { 1, 0 },
+ { 3, 1 },
+ { 0, 2 }
+};
+const ProtobufCMessageDescriptor stub_gpiowrite_byte_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "StubGPIOWriteByteResponse",
+ "StubGPIOWriteByteResponse",
+ "StubGPIOWriteByteResponse",
+ "",
+ sizeof(StubGPIOWriteByteResponse),
+ 2,
+ stub_gpiowrite_byte_response__field_descriptors,
+ stub_gpiowrite_byte_response__field_indices_by_name,
+ 2, stub_gpiowrite_byte_response__number_ranges,
+ (ProtobufCMessageInit) stub_gpiowrite_byte_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteByteResponse.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteByteResponse.pb-c.h
new file mode 100644
index 000000000..f02ec9254
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubGPIOWriteByteResponse.pb-c.h
@@ -0,0 +1,79 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubGPIOWriteByteResponse.proto */
+
+#ifndef PROTOBUF_C_StubGPIOWriteByteResponse_2eproto__INCLUDED
+#define PROTOBUF_C_StubGPIOWriteByteResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _StubGPIOWriteByteResponse StubGPIOWriteByteResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubGPIOWriteByteResponse
+{
+ ProtobufCMessage base;
+ /*
+ * A..
+ */
+ char *portid;
+ /*
+ * 0-OK 1-Failed
+ */
+ protobuf_c_boolean has_status;
+ uint32_t status;
+};
+#define STUB_GPIOWRITE_BYTE_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub_gpiowrite_byte_response__descriptor) \
+ , NULL, 0, 0 }
+
+
+/* StubGPIOWriteByteResponse methods */
+void stub_gpiowrite_byte_response__init
+ (StubGPIOWriteByteResponse *message);
+size_t stub_gpiowrite_byte_response__get_packed_size
+ (const StubGPIOWriteByteResponse *message);
+size_t stub_gpiowrite_byte_response__pack
+ (const StubGPIOWriteByteResponse *message,
+ uint8_t *out);
+size_t stub_gpiowrite_byte_response__pack_to_buffer
+ (const StubGPIOWriteByteResponse *message,
+ ProtobufCBuffer *buffer);
+StubGPIOWriteByteResponse *
+ stub_gpiowrite_byte_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub_gpiowrite_byte_response__free_unpacked
+ (StubGPIOWriteByteResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubGPIOWriteByteResponse_Closure)
+ (const StubGPIOWriteByteResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub_gpiowrite_byte_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_StubGPIOWriteByteResponse_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubHeaterRequest.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubHeaterRequest.pb-c.c
new file mode 100644
index 000000000..f77207045
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubHeaterRequest.pb-c.c
@@ -0,0 +1,118 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubHeaterRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "StubHeaterRequest.pb-c.h"
+void stub_heater_request__init
+ (StubHeaterRequest *message)
+{
+ static const StubHeaterRequest init_value = STUB_HEATER_REQUEST__INIT;
+ *message = init_value;
+}
+size_t stub_heater_request__get_packed_size
+ (const StubHeaterRequest *message)
+{
+ assert(message->base.descriptor == &stub_heater_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub_heater_request__pack
+ (const StubHeaterRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub_heater_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub_heater_request__pack_to_buffer
+ (const StubHeaterRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub_heater_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubHeaterRequest *
+ stub_heater_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubHeaterRequest *)
+ protobuf_c_message_unpack (&stub_heater_request__descriptor,
+ allocator, len, data);
+}
+void stub_heater_request__free_unpacked
+ (StubHeaterRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub_heater_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub_heater_request__field_descriptors[3] =
+{
+ {
+ "HeaterGroupId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubHeaterRequest, has_heatergroupid),
+ offsetof(StubHeaterRequest, heatergroupid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "HeaterGroupOn",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubHeaterRequest, has_heatergroupon),
+ offsetof(StubHeaterRequest, heatergroupon),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "HeaterTemperatureReq",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubHeaterRequest, has_heatertemperaturereq),
+ offsetof(StubHeaterRequest, heatertemperaturereq),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_heater_request__field_indices_by_name[] = {
+ 0, /* field[0] = HeaterGroupId */
+ 1, /* field[1] = HeaterGroupOn */
+ 2, /* field[2] = HeaterTemperatureReq */
+};
+static const ProtobufCIntRange stub_heater_request__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 3 }
+};
+const ProtobufCMessageDescriptor stub_heater_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "StubHeaterRequest",
+ "StubHeaterRequest",
+ "StubHeaterRequest",
+ "",
+ sizeof(StubHeaterRequest),
+ 3,
+ stub_heater_request__field_descriptors,
+ stub_heater_request__field_indices_by_name,
+ 1, stub_heater_request__number_ranges,
+ (ProtobufCMessageInit) stub_heater_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubHeaterRequest.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubHeaterRequest.pb-c.h
new file mode 100644
index 000000000..6d220df5d
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubHeaterRequest.pb-c.h
@@ -0,0 +1,82 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubHeaterRequest.proto */
+
+#ifndef PROTOBUF_C_StubHeaterRequest_2eproto__INCLUDED
+#define PROTOBUF_C_StubHeaterRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _StubHeaterRequest StubHeaterRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubHeaterRequest
+{
+ ProtobufCMessage base;
+ /*
+ *0..2
+ */
+ protobuf_c_boolean has_heatergroupid;
+ uint32_t heatergroupid;
+ /*
+ * 1-On 0-Off
+ */
+ protobuf_c_boolean has_heatergroupon;
+ protobuf_c_boolean heatergroupon;
+ protobuf_c_boolean has_heatertemperaturereq;
+ uint32_t heatertemperaturereq;
+};
+#define STUB_HEATER_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub_heater_request__descriptor) \
+ , 0, 0, 0, 0, 0, 0 }
+
+
+/* StubHeaterRequest methods */
+void stub_heater_request__init
+ (StubHeaterRequest *message);
+size_t stub_heater_request__get_packed_size
+ (const StubHeaterRequest *message);
+size_t stub_heater_request__pack
+ (const StubHeaterRequest *message,
+ uint8_t *out);
+size_t stub_heater_request__pack_to_buffer
+ (const StubHeaterRequest *message,
+ ProtobufCBuffer *buffer);
+StubHeaterRequest *
+ stub_heater_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub_heater_request__free_unpacked
+ (StubHeaterRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubHeaterRequest_Closure)
+ (const StubHeaterRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub_heater_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_StubHeaterRequest_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubHeaterResponse.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubHeaterResponse.pb-c.c
new file mode 100644
index 000000000..83586b8da
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubHeaterResponse.pb-c.c
@@ -0,0 +1,118 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubHeaterResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "StubHeaterResponse.pb-c.h"
+void stub_heater_response__init
+ (StubHeaterResponse *message)
+{
+ static const StubHeaterResponse init_value = STUB_HEATER_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t stub_heater_response__get_packed_size
+ (const StubHeaterResponse *message)
+{
+ assert(message->base.descriptor == &stub_heater_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub_heater_response__pack
+ (const StubHeaterResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub_heater_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub_heater_response__pack_to_buffer
+ (const StubHeaterResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub_heater_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubHeaterResponse *
+ stub_heater_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubHeaterResponse *)
+ protobuf_c_message_unpack (&stub_heater_response__descriptor,
+ allocator, len, data);
+}
+void stub_heater_response__free_unpacked
+ (StubHeaterResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub_heater_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub_heater_response__field_descriptors[3] =
+{
+ {
+ "HeaterGroupId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubHeaterResponse, has_heatergroupid),
+ offsetof(StubHeaterResponse, heatergroupid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "HeaterTemperatureSensor",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubHeaterResponse, has_heatertemperaturesensor),
+ offsetof(StubHeaterResponse, heatertemperaturesensor),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Status",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubHeaterResponse, has_status),
+ offsetof(StubHeaterResponse, status),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_heater_response__field_indices_by_name[] = {
+ 0, /* field[0] = HeaterGroupId */
+ 1, /* field[1] = HeaterTemperatureSensor */
+ 2, /* field[2] = Status */
+};
+static const ProtobufCIntRange stub_heater_response__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 3 }
+};
+const ProtobufCMessageDescriptor stub_heater_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "StubHeaterResponse",
+ "StubHeaterResponse",
+ "StubHeaterResponse",
+ "",
+ sizeof(StubHeaterResponse),
+ 3,
+ stub_heater_response__field_descriptors,
+ stub_heater_response__field_indices_by_name,
+ 1, stub_heater_response__number_ranges,
+ (ProtobufCMessageInit) stub_heater_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubHeaterResponse.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubHeaterResponse.pb-c.h
new file mode 100644
index 000000000..c7b2d08d2
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubHeaterResponse.pb-c.h
@@ -0,0 +1,82 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubHeaterResponse.proto */
+
+#ifndef PROTOBUF_C_StubHeaterResponse_2eproto__INCLUDED
+#define PROTOBUF_C_StubHeaterResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _StubHeaterResponse StubHeaterResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubHeaterResponse
+{
+ ProtobufCMessage base;
+ /*
+ *0..2
+ */
+ protobuf_c_boolean has_heatergroupid;
+ uint32_t heatergroupid;
+ protobuf_c_boolean has_heatertemperaturesensor;
+ uint32_t heatertemperaturesensor;
+ /*
+ * 0-OK 1-Failed
+ */
+ protobuf_c_boolean has_status;
+ protobuf_c_boolean status;
+};
+#define STUB_HEATER_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub_heater_response__descriptor) \
+ , 0, 0, 0, 0, 0, 0 }
+
+
+/* StubHeaterResponse methods */
+void stub_heater_response__init
+ (StubHeaterResponse *message);
+size_t stub_heater_response__get_packed_size
+ (const StubHeaterResponse *message);
+size_t stub_heater_response__pack
+ (const StubHeaterResponse *message,
+ uint8_t *out);
+size_t stub_heater_response__pack_to_buffer
+ (const StubHeaterResponse *message,
+ ProtobufCBuffer *buffer);
+StubHeaterResponse *
+ stub_heater_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub_heater_response__free_unpacked
+ (StubHeaterResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubHeaterResponse_Closure)
+ (const StubHeaterResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub_heater_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_StubHeaterResponse_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubMotorEncoderRequest.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubMotorEncoderRequest.pb-c.c
new file mode 100644
index 000000000..cb95c4718
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubMotorEncoderRequest.pb-c.c
@@ -0,0 +1,131 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubMotorEncoderRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "StubMotorEncoderRequest.pb-c.h"
+void stub_motor_encoder_request__init
+ (StubMotorEncoderRequest *message)
+{
+ static const StubMotorEncoderRequest init_value = STUB_MOTOR_ENCODER_REQUEST__INIT;
+ *message = init_value;
+}
+size_t stub_motor_encoder_request__get_packed_size
+ (const StubMotorEncoderRequest *message)
+{
+ assert(message->base.descriptor == &stub_motor_encoder_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub_motor_encoder_request__pack
+ (const StubMotorEncoderRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub_motor_encoder_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub_motor_encoder_request__pack_to_buffer
+ (const StubMotorEncoderRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub_motor_encoder_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubMotorEncoderRequest *
+ stub_motor_encoder_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubMotorEncoderRequest *)
+ protobuf_c_message_unpack (&stub_motor_encoder_request__descriptor,
+ allocator, len, data);
+}
+void stub_motor_encoder_request__free_unpacked
+ (StubMotorEncoderRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub_motor_encoder_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub_motor_encoder_request__field_descriptors[4] =
+{
+ {
+ "MotorId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubMotorEncoderRequest, has_motorid),
+ offsetof(StubMotorEncoderRequest, motorid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "ReadEncSpeed",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubMotorEncoderRequest, has_readencspeed),
+ offsetof(StubMotorEncoderRequest, readencspeed),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "ReadDirection",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubMotorEncoderRequest, has_readdirection),
+ offsetof(StubMotorEncoderRequest, readdirection),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Motion_Control",
+ 4,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubMotorEncoderRequest, has_motion_control),
+ offsetof(StubMotorEncoderRequest, motion_control),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_motor_encoder_request__field_indices_by_name[] = {
+ 3, /* field[3] = Motion_Control */
+ 0, /* field[0] = MotorId */
+ 2, /* field[2] = ReadDirection */
+ 1, /* field[1] = ReadEncSpeed */
+};
+static const ProtobufCIntRange stub_motor_encoder_request__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 4 }
+};
+const ProtobufCMessageDescriptor stub_motor_encoder_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "StubMotorEncoderRequest",
+ "StubMotorEncoderRequest",
+ "StubMotorEncoderRequest",
+ "",
+ sizeof(StubMotorEncoderRequest),
+ 4,
+ stub_motor_encoder_request__field_descriptors,
+ stub_motor_encoder_request__field_indices_by_name,
+ 1, stub_motor_encoder_request__number_ranges,
+ (ProtobufCMessageInit) stub_motor_encoder_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubMotorEncoderRequest.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubMotorEncoderRequest.pb-c.h
new file mode 100644
index 000000000..ba7151b89
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubMotorEncoderRequest.pb-c.h
@@ -0,0 +1,87 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubMotorEncoderRequest.proto */
+
+#ifndef PROTOBUF_C_StubMotorEncoderRequest_2eproto__INCLUDED
+#define PROTOBUF_C_StubMotorEncoderRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _StubMotorEncoderRequest StubMotorEncoderRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubMotorEncoderRequest
+{
+ ProtobufCMessage base;
+ /*
+ *0..8
+ */
+ protobuf_c_boolean has_motorid;
+ uint32_t motorid;
+ protobuf_c_boolean has_readencspeed;
+ protobuf_c_boolean readencspeed;
+ /*
+ * 1-cw 0-ccw
+ */
+ protobuf_c_boolean has_readdirection;
+ protobuf_c_boolean readdirection;
+ /*
+ * close loop using the encoder
+ */
+ protobuf_c_boolean has_motion_control;
+ protobuf_c_boolean motion_control;
+};
+#define STUB_MOTOR_ENCODER_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub_motor_encoder_request__descriptor) \
+ , 0, 0, 0, 0, 0, 0, 0, 0 }
+
+
+/* StubMotorEncoderRequest methods */
+void stub_motor_encoder_request__init
+ (StubMotorEncoderRequest *message);
+size_t stub_motor_encoder_request__get_packed_size
+ (const StubMotorEncoderRequest *message);
+size_t stub_motor_encoder_request__pack
+ (const StubMotorEncoderRequest *message,
+ uint8_t *out);
+size_t stub_motor_encoder_request__pack_to_buffer
+ (const StubMotorEncoderRequest *message,
+ ProtobufCBuffer *buffer);
+StubMotorEncoderRequest *
+ stub_motor_encoder_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub_motor_encoder_request__free_unpacked
+ (StubMotorEncoderRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubMotorEncoderRequest_Closure)
+ (const StubMotorEncoderRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub_motor_encoder_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_StubMotorEncoderRequest_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubMotorEncoderResponse.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubMotorEncoderResponse.pb-c.c
new file mode 100644
index 000000000..c5eac4915
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubMotorEncoderResponse.pb-c.c
@@ -0,0 +1,144 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubMotorEncoderResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "StubMotorEncoderResponse.pb-c.h"
+void stub_motor_encoder_response__init
+ (StubMotorEncoderResponse *message)
+{
+ static const StubMotorEncoderResponse init_value = STUB_MOTOR_ENCODER_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t stub_motor_encoder_response__get_packed_size
+ (const StubMotorEncoderResponse *message)
+{
+ assert(message->base.descriptor == &stub_motor_encoder_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub_motor_encoder_response__pack
+ (const StubMotorEncoderResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub_motor_encoder_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub_motor_encoder_response__pack_to_buffer
+ (const StubMotorEncoderResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub_motor_encoder_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubMotorEncoderResponse *
+ stub_motor_encoder_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubMotorEncoderResponse *)
+ protobuf_c_message_unpack (&stub_motor_encoder_response__descriptor,
+ allocator, len, data);
+}
+void stub_motor_encoder_response__free_unpacked
+ (StubMotorEncoderResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub_motor_encoder_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub_motor_encoder_response__field_descriptors[5] =
+{
+ {
+ "EncoderId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubMotorEncoderResponse, has_encoderid),
+ offsetof(StubMotorEncoderResponse, encoderid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "EncoderVersion",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubMotorEncoderResponse, has_encoderversion),
+ offsetof(StubMotorEncoderResponse, encoderversion),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "MotorSpeed",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_INT32,
+ offsetof(StubMotorEncoderResponse, has_motorspeed),
+ offsetof(StubMotorEncoderResponse, motorspeed),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "MotorDirection",
+ 4,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubMotorEncoderResponse, has_motordirection),
+ offsetof(StubMotorEncoderResponse, motordirection),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Status",
+ 5,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubMotorEncoderResponse, has_status),
+ offsetof(StubMotorEncoderResponse, status),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_motor_encoder_response__field_indices_by_name[] = {
+ 0, /* field[0] = EncoderId */
+ 1, /* field[1] = EncoderVersion */
+ 3, /* field[3] = MotorDirection */
+ 2, /* field[2] = MotorSpeed */
+ 4, /* field[4] = Status */
+};
+static const ProtobufCIntRange stub_motor_encoder_response__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 5 }
+};
+const ProtobufCMessageDescriptor stub_motor_encoder_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "StubMotorEncoderResponse",
+ "StubMotorEncoderResponse",
+ "StubMotorEncoderResponse",
+ "",
+ sizeof(StubMotorEncoderResponse),
+ 5,
+ stub_motor_encoder_response__field_descriptors,
+ stub_motor_encoder_response__field_indices_by_name,
+ 1, stub_motor_encoder_response__number_ranges,
+ (ProtobufCMessageInit) stub_motor_encoder_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubMotorEncoderResponse.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubMotorEncoderResponse.pb-c.h
new file mode 100644
index 000000000..cff4adfa4
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubMotorEncoderResponse.pb-c.h
@@ -0,0 +1,89 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubMotorEncoderResponse.proto */
+
+#ifndef PROTOBUF_C_StubMotorEncoderResponse_2eproto__INCLUDED
+#define PROTOBUF_C_StubMotorEncoderResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _StubMotorEncoderResponse StubMotorEncoderResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubMotorEncoderResponse
+{
+ ProtobufCMessage base;
+ /*
+ *0..8
+ */
+ protobuf_c_boolean has_encoderid;
+ uint32_t encoderid;
+ protobuf_c_boolean has_encoderversion;
+ uint32_t encoderversion;
+ protobuf_c_boolean has_motorspeed;
+ int32_t motorspeed;
+ /*
+ * 1-cw 0-ccw
+ */
+ protobuf_c_boolean has_motordirection;
+ protobuf_c_boolean motordirection;
+ /*
+ * 0-OK 1-Failed ( motion control error > ?)
+ */
+ protobuf_c_boolean has_status;
+ protobuf_c_boolean status;
+};
+#define STUB_MOTOR_ENCODER_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub_motor_encoder_response__descriptor) \
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+
+
+/* StubMotorEncoderResponse methods */
+void stub_motor_encoder_response__init
+ (StubMotorEncoderResponse *message);
+size_t stub_motor_encoder_response__get_packed_size
+ (const StubMotorEncoderResponse *message);
+size_t stub_motor_encoder_response__pack
+ (const StubMotorEncoderResponse *message,
+ uint8_t *out);
+size_t stub_motor_encoder_response__pack_to_buffer
+ (const StubMotorEncoderResponse *message,
+ ProtobufCBuffer *buffer);
+StubMotorEncoderResponse *
+ stub_motor_encoder_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub_motor_encoder_response__free_unpacked
+ (StubMotorEncoderResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubMotorEncoderResponse_Closure)
+ (const StubMotorEncoderResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub_motor_encoder_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_StubMotorEncoderResponse_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubOptLimitSwitchRequest.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubOptLimitSwitchRequest.pb-c.c
new file mode 100644
index 000000000..bd4187588
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubOptLimitSwitchRequest.pb-c.c
@@ -0,0 +1,105 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubOptLimitSwitchRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "StubOptLimitSwitchRequest.pb-c.h"
+void stub_opt_limit_switch_request__init
+ (StubOptLimitSwitchRequest *message)
+{
+ static const StubOptLimitSwitchRequest init_value = STUB_OPT_LIMIT_SWITCH_REQUEST__INIT;
+ *message = init_value;
+}
+size_t stub_opt_limit_switch_request__get_packed_size
+ (const StubOptLimitSwitchRequest *message)
+{
+ assert(message->base.descriptor == &stub_opt_limit_switch_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub_opt_limit_switch_request__pack
+ (const StubOptLimitSwitchRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub_opt_limit_switch_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub_opt_limit_switch_request__pack_to_buffer
+ (const StubOptLimitSwitchRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub_opt_limit_switch_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubOptLimitSwitchRequest *
+ stub_opt_limit_switch_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubOptLimitSwitchRequest *)
+ protobuf_c_message_unpack (&stub_opt_limit_switch_request__descriptor,
+ allocator, len, data);
+}
+void stub_opt_limit_switch_request__free_unpacked
+ (StubOptLimitSwitchRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub_opt_limit_switch_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub_opt_limit_switch_request__field_descriptors[2] =
+{
+ {
+ "LimitSwitchrId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubOptLimitSwitchRequest, has_limitswitchrid),
+ offsetof(StubOptLimitSwitchRequest, limitswitchrid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "LimitSwitchrDisable",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubOptLimitSwitchRequest, has_limitswitchrdisable),
+ offsetof(StubOptLimitSwitchRequest, limitswitchrdisable),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_opt_limit_switch_request__field_indices_by_name[] = {
+ 1, /* field[1] = LimitSwitchrDisable */
+ 0, /* field[0] = LimitSwitchrId */
+};
+static const ProtobufCIntRange stub_opt_limit_switch_request__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 2 }
+};
+const ProtobufCMessageDescriptor stub_opt_limit_switch_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "StubOptLimitSwitchRequest",
+ "StubOptLimitSwitchRequest",
+ "StubOptLimitSwitchRequest",
+ "",
+ sizeof(StubOptLimitSwitchRequest),
+ 2,
+ stub_opt_limit_switch_request__field_descriptors,
+ stub_opt_limit_switch_request__field_indices_by_name,
+ 1, stub_opt_limit_switch_request__number_ranges,
+ (ProtobufCMessageInit) stub_opt_limit_switch_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubOptLimitSwitchRequest.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubOptLimitSwitchRequest.pb-c.h
new file mode 100644
index 000000000..2008bf5f9
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubOptLimitSwitchRequest.pb-c.h
@@ -0,0 +1,80 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubOptLimitSwitchRequest.proto */
+
+#ifndef PROTOBUF_C_StubOptLimitSwitchRequest_2eproto__INCLUDED
+#define PROTOBUF_C_StubOptLimitSwitchRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _StubOptLimitSwitchRequest StubOptLimitSwitchRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubOptLimitSwitchRequest
+{
+ ProtobufCMessage base;
+ /*
+ *0..16
+ */
+ protobuf_c_boolean has_limitswitchrid;
+ uint32_t limitswitchrid;
+ /*
+ * 0 - Enable 1 - Disable
+ */
+ protobuf_c_boolean has_limitswitchrdisable;
+ protobuf_c_boolean limitswitchrdisable;
+};
+#define STUB_OPT_LIMIT_SWITCH_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub_opt_limit_switch_request__descriptor) \
+ , 0, 0, 0, 0 }
+
+
+/* StubOptLimitSwitchRequest methods */
+void stub_opt_limit_switch_request__init
+ (StubOptLimitSwitchRequest *message);
+size_t stub_opt_limit_switch_request__get_packed_size
+ (const StubOptLimitSwitchRequest *message);
+size_t stub_opt_limit_switch_request__pack
+ (const StubOptLimitSwitchRequest *message,
+ uint8_t *out);
+size_t stub_opt_limit_switch_request__pack_to_buffer
+ (const StubOptLimitSwitchRequest *message,
+ ProtobufCBuffer *buffer);
+StubOptLimitSwitchRequest *
+ stub_opt_limit_switch_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub_opt_limit_switch_request__free_unpacked
+ (StubOptLimitSwitchRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubOptLimitSwitchRequest_Closure)
+ (const StubOptLimitSwitchRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub_opt_limit_switch_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_StubOptLimitSwitchRequest_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubOptLimitSwitchResponse.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubOptLimitSwitchResponse.pb-c.c
new file mode 100644
index 000000000..a14fd9720
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubOptLimitSwitchResponse.pb-c.c
@@ -0,0 +1,118 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubOptLimitSwitchResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "StubOptLimitSwitchResponse.pb-c.h"
+void stub_opt_limit_switch_response__init
+ (StubOptLimitSwitchResponse *message)
+{
+ static const StubOptLimitSwitchResponse init_value = STUB_OPT_LIMIT_SWITCH_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t stub_opt_limit_switch_response__get_packed_size
+ (const StubOptLimitSwitchResponse *message)
+{
+ assert(message->base.descriptor == &stub_opt_limit_switch_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub_opt_limit_switch_response__pack
+ (const StubOptLimitSwitchResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub_opt_limit_switch_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub_opt_limit_switch_response__pack_to_buffer
+ (const StubOptLimitSwitchResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub_opt_limit_switch_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubOptLimitSwitchResponse *
+ stub_opt_limit_switch_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubOptLimitSwitchResponse *)
+ protobuf_c_message_unpack (&stub_opt_limit_switch_response__descriptor,
+ allocator, len, data);
+}
+void stub_opt_limit_switch_response__free_unpacked
+ (StubOptLimitSwitchResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub_opt_limit_switch_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub_opt_limit_switch_response__field_descriptors[3] =
+{
+ {
+ "LimitSwitchrId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubOptLimitSwitchResponse, has_limitswitchrid),
+ offsetof(StubOptLimitSwitchResponse, limitswitchrid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "LimitSwitchDitection",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubOptLimitSwitchResponse, has_limitswitchditection),
+ offsetof(StubOptLimitSwitchResponse, limitswitchditection),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Status",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubOptLimitSwitchResponse, has_status),
+ offsetof(StubOptLimitSwitchResponse, status),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_opt_limit_switch_response__field_indices_by_name[] = {
+ 1, /* field[1] = LimitSwitchDitection */
+ 0, /* field[0] = LimitSwitchrId */
+ 2, /* field[2] = Status */
+};
+static const ProtobufCIntRange stub_opt_limit_switch_response__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 3 }
+};
+const ProtobufCMessageDescriptor stub_opt_limit_switch_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "StubOptLimitSwitchResponse",
+ "StubOptLimitSwitchResponse",
+ "StubOptLimitSwitchResponse",
+ "",
+ sizeof(StubOptLimitSwitchResponse),
+ 3,
+ stub_opt_limit_switch_response__field_descriptors,
+ stub_opt_limit_switch_response__field_indices_by_name,
+ 1, stub_opt_limit_switch_response__number_ranges,
+ (ProtobufCMessageInit) stub_opt_limit_switch_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubOptLimitSwitchResponse.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubOptLimitSwitchResponse.pb-c.h
new file mode 100644
index 000000000..61656ccde
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubOptLimitSwitchResponse.pb-c.h
@@ -0,0 +1,84 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubOptLimitSwitchResponse.proto */
+
+#ifndef PROTOBUF_C_StubOptLimitSwitchResponse_2eproto__INCLUDED
+#define PROTOBUF_C_StubOptLimitSwitchResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _StubOptLimitSwitchResponse StubOptLimitSwitchResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubOptLimitSwitchResponse
+{
+ ProtobufCMessage base;
+ /*
+ *0..19
+ */
+ protobuf_c_boolean has_limitswitchrid;
+ uint32_t limitswitchrid;
+ /*
+ */
+ protobuf_c_boolean has_limitswitchditection;
+ protobuf_c_boolean limitswitchditection;
+ /*
+ * 0-OK 1-Failed
+ */
+ protobuf_c_boolean has_status;
+ protobuf_c_boolean status;
+};
+#define STUB_OPT_LIMIT_SWITCH_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub_opt_limit_switch_response__descriptor) \
+ , 0, 0, 0, 0, 0, 0 }
+
+
+/* StubOptLimitSwitchResponse methods */
+void stub_opt_limit_switch_response__init
+ (StubOptLimitSwitchResponse *message);
+size_t stub_opt_limit_switch_response__get_packed_size
+ (const StubOptLimitSwitchResponse *message);
+size_t stub_opt_limit_switch_response__pack
+ (const StubOptLimitSwitchResponse *message,
+ uint8_t *out);
+size_t stub_opt_limit_switch_response__pack_to_buffer
+ (const StubOptLimitSwitchResponse *message,
+ ProtobufCBuffer *buffer);
+StubOptLimitSwitchResponse *
+ stub_opt_limit_switch_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub_opt_limit_switch_response__free_unpacked
+ (StubOptLimitSwitchResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubOptLimitSwitchResponse_Closure)
+ (const StubOptLimitSwitchResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub_opt_limit_switch_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_StubOptLimitSwitchResponse_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubSteperMotorRequest.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubSteperMotorRequest.pb-c.c
new file mode 100644
index 000000000..7328bb692
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubSteperMotorRequest.pb-c.c
@@ -0,0 +1,144 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubSteperMotorRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "StubSteperMotorRequest.pb-c.h"
+void stub_steper_motor_request__init
+ (StubSteperMotorRequest *message)
+{
+ static const StubSteperMotorRequest init_value = STUB_STEPER_MOTOR_REQUEST__INIT;
+ *message = init_value;
+}
+size_t stub_steper_motor_request__get_packed_size
+ (const StubSteperMotorRequest *message)
+{
+ assert(message->base.descriptor == &stub_steper_motor_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub_steper_motor_request__pack
+ (const StubSteperMotorRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub_steper_motor_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub_steper_motor_request__pack_to_buffer
+ (const StubSteperMotorRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub_steper_motor_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubSteperMotorRequest *
+ stub_steper_motor_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubSteperMotorRequest *)
+ protobuf_c_message_unpack (&stub_steper_motor_request__descriptor,
+ allocator, len, data);
+}
+void stub_steper_motor_request__free_unpacked
+ (StubSteperMotorRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub_steper_motor_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub_steper_motor_request__field_descriptors[5] =
+{
+ {
+ "MotorId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubSteperMotorRequest, has_motorid),
+ offsetof(StubSteperMotorRequest, motorid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Start",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubSteperMotorRequest, has_start),
+ offsetof(StubSteperMotorRequest, start),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "SetDirection",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubSteperMotorRequest, has_setdirection),
+ offsetof(StubSteperMotorRequest, setdirection),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "SetMicrostepDivision",
+ 4,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubSteperMotorRequest, has_setmicrostepdivision),
+ offsetof(StubSteperMotorRequest, setmicrostepdivision),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "SetSpeed",
+ 5,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_INT32,
+ offsetof(StubSteperMotorRequest, has_setspeed),
+ offsetof(StubSteperMotorRequest, setspeed),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_steper_motor_request__field_indices_by_name[] = {
+ 0, /* field[0] = MotorId */
+ 2, /* field[2] = SetDirection */
+ 3, /* field[3] = SetMicrostepDivision */
+ 4, /* field[4] = SetSpeed */
+ 1, /* field[1] = Start */
+};
+static const ProtobufCIntRange stub_steper_motor_request__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 5 }
+};
+const ProtobufCMessageDescriptor stub_steper_motor_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "StubSteperMotorRequest",
+ "StubSteperMotorRequest",
+ "StubSteperMotorRequest",
+ "",
+ sizeof(StubSteperMotorRequest),
+ 5,
+ stub_steper_motor_request__field_descriptors,
+ stub_steper_motor_request__field_indices_by_name,
+ 1, stub_steper_motor_request__number_ranges,
+ (ProtobufCMessageInit) stub_steper_motor_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubSteperMotorRequest.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubSteperMotorRequest.pb-c.h
new file mode 100644
index 000000000..a7a771172
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubSteperMotorRequest.pb-c.h
@@ -0,0 +1,95 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubSteperMotorRequest.proto */
+
+#ifndef PROTOBUF_C_StubSteperMotorRequest_2eproto__INCLUDED
+#define PROTOBUF_C_StubSteperMotorRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _StubSteperMotorRequest StubSteperMotorRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubSteperMotorRequest
+{
+ ProtobufCMessage base;
+ /*
+ *0..19
+ */
+ protobuf_c_boolean has_motorid;
+ uint32_t motorid;
+ /*
+ * 1-start 0-stop
+ */
+ protobuf_c_boolean has_start;
+ protobuf_c_boolean start;
+ /*
+ * 1-cw 0-ccw
+ */
+ protobuf_c_boolean has_setdirection;
+ protobuf_c_boolean setdirection;
+ /*
+ * No. of steps for 360 deg.
+ */
+ protobuf_c_boolean has_setmicrostepdivision;
+ uint32_t setmicrostepdivision;
+ /*
+ * ?
+ */
+ protobuf_c_boolean has_setspeed;
+ int32_t setspeed;
+};
+#define STUB_STEPER_MOTOR_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub_steper_motor_request__descriptor) \
+ , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+
+
+/* StubSteperMotorRequest methods */
+void stub_steper_motor_request__init
+ (StubSteperMotorRequest *message);
+size_t stub_steper_motor_request__get_packed_size
+ (const StubSteperMotorRequest *message);
+size_t stub_steper_motor_request__pack
+ (const StubSteperMotorRequest *message,
+ uint8_t *out);
+size_t stub_steper_motor_request__pack_to_buffer
+ (const StubSteperMotorRequest *message,
+ ProtobufCBuffer *buffer);
+StubSteperMotorRequest *
+ stub_steper_motor_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub_steper_motor_request__free_unpacked
+ (StubSteperMotorRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubSteperMotorRequest_Closure)
+ (const StubSteperMotorRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub_steper_motor_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_StubSteperMotorRequest_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubSteperMotorResponse.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubSteperMotorResponse.pb-c.c
new file mode 100644
index 000000000..994bcda15
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubSteperMotorResponse.pb-c.c
@@ -0,0 +1,118 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubSteperMotorResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "StubSteperMotorResponse.pb-c.h"
+void stub_steper_motor_response__init
+ (StubSteperMotorResponse *message)
+{
+ static const StubSteperMotorResponse init_value = STUB_STEPER_MOTOR_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t stub_steper_motor_response__get_packed_size
+ (const StubSteperMotorResponse *message)
+{
+ assert(message->base.descriptor == &stub_steper_motor_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub_steper_motor_response__pack
+ (const StubSteperMotorResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub_steper_motor_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub_steper_motor_response__pack_to_buffer
+ (const StubSteperMotorResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub_steper_motor_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubSteperMotorResponse *
+ stub_steper_motor_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubSteperMotorResponse *)
+ protobuf_c_message_unpack (&stub_steper_motor_response__descriptor,
+ allocator, len, data);
+}
+void stub_steper_motor_response__free_unpacked
+ (StubSteperMotorResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub_steper_motor_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub_steper_motor_response__field_descriptors[3] =
+{
+ {
+ "MotorId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubSteperMotorResponse, has_motorid),
+ offsetof(StubSteperMotorResponse, motorid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "MotorVersion",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubSteperMotorResponse, has_motorversion),
+ offsetof(StubSteperMotorResponse, motorversion),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Status",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubSteperMotorResponse, has_status),
+ offsetof(StubSteperMotorResponse, status),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_steper_motor_response__field_indices_by_name[] = {
+ 0, /* field[0] = MotorId */
+ 1, /* field[1] = MotorVersion */
+ 2, /* field[2] = Status */
+};
+static const ProtobufCIntRange stub_steper_motor_response__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 3 }
+};
+const ProtobufCMessageDescriptor stub_steper_motor_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "StubSteperMotorResponse",
+ "StubSteperMotorResponse",
+ "StubSteperMotorResponse",
+ "",
+ sizeof(StubSteperMotorResponse),
+ 3,
+ stub_steper_motor_response__field_descriptors,
+ stub_steper_motor_response__field_indices_by_name,
+ 1, stub_steper_motor_response__number_ranges,
+ (ProtobufCMessageInit) stub_steper_motor_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubSteperMotorResponse.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubSteperMotorResponse.pb-c.h
new file mode 100644
index 000000000..978fb8b2c
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubSteperMotorResponse.pb-c.h
@@ -0,0 +1,84 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubSteperMotorResponse.proto */
+
+#ifndef PROTOBUF_C_StubSteperMotorResponse_2eproto__INCLUDED
+#define PROTOBUF_C_StubSteperMotorResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _StubSteperMotorResponse StubSteperMotorResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubSteperMotorResponse
+{
+ ProtobufCMessage base;
+ /*
+ *0..19
+ */
+ protobuf_c_boolean has_motorid;
+ uint32_t motorid;
+ /*
+ */
+ protobuf_c_boolean has_motorversion;
+ uint32_t motorversion;
+ /*
+ * 0-OK 1-Failed
+ */
+ protobuf_c_boolean has_status;
+ protobuf_c_boolean status;
+};
+#define STUB_STEPER_MOTOR_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub_steper_motor_response__descriptor) \
+ , 0, 0, 0, 0, 0, 0 }
+
+
+/* StubSteperMotorResponse methods */
+void stub_steper_motor_response__init
+ (StubSteperMotorResponse *message);
+size_t stub_steper_motor_response__get_packed_size
+ (const StubSteperMotorResponse *message);
+size_t stub_steper_motor_response__pack
+ (const StubSteperMotorResponse *message,
+ uint8_t *out);
+size_t stub_steper_motor_response__pack_to_buffer
+ (const StubSteperMotorResponse *message,
+ ProtobufCBuffer *buffer);
+StubSteperMotorResponse *
+ stub_steper_motor_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub_steper_motor_response__free_unpacked
+ (StubSteperMotorResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubSteperMotorResponse_Closure)
+ (const StubSteperMotorResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub_steper_motor_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_StubSteperMotorResponse_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubValveRequest.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubValveRequest.pb-c.c
new file mode 100644
index 000000000..6e1bc168f
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubValveRequest.pb-c.c
@@ -0,0 +1,118 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubValveRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "StubValveRequest.pb-c.h"
+void stub_valve_request__init
+ (StubValveRequest *message)
+{
+ static const StubValveRequest init_value = STUB_VALVE_REQUEST__INIT;
+ *message = init_value;
+}
+size_t stub_valve_request__get_packed_size
+ (const StubValveRequest *message)
+{
+ assert(message->base.descriptor == &stub_valve_request__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub_valve_request__pack
+ (const StubValveRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub_valve_request__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub_valve_request__pack_to_buffer
+ (const StubValveRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub_valve_request__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubValveRequest *
+ stub_valve_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubValveRequest *)
+ protobuf_c_message_unpack (&stub_valve_request__descriptor,
+ allocator, len, data);
+}
+void stub_valve_request__free_unpacked
+ (StubValveRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub_valve_request__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub_valve_request__field_descriptors[3] =
+{
+ {
+ "ValveId",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubValveRequest, has_valveid),
+ offsetof(StubValveRequest, valveid),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "Inkflow",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_UINT32,
+ offsetof(StubValveRequest, has_inkflow),
+ offsetof(StubValveRequest, inkflow),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "ValveOn",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubValveRequest, has_valveon),
+ offsetof(StubValveRequest, valveon),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_valve_request__field_indices_by_name[] = {
+ 1, /* field[1] = Inkflow */
+ 0, /* field[0] = ValveId */
+ 2, /* field[2] = ValveOn */
+};
+static const ProtobufCIntRange stub_valve_request__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 3 }
+};
+const ProtobufCMessageDescriptor stub_valve_request__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "StubValveRequest",
+ "StubValveRequest",
+ "StubValveRequest",
+ "",
+ sizeof(StubValveRequest),
+ 3,
+ stub_valve_request__field_descriptors,
+ stub_valve_request__field_indices_by_name,
+ 1, stub_valve_request__number_ranges,
+ (ProtobufCMessageInit) stub_valve_request__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubValveRequest.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubValveRequest.pb-c.h
new file mode 100644
index 000000000..9a730b4d0
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubValveRequest.pb-c.h
@@ -0,0 +1,85 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubValveRequest.proto */
+
+#ifndef PROTOBUF_C_StubValveRequest_2eproto__INCLUDED
+#define PROTOBUF_C_StubValveRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _StubValveRequest StubValveRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubValveRequest
+{
+ ProtobufCMessage base;
+ /*
+ * 0..19
+ */
+ protobuf_c_boolean has_valveid;
+ uint32_t valveid;
+ /*
+ *0 - Min
+ */
+ protobuf_c_boolean has_inkflow;
+ uint32_t inkflow;
+ /*
+ *0-Off 1-On
+ */
+ protobuf_c_boolean has_valveon;
+ protobuf_c_boolean valveon;
+};
+#define STUB_VALVE_REQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub_valve_request__descriptor) \
+ , 0, 0, 0, 0, 0, 0 }
+
+
+/* StubValveRequest methods */
+void stub_valve_request__init
+ (StubValveRequest *message);
+size_t stub_valve_request__get_packed_size
+ (const StubValveRequest *message);
+size_t stub_valve_request__pack
+ (const StubValveRequest *message,
+ uint8_t *out);
+size_t stub_valve_request__pack_to_buffer
+ (const StubValveRequest *message,
+ ProtobufCBuffer *buffer);
+StubValveRequest *
+ stub_valve_request__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub_valve_request__free_unpacked
+ (StubValveRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubValveRequest_Closure)
+ (const StubValveRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub_valve_request__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_StubValveRequest_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubValveResponse.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubValveResponse.pb-c.c
new file mode 100644
index 000000000..4fbed304f
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubValveResponse.pb-c.c
@@ -0,0 +1,92 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubValveResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "StubValveResponse.pb-c.h"
+void stub_valve_response__init
+ (StubValveResponse *message)
+{
+ static const StubValveResponse init_value = STUB_VALVE_RESPONSE__INIT;
+ *message = init_value;
+}
+size_t stub_valve_response__get_packed_size
+ (const StubValveResponse *message)
+{
+ assert(message->base.descriptor == &stub_valve_response__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t stub_valve_response__pack
+ (const StubValveResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &stub_valve_response__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t stub_valve_response__pack_to_buffer
+ (const StubValveResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &stub_valve_response__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+StubValveResponse *
+ stub_valve_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (StubValveResponse *)
+ protobuf_c_message_unpack (&stub_valve_response__descriptor,
+ allocator, len, data);
+}
+void stub_valve_response__free_unpacked
+ (StubValveResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &stub_valve_response__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor stub_valve_response__field_descriptors[1] =
+{
+ {
+ "Status",
+ 3,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BOOL,
+ offsetof(StubValveResponse, has_status),
+ offsetof(StubValveResponse, status),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned stub_valve_response__field_indices_by_name[] = {
+ 0, /* field[0] = Status */
+};
+static const ProtobufCIntRange stub_valve_response__number_ranges[1 + 1] =
+{
+ { 3, 0 },
+ { 0, 1 }
+};
+const ProtobufCMessageDescriptor stub_valve_response__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "StubValveResponse",
+ "StubValveResponse",
+ "StubValveResponse",
+ "",
+ sizeof(StubValveResponse),
+ 1,
+ stub_valve_response__field_descriptors,
+ stub_valve_response__field_indices_by_name,
+ 1, stub_valve_response__number_ranges,
+ (ProtobufCMessageInit) stub_valve_response__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubValveResponse.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubValveResponse.pb-c.h
new file mode 100644
index 000000000..1949b4602
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Stubs/StubValveResponse.pb-c.h
@@ -0,0 +1,75 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: StubValveResponse.proto */
+
+#ifndef PROTOBUF_C_StubValveResponse_2eproto__INCLUDED
+#define PROTOBUF_C_StubValveResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _StubValveResponse StubValveResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _StubValveResponse
+{
+ ProtobufCMessage base;
+ /*
+ * 0-OK 1-Failed
+ */
+ protobuf_c_boolean has_status;
+ protobuf_c_boolean status;
+};
+#define STUB_VALVE_RESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&stub_valve_response__descriptor) \
+ , 0, 0 }
+
+
+/* StubValveResponse methods */
+void stub_valve_response__init
+ (StubValveResponse *message);
+size_t stub_valve_response__get_packed_size
+ (const StubValveResponse *message);
+size_t stub_valve_response__pack
+ (const StubValveResponse *message,
+ uint8_t *out);
+size_t stub_valve_response__pack_to_buffer
+ (const StubValveResponse *message,
+ ProtobufCBuffer *buffer);
+StubValveResponse *
+ stub_valve_response__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void stub_valve_response__free_unpacked
+ (StubValveResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*StubValveResponse_Closure)
+ (const StubValveResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor stub_valve_response__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_StubValveResponse_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Synchronization/SynchronizeDBRequest.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Synchronization/SynchronizeDBRequest.pb-c.c
new file mode 100644
index 000000000..97b733360
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Synchronization/SynchronizeDBRequest.pb-c.c
@@ -0,0 +1,105 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: SynchronizeDBRequest.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "SynchronizeDBRequest.pb-c.h"
+void synchronize_dbrequest__init
+ (SynchronizeDBRequest *message)
+{
+ static const SynchronizeDBRequest init_value = SYNCHRONIZE_DBREQUEST__INIT;
+ *message = init_value;
+}
+size_t synchronize_dbrequest__get_packed_size
+ (const SynchronizeDBRequest *message)
+{
+ assert(message->base.descriptor == &synchronize_dbrequest__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t synchronize_dbrequest__pack
+ (const SynchronizeDBRequest *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &synchronize_dbrequest__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t synchronize_dbrequest__pack_to_buffer
+ (const SynchronizeDBRequest *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &synchronize_dbrequest__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+SynchronizeDBRequest *
+ synchronize_dbrequest__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (SynchronizeDBRequest *)
+ protobuf_c_message_unpack (&synchronize_dbrequest__descriptor,
+ allocator, len, data);
+}
+void synchronize_dbrequest__free_unpacked
+ (SynchronizeDBRequest *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &synchronize_dbrequest__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor synchronize_dbrequest__field_descriptors[2] =
+{
+ {
+ "SerialNumber",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_STRING,
+ 0, /* quantifier_offset */
+ offsetof(SynchronizeDBRequest, serialnumber),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+ {
+ "LocalDB",
+ 2,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BYTES,
+ offsetof(SynchronizeDBRequest, has_localdb),
+ offsetof(SynchronizeDBRequest, localdb),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned synchronize_dbrequest__field_indices_by_name[] = {
+ 1, /* field[1] = LocalDB */
+ 0, /* field[0] = SerialNumber */
+};
+static const ProtobufCIntRange synchronize_dbrequest__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 2 }
+};
+const ProtobufCMessageDescriptor synchronize_dbrequest__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "SynchronizeDBRequest",
+ "SynchronizeDBRequest",
+ "SynchronizeDBRequest",
+ "",
+ sizeof(SynchronizeDBRequest),
+ 2,
+ synchronize_dbrequest__field_descriptors,
+ synchronize_dbrequest__field_indices_by_name,
+ 1, synchronize_dbrequest__number_ranges,
+ (ProtobufCMessageInit) synchronize_dbrequest__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Synchronization/SynchronizeDBRequest.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Synchronization/SynchronizeDBRequest.pb-c.h
new file mode 100644
index 000000000..a1652cce9
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Synchronization/SynchronizeDBRequest.pb-c.h
@@ -0,0 +1,73 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: SynchronizeDBRequest.proto */
+
+#ifndef PROTOBUF_C_SynchronizeDBRequest_2eproto__INCLUDED
+#define PROTOBUF_C_SynchronizeDBRequest_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _SynchronizeDBRequest SynchronizeDBRequest;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _SynchronizeDBRequest
+{
+ ProtobufCMessage base;
+ char *serialnumber;
+ protobuf_c_boolean has_localdb;
+ ProtobufCBinaryData localdb;
+};
+#define SYNCHRONIZE_DBREQUEST__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&synchronize_dbrequest__descriptor) \
+ , NULL, 0, {0,NULL} }
+
+
+/* SynchronizeDBRequest methods */
+void synchronize_dbrequest__init
+ (SynchronizeDBRequest *message);
+size_t synchronize_dbrequest__get_packed_size
+ (const SynchronizeDBRequest *message);
+size_t synchronize_dbrequest__pack
+ (const SynchronizeDBRequest *message,
+ uint8_t *out);
+size_t synchronize_dbrequest__pack_to_buffer
+ (const SynchronizeDBRequest *message,
+ ProtobufCBuffer *buffer);
+SynchronizeDBRequest *
+ synchronize_dbrequest__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void synchronize_dbrequest__free_unpacked
+ (SynchronizeDBRequest *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*SynchronizeDBRequest_Closure)
+ (const SynchronizeDBRequest *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor synchronize_dbrequest__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_SynchronizeDBRequest_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Synchronization/SynchronizeDBResponse.pb-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Synchronization/SynchronizeDBResponse.pb-c.c
new file mode 100644
index 000000000..208c1a9a5
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Synchronization/SynchronizeDBResponse.pb-c.c
@@ -0,0 +1,92 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: SynchronizeDBResponse.proto */
+
+/* Do not generate deprecated warnings for self */
+#ifndef PROTOBUF_C__NO_DEPRECATED
+#define PROTOBUF_C__NO_DEPRECATED
+#endif
+
+#include "SynchronizeDBResponse.pb-c.h"
+void synchronize_dbresponse__init
+ (SynchronizeDBResponse *message)
+{
+ static const SynchronizeDBResponse init_value = SYNCHRONIZE_DBRESPONSE__INIT;
+ *message = init_value;
+}
+size_t synchronize_dbresponse__get_packed_size
+ (const SynchronizeDBResponse *message)
+{
+ assert(message->base.descriptor == &synchronize_dbresponse__descriptor);
+ return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
+}
+size_t synchronize_dbresponse__pack
+ (const SynchronizeDBResponse *message,
+ uint8_t *out)
+{
+ assert(message->base.descriptor == &synchronize_dbresponse__descriptor);
+ return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
+}
+size_t synchronize_dbresponse__pack_to_buffer
+ (const SynchronizeDBResponse *message,
+ ProtobufCBuffer *buffer)
+{
+ assert(message->base.descriptor == &synchronize_dbresponse__descriptor);
+ return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
+}
+SynchronizeDBResponse *
+ synchronize_dbresponse__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data)
+{
+ return (SynchronizeDBResponse *)
+ protobuf_c_message_unpack (&synchronize_dbresponse__descriptor,
+ allocator, len, data);
+}
+void synchronize_dbresponse__free_unpacked
+ (SynchronizeDBResponse *message,
+ ProtobufCAllocator *allocator)
+{
+ if(!message)
+ return;
+ assert(message->base.descriptor == &synchronize_dbresponse__descriptor);
+ protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
+}
+static const ProtobufCFieldDescriptor synchronize_dbresponse__field_descriptors[1] =
+{
+ {
+ "RemoteDB",
+ 1,
+ PROTOBUF_C_LABEL_OPTIONAL,
+ PROTOBUF_C_TYPE_BYTES,
+ offsetof(SynchronizeDBResponse, has_remotedb),
+ offsetof(SynchronizeDBResponse, remotedb),
+ NULL,
+ NULL,
+ 0, /* flags */
+ 0,NULL,NULL /* reserved1,reserved2, etc */
+ },
+};
+static const unsigned synchronize_dbresponse__field_indices_by_name[] = {
+ 0, /* field[0] = RemoteDB */
+};
+static const ProtobufCIntRange synchronize_dbresponse__number_ranges[1 + 1] =
+{
+ { 1, 0 },
+ { 0, 1 }
+};
+const ProtobufCMessageDescriptor synchronize_dbresponse__descriptor =
+{
+ PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
+ "SynchronizeDBResponse",
+ "SynchronizeDBResponse",
+ "SynchronizeDBResponse",
+ "",
+ sizeof(SynchronizeDBResponse),
+ 1,
+ synchronize_dbresponse__field_descriptors,
+ synchronize_dbresponse__field_indices_by_name,
+ 1, synchronize_dbresponse__number_ranges,
+ (ProtobufCMessageInit) synchronize_dbresponse__init,
+ NULL,NULL,NULL /* reserved[123] */
+};
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Synchronization/SynchronizeDBResponse.pb-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Synchronization/SynchronizeDBResponse.pb-c.h
new file mode 100644
index 000000000..445695991
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/PMR/Synchronization/SynchronizeDBResponse.pb-c.h
@@ -0,0 +1,72 @@
+/* Generated by the protocol buffer compiler. DO NOT EDIT! */
+/* Generated from: SynchronizeDBResponse.proto */
+
+#ifndef PROTOBUF_C_SynchronizeDBResponse_2eproto__INCLUDED
+#define PROTOBUF_C_SynchronizeDBResponse_2eproto__INCLUDED
+
+#include <protobuf-c/protobuf-c.h>
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if PROTOBUF_C_VERSION_NUMBER < 1003000
+# 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 1003000 < 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 _SynchronizeDBResponse SynchronizeDBResponse;
+
+
+/* --- enums --- */
+
+
+/* --- messages --- */
+
+struct _SynchronizeDBResponse
+{
+ ProtobufCMessage base;
+ protobuf_c_boolean has_remotedb;
+ ProtobufCBinaryData remotedb;
+};
+#define SYNCHRONIZE_DBRESPONSE__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&synchronize_dbresponse__descriptor) \
+ , 0, {0,NULL} }
+
+
+/* SynchronizeDBResponse methods */
+void synchronize_dbresponse__init
+ (SynchronizeDBResponse *message);
+size_t synchronize_dbresponse__get_packed_size
+ (const SynchronizeDBResponse *message);
+size_t synchronize_dbresponse__pack
+ (const SynchronizeDBResponse *message,
+ uint8_t *out);
+size_t synchronize_dbresponse__pack_to_buffer
+ (const SynchronizeDBResponse *message,
+ ProtobufCBuffer *buffer);
+SynchronizeDBResponse *
+ synchronize_dbresponse__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+void synchronize_dbresponse__free_unpacked
+ (SynchronizeDBResponse *message,
+ ProtobufCAllocator *allocator);
+/* --- per-message closures --- */
+
+typedef void (*SynchronizeDBResponse_Closure)
+ (const SynchronizeDBResponse *message,
+ void *closure_data);
+
+/* --- services --- */
+
+
+/* --- descriptors --- */
+
+extern const ProtobufCMessageDescriptor synchronize_dbresponse__descriptor;
+
+PROTOBUF_C__END_DECLS
+
+
+#endif /* PROTOBUF_C_SynchronizeDBResponse_2eproto__INCLUDED */
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/Tango.ColorLib.vcxproj b/Software/Visual_Studio/Native/Tango.ColorLib/Tango.ColorLib.vcxproj
new file mode 100644
index 000000000..91ef89e5f
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/Tango.ColorLib.vcxproj
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|ARM">
+ <Configuration>Debug</Configuration>
+ <Platform>ARM</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|ARM">
+ <Configuration>Release</Configuration>
+ <Platform>ARM</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|ARM64">
+ <Configuration>Debug</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|ARM64">
+ <Configuration>Release</Configuration>
+ <Platform>ARM64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x86">
+ <Configuration>Debug</Configuration>
+ <Platform>x86</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x86">
+ <Configuration>Release</Configuration>
+ <Platform>x86</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{92d97576-e154-444b-a084-d2269a5e8a15}</ProjectGuid>
+ <Keyword>Android</Keyword>
+ <RootNamespace>ColorLib</RootNamespace>
+ <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
+ <ApplicationType>Android</ApplicationType>
+ <ApplicationTypeRevision>3.0</ApplicationTypeRevision>
+ <ProjectName>Tango.ColorLib</ProjectName>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>Clang_3_8</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>Clang_3_8</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>Clang_3_8</PlatformToolset>
+ <AndroidAPILevel>android-22</AndroidAPILevel>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>Clang_3_8</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>Clang_3_8</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>Clang_3_8</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x86'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>Clang_3_8</PlatformToolset>
+ <AndroidAPILevel>android-22</AndroidAPILevel>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x86'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>Clang_3_8</PlatformToolset>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings" />
+ <ImportGroup Label="Shared" />
+ <ImportGroup Label="PropertySheets" />
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x86'">
+ <TargetName>Tango.ColorLib</TargetName>
+ <OutDir>..\..\Build\Debug\Native\x86\</OutDir>
+ <IncludePath>$(ProjectDir);$(IncludePath)</IncludePath>
+ <IntDir>Intermmediate\$(Platform)\$(Configuration)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x86'">
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
+ <OutDir>..\..\Build\Debug\Native\arm\</OutDir>
+ <IntDir>Intermediate\$(Platform)\$(Configuration)\</IntDir>
+ <IncludePath>$(ProjectDir);$(IncludePath)</IncludePath>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x86'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x86'">
+ <ClCompile>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
+ <ClCompile>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
+ <ClCompile>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM'">
+ <ClCompile>
+ <PrecompiledHeader>Use</PrecompiledHeader>
+ <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+ </ClCompile>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="ColorLib.cpp" />
+ <ClCompile Include="PMR\Common\ErrorCode.pb-c.c" />
+ <ClCompile Include="PMR\Common\MessageContainer.pb-c.c" />
+ <ClCompile Include="PMR\Common\MessageType.pb-c.c" />
+ <ClCompile Include="PMR\Stubs\CalculateRequest.pb-c.c" />
+ <ClCompile Include="PMR\Stubs\CalculateResponse.pb-c.c" />
+ <ClCompile Include="protobuf-c\protobuf-c.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="ColorLib.h" />
+ <ClInclude Include="pch.h" />
+ <ClInclude Include="PMR\Common\ErrorCode.pb-c.h" />
+ <ClInclude Include="PMR\Common\MessageContainer.pb-c.h" />
+ <ClInclude Include="PMR\Common\MessageType.pb-c.h" />
+ <ClInclude Include="PMR\Stubs\CalculateRequest.pb-c.h" />
+ <ClInclude Include="PMR\Stubs\CalculateResponse.pb-c.h" />
+ <ClInclude Include="protobuf-c\protobuf-c.h" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets" />
+</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/Tango.ColorLib.vcxproj.filters b/Software/Visual_Studio/Native/Tango.ColorLib/Tango.ColorLib.vcxproj.filters
new file mode 100644
index 000000000..87b2a7025
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/Tango.ColorLib.vcxproj.filters
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <ClCompile Include="ColorLib.cpp" />
+ <ClCompile Include="PMR\Common\MessageContainer.pb-c.c">
+ <Filter>PMR\Common</Filter>
+ </ClCompile>
+ <ClCompile Include="PMR\Common\MessageType.pb-c.c">
+ <Filter>PMR\Common</Filter>
+ </ClCompile>
+ <ClCompile Include="PMR\Common\ErrorCode.pb-c.c">
+ <Filter>PMR\Common</Filter>
+ </ClCompile>
+ <ClCompile Include="PMR\Stubs\CalculateRequest.pb-c.c">
+ <Filter>PMR\Stubs</Filter>
+ </ClCompile>
+ <ClCompile Include="PMR\Stubs\CalculateResponse.pb-c.c">
+ <Filter>PMR\Stubs</Filter>
+ </ClCompile>
+ <ClCompile Include="protobuf-c\protobuf-c.c">
+ <Filter>Protobuf</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="ColorLib.h" />
+ <ClInclude Include="pch.h" />
+ <ClInclude Include="PMR\Common\MessageContainer.pb-c.h">
+ <Filter>PMR\Common</Filter>
+ </ClInclude>
+ <ClInclude Include="PMR\Common\MessageType.pb-c.h">
+ <Filter>PMR\Common</Filter>
+ </ClInclude>
+ <ClInclude Include="PMR\Common\ErrorCode.pb-c.h">
+ <Filter>PMR\Common</Filter>
+ </ClInclude>
+ <ClInclude Include="PMR\Stubs\CalculateRequest.pb-c.h">
+ <Filter>PMR\Stubs</Filter>
+ </ClInclude>
+ <ClInclude Include="PMR\Stubs\CalculateResponse.pb-c.h">
+ <Filter>PMR\Stubs</Filter>
+ </ClInclude>
+ <ClInclude Include="protobuf-c\protobuf-c.h">
+ <Filter>Protobuf</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <Filter Include="PMR">
+ <UniqueIdentifier>{ad90425b-51a7-48e0-b46f-1371f5122b12}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="PMR\Common">
+ <UniqueIdentifier>{a3997c7c-f44f-40ac-bad7-fad37af037fb}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="PMR\Stubs">
+ <UniqueIdentifier>{8e3ba831-c4fa-4ab5-a199-91b056c411bc}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Protobuf">
+ <UniqueIdentifier>{fa5909e4-87e8-4aff-a965-5ca64768c3d0}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/pch.h b/Software/Visual_Studio/Native/Tango.ColorLib/pch.h
new file mode 100644
index 000000000..bd99043ab
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/pch.h
@@ -0,0 +1,8 @@
+#include <jni.h>
+#include <errno.h>
+
+#include <string.h>
+#include <unistd.h>
+#include <sys/resource.h>
+
+#include <android/log.h>
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/protobuf-c/protobuf-c.c b/Software/Visual_Studio/Native/Tango.ColorLib/protobuf-c/protobuf-c.c
new file mode 100644
index 000000000..5debac820
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/protobuf-c/protobuf-c.c
@@ -0,0 +1,3642 @@
+/*
+ * Copyright (c) 2008-2015, Dave Benson and the protobuf-c authors.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*! \file
+ * Support library for `protoc-c` generated code.
+ *
+ * This file implements the public API used by the code generated
+ * by `protoc-c`.
+ *
+ * \authors Dave Benson and the protobuf-c authors
+ *
+ * \copyright 2008-2014. Licensed under the terms of the [BSD-2-Clause] license.
+ */
+
+/**
+ * \todo 64-BIT OPTIMIZATION: certain implementations use 32-bit math
+ * even on 64-bit platforms (uint64_size, uint64_pack, parse_uint64).
+ *
+ * \todo Use size_t consistently.
+ */
+
+#include <stdlib.h> /* for malloc, free */
+#include <string.h> /* for strcmp, strlen, memcpy, memmove, memset */
+
+#include "protobuf-c.h"
+
+#define TRUE 1
+#define FALSE 0
+
+#define PROTOBUF_C__ASSERT_NOT_REACHED() assert(0)
+
+/* Workaround for Microsoft compilers. */
+#ifdef _MSC_VER
+# define inline __inline
+#endif
+
+/**
+ * \defgroup internal Internal functions and macros
+ *
+ * These are not exported by the library but are useful to developers working
+ * on `libprotobuf-c` itself.
+ */
+
+/**
+ * \defgroup macros Utility macros for manipulating structures
+ *
+ * Macros and constants used to manipulate the base "classes" generated by
+ * `protobuf-c`. They also define limits and check correctness.
+ *
+ * \ingroup internal
+ * @{
+ */
+
+/** The maximum length of a 64-bit integer in varint encoding. */
+#define MAX_UINT64_ENCODED_SIZE 10
+
+#ifndef PROTOBUF_C_UNPACK_ERROR
+# define PROTOBUF_C_UNPACK_ERROR(...)
+#endif
+
+const char protobuf_c_empty_string[] = "";
+
+/**
+ * Internal `ProtobufCMessage` manipulation macro.
+ *
+ * Base macro for manipulating a `ProtobufCMessage`. Used by STRUCT_MEMBER() and
+ * STRUCT_MEMBER_PTR().
+ */
+#define STRUCT_MEMBER_P(struct_p, struct_offset) \
+ ((void *) ((uint8_t *) (struct_p) + (struct_offset)))
+
+/**
+ * Return field in a `ProtobufCMessage` based on offset.
+ *
+ * Take a pointer to a `ProtobufCMessage` and find the field at the offset.
+ * Cast it to the passed type.
+ */
+#define STRUCT_MEMBER(member_type, struct_p, struct_offset) \
+ (*(member_type *) STRUCT_MEMBER_P((struct_p), (struct_offset)))
+
+/**
+ * Return field in a `ProtobufCMessage` based on offset.
+ *
+ * Take a pointer to a `ProtobufCMessage` and find the field at the offset. Cast
+ * it to a pointer to the passed type.
+ */
+#define STRUCT_MEMBER_PTR(member_type, struct_p, struct_offset) \
+ ((member_type *) STRUCT_MEMBER_P((struct_p), (struct_offset)))
+
+/* Assertions for magic numbers. */
+
+#define ASSERT_IS_ENUM_DESCRIPTOR(desc) \
+ assert((desc)->magic == PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC)
+
+#define ASSERT_IS_MESSAGE_DESCRIPTOR(desc) \
+ assert((desc)->magic == PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC)
+
+#define ASSERT_IS_MESSAGE(message) \
+ ASSERT_IS_MESSAGE_DESCRIPTOR((message)->descriptor)
+
+#define ASSERT_IS_SERVICE_DESCRIPTOR(desc) \
+ assert((desc)->magic == PROTOBUF_C__SERVICE_DESCRIPTOR_MAGIC)
+
+/**@}*/
+
+/* --- version --- */
+
+const char *
+protobuf_c_version(void)
+{
+ return PROTOBUF_C_VERSION;
+}
+
+uint32_t
+protobuf_c_version_number(void)
+{
+ return PROTOBUF_C_VERSION_NUMBER;
+}
+
+/* --- allocator --- */
+
+static void *
+system_alloc(void *allocator_data, size_t size)
+{
+ return malloc(size);
+}
+
+static void
+system_free(void *allocator_data, void *data)
+{
+ free(data);
+}
+
+static inline void *
+do_alloc(ProtobufCAllocator *allocator, size_t size)
+{
+ return allocator->alloc(allocator->allocator_data, size);
+}
+
+static inline void
+do_free(ProtobufCAllocator *allocator, void *data)
+{
+ if (data != NULL)
+ allocator->free(allocator->allocator_data, data);
+}
+
+/*
+ * This allocator uses the system's malloc() and free(). It is the default
+ * allocator used if NULL is passed as the ProtobufCAllocator to an exported
+ * function.
+ */
+static ProtobufCAllocator protobuf_c__allocator = {
+ .alloc = &system_alloc,
+ .free = &system_free,
+ .allocator_data = NULL,
+};
+
+/* === buffer-simple === */
+
+void
+protobuf_c_buffer_simple_append(ProtobufCBuffer *buffer,
+ size_t len, const uint8_t *data)
+{
+ ProtobufCBufferSimple *simp = (ProtobufCBufferSimple *) buffer;
+ size_t new_len = simp->len + len;
+
+ if (new_len > simp->alloced) {
+ ProtobufCAllocator *allocator = simp->allocator;
+ size_t new_alloced = simp->alloced * 2;
+ uint8_t *new_data;
+
+ if (allocator == NULL)
+ allocator = &protobuf_c__allocator;
+ while (new_alloced < new_len)
+ new_alloced += new_alloced;
+ new_data = do_alloc(allocator, new_alloced);
+ if (!new_data)
+ return;
+ memcpy(new_data, simp->data, simp->len);
+ if (simp->must_free_data)
+ do_free(allocator, simp->data);
+ else
+ simp->must_free_data = TRUE;
+ simp->data = new_data;
+ simp->alloced = new_alloced;
+ }
+ memcpy(simp->data + simp->len, data, len);
+ simp->len = new_len;
+}
+
+/**
+ * \defgroup packedsz protobuf_c_message_get_packed_size() implementation
+ *
+ * Routines mainly used by protobuf_c_message_get_packed_size().
+ *
+ * \ingroup internal
+ * @{
+ */
+
+/**
+ * Return the number of bytes required to store the tag for the field. Includes
+ * 3 bits for the wire-type, and a single bit that denotes the end-of-tag.
+ *
+ * \param number
+ * Field tag to encode.
+ * \return
+ * Number of bytes required.
+ */
+static inline size_t
+get_tag_size(uint32_t number)
+{
+ if (number < (1UL << 4)) {
+ return 1;
+ } else if (number < (1UL << 11)) {
+ return 2;
+ } else if (number < (1UL << 18)) {
+ return 3;
+ } else if (number < (1UL << 25)) {
+ return 4;
+ } else {
+ return 5;
+ }
+}
+
+/**
+ * Return the number of bytes required to store a variable-length unsigned
+ * 32-bit integer in base-128 varint encoding.
+ *
+ * \param v
+ * Value to encode.
+ * \return
+ * Number of bytes required.
+ */
+static inline size_t
+uint32_size(uint32_t v)
+{
+ if (v < (1UL << 7)) {
+ return 1;
+ } else if (v < (1UL << 14)) {
+ return 2;
+ } else if (v < (1UL << 21)) {
+ return 3;
+ } else if (v < (1UL << 28)) {
+ return 4;
+ } else {
+ return 5;
+ }
+}
+
+/**
+ * Return the number of bytes required to store a variable-length signed 32-bit
+ * integer in base-128 varint encoding.
+ *
+ * \param v
+ * Value to encode.
+ * \return
+ * Number of bytes required.
+ */
+static inline size_t
+int32_size(int32_t v)
+{
+ if (v < 0) {
+ return 10;
+ } else if (v < (1L << 7)) {
+ return 1;
+ } else if (v < (1L << 14)) {
+ return 2;
+ } else if (v < (1L << 21)) {
+ return 3;
+ } else if (v < (1L << 28)) {
+ return 4;
+ } else {
+ return 5;
+ }
+}
+
+/**
+ * Return the ZigZag-encoded 32-bit unsigned integer form of a 32-bit signed
+ * integer.
+ *
+ * \param v
+ * Value to encode.
+ * \return
+ * ZigZag encoded integer.
+ */
+static inline uint32_t
+zigzag32(int32_t v)
+{
+ if (v < 0)
+ return (-(uint32_t)v) * 2 - 1;
+ else
+ return (uint32_t)(v) * 2;
+}
+
+/**
+ * Return the number of bytes required to store a signed 32-bit integer,
+ * converted to an unsigned 32-bit integer with ZigZag encoding, using base-128
+ * varint encoding.
+ *
+ * \param v
+ * Value to encode.
+ * \return
+ * Number of bytes required.
+ */
+static inline size_t
+sint32_size(int32_t v)
+{
+ return uint32_size(zigzag32(v));
+}
+
+/**
+ * Return the number of bytes required to store a 64-bit unsigned integer in
+ * base-128 varint encoding.
+ *
+ * \param v
+ * Value to encode.
+ * \return
+ * Number of bytes required.
+ */
+static inline size_t
+uint64_size(uint64_t v)
+{
+ uint32_t upper_v = (uint32_t) (v >> 32);
+
+ if (upper_v == 0) {
+ return uint32_size((uint32_t) v);
+ } else if (upper_v < (1UL << 3)) {
+ return 5;
+ } else if (upper_v < (1UL << 10)) {
+ return 6;
+ } else if (upper_v < (1UL << 17)) {
+ return 7;
+ } else if (upper_v < (1UL << 24)) {
+ return 8;
+ } else if (upper_v < (1UL << 31)) {
+ return 9;
+ } else {
+ return 10;
+ }
+}
+
+/**
+ * Return the ZigZag-encoded 64-bit unsigned integer form of a 64-bit signed
+ * integer.
+ *
+ * \param v
+ * Value to encode.
+ * \return
+ * ZigZag encoded integer.
+ */
+static inline uint64_t
+zigzag64(int64_t v)
+{
+ if (v < 0)
+ return (-(uint64_t)v) * 2 - 1;
+ else
+ return (uint64_t)(v) * 2;
+}
+
+/**
+ * Return the number of bytes required to store a signed 64-bit integer,
+ * converted to an unsigned 64-bit integer with ZigZag encoding, using base-128
+ * varint encoding.
+ *
+ * \param v
+ * Value to encode.
+ * \return
+ * Number of bytes required.
+ */
+static inline size_t
+sint64_size(int64_t v)
+{
+ return uint64_size(zigzag64(v));
+}
+
+/**
+ * Calculate the serialized size of a single required message field, including
+ * the space needed by the preceding tag.
+ *
+ * \param field
+ * Field descriptor for member.
+ * \param member
+ * Field to encode.
+ * \return
+ * Number of bytes required.
+ */
+static size_t
+required_field_get_packed_size(const ProtobufCFieldDescriptor *field,
+ const void *member)
+{
+ size_t rv = get_tag_size(field->id);
+
+ switch (field->type) {
+ case PROTOBUF_C_TYPE_SINT32:
+ return rv + sint32_size(*(const int32_t *) member);
+ case PROTOBUF_C_TYPE_ENUM:
+ case PROTOBUF_C_TYPE_INT32:
+ return rv + int32_size(*(const int32_t *) member);
+ case PROTOBUF_C_TYPE_UINT32:
+ return rv + uint32_size(*(const uint32_t *) member);
+ case PROTOBUF_C_TYPE_SINT64:
+ return rv + sint64_size(*(const int64_t *) member);
+ case PROTOBUF_C_TYPE_INT64:
+ case PROTOBUF_C_TYPE_UINT64:
+ return rv + uint64_size(*(const uint64_t *) member);
+ case PROTOBUF_C_TYPE_SFIXED32:
+ case PROTOBUF_C_TYPE_FIXED32:
+ return rv + 4;
+ case PROTOBUF_C_TYPE_SFIXED64:
+ case PROTOBUF_C_TYPE_FIXED64:
+ return rv + 8;
+ case PROTOBUF_C_TYPE_BOOL:
+ return rv + 1;
+ case PROTOBUF_C_TYPE_FLOAT:
+ return rv + 4;
+ case PROTOBUF_C_TYPE_DOUBLE:
+ return rv + 8;
+ case PROTOBUF_C_TYPE_STRING: {
+ const char *str = *(char * const *) member;
+ size_t len = str ? strlen(str) : 0;
+ return rv + uint32_size(len) + len;
+ }
+ case PROTOBUF_C_TYPE_BYTES: {
+ size_t len = ((const ProtobufCBinaryData *) member)->len;
+ return rv + uint32_size(len) + len;
+ }
+ case PROTOBUF_C_TYPE_MESSAGE: {
+ const ProtobufCMessage *msg = *(ProtobufCMessage * const *) member;
+ size_t subrv = msg ? protobuf_c_message_get_packed_size(msg) : 0;
+ return rv + uint32_size(subrv) + subrv;
+ }
+ }
+ PROTOBUF_C__ASSERT_NOT_REACHED();
+ return 0;
+}
+
+/**
+ * Calculate the serialized size of a single oneof message field, including
+ * the space needed by the preceding tag. Returns 0 if the oneof field isn't
+ * selected or is not set.
+ *
+ * \param field
+ * Field descriptor for member.
+ * \param oneof_case
+ * Enum value that selects the field in the oneof.
+ * \param member
+ * Field to encode.
+ * \return
+ * Number of bytes required.
+ */
+static size_t
+oneof_field_get_packed_size(const ProtobufCFieldDescriptor *field,
+ uint32_t oneof_case,
+ const void *member)
+{
+ if (oneof_case != field->id) {
+ return 0;
+ }
+ if (field->type == PROTOBUF_C_TYPE_MESSAGE ||
+ field->type == PROTOBUF_C_TYPE_STRING)
+ {
+ const void *ptr = *(const void * const *) member;
+ if (ptr == NULL || ptr == field->default_value)
+ return 0;
+ }
+ return required_field_get_packed_size(field, member);
+}
+
+/**
+ * Calculate the serialized size of a single optional message field, including
+ * the space needed by the preceding tag. Returns 0 if the optional field isn't
+ * set.
+ *
+ * \param field
+ * Field descriptor for member.
+ * \param has
+ * True if the field exists, false if not.
+ * \param member
+ * Field to encode.
+ * \return
+ * Number of bytes required.
+ */
+static size_t
+optional_field_get_packed_size(const ProtobufCFieldDescriptor *field,
+ const protobuf_c_boolean has,
+ const void *member)
+{
+ if (field->type == PROTOBUF_C_TYPE_MESSAGE ||
+ field->type == PROTOBUF_C_TYPE_STRING)
+ {
+ const void *ptr = *(const void * const *) member;
+ if (ptr == NULL || ptr == field->default_value)
+ return 0;
+ } else {
+ if (!has)
+ return 0;
+ }
+ return required_field_get_packed_size(field, member);
+}
+
+static protobuf_c_boolean
+field_is_zeroish(const ProtobufCFieldDescriptor *field,
+ const void *member)
+{
+ protobuf_c_boolean ret = FALSE;
+
+ switch (field->type) {
+ case PROTOBUF_C_TYPE_BOOL:
+ ret = (0 == *(const protobuf_c_boolean *) member);
+ break;
+ case PROTOBUF_C_TYPE_ENUM:
+ case PROTOBUF_C_TYPE_SINT32:
+ case PROTOBUF_C_TYPE_INT32:
+ case PROTOBUF_C_TYPE_UINT32:
+ case PROTOBUF_C_TYPE_SFIXED32:
+ case PROTOBUF_C_TYPE_FIXED32:
+ ret = (0 == *(const uint32_t *) member);
+ break;
+ case PROTOBUF_C_TYPE_SINT64:
+ case PROTOBUF_C_TYPE_INT64:
+ case PROTOBUF_C_TYPE_UINT64:
+ case PROTOBUF_C_TYPE_SFIXED64:
+ case PROTOBUF_C_TYPE_FIXED64:
+ ret = (0 == *(const uint64_t *) member);
+ break;
+ case PROTOBUF_C_TYPE_FLOAT:
+ ret = (0 == *(const float *) member);
+ break;
+ case PROTOBUF_C_TYPE_DOUBLE:
+ ret = (0 == *(const double *) member);
+ break;
+ case PROTOBUF_C_TYPE_STRING:
+ ret = (NULL == *(const char * const *) member) ||
+ ('\0' == **(const char * const *) member);
+ break;
+ case PROTOBUF_C_TYPE_BYTES:
+ case PROTOBUF_C_TYPE_MESSAGE:
+ ret = (NULL == *(const void * const *) member);
+ break;
+ default:
+ ret = TRUE;
+ break;
+ }
+
+ return ret;
+}
+
+/**
+ * Calculate the serialized size of a single unlabeled message field, including
+ * the space needed by the preceding tag. Returns 0 if the field isn't set or
+ * if it is set to a "zeroish" value (null pointer or 0 for numerical values).
+ * Unlabeled fields are supported only in proto3.
+ *
+ * \param field
+ * Field descriptor for member.
+ * \param member
+ * Field to encode.
+ * \return
+ * Number of bytes required.
+ */
+static size_t
+unlabeled_field_get_packed_size(const ProtobufCFieldDescriptor *field,
+ const void *member)
+{
+ if (field_is_zeroish(field, member))
+ return 0;
+ return required_field_get_packed_size(field, member);
+}
+
+/**
+ * Calculate the serialized size of repeated message fields, which may consist
+ * of any number of values (including 0). Includes the space needed by the
+ * preceding tags (as needed).
+ *
+ * \param field
+ * Field descriptor for member.
+ * \param count
+ * Number of repeated field members.
+ * \param member
+ * Field to encode.
+ * \return
+ * Number of bytes required.
+ */
+static size_t
+repeated_field_get_packed_size(const ProtobufCFieldDescriptor *field,
+ size_t count, const void *member)
+{
+ size_t header_size;
+ size_t rv = 0;
+ unsigned i;
+ void *array = *(void * const *) member;
+
+ if (count == 0)
+ return 0;
+ header_size = get_tag_size(field->id);
+ if (0 == (field->flags & PROTOBUF_C_FIELD_FLAG_PACKED))
+ header_size *= count;
+
+ switch (field->type) {
+ case PROTOBUF_C_TYPE_SINT32:
+ for (i = 0; i < count; i++)
+ rv += sint32_size(((int32_t *) array)[i]);
+ break;
+ case PROTOBUF_C_TYPE_ENUM:
+ case PROTOBUF_C_TYPE_INT32:
+ for (i = 0; i < count; i++)
+ rv += int32_size(((int32_t *) array)[i]);
+ break;
+ case PROTOBUF_C_TYPE_UINT32:
+ for (i = 0; i < count; i++)
+ rv += uint32_size(((uint32_t *) array)[i]);
+ break;
+ case PROTOBUF_C_TYPE_SINT64:
+ for (i = 0; i < count; i++)
+ rv += sint64_size(((int64_t *) array)[i]);
+ break;
+ case PROTOBUF_C_TYPE_INT64:
+ case PROTOBUF_C_TYPE_UINT64:
+ for (i = 0; i < count; i++)
+ rv += uint64_size(((uint64_t *) array)[i]);
+ break;
+ case PROTOBUF_C_TYPE_SFIXED32:
+ case PROTOBUF_C_TYPE_FIXED32:
+ case PROTOBUF_C_TYPE_FLOAT:
+ rv += 4 * count;
+ break;
+ case PROTOBUF_C_TYPE_SFIXED64:
+ case PROTOBUF_C_TYPE_FIXED64:
+ case PROTOBUF_C_TYPE_DOUBLE:
+ rv += 8 * count;
+ break;
+ case PROTOBUF_C_TYPE_BOOL:
+ rv += count;
+ break;
+ case PROTOBUF_C_TYPE_STRING:
+ for (i = 0; i < count; i++) {
+ size_t len = strlen(((char **) array)[i]);
+ rv += uint32_size(len) + len;
+ }
+ break;
+ case PROTOBUF_C_TYPE_BYTES:
+ for (i = 0; i < count; i++) {
+ size_t len = ((ProtobufCBinaryData *) array)[i].len;
+ rv += uint32_size(len) + len;
+ }
+ break;
+ case PROTOBUF_C_TYPE_MESSAGE:
+ for (i = 0; i < count; i++) {
+ size_t len = protobuf_c_message_get_packed_size(
+ ((ProtobufCMessage **) array)[i]);
+ rv += uint32_size(len) + len;
+ }
+ break;
+ }
+
+ if (0 != (field->flags & PROTOBUF_C_FIELD_FLAG_PACKED))
+ header_size += uint32_size(rv);
+ return header_size + rv;
+}
+
+/**
+ * Calculate the serialized size of an unknown field, i.e. one that is passed
+ * through mostly uninterpreted. This is required for forward compatibility if
+ * new fields are added to the message descriptor.
+ *
+ * \param field
+ * Unknown field type.
+ * \return
+ * Number of bytes required.
+ */
+static inline size_t
+unknown_field_get_packed_size(const ProtobufCMessageUnknownField *field)
+{
+ return get_tag_size(field->tag) + field->len;
+}
+
+/**@}*/
+
+/*
+ * Calculate the serialized size of the message.
+ */
+size_t protobuf_c_message_get_packed_size(const ProtobufCMessage *message)
+{
+ unsigned i;
+ size_t rv = 0;
+
+ ASSERT_IS_MESSAGE(message);
+ for (i = 0; i < message->descriptor->n_fields; i++) {
+ const ProtobufCFieldDescriptor *field =
+ message->descriptor->fields + i;
+ const void *member =
+ ((const char *) message) + field->offset;
+ const void *qmember =
+ ((const char *) message) + field->quantifier_offset;
+
+ if (field->label == PROTOBUF_C_LABEL_REQUIRED) {
+ rv += required_field_get_packed_size(field, member);
+ } else if ((field->label == PROTOBUF_C_LABEL_OPTIONAL ||
+ field->label == PROTOBUF_C_LABEL_NONE) &&
+ (0 != (field->flags & PROTOBUF_C_FIELD_FLAG_ONEOF))) {
+ rv += oneof_field_get_packed_size(
+ field,
+ *(const uint32_t *) qmember,
+ member
+ );
+ } else if (field->label == PROTOBUF_C_LABEL_OPTIONAL) {
+ rv += optional_field_get_packed_size(
+ field,
+ *(protobuf_c_boolean *) qmember,
+ member
+ );
+ } else if (field->label == PROTOBUF_C_LABEL_NONE) {
+ rv += unlabeled_field_get_packed_size(
+ field,
+ member
+ );
+ } else {
+ rv += repeated_field_get_packed_size(
+ field,
+ *(const size_t *) qmember,
+ member
+ );
+ }
+ }
+ for (i = 0; i < message->n_unknown_fields; i++)
+ rv += unknown_field_get_packed_size(&message->unknown_fields[i]);
+ return rv;
+}
+
+/**
+ * \defgroup pack protobuf_c_message_pack() implementation
+ *
+ * Routines mainly used by protobuf_c_message_pack().
+ *
+ * \ingroup internal
+ * @{
+ */
+
+/**
+ * Pack an unsigned 32-bit integer in base-128 varint encoding and return the
+ * number of bytes written, which must be 5 or less.
+ *
+ * \param value
+ * Value to encode.
+ * \param[out] out
+ * Packed value.
+ * \return
+ * Number of bytes written to `out`.
+ */
+static inline size_t
+uint32_pack(uint32_t value, uint8_t *out)
+{
+ unsigned rv = 0;
+
+ if (value >= 0x80) {
+ out[rv++] = value | 0x80;
+ value >>= 7;
+ if (value >= 0x80) {
+ out[rv++] = value | 0x80;
+ value >>= 7;
+ if (value >= 0x80) {
+ out[rv++] = value | 0x80;
+ value >>= 7;
+ if (value >= 0x80) {
+ out[rv++] = value | 0x80;
+ value >>= 7;
+ }
+ }
+ }
+ }
+ /* assert: value<128 */
+ out[rv++] = value;
+ return rv;
+}
+
+/**
+ * Pack a signed 32-bit integer and return the number of bytes written.
+ * Negative numbers are encoded as two's complement 64-bit integers.
+ *
+ * \param value
+ * Value to encode.
+ * \param[out] out
+ * Packed value.
+ * \return
+ * Number of bytes written to `out`.
+ */
+static inline size_t
+int32_pack(int32_t value, uint8_t *out)
+{
+ if (value < 0) {
+ out[0] = value | 0x80;
+ out[1] = (value >> 7) | 0x80;
+ out[2] = (value >> 14) | 0x80;
+ out[3] = (value >> 21) | 0x80;
+ out[4] = (value >> 28) | 0x80;
+ out[5] = out[6] = out[7] = out[8] = 0xff;
+ out[9] = 0x01;
+ return 10;
+ } else {
+ return uint32_pack(value, out);
+ }
+}
+
+/**
+ * Pack a signed 32-bit integer using ZigZag encoding and return the number of
+ * bytes written.
+ *
+ * \param value
+ * Value to encode.
+ * \param[out] out
+ * Packed value.
+ * \return
+ * Number of bytes written to `out`.
+ */
+static inline size_t
+sint32_pack(int32_t value, uint8_t *out)
+{
+ return uint32_pack(zigzag32(value), out);
+}
+
+/**
+ * Pack a 64-bit unsigned integer using base-128 varint encoding and return the
+ * number of bytes written.
+ *
+ * \param value
+ * Value to encode.
+ * \param[out] out
+ * Packed value.
+ * \return
+ * Number of bytes written to `out`.
+ */
+static size_t
+uint64_pack(uint64_t value, uint8_t *out)
+{
+ uint32_t hi = (uint32_t) (value >> 32);
+ uint32_t lo = (uint32_t) value;
+ unsigned rv;
+
+ if (hi == 0)
+ return uint32_pack((uint32_t) lo, out);
+ out[0] = (lo) | 0x80;
+ out[1] = (lo >> 7) | 0x80;
+ out[2] = (lo >> 14) | 0x80;
+ out[3] = (lo >> 21) | 0x80;
+ if (hi < 8) {
+ out[4] = (hi << 4) | (lo >> 28);
+ return 5;
+ } else {
+ out[4] = ((hi & 7) << 4) | (lo >> 28) | 0x80;
+ hi >>= 3;
+ }
+ rv = 5;
+ while (hi >= 128) {
+ out[rv++] = hi | 0x80;
+ hi >>= 7;
+ }
+ out[rv++] = hi;
+ return rv;
+}
+
+/**
+ * Pack a 64-bit signed integer in ZigZag encoding and return the number of
+ * bytes written.
+ *
+ * \param value
+ * Value to encode.
+ * \param[out] out
+ * Packed value.
+ * \return
+ * Number of bytes written to `out`.
+ */
+static inline size_t
+sint64_pack(int64_t value, uint8_t *out)
+{
+ return uint64_pack(zigzag64(value), out);
+}
+
+/**
+ * Pack a 32-bit quantity in little-endian byte order. Used for protobuf wire
+ * types fixed32, sfixed32, float. Similar to "htole32".
+ *
+ * \param value
+ * Value to encode.
+ * \param[out] out
+ * Packed value.
+ * \return
+ * Number of bytes written to `out`.
+ */
+static inline size_t
+fixed32_pack(uint32_t value, void *out)
+{
+#if !defined(WORDS_BIGENDIAN)
+ memcpy(out, &value, 4);
+#else
+ uint8_t *buf = out;
+
+ buf[0] = value;
+ buf[1] = value >> 8;
+ buf[2] = value >> 16;
+ buf[3] = value >> 24;
+#endif
+ return 4;
+}
+
+/**
+ * Pack a 64-bit quantity in little-endian byte order. Used for protobuf wire
+ * types fixed64, sfixed64, double. Similar to "htole64".
+ *
+ * \todo The big-endian impl is really only good for 32-bit machines, a 64-bit
+ * version would be appreciated, plus a way to decide to use 64-bit math where
+ * convenient.
+ *
+ * \param value
+ * Value to encode.
+ * \param[out] out
+ * Packed value.
+ * \return
+ * Number of bytes written to `out`.
+ */
+static inline size_t
+fixed64_pack(uint64_t value, void *out)
+{
+#if !defined(WORDS_BIGENDIAN)
+ memcpy(out, &value, 8);
+#else
+ fixed32_pack(value, out);
+ fixed32_pack(value >> 32, ((char *) out) + 4);
+#endif
+ return 8;
+}
+
+/**
+ * Pack a boolean value as an integer and return the number of bytes written.
+ *
+ * \todo Perhaps on some platforms *out = !!value would be a better impl, b/c
+ * that is idiomatic C++ in some STL implementations.
+ *
+ * \param value
+ * Value to encode.
+ * \param[out] out
+ * Packed value.
+ * \return
+ * Number of bytes written to `out`.
+ */
+static inline size_t
+boolean_pack(protobuf_c_boolean value, uint8_t *out)
+{
+ *out = value ? TRUE : FALSE;
+ return 1;
+}
+
+/**
+ * Pack a NUL-terminated C string and return the number of bytes written. The
+ * output includes a length delimiter.
+ *
+ * The NULL pointer is treated as an empty string. This isn't really necessary,
+ * but it allows people to leave required strings blank. (See Issue #13 in the
+ * bug tracker for a little more explanation).
+ *
+ * \param str
+ * String to encode.
+ * \param[out] out
+ * Packed value.
+ * \return
+ * Number of bytes written to `out`.
+ */
+static inline size_t
+string_pack(const char *str, uint8_t *out)
+{
+ if (str == NULL) {
+ out[0] = 0;
+ return 1;
+ } else {
+ size_t len = strlen(str);
+ size_t rv = uint32_pack(len, out);
+ memcpy(out + rv, str, len);
+ return rv + len;
+ }
+}
+
+/**
+ * Pack a ProtobufCBinaryData and return the number of bytes written. The output
+ * includes a length delimiter.
+ *
+ * \param bd
+ * ProtobufCBinaryData to encode.
+ * \param[out] out
+ * Packed value.
+ * \return
+ * Number of bytes written to `out`.
+ */
+static inline size_t
+binary_data_pack(const ProtobufCBinaryData *bd, uint8_t *out)
+{
+ size_t len = bd->len;
+ size_t rv = uint32_pack(len, out);
+ memcpy(out + rv, bd->data, len);
+ return rv + len;
+}
+
+/**
+ * Pack a ProtobufCMessage and return the number of bytes written. The output
+ * includes a length delimiter.
+ *
+ * \param message
+ * ProtobufCMessage object to pack.
+ * \param[out] out
+ * Packed message.
+ * \return
+ * Number of bytes written to `out`.
+ */
+static inline size_t
+prefixed_message_pack(const ProtobufCMessage *message, uint8_t *out)
+{
+ if (message == NULL) {
+ out[0] = 0;
+ return 1;
+ } else {
+ size_t rv = protobuf_c_message_pack(message, out + 1);
+ uint32_t rv_packed_size = uint32_size(rv);
+ if (rv_packed_size != 1)
+ memmove(out + rv_packed_size, out + 1, rv);
+ return uint32_pack(rv, out) + rv;
+ }
+}
+
+/**
+ * Pack a field tag.
+ *
+ * Wire-type will be added in required_field_pack().
+ *
+ * \todo Just call uint64_pack on 64-bit platforms.
+ *
+ * \param id
+ * Tag value to encode.
+ * \param[out] out
+ * Packed value.
+ * \return
+ * Number of bytes written to `out`.
+ */
+static size_t
+tag_pack(uint32_t id, uint8_t *out)
+{
+ if (id < (1UL << (32 - 3)))
+ return uint32_pack(id << 3, out);
+ else
+ return uint64_pack(((uint64_t) id) << 3, out);
+}
+
+/**
+ * Pack a required field and return the number of bytes written.
+ *
+ * \param field
+ * Field descriptor.
+ * \param member
+ * The field member.
+ * \param[out] out
+ * Packed value.
+ * \return
+ * Number of bytes written to `out`.
+ */
+static size_t
+required_field_pack(const ProtobufCFieldDescriptor *field,
+ const void *member, uint8_t *out)
+{
+ size_t rv = tag_pack(field->id, out);
+
+ switch (field->type) {
+ case PROTOBUF_C_TYPE_SINT32:
+ out[0] |= PROTOBUF_C_WIRE_TYPE_VARINT;
+ return rv + sint32_pack(*(const int32_t *) member, out + rv);
+ case PROTOBUF_C_TYPE_ENUM:
+ case PROTOBUF_C_TYPE_INT32:
+ out[0] |= PROTOBUF_C_WIRE_TYPE_VARINT;
+ return rv + int32_pack(*(const int32_t *) member, out + rv);
+ case PROTOBUF_C_TYPE_UINT32:
+ out[0] |= PROTOBUF_C_WIRE_TYPE_VARINT;
+ return rv + uint32_pack(*(const uint32_t *) member, out + rv);
+ case PROTOBUF_C_TYPE_SINT64:
+ out[0] |= PROTOBUF_C_WIRE_TYPE_VARINT;
+ return rv + sint64_pack(*(const int64_t *) member, out + rv);
+ case PROTOBUF_C_TYPE_INT64:
+ case PROTOBUF_C_TYPE_UINT64:
+ out[0] |= PROTOBUF_C_WIRE_TYPE_VARINT;
+ return rv + uint64_pack(*(const uint64_t *) member, out + rv);
+ case PROTOBUF_C_TYPE_SFIXED32:
+ case PROTOBUF_C_TYPE_FIXED32:
+ case PROTOBUF_C_TYPE_FLOAT:
+ out[0] |= PROTOBUF_C_WIRE_TYPE_32BIT;
+ return rv + fixed32_pack(*(const uint32_t *) member, out + rv);
+ case PROTOBUF_C_TYPE_SFIXED64:
+ case PROTOBUF_C_TYPE_FIXED64:
+ case PROTOBUF_C_TYPE_DOUBLE:
+ out[0] |= PROTOBUF_C_WIRE_TYPE_64BIT;
+ return rv + fixed64_pack(*(const uint64_t *) member, out + rv);
+ case PROTOBUF_C_TYPE_BOOL:
+ out[0] |= PROTOBUF_C_WIRE_TYPE_VARINT;
+ return rv + boolean_pack(*(const protobuf_c_boolean *) member, out + rv);
+ case PROTOBUF_C_TYPE_STRING:
+ out[0] |= PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED;
+ return rv + string_pack(*(char *const *) member, out + rv);
+ case PROTOBUF_C_TYPE_BYTES:
+ out[0] |= PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED;
+ return rv + binary_data_pack((const ProtobufCBinaryData *) member, out + rv);
+ case PROTOBUF_C_TYPE_MESSAGE:
+ out[0] |= PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED;
+ return rv + prefixed_message_pack(*(ProtobufCMessage * const *) member, out + rv);
+ }
+ PROTOBUF_C__ASSERT_NOT_REACHED();
+ return 0;
+}
+
+/**
+ * Pack a oneof field and return the number of bytes written. Only packs the
+ * field that is selected by the case enum.
+ *
+ * \param field
+ * Field descriptor.
+ * \param oneof_case
+ * Enum value that selects the field in the oneof.
+ * \param member
+ * The field member.
+ * \param[out] out
+ * Packed value.
+ * \return
+ * Number of bytes written to `out`.
+ */
+static size_t
+oneof_field_pack(const ProtobufCFieldDescriptor *field,
+ uint32_t oneof_case,
+ const void *member, uint8_t *out)
+{
+ if (oneof_case != field->id) {
+ return 0;
+ }
+ if (field->type == PROTOBUF_C_TYPE_MESSAGE ||
+ field->type == PROTOBUF_C_TYPE_STRING)
+ {
+ const void *ptr = *(const void * const *) member;
+ if (ptr == NULL || ptr == field->default_value)
+ return 0;
+ }
+ return required_field_pack(field, member, out);
+}
+
+/**
+ * Pack an optional field and return the number of bytes written.
+ *
+ * \param field
+ * Field descriptor.
+ * \param has
+ * Whether the field is set.
+ * \param member
+ * The field member.
+ * \param[out] out
+ * Packed value.
+ * \return
+ * Number of bytes written to `out`.
+ */
+static size_t
+optional_field_pack(const ProtobufCFieldDescriptor *field,
+ const protobuf_c_boolean has,
+ const void *member, uint8_t *out)
+{
+ if (field->type == PROTOBUF_C_TYPE_MESSAGE ||
+ field->type == PROTOBUF_C_TYPE_STRING)
+ {
+ const void *ptr = *(const void * const *) member;
+ if (ptr == NULL || ptr == field->default_value)
+ return 0;
+ } else {
+ if (!has)
+ return 0;
+ }
+ return required_field_pack(field, member, out);
+}
+
+/**
+ * Pack an unlabeled field and return the number of bytes written.
+ *
+ * \param field
+ * Field descriptor.
+ * \param member
+ * The field member.
+ * \param[out] out
+ * Packed value.
+ * \return
+ * Number of bytes written to `out`.
+ */
+static size_t
+unlabeled_field_pack(const ProtobufCFieldDescriptor *field,
+ const void *member, uint8_t *out)
+{
+ if (field_is_zeroish(field, member))
+ return 0;
+ return required_field_pack(field, member, out);
+}
+
+/**
+ * Given a field type, return the in-memory size.
+ *
+ * \todo Implement as a table lookup.
+ *
+ * \param type
+ * Field type.
+ * \return
+ * Size of the field.
+ */
+static inline size_t
+sizeof_elt_in_repeated_array(ProtobufCType type)
+{
+ switch (type) {
+ case PROTOBUF_C_TYPE_SINT32:
+ case PROTOBUF_C_TYPE_INT32:
+ case PROTOBUF_C_TYPE_UINT32:
+ case PROTOBUF_C_TYPE_SFIXED32:
+ case PROTOBUF_C_TYPE_FIXED32:
+ case PROTOBUF_C_TYPE_FLOAT:
+ case PROTOBUF_C_TYPE_ENUM:
+ return 4;
+ case PROTOBUF_C_TYPE_SINT64:
+ case PROTOBUF_C_TYPE_INT64:
+ case PROTOBUF_C_TYPE_UINT64:
+ case PROTOBUF_C_TYPE_SFIXED64:
+ case PROTOBUF_C_TYPE_FIXED64:
+ case PROTOBUF_C_TYPE_DOUBLE:
+ return 8;
+ case PROTOBUF_C_TYPE_BOOL:
+ return sizeof(protobuf_c_boolean);
+ case PROTOBUF_C_TYPE_STRING:
+ case PROTOBUF_C_TYPE_MESSAGE:
+ return sizeof(void *);
+ case PROTOBUF_C_TYPE_BYTES:
+ return sizeof(ProtobufCBinaryData);
+ }
+ PROTOBUF_C__ASSERT_NOT_REACHED();
+ return 0;
+}
+
+/**
+ * Pack an array of 32-bit quantities.
+ *
+ * \param[out] out
+ * Destination.
+ * \param[in] in
+ * Source.
+ * \param[in] n
+ * Number of elements in the source array.
+ */
+static void
+copy_to_little_endian_32(void *out, const void *in, const unsigned n)
+{
+#if !defined(WORDS_BIGENDIAN)
+ memcpy(out, in, n * 4);
+#else
+ unsigned i;
+ const uint32_t *ini = in;
+ for (i = 0; i < n; i++)
+ fixed32_pack(ini[i], (uint32_t *) out + i);
+#endif
+}
+
+/**
+ * Pack an array of 64-bit quantities.
+ *
+ * \param[out] out
+ * Destination.
+ * \param[in] in
+ * Source.
+ * \param[in] n
+ * Number of elements in the source array.
+ */
+static void
+copy_to_little_endian_64(void *out, const void *in, const unsigned n)
+{
+#if !defined(WORDS_BIGENDIAN)
+ memcpy(out, in, n * 8);
+#else
+ unsigned i;
+ const uint64_t *ini = in;
+ for (i = 0; i < n; i++)
+ fixed64_pack(ini[i], (uint64_t *) out + i);
+#endif
+}
+
+/**
+ * Get the minimum number of bytes required to pack a field value of a
+ * particular type.
+ *
+ * \param type
+ * Field type.
+ * \return
+ * Number of bytes.
+ */
+static unsigned
+get_type_min_size(ProtobufCType type)
+{
+ if (type == PROTOBUF_C_TYPE_SFIXED32 ||
+ type == PROTOBUF_C_TYPE_FIXED32 ||
+ type == PROTOBUF_C_TYPE_FLOAT)
+ {
+ return 4;
+ }
+ if (type == PROTOBUF_C_TYPE_SFIXED64 ||
+ type == PROTOBUF_C_TYPE_FIXED64 ||
+ type == PROTOBUF_C_TYPE_DOUBLE)
+ {
+ return 8;
+ }
+ return 1;
+}
+
+/**
+ * Packs the elements of a repeated field and returns the serialised field and
+ * its length.
+ *
+ * \param field
+ * Field descriptor.
+ * \param count
+ * Number of elements in the repeated field array.
+ * \param member
+ * Pointer to the elements for this repeated field.
+ * \param[out] out
+ * Serialised representation of the repeated field.
+ * \return
+ * Number of bytes serialised to `out`.
+ */
+static size_t
+repeated_field_pack(const ProtobufCFieldDescriptor *field,
+ size_t count, const void *member, uint8_t *out)
+{
+ void *array = *(void * const *) member;
+ unsigned i;
+
+ if (0 != (field->flags & PROTOBUF_C_FIELD_FLAG_PACKED)) {
+ unsigned header_len;
+ unsigned len_start;
+ unsigned min_length;
+ unsigned payload_len;
+ unsigned length_size_min;
+ unsigned actual_length_size;
+ uint8_t *payload_at;
+
+ if (count == 0)
+ return 0;
+ header_len = tag_pack(field->id, out);
+ out[0] |= PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED;
+ len_start = header_len;
+ min_length = get_type_min_size(field->type) * count;
+ length_size_min = uint32_size(min_length);
+ header_len += length_size_min;
+ payload_at = out + header_len;
+
+ switch (field->type) {
+ case PROTOBUF_C_TYPE_SFIXED32:
+ case PROTOBUF_C_TYPE_FIXED32:
+ case PROTOBUF_C_TYPE_FLOAT:
+ copy_to_little_endian_32(payload_at, array, count);
+ payload_at += count * 4;
+ break;
+ case PROTOBUF_C_TYPE_SFIXED64:
+ case PROTOBUF_C_TYPE_FIXED64:
+ case PROTOBUF_C_TYPE_DOUBLE:
+ copy_to_little_endian_64(payload_at, array, count);
+ payload_at += count * 8;
+ break;
+ case PROTOBUF_C_TYPE_ENUM:
+ case PROTOBUF_C_TYPE_INT32: {
+ const int32_t *arr = (const int32_t *) array;
+ for (i = 0; i < count; i++)
+ payload_at += int32_pack(arr[i], payload_at);
+ break;
+ }
+ case PROTOBUF_C_TYPE_SINT32: {
+ const int32_t *arr = (const int32_t *) array;
+ for (i = 0; i < count; i++)
+ payload_at += sint32_pack(arr[i], payload_at);
+ break;
+ }
+ case PROTOBUF_C_TYPE_SINT64: {
+ const int64_t *arr = (const int64_t *) array;
+ for (i = 0; i < count; i++)
+ payload_at += sint64_pack(arr[i], payload_at);
+ break;
+ }
+ case PROTOBUF_C_TYPE_UINT32: {
+ const uint32_t *arr = (const uint32_t *) array;
+ for (i = 0; i < count; i++)
+ payload_at += uint32_pack(arr[i], payload_at);
+ break;
+ }
+ case PROTOBUF_C_TYPE_INT64:
+ case PROTOBUF_C_TYPE_UINT64: {
+ const uint64_t *arr = (const uint64_t *) array;
+ for (i = 0; i < count; i++)
+ payload_at += uint64_pack(arr[i], payload_at);
+ break;
+ }
+ case PROTOBUF_C_TYPE_BOOL: {
+ const protobuf_c_boolean *arr = (const protobuf_c_boolean *) array;
+ for (i = 0; i < count; i++)
+ payload_at += boolean_pack(arr[i], payload_at);
+ break;
+ }
+ default:
+ PROTOBUF_C__ASSERT_NOT_REACHED();
+ }
+
+ payload_len = payload_at - (out + header_len);
+ actual_length_size = uint32_size(payload_len);
+ if (length_size_min != actual_length_size) {
+ assert(actual_length_size == length_size_min + 1);
+ memmove(out + header_len + 1, out + header_len,
+ payload_len);
+ header_len++;
+ }
+ uint32_pack(payload_len, out + len_start);
+ return header_len + payload_len;
+ } else {
+ /* not "packed" cased */
+ /* CONSIDER: optimize this case a bit (by putting the loop inside the switch) */
+ size_t rv = 0;
+ unsigned siz = sizeof_elt_in_repeated_array(field->type);
+
+ for (i = 0; i < count; i++) {
+ rv += required_field_pack(field, array, out + rv);
+ array = (char *)array + siz;
+ }
+ return rv;
+ }
+}
+
+static size_t
+unknown_field_pack(const ProtobufCMessageUnknownField *field, uint8_t *out)
+{
+ size_t rv = tag_pack(field->tag, out);
+ out[0] |= field->wire_type;
+ memcpy(out + rv, field->data, field->len);
+ return rv + field->len;
+}
+
+/**@}*/
+
+size_t
+protobuf_c_message_pack(const ProtobufCMessage *message, uint8_t *out)
+{
+ unsigned i;
+ size_t rv = 0;
+
+ ASSERT_IS_MESSAGE(message);
+ for (i = 0; i < message->descriptor->n_fields; i++) {
+ const ProtobufCFieldDescriptor *field =
+ message->descriptor->fields + i;
+ const void *member = ((const char *) message) + field->offset;
+
+ /*
+ * It doesn't hurt to compute qmember (a pointer to the
+ * quantifier field of the structure), but the pointer is only
+ * valid if the field is:
+ * - a repeated field, or
+ * - a field that is part of a oneof
+ * - an optional field that isn't a pointer type
+ * (Meaning: not a message or a string).
+ */
+ const void *qmember =
+ ((const char *) message) + field->quantifier_offset;
+
+ if (field->label == PROTOBUF_C_LABEL_REQUIRED) {
+ rv += required_field_pack(field, member, out + rv);
+ } else if ((field->label == PROTOBUF_C_LABEL_OPTIONAL ||
+ field->label == PROTOBUF_C_LABEL_NONE) &&
+ (0 != (field->flags & PROTOBUF_C_FIELD_FLAG_ONEOF))) {
+ rv += oneof_field_pack(
+ field,
+ *(const uint32_t *) qmember,
+ member,
+ out + rv
+ );
+ } else if (field->label == PROTOBUF_C_LABEL_OPTIONAL) {
+ rv += optional_field_pack(
+ field,
+ *(const protobuf_c_boolean *) qmember,
+ member,
+ out + rv
+ );
+ } else if (field->label == PROTOBUF_C_LABEL_NONE) {
+ rv += unlabeled_field_pack(field, member, out + rv);
+ } else {
+ rv += repeated_field_pack(field, *(const size_t *) qmember,
+ member, out + rv);
+ }
+ }
+ for (i = 0; i < message->n_unknown_fields; i++)
+ rv += unknown_field_pack(&message->unknown_fields[i], out + rv);
+ return rv;
+}
+
+/**
+ * \defgroup packbuf protobuf_c_message_pack_to_buffer() implementation
+ *
+ * Routines mainly used by protobuf_c_message_pack_to_buffer().
+ *
+ * \ingroup internal
+ * @{
+ */
+
+/**
+ * Pack a required field to a virtual buffer.
+ *
+ * \param field
+ * Field descriptor.
+ * \param member
+ * The element to be packed.
+ * \param[out] buffer
+ * Virtual buffer to append data to.
+ * \return
+ * Number of bytes packed.
+ */
+static size_t
+required_field_pack_to_buffer(const ProtobufCFieldDescriptor *field,
+ const void *member, ProtobufCBuffer *buffer)
+{
+ size_t rv;
+ uint8_t scratch[MAX_UINT64_ENCODED_SIZE * 2];
+
+ rv = tag_pack(field->id, scratch);
+ switch (field->type) {
+ case PROTOBUF_C_TYPE_SINT32:
+ scratch[0] |= PROTOBUF_C_WIRE_TYPE_VARINT;
+ rv += sint32_pack(*(const int32_t *) member, scratch + rv);
+ buffer->append(buffer, rv, scratch);
+ break;
+ case PROTOBUF_C_TYPE_ENUM:
+ case PROTOBUF_C_TYPE_INT32:
+ scratch[0] |= PROTOBUF_C_WIRE_TYPE_VARINT;
+ rv += int32_pack(*(const int32_t *) member, scratch + rv);
+ buffer->append(buffer, rv, scratch);
+ break;
+ case PROTOBUF_C_TYPE_UINT32:
+ scratch[0] |= PROTOBUF_C_WIRE_TYPE_VARINT;
+ rv += uint32_pack(*(const uint32_t *) member, scratch + rv);
+ buffer->append(buffer, rv, scratch);
+ break;
+ case PROTOBUF_C_TYPE_SINT64:
+ scratch[0] |= PROTOBUF_C_WIRE_TYPE_VARINT;
+ rv += sint64_pack(*(const int64_t *) member, scratch + rv);
+ buffer->append(buffer, rv, scratch);
+ break;
+ case PROTOBUF_C_TYPE_INT64:
+ case PROTOBUF_C_TYPE_UINT64:
+ scratch[0] |= PROTOBUF_C_WIRE_TYPE_VARINT;
+ rv += uint64_pack(*(const uint64_t *) member, scratch + rv);
+ buffer->append(buffer, rv, scratch);
+ break;
+ case PROTOBUF_C_TYPE_SFIXED32:
+ case PROTOBUF_C_TYPE_FIXED32:
+ case PROTOBUF_C_TYPE_FLOAT:
+ scratch[0] |= PROTOBUF_C_WIRE_TYPE_32BIT;
+ rv += fixed32_pack(*(const uint32_t *) member, scratch + rv);
+ buffer->append(buffer, rv, scratch);
+ break;
+ case PROTOBUF_C_TYPE_SFIXED64:
+ case PROTOBUF_C_TYPE_FIXED64:
+ case PROTOBUF_C_TYPE_DOUBLE:
+ scratch[0] |= PROTOBUF_C_WIRE_TYPE_64BIT;
+ rv += fixed64_pack(*(const uint64_t *) member, scratch + rv);
+ buffer->append(buffer, rv, scratch);
+ break;
+ case PROTOBUF_C_TYPE_BOOL:
+ scratch[0] |= PROTOBUF_C_WIRE_TYPE_VARINT;
+ rv += boolean_pack(*(const protobuf_c_boolean *) member, scratch + rv);
+ buffer->append(buffer, rv, scratch);
+ break;
+ case PROTOBUF_C_TYPE_STRING: {
+ const char *str = *(char *const *) member;
+ size_t sublen = str ? strlen(str) : 0;
+
+ scratch[0] |= PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED;
+ rv += uint32_pack(sublen, scratch + rv);
+ buffer->append(buffer, rv, scratch);
+ buffer->append(buffer, sublen, (const uint8_t *) str);
+ rv += sublen;
+ break;
+ }
+ case PROTOBUF_C_TYPE_BYTES: {
+ const ProtobufCBinaryData *bd = ((const ProtobufCBinaryData *) member);
+ size_t sublen = bd->len;
+
+ scratch[0] |= PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED;
+ rv += uint32_pack(sublen, scratch + rv);
+ buffer->append(buffer, rv, scratch);
+ buffer->append(buffer, sublen, bd->data);
+ rv += sublen;
+ break;
+ }
+ case PROTOBUF_C_TYPE_MESSAGE: {
+ uint8_t simple_buffer_scratch[256];
+ size_t sublen;
+ const ProtobufCMessage *msg = *(ProtobufCMessage * const *) member;
+ ProtobufCBufferSimple simple_buffer =
+ PROTOBUF_C_BUFFER_SIMPLE_INIT(simple_buffer_scratch);
+
+ scratch[0] |= PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED;
+ if (msg == NULL)
+ sublen = 0;
+ else
+ sublen = protobuf_c_message_pack_to_buffer(msg, &simple_buffer.base);
+ rv += uint32_pack(sublen, scratch + rv);
+ buffer->append(buffer, rv, scratch);
+ buffer->append(buffer, sublen, simple_buffer.data);
+ rv += sublen;
+ PROTOBUF_C_BUFFER_SIMPLE_CLEAR(&simple_buffer);
+ break;
+ }
+ default:
+ PROTOBUF_C__ASSERT_NOT_REACHED();
+ }
+ return rv;
+}
+
+/**
+ * Pack a oneof field to a buffer. Only packs the field that is selected by the case enum.
+ *
+ * \param field
+ * Field descriptor.
+ * \param oneof_case
+ * Enum value that selects the field in the oneof.
+ * \param member
+ * The element to be packed.
+ * \param[out] buffer
+ * Virtual buffer to append data to.
+ * \return
+ * Number of bytes serialised to `buffer`.
+ */
+static size_t
+oneof_field_pack_to_buffer(const ProtobufCFieldDescriptor *field,
+ uint32_t oneof_case,
+ const void *member, ProtobufCBuffer *buffer)
+{
+ if (oneof_case != field->id) {
+ return 0;
+ }
+ if (field->type == PROTOBUF_C_TYPE_MESSAGE ||
+ field->type == PROTOBUF_C_TYPE_STRING)
+ {
+ const void *ptr = *(const void *const *) member;
+ if (ptr == NULL || ptr == field->default_value)
+ return 0;
+ }
+ return required_field_pack_to_buffer(field, member, buffer);
+}
+
+/**
+ * Pack an optional field to a buffer.
+ *
+ * \param field
+ * Field descriptor.
+ * \param has
+ * Whether the field is set.
+ * \param member
+ * The element to be packed.
+ * \param[out] buffer
+ * Virtual buffer to append data to.
+ * \return
+ * Number of bytes serialised to `buffer`.
+ */
+static size_t
+optional_field_pack_to_buffer(const ProtobufCFieldDescriptor *field,
+ const protobuf_c_boolean has,
+ const void *member, ProtobufCBuffer *buffer)
+{
+ if (field->type == PROTOBUF_C_TYPE_MESSAGE ||
+ field->type == PROTOBUF_C_TYPE_STRING)
+ {
+ const void *ptr = *(const void *const *) member;
+ if (ptr == NULL || ptr == field->default_value)
+ return 0;
+ } else {
+ if (!has)
+ return 0;
+ }
+ return required_field_pack_to_buffer(field, member, buffer);
+}
+
+/**
+ * Pack an unlabeled field to a buffer.
+ *
+ * \param field
+ * Field descriptor.
+ * \param member
+ * The element to be packed.
+ * \param[out] buffer
+ * Virtual buffer to append data to.
+ * \return
+ * Number of bytes serialised to `buffer`.
+ */
+static size_t
+unlabeled_field_pack_to_buffer(const ProtobufCFieldDescriptor *field,
+ const void *member, ProtobufCBuffer *buffer)
+{
+ if (field_is_zeroish(field, member))
+ return 0;
+ return required_field_pack_to_buffer(field, member, buffer);
+}
+
+/**
+ * Get the packed size of an array of same field type.
+ *
+ * \param field
+ * Field descriptor.
+ * \param count
+ * Number of elements of this type.
+ * \param array
+ * The elements to get the size of.
+ * \return
+ * Number of bytes required.
+ */
+static size_t
+get_packed_payload_length(const ProtobufCFieldDescriptor *field,
+ unsigned count, const void *array)
+{
+ unsigned rv = 0;
+ unsigned i;
+
+ switch (field->type) {
+ case PROTOBUF_C_TYPE_SFIXED32:
+ case PROTOBUF_C_TYPE_FIXED32:
+ case PROTOBUF_C_TYPE_FLOAT:
+ return count * 4;
+ case PROTOBUF_C_TYPE_SFIXED64:
+ case PROTOBUF_C_TYPE_FIXED64:
+ case PROTOBUF_C_TYPE_DOUBLE:
+ return count * 8;
+ case PROTOBUF_C_TYPE_ENUM:
+ case PROTOBUF_C_TYPE_INT32: {
+ const int32_t *arr = (const int32_t *) array;
+ for (i = 0; i < count; i++)
+ rv += int32_size(arr[i]);
+ break;
+ }
+ case PROTOBUF_C_TYPE_SINT32: {
+ const int32_t *arr = (const int32_t *) array;
+ for (i = 0; i < count; i++)
+ rv += sint32_size(arr[i]);
+ break;
+ }
+ case PROTOBUF_C_TYPE_UINT32: {
+ const uint32_t *arr = (const uint32_t *) array;
+ for (i = 0; i < count; i++)
+ rv += uint32_size(arr[i]);
+ break;
+ }
+ case PROTOBUF_C_TYPE_SINT64: {
+ const int64_t *arr = (const int64_t *) array;
+ for (i = 0; i < count; i++)
+ rv += sint64_size(arr[i]);
+ break;
+ }
+ case PROTOBUF_C_TYPE_INT64:
+ case PROTOBUF_C_TYPE_UINT64: {
+ const uint64_t *arr = (const uint64_t *) array;
+ for (i = 0; i < count; i++)
+ rv += uint64_size(arr[i]);
+ break;
+ }
+ case PROTOBUF_C_TYPE_BOOL:
+ return count;
+ default:
+ PROTOBUF_C__ASSERT_NOT_REACHED();
+ }
+ return rv;
+}
+
+/**
+ * Pack an array of same field type to a virtual buffer.
+ *
+ * \param field
+ * Field descriptor.
+ * \param count
+ * Number of elements of this type.
+ * \param array
+ * The elements to get the size of.
+ * \param[out] buffer
+ * Virtual buffer to append data to.
+ * \return
+ * Number of bytes packed.
+ */
+static size_t
+pack_buffer_packed_payload(const ProtobufCFieldDescriptor *field,
+ unsigned count, const void *array,
+ ProtobufCBuffer *buffer)
+{
+ uint8_t scratch[16];
+ size_t rv = 0;
+ unsigned i;
+
+ switch (field->type) {
+ case PROTOBUF_C_TYPE_SFIXED32:
+ case PROTOBUF_C_TYPE_FIXED32:
+ case PROTOBUF_C_TYPE_FLOAT:
+#if !defined(WORDS_BIGENDIAN)
+ rv = count * 4;
+ goto no_packing_needed;
+#else
+ for (i = 0; i < count; i++) {
+ unsigned len = fixed32_pack(((uint32_t *) array)[i], scratch);
+ buffer->append(buffer, len, scratch);
+ rv += len;
+ }
+ break;
+#endif
+ case PROTOBUF_C_TYPE_SFIXED64:
+ case PROTOBUF_C_TYPE_FIXED64:
+ case PROTOBUF_C_TYPE_DOUBLE:
+#if !defined(WORDS_BIGENDIAN)
+ rv = count * 8;
+ goto no_packing_needed;
+#else
+ for (i = 0; i < count; i++) {
+ unsigned len = fixed64_pack(((uint64_t *) array)[i], scratch);
+ buffer->append(buffer, len, scratch);
+ rv += len;
+ }
+ break;
+#endif
+ case PROTOBUF_C_TYPE_ENUM:
+ case PROTOBUF_C_TYPE_INT32:
+ for (i = 0; i < count; i++) {
+ unsigned len = int32_pack(((int32_t *) array)[i], scratch);
+ buffer->append(buffer, len, scratch);
+ rv += len;
+ }
+ break;
+ case PROTOBUF_C_TYPE_SINT32:
+ for (i = 0; i < count; i++) {
+ unsigned len = sint32_pack(((int32_t *) array)[i], scratch);
+ buffer->append(buffer, len, scratch);
+ rv += len;
+ }
+ break;
+ case PROTOBUF_C_TYPE_UINT32:
+ for (i = 0; i < count; i++) {
+ unsigned len = uint32_pack(((uint32_t *) array)[i], scratch);
+ buffer->append(buffer, len, scratch);
+ rv += len;
+ }
+ break;
+ case PROTOBUF_C_TYPE_SINT64:
+ for (i = 0; i < count; i++) {
+ unsigned len = sint64_pack(((int64_t *) array)[i], scratch);
+ buffer->append(buffer, len, scratch);
+ rv += len;
+ }
+ break;
+ case PROTOBUF_C_TYPE_INT64:
+ case PROTOBUF_C_TYPE_UINT64:
+ for (i = 0; i < count; i++) {
+ unsigned len = uint64_pack(((uint64_t *) array)[i], scratch);
+ buffer->append(buffer, len, scratch);
+ rv += len;
+ }
+ break;
+ case PROTOBUF_C_TYPE_BOOL:
+ for (i = 0; i < count; i++) {
+ unsigned len = boolean_pack(((protobuf_c_boolean *) array)[i], scratch);
+ buffer->append(buffer, len, scratch);
+ rv += len;
+ }
+ return count;
+ default:
+ PROTOBUF_C__ASSERT_NOT_REACHED();
+ }
+ return rv;
+
+#if !defined(WORDS_BIGENDIAN)
+no_packing_needed:
+ buffer->append(buffer, rv, array);
+ return rv;
+#endif
+}
+
+static size_t
+repeated_field_pack_to_buffer(const ProtobufCFieldDescriptor *field,
+ unsigned count, const void *member,
+ ProtobufCBuffer *buffer)
+{
+ char *array = *(char * const *) member;
+
+ if (count == 0)
+ return 0;
+ if (0 != (field->flags & PROTOBUF_C_FIELD_FLAG_PACKED)) {
+ uint8_t scratch[MAX_UINT64_ENCODED_SIZE * 2];
+ size_t rv = tag_pack(field->id, scratch);
+ size_t payload_len = get_packed_payload_length(field, count, array);
+ size_t tmp;
+
+ scratch[0] |= PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED;
+ rv += uint32_pack(payload_len, scratch + rv);
+ buffer->append(buffer, rv, scratch);
+ tmp = pack_buffer_packed_payload(field, count, array, buffer);
+ assert(tmp == payload_len);
+ return rv + payload_len;
+ } else {
+ size_t siz;
+ unsigned i;
+ /* CONSIDER: optimize this case a bit (by putting the loop inside the switch) */
+ unsigned rv = 0;
+
+ siz = sizeof_elt_in_repeated_array(field->type);
+ for (i = 0; i < count; i++) {
+ rv += required_field_pack_to_buffer(field, array, buffer);
+ array += siz;
+ }
+ return rv;
+ }
+}
+
+static size_t
+unknown_field_pack_to_buffer(const ProtobufCMessageUnknownField *field,
+ ProtobufCBuffer *buffer)
+{
+ uint8_t header[MAX_UINT64_ENCODED_SIZE];
+ size_t rv = tag_pack(field->tag, header);
+
+ header[0] |= field->wire_type;
+ buffer->append(buffer, rv, header);
+ buffer->append(buffer, field->len, field->data);
+ return rv + field->len;
+}
+
+/**@}*/
+
+size_t
+protobuf_c_message_pack_to_buffer(const ProtobufCMessage *message,
+ ProtobufCBuffer *buffer)
+{
+ unsigned i;
+ size_t rv = 0;
+
+ ASSERT_IS_MESSAGE(message);
+ for (i = 0; i < message->descriptor->n_fields; i++) {
+ const ProtobufCFieldDescriptor *field =
+ message->descriptor->fields + i;
+ const void *member =
+ ((const char *) message) + field->offset;
+ const void *qmember =
+ ((const char *) message) + field->quantifier_offset;
+
+ if (field->label == PROTOBUF_C_LABEL_REQUIRED) {
+ rv += required_field_pack_to_buffer(field, member, buffer);
+ } else if ((field->label == PROTOBUF_C_LABEL_OPTIONAL ||
+ field->label == PROTOBUF_C_LABEL_NONE) &&
+ (0 != (field->flags & PROTOBUF_C_FIELD_FLAG_ONEOF))) {
+ rv += oneof_field_pack_to_buffer(
+ field,
+ *(const uint32_t *) qmember,
+ member,
+ buffer
+ );
+ } else if (field->label == PROTOBUF_C_LABEL_OPTIONAL) {
+ rv += optional_field_pack_to_buffer(
+ field,
+ *(const protobuf_c_boolean *) qmember,
+ member,
+ buffer
+ );
+ } else if (field->label == PROTOBUF_C_LABEL_NONE) {
+ rv += unlabeled_field_pack_to_buffer(
+ field,
+ member,
+ buffer
+ );
+ } else {
+ rv += repeated_field_pack_to_buffer(
+ field,
+ *(const size_t *) qmember,
+ member,
+ buffer
+ );
+ }
+ }
+ for (i = 0; i < message->n_unknown_fields; i++)
+ rv += unknown_field_pack_to_buffer(&message->unknown_fields[i], buffer);
+
+ return rv;
+}
+
+/**
+ * \defgroup unpack unpacking implementation
+ *
+ * Routines mainly used by the unpacking functions.
+ *
+ * \ingroup internal
+ * @{
+ */
+
+static inline int
+int_range_lookup(unsigned n_ranges, const ProtobufCIntRange *ranges, int value)
+{
+ unsigned n;
+ unsigned start;
+
+ if (n_ranges == 0)
+ return -1;
+ start = 0;
+ n = n_ranges;
+ while (n > 1) {
+ unsigned mid = start + n / 2;
+
+ if (value < ranges[mid].start_value) {
+ n = mid - start;
+ } else if (value >= ranges[mid].start_value +
+ (int) (ranges[mid + 1].orig_index -
+ ranges[mid].orig_index))
+ {
+ unsigned new_start = mid + 1;
+ n = start + n - new_start;
+ start = new_start;
+ } else
+ return (value - ranges[mid].start_value) +
+ ranges[mid].orig_index;
+ }
+ if (n > 0) {
+ unsigned start_orig_index = ranges[start].orig_index;
+ unsigned range_size =
+ ranges[start + 1].orig_index - start_orig_index;
+
+ if (ranges[start].start_value <= value &&
+ value < (int) (ranges[start].start_value + range_size))
+ {
+ return (value - ranges[start].start_value) +
+ start_orig_index;
+ }
+ }
+ return -1;
+}
+
+static size_t
+parse_tag_and_wiretype(size_t len,
+ const uint8_t *data,
+ uint32_t *tag_out,
+ ProtobufCWireType *wiretype_out)
+{
+ unsigned max_rv = len > 5 ? 5 : len;
+ uint32_t tag = (data[0] & 0x7f) >> 3;
+ unsigned shift = 4;
+ unsigned rv;
+
+ *wiretype_out = data[0] & 7;
+ if ((data[0] & 0x80) == 0) {
+ *tag_out = tag;
+ return 1;
+ }
+ for (rv = 1; rv < max_rv; rv++) {
+ if (data[rv] & 0x80) {
+ tag |= (data[rv] & 0x7f) << shift;
+ shift += 7;
+ } else {
+ tag |= data[rv] << shift;
+ *tag_out = tag;
+ return rv + 1;
+ }
+ }
+ return 0; /* error: bad header */
+}
+
+/* sizeof(ScannedMember) must be <= (1UL<<BOUND_SIZEOF_SCANNED_MEMBER_LOG2) */
+#define BOUND_SIZEOF_SCANNED_MEMBER_LOG2 5
+typedef struct _ScannedMember ScannedMember;
+/** Field as it's being read. */
+struct _ScannedMember {
+ uint32_t tag; /**< Field tag. */
+ uint8_t wire_type; /**< Field type. */
+ uint8_t length_prefix_len; /**< Prefix length. */
+ const ProtobufCFieldDescriptor *field; /**< Field descriptor. */
+ size_t len; /**< Field length. */
+ const uint8_t *data; /**< Pointer to field data. */
+};
+
+static inline uint32_t
+scan_length_prefixed_data(size_t len, const uint8_t *data,
+ size_t *prefix_len_out)
+{
+ unsigned hdr_max = len < 5 ? len : 5;
+ unsigned hdr_len;
+ uint32_t val = 0;
+ unsigned i;
+ unsigned shift = 0;
+
+ for (i = 0; i < hdr_max; i++) {
+ val |= (data[i] & 0x7f) << shift;
+ shift += 7;
+ if ((data[i] & 0x80) == 0)
+ break;
+ }
+ if (i == hdr_max) {
+ PROTOBUF_C_UNPACK_ERROR("error parsing length for length-prefixed data");
+ return 0;
+ }
+ hdr_len = i + 1;
+ *prefix_len_out = hdr_len;
+ if (hdr_len + val > len) {
+ PROTOBUF_C_UNPACK_ERROR("data too short after length-prefix of %u", val);
+ return 0;
+ }
+ return hdr_len + val;
+}
+
+static size_t
+max_b128_numbers(size_t len, const uint8_t *data)
+{
+ size_t rv = 0;
+ while (len--)
+ if ((*data++ & 0x80) == 0)
+ ++rv;
+ return rv;
+}
+
+/**@}*/
+
+/**
+ * Merge earlier message into a latter message.
+ *
+ * For numeric types and strings, if the same value appears multiple
+ * times, the parser accepts the last value it sees. For embedded
+ * message fields, the parser merges multiple instances of the same
+ * field. That is, all singular scalar fields in the latter instance
+ * replace those in the former, singular embedded messages are merged,
+ * and repeated fields are concatenated.
+ *
+ * The earlier message should be freed after calling this function, as
+ * some of its fields may have been reused and changed to their default
+ * values during the merge.
+ */
+static protobuf_c_boolean
+merge_messages(ProtobufCMessage *earlier_msg,
+ ProtobufCMessage *latter_msg,
+ ProtobufCAllocator *allocator)
+{
+ unsigned i;
+ const ProtobufCFieldDescriptor *fields =
+ latter_msg->descriptor->fields;
+ for (i = 0; i < latter_msg->descriptor->n_fields; i++) {
+ if (fields[i].label == PROTOBUF_C_LABEL_REPEATED) {
+ size_t *n_earlier =
+ STRUCT_MEMBER_PTR(size_t, earlier_msg,
+ fields[i].quantifier_offset);
+ uint8_t **p_earlier =
+ STRUCT_MEMBER_PTR(uint8_t *, earlier_msg,
+ fields[i].offset);
+ size_t *n_latter =
+ STRUCT_MEMBER_PTR(size_t, latter_msg,
+ fields[i].quantifier_offset);
+ uint8_t **p_latter =
+ STRUCT_MEMBER_PTR(uint8_t *, latter_msg,
+ fields[i].offset);
+
+ if (*n_earlier > 0) {
+ if (*n_latter > 0) {
+ /* Concatenate the repeated field */
+ size_t el_size =
+ sizeof_elt_in_repeated_array(fields[i].type);
+ uint8_t *new_field;
+
+ new_field = do_alloc(allocator,
+ (*n_earlier + *n_latter) * el_size);
+ if (!new_field)
+ return FALSE;
+
+ memcpy(new_field, *p_earlier,
+ *n_earlier * el_size);
+ memcpy(new_field +
+ *n_earlier * el_size,
+ *p_latter,
+ *n_latter * el_size);
+
+ do_free(allocator, *p_latter);
+ do_free(allocator, *p_earlier);
+ *p_latter = new_field;
+ *n_latter = *n_earlier + *n_latter;
+ } else {
+ /* Zero copy the repeated field from the earlier message */
+ *n_latter = *n_earlier;
+ *p_latter = *p_earlier;
+ }
+ /* Make sure the field does not get double freed */
+ *n_earlier = 0;
+ *p_earlier = 0;
+ }
+ } else if (fields[i].label == PROTOBUF_C_LABEL_OPTIONAL ||
+ fields[i].label == PROTOBUF_C_LABEL_NONE) {
+ const ProtobufCFieldDescriptor *field;
+ uint32_t *earlier_case_p = STRUCT_MEMBER_PTR(uint32_t,
+ earlier_msg,
+ fields[i].
+ quantifier_offset);
+ uint32_t *latter_case_p = STRUCT_MEMBER_PTR(uint32_t,
+ latter_msg,
+ fields[i].
+ quantifier_offset);
+ protobuf_c_boolean need_to_merge = FALSE;
+ void *earlier_elem;
+ void *latter_elem;
+ const void *def_val;
+
+ if (fields[i].flags & PROTOBUF_C_FIELD_FLAG_ONEOF) {
+ if (*latter_case_p == 0) {
+ /* lookup correct oneof field */
+ int field_index =
+ int_range_lookup(
+ latter_msg->descriptor
+ ->n_field_ranges,
+ latter_msg->descriptor
+ ->field_ranges,
+ *earlier_case_p);
+ field = latter_msg->descriptor->fields +
+ field_index;
+ } else {
+ /* Oneof is present in the latter message, move on */
+ continue;
+ }
+ } else {
+ field = &fields[i];
+ }
+
+ earlier_elem = STRUCT_MEMBER_P(earlier_msg, field->offset);
+ latter_elem = STRUCT_MEMBER_P(latter_msg, field->offset);
+ def_val = field->default_value;
+
+ switch (field->type) {
+ case PROTOBUF_C_TYPE_MESSAGE: {
+ ProtobufCMessage *em = *(ProtobufCMessage **) earlier_elem;
+ ProtobufCMessage *lm = *(ProtobufCMessage **) latter_elem;
+ if (em != NULL) {
+ if (lm != NULL) {
+ if (!merge_messages(em, lm, allocator))
+ return FALSE;
+ /* Already merged */
+ need_to_merge = FALSE;
+ } else {
+ /* Zero copy the message */
+ need_to_merge = TRUE;
+ }
+ }
+ break;
+ }
+ case PROTOBUF_C_TYPE_BYTES: {
+ uint8_t *e_data =
+ ((ProtobufCBinaryData *) earlier_elem)->data;
+ uint8_t *l_data =
+ ((ProtobufCBinaryData *) latter_elem)->data;
+ const ProtobufCBinaryData *d_bd =
+ (ProtobufCBinaryData *) def_val;
+
+ need_to_merge =
+ (e_data != NULL &&
+ (d_bd == NULL ||
+ e_data != d_bd->data)) &&
+ (l_data == NULL ||
+ (d_bd != NULL &&
+ l_data == d_bd->data));
+ break;
+ }
+ case PROTOBUF_C_TYPE_STRING: {
+ char *e_str = *(char **) earlier_elem;
+ char *l_str = *(char **) latter_elem;
+ const char *d_str = def_val;
+
+ need_to_merge = e_str != d_str && l_str == d_str;
+ break;
+ }
+ default: {
+ /* Could be has field or case enum, the logic is
+ * equivalent, since 0 (FALSE) means not set for
+ * oneof */
+ need_to_merge = (*earlier_case_p != 0) &&
+ (*latter_case_p == 0);
+ break;
+ }
+ }
+
+ if (need_to_merge) {
+ size_t el_size =
+ sizeof_elt_in_repeated_array(field->type);
+ memcpy(latter_elem, earlier_elem, el_size);
+ /*
+ * Reset the element from the old message to 0
+ * to make sure earlier message deallocation
+ * doesn't corrupt zero-copied data in the new
+ * message, earlier message will be freed after
+ * this function is called anyway
+ */
+ memset(earlier_elem, 0, el_size);
+
+ if (field->quantifier_offset != 0) {
+ /* Set the has field or the case enum,
+ * if applicable */
+ *latter_case_p = *earlier_case_p;
+ *earlier_case_p = 0;
+ }
+ }
+ }
+ }
+ return TRUE;
+}
+
+/**
+ * Count packed elements.
+ *
+ * Given a raw slab of packed-repeated values, determine the number of
+ * elements. This function detects certain kinds of errors but not
+ * others; the remaining error checking is done by
+ * parse_packed_repeated_member().
+ */
+static protobuf_c_boolean
+count_packed_elements(ProtobufCType type,
+ size_t len, const uint8_t *data, size_t *count_out)
+{
+ switch (type) {
+ case PROTOBUF_C_TYPE_SFIXED32:
+ case PROTOBUF_C_TYPE_FIXED32:
+ case PROTOBUF_C_TYPE_FLOAT:
+ if (len % 4 != 0) {
+ PROTOBUF_C_UNPACK_ERROR("length must be a multiple of 4 for fixed-length 32-bit types");
+ return FALSE;
+ }
+ *count_out = len / 4;
+ return TRUE;
+ case PROTOBUF_C_TYPE_SFIXED64:
+ case PROTOBUF_C_TYPE_FIXED64:
+ case PROTOBUF_C_TYPE_DOUBLE:
+ if (len % 8 != 0) {
+ PROTOBUF_C_UNPACK_ERROR("length must be a multiple of 8 for fixed-length 64-bit types");
+ return FALSE;
+ }
+ *count_out = len / 8;
+ return TRUE;
+ case PROTOBUF_C_TYPE_ENUM:
+ case PROTOBUF_C_TYPE_INT32:
+ case PROTOBUF_C_TYPE_SINT32:
+ case PROTOBUF_C_TYPE_UINT32:
+ case PROTOBUF_C_TYPE_INT64:
+ case PROTOBUF_C_TYPE_SINT64:
+ case PROTOBUF_C_TYPE_UINT64:
+ *count_out = max_b128_numbers(len, data);
+ return TRUE;
+ case PROTOBUF_C_TYPE_BOOL:
+ *count_out = len;
+ return TRUE;
+ case PROTOBUF_C_TYPE_STRING:
+ case PROTOBUF_C_TYPE_BYTES:
+ case PROTOBUF_C_TYPE_MESSAGE:
+ default:
+ PROTOBUF_C_UNPACK_ERROR("bad protobuf-c type %u for packed-repeated", type);
+ return FALSE;
+ }
+}
+
+static inline uint32_t
+parse_uint32(unsigned len, const uint8_t *data)
+{
+ uint32_t rv = data[0] & 0x7f;
+ if (len > 1) {
+ rv |= ((uint32_t) (data[1] & 0x7f) << 7);
+ if (len > 2) {
+ rv |= ((uint32_t) (data[2] & 0x7f) << 14);
+ if (len > 3) {
+ rv |= ((uint32_t) (data[3] & 0x7f) << 21);
+ if (len > 4)
+ rv |= ((uint32_t) (data[4]) << 28);
+ }
+ }
+ }
+ return rv;
+}
+
+static inline uint32_t
+parse_int32(unsigned len, const uint8_t *data)
+{
+ return parse_uint32(len, data);
+}
+
+static inline int32_t
+unzigzag32(uint32_t v)
+{
+ if (v & 1)
+ return -(v >> 1) - 1;
+ else
+ return v >> 1;
+}
+
+static inline uint32_t
+parse_fixed_uint32(const uint8_t *data)
+{
+#if !defined(WORDS_BIGENDIAN)
+ uint32_t t;
+ memcpy(&t, data, 4);
+ return t;
+#else
+ return data[0] |
+ ((uint32_t) (data[1]) << 8) |
+ ((uint32_t) (data[2]) << 16) |
+ ((uint32_t) (data[3]) << 24);
+#endif
+}
+
+static uint64_t
+parse_uint64(unsigned len, const uint8_t *data)
+{
+ unsigned shift, i;
+ uint64_t rv;
+
+ if (len < 5)
+ return parse_uint32(len, data);
+ rv = ((uint64_t) (data[0] & 0x7f)) |
+ ((uint64_t) (data[1] & 0x7f) << 7) |
+ ((uint64_t) (data[2] & 0x7f) << 14) |
+ ((uint64_t) (data[3] & 0x7f) << 21);
+ shift = 28;
+ for (i = 4; i < len; i++) {
+ rv |= (((uint64_t) (data[i] & 0x7f)) << shift);
+ shift += 7;
+ }
+ return rv;
+}
+
+static inline int64_t
+unzigzag64(uint64_t v)
+{
+ if (v & 1)
+ return -(v >> 1) - 1;
+ else
+ return v >> 1;
+}
+
+static inline uint64_t
+parse_fixed_uint64(const uint8_t *data)
+{
+#if !defined(WORDS_BIGENDIAN)
+ uint64_t t;
+ memcpy(&t, data, 8);
+ return t;
+#else
+ return (uint64_t) parse_fixed_uint32(data) |
+ (((uint64_t) parse_fixed_uint32(data + 4)) << 32);
+#endif
+}
+
+static protobuf_c_boolean
+parse_boolean(unsigned len, const uint8_t *data)
+{
+ unsigned i;
+ for (i = 0; i < len; i++)
+ if (data[i] & 0x7f)
+ return TRUE;
+ return FALSE;
+}
+
+static protobuf_c_boolean
+parse_required_member(ScannedMember *scanned_member,
+ void *member,
+ ProtobufCAllocator *allocator,
+ protobuf_c_boolean maybe_clear)
+{
+ unsigned len = scanned_member->len;
+ const uint8_t *data = scanned_member->data;
+ ProtobufCWireType wire_type = scanned_member->wire_type;
+
+ switch (scanned_member->field->type) {
+ case PROTOBUF_C_TYPE_ENUM:
+ case PROTOBUF_C_TYPE_INT32:
+ if (wire_type != PROTOBUF_C_WIRE_TYPE_VARINT)
+ return FALSE;
+ *(int32_t *) member = parse_int32(len, data);
+ return TRUE;
+ case PROTOBUF_C_TYPE_UINT32:
+ if (wire_type != PROTOBUF_C_WIRE_TYPE_VARINT)
+ return FALSE;
+ *(uint32_t *) member = parse_uint32(len, data);
+ return TRUE;
+ case PROTOBUF_C_TYPE_SINT32:
+ if (wire_type != PROTOBUF_C_WIRE_TYPE_VARINT)
+ return FALSE;
+ *(int32_t *) member = unzigzag32(parse_uint32(len, data));
+ return TRUE;
+ case PROTOBUF_C_TYPE_SFIXED32:
+ case PROTOBUF_C_TYPE_FIXED32:
+ case PROTOBUF_C_TYPE_FLOAT:
+ if (wire_type != PROTOBUF_C_WIRE_TYPE_32BIT)
+ return FALSE;
+ *(uint32_t *) member = parse_fixed_uint32(data);
+ return TRUE;
+ case PROTOBUF_C_TYPE_INT64:
+ case PROTOBUF_C_TYPE_UINT64:
+ if (wire_type != PROTOBUF_C_WIRE_TYPE_VARINT)
+ return FALSE;
+ *(uint64_t *) member = parse_uint64(len, data);
+ return TRUE;
+ case PROTOBUF_C_TYPE_SINT64:
+ if (wire_type != PROTOBUF_C_WIRE_TYPE_VARINT)
+ return FALSE;
+ *(int64_t *) member = unzigzag64(parse_uint64(len, data));
+ return TRUE;
+ case PROTOBUF_C_TYPE_SFIXED64:
+ case PROTOBUF_C_TYPE_FIXED64:
+ case PROTOBUF_C_TYPE_DOUBLE:
+ if (wire_type != PROTOBUF_C_WIRE_TYPE_64BIT)
+ return FALSE;
+ *(uint64_t *) member = parse_fixed_uint64(data);
+ return TRUE;
+ case PROTOBUF_C_TYPE_BOOL:
+ *(protobuf_c_boolean *) member = parse_boolean(len, data);
+ return TRUE;
+ case PROTOBUF_C_TYPE_STRING: {
+ char **pstr = member;
+ unsigned pref_len = scanned_member->length_prefix_len;
+
+ if (wire_type != PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED)
+ return FALSE;
+
+ if (maybe_clear && *pstr != NULL) {
+ const char *def = scanned_member->field->default_value;
+ if (*pstr != NULL && *pstr != def)
+ do_free(allocator, *pstr);
+ }
+ *pstr = do_alloc(allocator, len - pref_len + 1);
+ if (*pstr == NULL)
+ return FALSE;
+ memcpy(*pstr, data + pref_len, len - pref_len);
+ (*pstr)[len - pref_len] = 0;
+ return TRUE;
+ }
+ case PROTOBUF_C_TYPE_BYTES: {
+ ProtobufCBinaryData *bd = member;
+ const ProtobufCBinaryData *def_bd;
+ unsigned pref_len = scanned_member->length_prefix_len;
+
+ if (wire_type != PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED)
+ return FALSE;
+
+ def_bd = scanned_member->field->default_value;
+ if (maybe_clear &&
+ bd->data != NULL &&
+ (def_bd == NULL || bd->data != def_bd->data))
+ {
+ do_free(allocator, bd->data);
+ }
+ if (len - pref_len > 0) {
+ bd->data = do_alloc(allocator, len - pref_len);
+ if (bd->data == NULL)
+ return FALSE;
+ memcpy(bd->data, data + pref_len, len - pref_len);
+ } else {
+ bd->data = NULL;
+ }
+ bd->len = len - pref_len;
+ return TRUE;
+ }
+ case PROTOBUF_C_TYPE_MESSAGE: {
+ ProtobufCMessage **pmessage = member;
+ ProtobufCMessage *subm;
+ const ProtobufCMessage *def_mess;
+ protobuf_c_boolean merge_successful = TRUE;
+ unsigned pref_len = scanned_member->length_prefix_len;
+
+ if (wire_type != PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED)
+ return FALSE;
+
+ def_mess = scanned_member->field->default_value;
+ subm = protobuf_c_message_unpack(scanned_member->field->descriptor,
+ allocator,
+ len - pref_len,
+ data + pref_len);
+
+ if (maybe_clear &&
+ *pmessage != NULL &&
+ *pmessage != def_mess)
+ {
+ if (subm != NULL)
+ merge_successful = merge_messages(*pmessage, subm, allocator);
+ /* Delete the previous message */
+ protobuf_c_message_free_unpacked(*pmessage, allocator);
+ }
+ *pmessage = subm;
+ if (subm == NULL || !merge_successful)
+ return FALSE;
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+static protobuf_c_boolean
+parse_oneof_member (ScannedMember *scanned_member,
+ void *member,
+ ProtobufCMessage *message,
+ ProtobufCAllocator *allocator)
+{
+ uint32_t *oneof_case = STRUCT_MEMBER_PTR(uint32_t, message,
+ scanned_member->field->quantifier_offset);
+
+ /* If we have already parsed a member of this oneof, free it. */
+ if (*oneof_case != 0) {
+ /* lookup field */
+ int field_index =
+ int_range_lookup(message->descriptor->n_field_ranges,
+ message->descriptor->field_ranges,
+ *oneof_case);
+ const ProtobufCFieldDescriptor *old_field =
+ message->descriptor->fields + field_index;
+ size_t el_size = sizeof_elt_in_repeated_array(old_field->type);
+
+ switch (old_field->type) {
+ case PROTOBUF_C_TYPE_STRING: {
+ char **pstr = member;
+ const char *def = old_field->default_value;
+ if (*pstr != NULL && *pstr != def)
+ do_free(allocator, *pstr);
+ break;
+ }
+ case PROTOBUF_C_TYPE_BYTES: {
+ ProtobufCBinaryData *bd = member;
+ const ProtobufCBinaryData *def_bd = old_field->default_value;
+ if (bd->data != NULL &&
+ (def_bd == NULL || bd->data != def_bd->data))
+ {
+ do_free(allocator, bd->data);
+ }
+ break;
+ }
+ case PROTOBUF_C_TYPE_MESSAGE: {
+ ProtobufCMessage **pmessage = member;
+ const ProtobufCMessage *def_mess = old_field->default_value;
+ if (*pmessage != NULL && *pmessage != def_mess)
+ protobuf_c_message_free_unpacked(*pmessage, allocator);
+ break;
+ }
+ default:
+ break;
+ }
+
+ memset (member, 0, el_size);
+ }
+ if (!parse_required_member (scanned_member, member, allocator, TRUE))
+ return FALSE;
+
+ *oneof_case = scanned_member->tag;
+ return TRUE;
+}
+
+
+static protobuf_c_boolean
+parse_optional_member(ScannedMember *scanned_member,
+ void *member,
+ ProtobufCMessage *message,
+ ProtobufCAllocator *allocator)
+{
+ if (!parse_required_member(scanned_member, member, allocator, TRUE))
+ return FALSE;
+ if (scanned_member->field->quantifier_offset != 0)
+ STRUCT_MEMBER(protobuf_c_boolean,
+ message,
+ scanned_member->field->quantifier_offset) = TRUE;
+ return TRUE;
+}
+
+static protobuf_c_boolean
+parse_repeated_member(ScannedMember *scanned_member,
+ void *member,
+ ProtobufCMessage *message,
+ ProtobufCAllocator *allocator)
+{
+ const ProtobufCFieldDescriptor *field = scanned_member->field;
+ size_t *p_n = STRUCT_MEMBER_PTR(size_t, message, field->quantifier_offset);
+ size_t siz = sizeof_elt_in_repeated_array(field->type);
+ char *array = *(char **) member;
+
+ if (!parse_required_member(scanned_member, array + siz * (*p_n),
+ allocator, FALSE))
+ {
+ return FALSE;
+ }
+ *p_n += 1;
+ return TRUE;
+}
+
+static unsigned
+scan_varint(unsigned len, const uint8_t *data)
+{
+ unsigned i;
+ if (len > 10)
+ len = 10;
+ for (i = 0; i < len; i++)
+ if ((data[i] & 0x80) == 0)
+ break;
+ if (i == len)
+ return 0;
+ return i + 1;
+}
+
+static protobuf_c_boolean
+parse_packed_repeated_member(ScannedMember *scanned_member,
+ void *member,
+ ProtobufCMessage *message)
+{
+ const ProtobufCFieldDescriptor *field = scanned_member->field;
+ size_t *p_n = STRUCT_MEMBER_PTR(size_t, message, field->quantifier_offset);
+ size_t siz = sizeof_elt_in_repeated_array(field->type);
+ void *array = *(char **) member + siz * (*p_n);
+ const uint8_t *at = scanned_member->data + scanned_member->length_prefix_len;
+ size_t rem = scanned_member->len - scanned_member->length_prefix_len;
+ size_t count = 0;
+ unsigned i;
+
+ switch (field->type) {
+ case PROTOBUF_C_TYPE_SFIXED32:
+ case PROTOBUF_C_TYPE_FIXED32:
+ case PROTOBUF_C_TYPE_FLOAT:
+ count = (scanned_member->len - scanned_member->length_prefix_len) / 4;
+#if !defined(WORDS_BIGENDIAN)
+ goto no_unpacking_needed;
+#else
+ for (i = 0; i < count; i++) {
+ ((uint32_t *) array)[i] = parse_fixed_uint32(at);
+ at += 4;
+ }
+ break;
+#endif
+ case PROTOBUF_C_TYPE_SFIXED64:
+ case PROTOBUF_C_TYPE_FIXED64:
+ case PROTOBUF_C_TYPE_DOUBLE:
+ count = (scanned_member->len - scanned_member->length_prefix_len) / 8;
+#if !defined(WORDS_BIGENDIAN)
+ goto no_unpacking_needed;
+#else
+ for (i = 0; i < count; i++) {
+ ((uint64_t *) array)[i] = parse_fixed_uint64(at);
+ at += 8;
+ }
+ break;
+#endif
+ case PROTOBUF_C_TYPE_ENUM:
+ case PROTOBUF_C_TYPE_INT32:
+ while (rem > 0) {
+ unsigned s = scan_varint(rem, at);
+ if (s == 0) {
+ PROTOBUF_C_UNPACK_ERROR("bad packed-repeated int32 value");
+ return FALSE;
+ }
+ ((int32_t *) array)[count++] = parse_int32(s, at);
+ at += s;
+ rem -= s;
+ }
+ break;
+ case PROTOBUF_C_TYPE_SINT32:
+ while (rem > 0) {
+ unsigned s = scan_varint(rem, at);
+ if (s == 0) {
+ PROTOBUF_C_UNPACK_ERROR("bad packed-repeated sint32 value");
+ return FALSE;
+ }
+ ((int32_t *) array)[count++] = unzigzag32(parse_uint32(s, at));
+ at += s;
+ rem -= s;
+ }
+ break;
+ case PROTOBUF_C_TYPE_UINT32:
+ while (rem > 0) {
+ unsigned s = scan_varint(rem, at);
+ if (s == 0) {
+ PROTOBUF_C_UNPACK_ERROR("bad packed-repeated enum or uint32 value");
+ return FALSE;
+ }
+ ((uint32_t *) array)[count++] = parse_uint32(s, at);
+ at += s;
+ rem -= s;
+ }
+ break;
+
+ case PROTOBUF_C_TYPE_SINT64:
+ while (rem > 0) {
+ unsigned s = scan_varint(rem, at);
+ if (s == 0) {
+ PROTOBUF_C_UNPACK_ERROR("bad packed-repeated sint64 value");
+ return FALSE;
+ }
+ ((int64_t *) array)[count++] = unzigzag64(parse_uint64(s, at));
+ at += s;
+ rem -= s;
+ }
+ break;
+ case PROTOBUF_C_TYPE_INT64:
+ case PROTOBUF_C_TYPE_UINT64:
+ while (rem > 0) {
+ unsigned s = scan_varint(rem, at);
+ if (s == 0) {
+ PROTOBUF_C_UNPACK_ERROR("bad packed-repeated int64/uint64 value");
+ return FALSE;
+ }
+ ((int64_t *) array)[count++] = parse_uint64(s, at);
+ at += s;
+ rem -= s;
+ }
+ break;
+ case PROTOBUF_C_TYPE_BOOL:
+ count = rem;
+ for (i = 0; i < count; i++) {
+ if (at[i] > 1) {
+ PROTOBUF_C_UNPACK_ERROR("bad packed-repeated boolean value");
+ return FALSE;
+ }
+ ((protobuf_c_boolean *) array)[i] = at[i];
+ }
+ break;
+ default:
+ PROTOBUF_C__ASSERT_NOT_REACHED();
+ }
+ *p_n += count;
+ return TRUE;
+
+#if !defined(WORDS_BIGENDIAN)
+no_unpacking_needed:
+ memcpy(array, at, count * siz);
+ *p_n += count;
+ return TRUE;
+#endif
+}
+
+static protobuf_c_boolean
+is_packable_type(ProtobufCType type)
+{
+ return
+ type != PROTOBUF_C_TYPE_STRING &&
+ type != PROTOBUF_C_TYPE_BYTES &&
+ type != PROTOBUF_C_TYPE_MESSAGE;
+}
+
+static protobuf_c_boolean
+parse_member(ScannedMember *scanned_member,
+ ProtobufCMessage *message,
+ ProtobufCAllocator *allocator)
+{
+ const ProtobufCFieldDescriptor *field = scanned_member->field;
+ void *member;
+
+ if (field == NULL) {
+ ProtobufCMessageUnknownField *ufield =
+ message->unknown_fields +
+ (message->n_unknown_fields++);
+ ufield->tag = scanned_member->tag;
+ ufield->wire_type = scanned_member->wire_type;
+ ufield->len = scanned_member->len;
+ ufield->data = do_alloc(allocator, scanned_member->len);
+ if (ufield->data == NULL)
+ return FALSE;
+ memcpy(ufield->data, scanned_member->data, ufield->len);
+ return TRUE;
+ }
+ member = (char *) message + field->offset;
+ switch (field->label) {
+ case PROTOBUF_C_LABEL_REQUIRED:
+ return parse_required_member(scanned_member, member,
+ allocator, TRUE);
+ case PROTOBUF_C_LABEL_OPTIONAL:
+ case PROTOBUF_C_LABEL_NONE:
+ if (0 != (field->flags & PROTOBUF_C_FIELD_FLAG_ONEOF)) {
+ return parse_oneof_member(scanned_member, member,
+ message, allocator);
+ } else {
+ return parse_optional_member(scanned_member, member,
+ message, allocator);
+ }
+ case PROTOBUF_C_LABEL_REPEATED:
+ if (scanned_member->wire_type ==
+ PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED &&
+ (0 != (field->flags & PROTOBUF_C_FIELD_FLAG_PACKED) ||
+ is_packable_type(field->type)))
+ {
+ return parse_packed_repeated_member(scanned_member,
+ member, message);
+ } else {
+ return parse_repeated_member(scanned_member,
+ member, message,
+ allocator);
+ }
+ }
+ PROTOBUF_C__ASSERT_NOT_REACHED();
+ return 0;
+}
+
+/**
+ * Initialise messages generated by old code.
+ *
+ * This function is used if desc->message_init == NULL (which occurs
+ * for old code, and which would be useful to support allocating
+ * descriptors dynamically).
+ */
+static void
+message_init_generic(const ProtobufCMessageDescriptor *desc,
+ ProtobufCMessage *message)
+{
+ unsigned i;
+
+ memset(message, 0, desc->sizeof_message);
+ message->descriptor = desc;
+ for (i = 0; i < desc->n_fields; i++) {
+ if (desc->fields[i].default_value != NULL &&
+ desc->fields[i].label != PROTOBUF_C_LABEL_REPEATED)
+ {
+ void *field =
+ STRUCT_MEMBER_P(message, desc->fields[i].offset);
+ const void *dv = desc->fields[i].default_value;
+
+ switch (desc->fields[i].type) {
+ case PROTOBUF_C_TYPE_INT32:
+ case PROTOBUF_C_TYPE_SINT32:
+ case PROTOBUF_C_TYPE_SFIXED32:
+ case PROTOBUF_C_TYPE_UINT32:
+ case PROTOBUF_C_TYPE_FIXED32:
+ case PROTOBUF_C_TYPE_FLOAT:
+ case PROTOBUF_C_TYPE_ENUM:
+ memcpy(field, dv, 4);
+ break;
+ case PROTOBUF_C_TYPE_INT64:
+ case PROTOBUF_C_TYPE_SINT64:
+ case PROTOBUF_C_TYPE_SFIXED64:
+ case PROTOBUF_C_TYPE_UINT64:
+ case PROTOBUF_C_TYPE_FIXED64:
+ case PROTOBUF_C_TYPE_DOUBLE:
+ memcpy(field, dv, 8);
+ break;
+ case PROTOBUF_C_TYPE_BOOL:
+ memcpy(field, dv, sizeof(protobuf_c_boolean));
+ break;
+ case PROTOBUF_C_TYPE_BYTES:
+ memcpy(field, dv, sizeof(ProtobufCBinaryData));
+ break;
+
+ case PROTOBUF_C_TYPE_STRING:
+ case PROTOBUF_C_TYPE_MESSAGE:
+ /*
+ * The next line essentially implements a cast
+ * from const, which is totally unavoidable.
+ */
+ *(const void **) field = dv;
+ break;
+ }
+ }
+ }
+}
+
+/**@}*/
+
+/*
+ * ScannedMember slabs (an unpacking implementation detail). Before doing real
+ * unpacking, we first scan through the elements to see how many there are (for
+ * repeated fields), and which field to use (for non-repeated fields given
+ * twice).
+ *
+ * In order to avoid allocations for small messages, we keep a stack-allocated
+ * slab of ScannedMembers of size FIRST_SCANNED_MEMBER_SLAB_SIZE (16). After we
+ * fill that up, we allocate each slab twice as large as the previous one.
+ */
+#define FIRST_SCANNED_MEMBER_SLAB_SIZE_LOG2 4
+
+/*
+ * The number of slabs, including the stack-allocated ones; choose the number so
+ * that we would overflow if we needed a slab larger than provided.
+ */
+#define MAX_SCANNED_MEMBER_SLAB \
+ (sizeof(unsigned int)*8 - 1 \
+ - BOUND_SIZEOF_SCANNED_MEMBER_LOG2 \
+ - FIRST_SCANNED_MEMBER_SLAB_SIZE_LOG2)
+
+#define REQUIRED_FIELD_BITMAP_SET(index) \
+ (required_fields_bitmap[(index)/8] |= (1UL<<((index)%8)))
+
+#define REQUIRED_FIELD_BITMAP_IS_SET(index) \
+ (required_fields_bitmap[(index)/8] & (1UL<<((index)%8)))
+
+ProtobufCMessage *
+protobuf_c_message_unpack(const ProtobufCMessageDescriptor *desc,
+ ProtobufCAllocator *allocator,
+ size_t len, const uint8_t *data)
+{
+ ProtobufCMessage *rv;
+ size_t rem = len;
+ const uint8_t *at = data;
+ const ProtobufCFieldDescriptor *last_field = desc->fields + 0;
+ ScannedMember first_member_slab[1UL <<
+ FIRST_SCANNED_MEMBER_SLAB_SIZE_LOG2];
+
+ /*
+ * scanned_member_slabs[i] is an array of arrays of ScannedMember.
+ * The first slab (scanned_member_slabs[0] is just a pointer to
+ * first_member_slab), above. All subsequent slabs will be allocated
+ * using the allocator.
+ */
+ ScannedMember *scanned_member_slabs[MAX_SCANNED_MEMBER_SLAB + 1];
+ unsigned which_slab = 0; /* the slab we are currently populating */
+ unsigned in_slab_index = 0; /* number of members in the slab */
+ size_t n_unknown = 0;
+ unsigned f;
+ unsigned j;
+ unsigned i_slab;
+ unsigned last_field_index = 0;
+ unsigned required_fields_bitmap_len;
+ unsigned char required_fields_bitmap_stack[16];
+ unsigned char *required_fields_bitmap = required_fields_bitmap_stack;
+ protobuf_c_boolean required_fields_bitmap_alloced = FALSE;
+
+ ASSERT_IS_MESSAGE_DESCRIPTOR(desc);
+
+ if (allocator == NULL)
+ allocator = &protobuf_c__allocator;
+
+ rv = do_alloc(allocator, desc->sizeof_message);
+ if (!rv)
+ return (NULL);
+ scanned_member_slabs[0] = first_member_slab;
+
+ required_fields_bitmap_len = (desc->n_fields + 7) / 8;
+ if (required_fields_bitmap_len > sizeof(required_fields_bitmap_stack)) {
+ required_fields_bitmap = do_alloc(allocator, required_fields_bitmap_len);
+ if (!required_fields_bitmap) {
+ do_free(allocator, rv);
+ return (NULL);
+ }
+ required_fields_bitmap_alloced = TRUE;
+ }
+ memset(required_fields_bitmap, 0, required_fields_bitmap_len);
+
+ /*
+ * Generated code always defines "message_init". However, we provide a
+ * fallback for (1) users of old protobuf-c generated-code that do not
+ * provide the function, and (2) descriptors constructed from some other
+ * source (most likely, direct construction from the .proto file).
+ */
+ if (desc->message_init != NULL)
+ protobuf_c_message_init(desc, rv);
+ else
+ message_init_generic(desc, rv);
+
+ while (rem > 0) {
+ uint32_t tag;
+ ProtobufCWireType wire_type;
+ size_t used = parse_tag_and_wiretype(rem, at, &tag, &wire_type);
+ const ProtobufCFieldDescriptor *field;
+ ScannedMember tmp;
+
+ if (used == 0) {
+ PROTOBUF_C_UNPACK_ERROR("error parsing tag/wiretype at offset %u",
+ (unsigned) (at - data));
+ goto error_cleanup_during_scan;
+ }
+ /*
+ * \todo Consider optimizing for field[1].id == tag, if field[1]
+ * exists!
+ */
+ if (last_field == NULL || last_field->id != tag) {
+ /* lookup field */
+ int field_index =
+ int_range_lookup(desc->n_field_ranges,
+ desc->field_ranges,
+ tag);
+ if (field_index < 0) {
+ field = NULL;
+ n_unknown++;
+ } else {
+ field = desc->fields + field_index;
+ last_field = field;
+ last_field_index = field_index;
+ }
+ } else {
+ field = last_field;
+ }
+
+ if (field != NULL && field->label == PROTOBUF_C_LABEL_REQUIRED)
+ REQUIRED_FIELD_BITMAP_SET(last_field_index);
+
+ at += used;
+ rem -= used;
+ tmp.tag = tag;
+ tmp.wire_type = wire_type;
+ tmp.field = field;
+ tmp.data = at;
+ tmp.length_prefix_len = 0;
+
+ switch (wire_type) {
+ case PROTOBUF_C_WIRE_TYPE_VARINT: {
+ unsigned max_len = rem < 10 ? rem : 10;
+ unsigned i;
+
+ for (i = 0; i < max_len; i++)
+ if ((at[i] & 0x80) == 0)
+ break;
+ if (i == max_len) {
+ PROTOBUF_C_UNPACK_ERROR("unterminated varint at offset %u",
+ (unsigned) (at - data));
+ goto error_cleanup_during_scan;
+ }
+ tmp.len = i + 1;
+ break;
+ }
+ case PROTOBUF_C_WIRE_TYPE_64BIT:
+ if (rem < 8) {
+ PROTOBUF_C_UNPACK_ERROR("too short after 64bit wiretype at offset %u",
+ (unsigned) (at - data));
+ goto error_cleanup_during_scan;
+ }
+ tmp.len = 8;
+ break;
+ case PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED: {
+ size_t pref_len;
+
+ tmp.len = scan_length_prefixed_data(rem, at, &pref_len);
+ if (tmp.len == 0) {
+ /* NOTE: scan_length_prefixed_data calls UNPACK_ERROR */
+ goto error_cleanup_during_scan;
+ }
+ tmp.length_prefix_len = pref_len;
+ break;
+ }
+ case PROTOBUF_C_WIRE_TYPE_32BIT:
+ if (rem < 4) {
+ PROTOBUF_C_UNPACK_ERROR("too short after 32bit wiretype at offset %u",
+ (unsigned) (at - data));
+ goto error_cleanup_during_scan;
+ }
+ tmp.len = 4;
+ break;
+ default:
+ PROTOBUF_C_UNPACK_ERROR("unsupported tag %u at offset %u",
+ wire_type, (unsigned) (at - data));
+ goto error_cleanup_during_scan;
+ }
+
+ if (in_slab_index == (1UL <<
+ (which_slab + FIRST_SCANNED_MEMBER_SLAB_SIZE_LOG2)))
+ {
+ size_t size;
+
+ in_slab_index = 0;
+ if (which_slab == MAX_SCANNED_MEMBER_SLAB) {
+ PROTOBUF_C_UNPACK_ERROR("too many fields");
+ goto error_cleanup_during_scan;
+ }
+ which_slab++;
+ size = sizeof(ScannedMember)
+ << (which_slab + FIRST_SCANNED_MEMBER_SLAB_SIZE_LOG2);
+ scanned_member_slabs[which_slab] = do_alloc(allocator, size);
+ if (scanned_member_slabs[which_slab] == NULL)
+ goto error_cleanup_during_scan;
+ }
+ scanned_member_slabs[which_slab][in_slab_index++] = tmp;
+
+ if (field != NULL && field->label == PROTOBUF_C_LABEL_REPEATED) {
+ size_t *n = STRUCT_MEMBER_PTR(size_t, rv,
+ field->quantifier_offset);
+ if (wire_type == PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED &&
+ (0 != (field->flags & PROTOBUF_C_FIELD_FLAG_PACKED) ||
+ is_packable_type(field->type)))
+ {
+ size_t count;
+ if (!count_packed_elements(field->type,
+ tmp.len -
+ tmp.length_prefix_len,
+ tmp.data +
+ tmp.length_prefix_len,
+ &count))
+ {
+ PROTOBUF_C_UNPACK_ERROR("counting packed elements");
+ goto error_cleanup_during_scan;
+ }
+ *n += count;
+ } else {
+ *n += 1;
+ }
+ }
+
+ at += tmp.len;
+ rem -= tmp.len;
+ }
+
+ /* allocate space for repeated fields, also check that all required fields have been set */
+ for (f = 0; f < desc->n_fields; f++) {
+ const ProtobufCFieldDescriptor *field = desc->fields + f;
+ if (field->label == PROTOBUF_C_LABEL_REPEATED) {
+ size_t siz =
+ sizeof_elt_in_repeated_array(field->type);
+ size_t *n_ptr =
+ STRUCT_MEMBER_PTR(size_t, rv,
+ field->quantifier_offset);
+ if (*n_ptr != 0) {
+ unsigned n = *n_ptr;
+ void *a;
+ *n_ptr = 0;
+ assert(rv->descriptor != NULL);
+#define CLEAR_REMAINING_N_PTRS() \
+ for(f++;f < desc->n_fields; f++) \
+ { \
+ field = desc->fields + f; \
+ if (field->label == PROTOBUF_C_LABEL_REPEATED) \
+ STRUCT_MEMBER (size_t, rv, field->quantifier_offset) = 0; \
+ }
+ a = do_alloc(allocator, siz * n);
+ if (!a) {
+ CLEAR_REMAINING_N_PTRS();
+ goto error_cleanup;
+ }
+ STRUCT_MEMBER(void *, rv, field->offset) = a;
+ }
+ } else if (field->label == PROTOBUF_C_LABEL_REQUIRED) {
+ if (field->default_value == NULL &&
+ !REQUIRED_FIELD_BITMAP_IS_SET(f))
+ {
+ CLEAR_REMAINING_N_PTRS();
+ PROTOBUF_C_UNPACK_ERROR("message '%s': missing required field '%s'",
+ desc->name, field->name);
+ goto error_cleanup;
+ }
+ }
+ }
+#undef CLEAR_REMAINING_N_PTRS
+
+ /* allocate space for unknown fields */
+ if (n_unknown) {
+ rv->unknown_fields = do_alloc(allocator,
+ n_unknown * sizeof(ProtobufCMessageUnknownField));
+ if (rv->unknown_fields == NULL)
+ goto error_cleanup;
+ }
+
+ /* do real parsing */
+ for (i_slab = 0; i_slab <= which_slab; i_slab++) {
+ unsigned max = (i_slab == which_slab) ?
+ in_slab_index : (1UL << (i_slab + 4));
+ ScannedMember *slab = scanned_member_slabs[i_slab];
+
+ for (j = 0; j < max; j++) {
+ if (!parse_member(slab + j, rv, allocator)) {
+ PROTOBUF_C_UNPACK_ERROR("error parsing member %s of %s",
+ slab->field ? slab->field->name : "*unknown-field*",
+ desc->name);
+ goto error_cleanup;
+ }
+ }
+ }
+
+ /* cleanup */
+ for (j = 1; j <= which_slab; j++)
+ do_free(allocator, scanned_member_slabs[j]);
+ if (required_fields_bitmap_alloced)
+ do_free(allocator, required_fields_bitmap);
+ return rv;
+
+error_cleanup:
+ protobuf_c_message_free_unpacked(rv, allocator);
+ for (j = 1; j <= which_slab; j++)
+ do_free(allocator, scanned_member_slabs[j]);
+ if (required_fields_bitmap_alloced)
+ do_free(allocator, required_fields_bitmap);
+ return NULL;
+
+error_cleanup_during_scan:
+ do_free(allocator, rv);
+ for (j = 1; j <= which_slab; j++)
+ do_free(allocator, scanned_member_slabs[j]);
+ if (required_fields_bitmap_alloced)
+ do_free(allocator, required_fields_bitmap);
+ return NULL;
+}
+
+void
+protobuf_c_message_free_unpacked(ProtobufCMessage *message,
+ ProtobufCAllocator *allocator)
+{
+ const ProtobufCMessageDescriptor *desc;
+ unsigned f;
+
+ if (message == NULL)
+ return;
+
+ desc = message->descriptor;
+
+ ASSERT_IS_MESSAGE(message);
+
+ if (allocator == NULL)
+ allocator = &protobuf_c__allocator;
+ message->descriptor = NULL;
+ for (f = 0; f < desc->n_fields; f++) {
+ if (0 != (desc->fields[f].flags & PROTOBUF_C_FIELD_FLAG_ONEOF) &&
+ desc->fields[f].id !=
+ STRUCT_MEMBER(uint32_t, message, desc->fields[f].quantifier_offset))
+ {
+ /* This is not the selected oneof, skip it */
+ continue;
+ }
+
+ if (desc->fields[f].label == PROTOBUF_C_LABEL_REPEATED) {
+ size_t n = STRUCT_MEMBER(size_t,
+ message,
+ desc->fields[f].quantifier_offset);
+ void *arr = STRUCT_MEMBER(void *,
+ message,
+ desc->fields[f].offset);
+
+ if (arr != NULL) {
+ if (desc->fields[f].type == PROTOBUF_C_TYPE_STRING) {
+ unsigned i;
+ for (i = 0; i < n; i++)
+ do_free(allocator, ((char **) arr)[i]);
+ } else if (desc->fields[f].type == PROTOBUF_C_TYPE_BYTES) {
+ unsigned i;
+ for (i = 0; i < n; i++)
+ do_free(allocator, ((ProtobufCBinaryData *) arr)[i].data);
+ } else if (desc->fields[f].type == PROTOBUF_C_TYPE_MESSAGE) {
+ unsigned i;
+ for (i = 0; i < n; i++)
+ protobuf_c_message_free_unpacked(
+ ((ProtobufCMessage **) arr)[i],
+ allocator
+ );
+ }
+ do_free(allocator, arr);
+ }
+ } else if (desc->fields[f].type == PROTOBUF_C_TYPE_STRING) {
+ char *str = STRUCT_MEMBER(char *, message,
+ desc->fields[f].offset);
+
+ if (str && str != desc->fields[f].default_value)
+ do_free(allocator, str);
+ } else if (desc->fields[f].type == PROTOBUF_C_TYPE_BYTES) {
+ void *data = STRUCT_MEMBER(ProtobufCBinaryData, message,
+ desc->fields[f].offset).data;
+ const ProtobufCBinaryData *default_bd;
+
+ default_bd = desc->fields[f].default_value;
+ if (data != NULL &&
+ (default_bd == NULL ||
+ default_bd->data != data))
+ {
+ do_free(allocator, data);
+ }
+ } else if (desc->fields[f].type == PROTOBUF_C_TYPE_MESSAGE) {
+ ProtobufCMessage *sm;
+
+ sm = STRUCT_MEMBER(ProtobufCMessage *, message,
+ desc->fields[f].offset);
+ if (sm && sm != desc->fields[f].default_value)
+ protobuf_c_message_free_unpacked(sm, allocator);
+ }
+ }
+
+ for (f = 0; f < message->n_unknown_fields; f++)
+ do_free(allocator, message->unknown_fields[f].data);
+ if (message->unknown_fields != NULL)
+ do_free(allocator, message->unknown_fields);
+
+ do_free(allocator, message);
+}
+
+void
+protobuf_c_message_init(const ProtobufCMessageDescriptor * descriptor,
+ void *message)
+{
+ descriptor->message_init((ProtobufCMessage *) (message));
+}
+
+protobuf_c_boolean
+protobuf_c_message_check(const ProtobufCMessage *message)
+{
+ unsigned i;
+
+ if (!message ||
+ !message->descriptor ||
+ message->descriptor->magic != PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC)
+ {
+ return FALSE;
+ }
+
+ for (i = 0; i < message->descriptor->n_fields; i++) {
+ const ProtobufCFieldDescriptor *f = message->descriptor->fields + i;
+ ProtobufCType type = f->type;
+ ProtobufCLabel label = f->label;
+ void *field = STRUCT_MEMBER_P (message, f->offset);
+
+ if (label == PROTOBUF_C_LABEL_REPEATED) {
+ size_t *quantity = STRUCT_MEMBER_P (message, f->quantifier_offset);
+
+ if (*quantity > 0 && *(void **) field == NULL) {
+ return FALSE;
+ }
+
+ if (type == PROTOBUF_C_TYPE_MESSAGE) {
+ ProtobufCMessage **submessage = *(ProtobufCMessage ***) field;
+ unsigned j;
+ for (j = 0; j < *quantity; j++) {
+ if (!protobuf_c_message_check(submessage[j]))
+ return FALSE;
+ }
+ } else if (type == PROTOBUF_C_TYPE_STRING) {
+ char **string = *(char ***) field;
+ unsigned j;
+ for (j = 0; j < *quantity; j++) {
+ if (!string[j])
+ return FALSE;
+ }
+ } else if (type == PROTOBUF_C_TYPE_BYTES) {
+ ProtobufCBinaryData *bd = *(ProtobufCBinaryData **) field;
+ unsigned j;
+ for (j = 0; j < *quantity; j++) {
+ if (bd[j].len > 0 && bd[j].data == NULL)
+ return FALSE;
+ }
+ }
+
+ } else { /* PROTOBUF_C_LABEL_REQUIRED or PROTOBUF_C_LABEL_OPTIONAL */
+
+ if (type == PROTOBUF_C_TYPE_MESSAGE) {
+ ProtobufCMessage *submessage = *(ProtobufCMessage **) field;
+ if (label == PROTOBUF_C_LABEL_REQUIRED || submessage != NULL) {
+ if (!protobuf_c_message_check(submessage))
+ return FALSE;
+ }
+ } else if (type == PROTOBUF_C_TYPE_STRING) {
+ char *string = *(char **) field;
+ if (label == PROTOBUF_C_LABEL_REQUIRED && string == NULL)
+ return FALSE;
+ } else if (type == PROTOBUF_C_TYPE_BYTES) {
+ protobuf_c_boolean *has = STRUCT_MEMBER_P (message, f->quantifier_offset);
+ ProtobufCBinaryData *bd = field;
+ if (label == PROTOBUF_C_LABEL_REQUIRED || *has == TRUE) {
+ if (bd->len > 0 && bd->data == NULL)
+ return FALSE;
+ }
+ }
+ }
+ }
+
+ return TRUE;
+}
+
+/* === services === */
+
+typedef void (*GenericHandler) (void *service,
+ const ProtobufCMessage *input,
+ ProtobufCClosure closure,
+ void *closure_data);
+void
+protobuf_c_service_invoke_internal(ProtobufCService *service,
+ unsigned method_index,
+ const ProtobufCMessage *input,
+ ProtobufCClosure closure,
+ void *closure_data)
+{
+ GenericHandler *handlers;
+ GenericHandler handler;
+
+ /*
+ * Verify that method_index is within range. If this fails, you are
+ * likely invoking a newly added method on an old service. (Although
+ * other memory corruption bugs can cause this assertion too.)
+ */
+ assert(method_index < service->descriptor->n_methods);
+
+ /*
+ * Get the array of virtual methods (which are enumerated by the
+ * generated code).
+ */
+ handlers = (GenericHandler *) (service + 1);
+
+ /*
+ * Get our method and invoke it.
+ * \todo Seems like handler == NULL is a situation that needs handling.
+ */
+ handler = handlers[method_index];
+ (*handler)(service, input, closure, closure_data);
+}
+
+void
+protobuf_c_service_generated_init(ProtobufCService *service,
+ const ProtobufCServiceDescriptor *descriptor,
+ ProtobufCServiceDestroy destroy)
+{
+ ASSERT_IS_SERVICE_DESCRIPTOR(descriptor);
+ service->descriptor = descriptor;
+ service->destroy = destroy;
+ service->invoke = protobuf_c_service_invoke_internal;
+ memset(service + 1, 0, descriptor->n_methods * sizeof(GenericHandler));
+}
+
+void protobuf_c_service_destroy(ProtobufCService *service)
+{
+ service->destroy(service);
+}
+
+/* --- querying the descriptors --- */
+
+const ProtobufCEnumValue *
+protobuf_c_enum_descriptor_get_value_by_name(const ProtobufCEnumDescriptor *desc,
+ const char *name)
+{
+ unsigned start = 0;
+ unsigned count;
+
+ if (desc == NULL || desc->values_by_name == NULL)
+ return NULL;
+
+ count = desc->n_value_names;
+
+ while (count > 1) {
+ unsigned mid = start + count / 2;
+ int rv = strcmp(desc->values_by_name[mid].name, name);
+ if (rv == 0)
+ return desc->values + desc->values_by_name[mid].index;
+ else if (rv < 0) {
+ count = start + count - (mid + 1);
+ start = mid + 1;
+ } else
+ count = mid - start;
+ }
+ if (count == 0)
+ return NULL;
+ if (strcmp(desc->values_by_name[start].name, name) == 0)
+ return desc->values + desc->values_by_name[start].index;
+ return NULL;
+}
+
+const ProtobufCEnumValue *
+protobuf_c_enum_descriptor_get_value(const ProtobufCEnumDescriptor *desc,
+ int value)
+{
+ int rv = int_range_lookup(desc->n_value_ranges, desc->value_ranges, value);
+ if (rv < 0)
+ return NULL;
+ return desc->values + rv;
+}
+
+const ProtobufCFieldDescriptor *
+protobuf_c_message_descriptor_get_field_by_name(const ProtobufCMessageDescriptor *desc,
+ const char *name)
+{
+ unsigned start = 0;
+ unsigned count;
+ const ProtobufCFieldDescriptor *field;
+
+ if (desc == NULL || desc->fields_sorted_by_name == NULL)
+ return NULL;
+
+ count = desc->n_fields;
+
+ while (count > 1) {
+ unsigned mid = start + count / 2;
+ int rv;
+ field = desc->fields + desc->fields_sorted_by_name[mid];
+ rv = strcmp(field->name, name);
+ if (rv == 0)
+ return field;
+ else if (rv < 0) {
+ count = start + count - (mid + 1);
+ start = mid + 1;
+ } else
+ count = mid - start;
+ }
+ if (count == 0)
+ return NULL;
+ field = desc->fields + desc->fields_sorted_by_name[start];
+ if (strcmp(field->name, name) == 0)
+ return field;
+ return NULL;
+}
+
+const ProtobufCFieldDescriptor *
+protobuf_c_message_descriptor_get_field(const ProtobufCMessageDescriptor *desc,
+ unsigned value)
+{
+ int rv = int_range_lookup(desc->n_field_ranges,desc->field_ranges, value);
+ if (rv < 0)
+ return NULL;
+ return desc->fields + rv;
+}
+
+const ProtobufCMethodDescriptor *
+protobuf_c_service_descriptor_get_method_by_name(const ProtobufCServiceDescriptor *desc,
+ const char *name)
+{
+ unsigned start = 0;
+ unsigned count;
+
+ if (desc == NULL || desc->method_indices_by_name == NULL)
+ return NULL;
+
+ count = desc->n_methods;
+
+ while (count > 1) {
+ unsigned mid = start + count / 2;
+ unsigned mid_index = desc->method_indices_by_name[mid];
+ const char *mid_name = desc->methods[mid_index].name;
+ int rv = strcmp(mid_name, name);
+
+ if (rv == 0)
+ return desc->methods + desc->method_indices_by_name[mid];
+ if (rv < 0) {
+ count = start + count - (mid + 1);
+ start = mid + 1;
+ } else {
+ count = mid - start;
+ }
+ }
+ if (count == 0)
+ return NULL;
+ if (strcmp(desc->methods[desc->method_indices_by_name[start]].name, name) == 0)
+ return desc->methods + desc->method_indices_by_name[start];
+ return NULL;
+}
diff --git a/Software/Visual_Studio/Native/Tango.ColorLib/protobuf-c/protobuf-c.h b/Software/Visual_Studio/Native/Tango.ColorLib/protobuf-c/protobuf-c.h
new file mode 100644
index 000000000..c8fa4fc2a
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ColorLib/protobuf-c/protobuf-c.h
@@ -0,0 +1,1106 @@
+/*
+ * Copyright (c) 2008-2017, Dave Benson and the protobuf-c authors.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*! \file
+ * \mainpage Introduction
+ *
+ * This is [protobuf-c], a C implementation of [Protocol Buffers].
+ *
+ * This file defines the public API for the `libprotobuf-c` support library.
+ * This API includes interfaces that can be used directly by client code as well
+ * as the interfaces used by the code generated by the `protoc-c` compiler.
+ *
+ * The `libprotobuf-c` support library performs the actual serialization and
+ * deserialization of Protocol Buffers messages. It interacts with structures,
+ * definitions, and metadata generated by the `protoc-c` compiler from .proto
+ * files.
+ *
+ * \authors Dave Benson and the `protobuf-c` authors.
+ *
+ * \copyright 2008-2014. Licensed under the terms of the [BSD-2-Clause] license.
+ *
+ * [protobuf-c]: https://github.com/protobuf-c/protobuf-c
+ * [Protocol Buffers]: https://developers.google.com/protocol-buffers/
+ * [BSD-2-Clause]: http://opensource.org/licenses/BSD-2-Clause
+ *
+ * \page gencode Generated Code
+ *
+ * For each enum, we generate a C enum. For each message, we generate a C
+ * structure which can be cast to a `ProtobufCMessage`.
+ *
+ * For each enum and message, we generate a descriptor object that allows us to
+ * implement a kind of reflection on the structures.
+ *
+ * First, some naming conventions:
+ *
+ * - The name of the type for enums and messages and services is camel case
+ * (meaning WordsAreCrammedTogether) except that double underscores are used
+ * to delimit scopes. For example, the following `.proto` file:
+ *
+~~~{.proto}
+ package foo.bar;
+ message BazBah {
+ optional int32 val = 1;
+ }
+~~~
+ *
+ * would generate a C type `Foo__Bar__BazBah`.
+ *
+ * - Identifiers for functions and globals are all lowercase, with camel case
+ * words separated by single underscores. For example, one of the function
+ * prototypes generated by `protoc-c` for the above example:
+ *
+~~~{.c}
+Foo__Bar__BazBah *
+ foo__bar__baz_bah__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+~~~
+ *
+ * - Identifiers for enum values contain an uppercase prefix which embeds the
+ * package name and the enum type name.
+ *
+ * - A double underscore is used to separate further components of identifier
+ * names.
+ *
+ * For example, in the name of the unpack function above, the package name
+ * `foo.bar` has become `foo__bar`, the message name BazBah has become
+ * `baz_bah`, and the method name is `unpack`. These are all joined with double
+ * underscores to form the C identifier `foo__bar__baz_bah__unpack`.
+ *
+ * We also generate descriptor objects for messages and enums. These are
+ * declared in the `.pb-c.h` files:
+ *
+~~~{.c}
+extern const ProtobufCMessageDescriptor foo__bar__baz_bah__descriptor;
+~~~
+ *
+ * The message structures all begin with `ProtobufCMessageDescriptor *` which is
+ * sufficient to allow them to be cast to `ProtobufCMessage`.
+ *
+ * For each message defined in a `.proto` file, we generate a number of
+ * functions and macros. Each function name contains a prefix based on the
+ * package name and message name in order to make it a unique C identifier.
+ *
+ * - `INIT`. Statically initializes a message object, initializing its
+ * descriptor and setting its fields to default values. Uninitialized
+ * messages cannot be processed by the protobuf-c library.
+ *
+~~~{.c}
+#define FOO__BAR__BAZ_BAH__INIT \
+ { PROTOBUF_C_MESSAGE_INIT (&foo__bar__baz_bah__descriptor), 0 }
+~~~
+ * - `init()`. Initializes a message object, initializing its descriptor and
+ * setting its fields to default values. Uninitialized messages cannot be
+ * processed by the protobuf-c library.
+ *
+~~~{.c}
+void foo__bar__baz_bah__init
+ (Foo__Bar__BazBah *message);
+~~~
+ * - `unpack()`. Unpacks data for a particular message format. Note that the
+ * `allocator` parameter is usually `NULL` to indicate that the system's
+ * `malloc()` and `free()` functions should be used for dynamically allocating
+ * memory.
+ *
+~~~{.c}
+Foo__Bar__BazBah *
+ foo__bar__baz_bah__unpack
+ (ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+~~~
+ *
+ * - `free_unpacked()`. Frees a message object obtained with the `unpack()`
+ * method. Freeing `NULL` is allowed (the same as with `free()`).
+ *
+~~~{.c}
+void foo__bar__baz_bah__free_unpacked
+ (Foo__Bar__BazBah *message,
+ ProtobufCAllocator *allocator);
+~~~
+ *
+ * - `get_packed_size()`. Calculates the length in bytes of the serialized
+ * representation of the message object.
+ *
+~~~{.c}
+size_t foo__bar__baz_bah__get_packed_size
+ (const Foo__Bar__BazBah *message);
+~~~
+ *
+ * - `pack()`. Pack a message object into a preallocated buffer. Assumes that
+ * the buffer is large enough. (Use `get_packed_size()` first.)
+ *
+~~~{.c}
+size_t foo__bar__baz_bah__pack
+ (const Foo__Bar__BazBah *message,
+ uint8_t *out);
+~~~
+ *
+ * - `pack_to_buffer()`. Packs a message into a "virtual buffer". This is an
+ * object which defines an "append bytes" callback to consume data as it is
+ * serialized.
+ *
+~~~{.c}
+size_t foo__bar__baz_bah__pack_to_buffer
+ (const Foo__Bar__BazBah *message,
+ ProtobufCBuffer *buffer);
+~~~
+ *
+ * \page pack Packing and unpacking messages
+ *
+ * To pack a message, first compute the packed size of the message with
+ * protobuf_c_message_get_packed_size(), then allocate a buffer of at least
+ * that size, then call protobuf_c_message_pack().
+ *
+ * Alternatively, a message can be serialized without calculating the final size
+ * first. Use the protobuf_c_message_pack_to_buffer() function and provide a
+ * ProtobufCBuffer object which implements an "append" method that consumes
+ * data.
+ *
+ * To unpack a message, call the protobuf_c_message_unpack() function. The
+ * result can be cast to an object of the type that matches the descriptor for
+ * the message.
+ *
+ * The result of unpacking a message should be freed with
+ * protobuf_c_message_free_unpacked().
+ */
+
+#ifndef PROTOBUF_C_H
+#define PROTOBUF_C_H
+
+#include <assert.h>
+#include <limits.h>
+#include <stddef.h>
+#include <stdint.h>
+
+#ifdef __cplusplus
+# define PROTOBUF_C__BEGIN_DECLS extern "C" {
+# define PROTOBUF_C__END_DECLS }
+#else
+# define PROTOBUF_C__BEGIN_DECLS
+# define PROTOBUF_C__END_DECLS
+#endif
+
+PROTOBUF_C__BEGIN_DECLS
+
+#if defined(_WIN32) && defined(PROTOBUF_C_USE_SHARED_LIB)
+# ifdef PROTOBUF_C_EXPORT
+# define PROTOBUF_C__API __declspec(dllexport)
+# else
+# define PROTOBUF_C__API __declspec(dllimport)
+# endif
+#else
+# define PROTOBUF_C__API
+#endif
+
+#if !defined(PROTOBUF_C__NO_DEPRECATED) && \
+ ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
+# define PROTOBUF_C__DEPRECATED __attribute__((__deprecated__))
+#else
+# define PROTOBUF_C__DEPRECATED
+#endif
+
+#ifndef PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE
+ #define PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(enum_name) \
+ , _##enum_name##_IS_INT_SIZE = INT_MAX
+#endif
+
+#define PROTOBUF_C__SERVICE_DESCRIPTOR_MAGIC 0x14159bc3
+#define PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC 0x28aaeef9
+#define PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC 0x114315af
+
+/* Empty string used for initializers */
+extern const char protobuf_c_empty_string[];
+
+/**
+ * \defgroup api Public API
+ *
+ * This is the public API for `libprotobuf-c`. These interfaces are stable and
+ * subject to Semantic Versioning guarantees.
+ *
+ * @{
+ */
+
+/**
+ * Values for the `flags` word in `ProtobufCFieldDescriptor`.
+ */
+typedef enum {
+ /** Set if the field is repeated and marked with the `packed` option. */
+ PROTOBUF_C_FIELD_FLAG_PACKED = (1 << 0),
+
+ /** Set if the field is marked with the `deprecated` option. */
+ PROTOBUF_C_FIELD_FLAG_DEPRECATED = (1 << 1),
+
+ /** Set if the field is a member of a oneof (union). */
+ PROTOBUF_C_FIELD_FLAG_ONEOF = (1 << 2),
+} ProtobufCFieldFlag;
+
+/**
+ * Message field rules.
+ *
+ * \see [Defining A Message Type] in the Protocol Buffers documentation.
+ *
+ * [Defining A Message Type]:
+ * https://developers.google.com/protocol-buffers/docs/proto#simple
+ */
+typedef enum {
+ /** A well-formed message must have exactly one of this field. */
+ PROTOBUF_C_LABEL_REQUIRED,
+
+ /**
+ * A well-formed message can have zero or one of this field (but not
+ * more than one).
+ */
+ PROTOBUF_C_LABEL_OPTIONAL,
+
+ /**
+ * This field can be repeated any number of times (including zero) in a
+ * well-formed message. The order of the repeated values will be
+ * preserved.
+ */
+ PROTOBUF_C_LABEL_REPEATED,
+
+ /**
+ * This field has no label. This is valid only in proto3 and is
+ * equivalent to OPTIONAL but no "has" quantifier will be consulted.
+ */
+ PROTOBUF_C_LABEL_NONE,
+} ProtobufCLabel;
+
+/**
+ * Field value types.
+ *
+ * \see [Scalar Value Types] in the Protocol Buffers documentation.
+ *
+ * [Scalar Value Types]:
+ * https://developers.google.com/protocol-buffers/docs/proto#scalar
+ */
+typedef enum {
+ PROTOBUF_C_TYPE_INT32, /**< int32 */
+ PROTOBUF_C_TYPE_SINT32, /**< signed int32 */
+ PROTOBUF_C_TYPE_SFIXED32, /**< signed int32 (4 bytes) */
+ PROTOBUF_C_TYPE_INT64, /**< int64 */
+ PROTOBUF_C_TYPE_SINT64, /**< signed int64 */
+ PROTOBUF_C_TYPE_SFIXED64, /**< signed int64 (8 bytes) */
+ PROTOBUF_C_TYPE_UINT32, /**< unsigned int32 */
+ PROTOBUF_C_TYPE_FIXED32, /**< unsigned int32 (4 bytes) */
+ PROTOBUF_C_TYPE_UINT64, /**< unsigned int64 */
+ PROTOBUF_C_TYPE_FIXED64, /**< unsigned int64 (8 bytes) */
+ PROTOBUF_C_TYPE_FLOAT, /**< float */
+ PROTOBUF_C_TYPE_DOUBLE, /**< double */
+ PROTOBUF_C_TYPE_BOOL, /**< boolean */
+ PROTOBUF_C_TYPE_ENUM, /**< enumerated type */
+ PROTOBUF_C_TYPE_STRING, /**< UTF-8 or ASCII string */
+ PROTOBUF_C_TYPE_BYTES, /**< arbitrary byte sequence */
+ PROTOBUF_C_TYPE_MESSAGE, /**< nested message */
+} ProtobufCType;
+
+/**
+ * Field wire types.
+ *
+ * \see [Message Structure] in the Protocol Buffers documentation.
+ *
+ * [Message Structure]:
+ * https://developers.google.com/protocol-buffers/docs/encoding#structure
+ */
+typedef enum {
+ PROTOBUF_C_WIRE_TYPE_VARINT = 0,
+ PROTOBUF_C_WIRE_TYPE_64BIT = 1,
+ PROTOBUF_C_WIRE_TYPE_LENGTH_PREFIXED = 2,
+ /* "Start group" and "end group" wire types are unsupported. */
+ PROTOBUF_C_WIRE_TYPE_32BIT = 5,
+} ProtobufCWireType;
+
+struct ProtobufCAllocator;
+struct ProtobufCBinaryData;
+struct ProtobufCBuffer;
+struct ProtobufCBufferSimple;
+struct ProtobufCEnumDescriptor;
+struct ProtobufCEnumValue;
+struct ProtobufCEnumValueIndex;
+struct ProtobufCFieldDescriptor;
+struct ProtobufCIntRange;
+struct ProtobufCMessage;
+struct ProtobufCMessageDescriptor;
+struct ProtobufCMessageUnknownField;
+struct ProtobufCMethodDescriptor;
+struct ProtobufCService;
+struct ProtobufCServiceDescriptor;
+
+typedef struct ProtobufCAllocator ProtobufCAllocator;
+typedef struct ProtobufCBinaryData ProtobufCBinaryData;
+typedef struct ProtobufCBuffer ProtobufCBuffer;
+typedef struct ProtobufCBufferSimple ProtobufCBufferSimple;
+typedef struct ProtobufCEnumDescriptor ProtobufCEnumDescriptor;
+typedef struct ProtobufCEnumValue ProtobufCEnumValue;
+typedef struct ProtobufCEnumValueIndex ProtobufCEnumValueIndex;
+typedef struct ProtobufCFieldDescriptor ProtobufCFieldDescriptor;
+typedef struct ProtobufCIntRange ProtobufCIntRange;
+typedef struct ProtobufCMessage ProtobufCMessage;
+typedef struct ProtobufCMessageDescriptor ProtobufCMessageDescriptor;
+typedef struct ProtobufCMessageUnknownField ProtobufCMessageUnknownField;
+typedef struct ProtobufCMethodDescriptor ProtobufCMethodDescriptor;
+typedef struct ProtobufCService ProtobufCService;
+typedef struct ProtobufCServiceDescriptor ProtobufCServiceDescriptor;
+
+/** Boolean type. */
+typedef int protobuf_c_boolean;
+
+typedef void (*ProtobufCClosure)(const ProtobufCMessage *, void *closure_data);
+typedef void (*ProtobufCMessageInit)(ProtobufCMessage *);
+typedef void (*ProtobufCServiceDestroy)(ProtobufCService *);
+
+/**
+ * Structure for defining a custom memory allocator.
+ */
+struct ProtobufCAllocator {
+ /** Function to allocate memory. */
+ void *(*alloc)(void *allocator_data, size_t size);
+
+ /** Function to free memory. */
+ void (*free)(void *allocator_data, void *pointer);
+
+ /** Opaque pointer passed to `alloc` and `free` functions. */
+ void *allocator_data;
+};
+
+/**
+ * Structure for the protobuf `bytes` scalar type.
+ *
+ * The data contained in a `ProtobufCBinaryData` is an arbitrary sequence of
+ * bytes. It may contain embedded `NUL` characters and is not required to be
+ * `NUL`-terminated.
+ */
+struct ProtobufCBinaryData {
+ size_t len; /**< Number of bytes in the `data` field. */
+ uint8_t *data; /**< Data bytes. */
+};
+
+/**
+ * Structure for defining a virtual append-only buffer. Used by
+ * protobuf_c_message_pack_to_buffer() to abstract the consumption of serialized
+ * bytes.
+ *
+ * `ProtobufCBuffer` "subclasses" may be defined on the stack. For example, to
+ * write to a `FILE` object:
+ *
+~~~{.c}
+typedef struct {
+ ProtobufCBuffer base;
+ FILE *fp;
+} BufferAppendToFile;
+
+static void
+my_buffer_file_append(ProtobufCBuffer *buffer,
+ size_t len,
+ const uint8_t *data)
+{
+ BufferAppendToFile *file_buf = (BufferAppendToFile *) buffer;
+ fwrite(data, len, 1, file_buf->fp); // XXX: No error handling!
+}
+~~~
+ *
+ * To use this new type of ProtobufCBuffer, it could be called as follows:
+ *
+~~~{.c}
+...
+BufferAppendToFile tmp = {0};
+tmp.base.append = my_buffer_file_append;
+tmp.fp = fp;
+protobuf_c_message_pack_to_buffer(&message, &tmp);
+...
+~~~
+ */
+struct ProtobufCBuffer {
+ /** Append function. Consumes the `len` bytes stored at `data`. */
+ void (*append)(ProtobufCBuffer *buffer,
+ size_t len,
+ const uint8_t *data);
+};
+
+/**
+ * Simple buffer "subclass" of `ProtobufCBuffer`.
+ *
+ * A `ProtobufCBufferSimple` object is declared on the stack and uses a
+ * scratch buffer provided by the user for the initial allocation. It performs
+ * exponential resizing, using dynamically allocated memory. A
+ * `ProtobufCBufferSimple` object can be created and used as follows:
+ *
+~~~{.c}
+uint8_t pad[128];
+ProtobufCBufferSimple simple = PROTOBUF_C_BUFFER_SIMPLE_INIT(pad);
+ProtobufCBuffer *buffer = (ProtobufCBuffer *) &simple;
+~~~
+ *
+ * `buffer` can now be used with `protobuf_c_message_pack_to_buffer()`. Once a
+ * message has been serialized to a `ProtobufCBufferSimple` object, the
+ * serialized data bytes can be accessed from the `.data` field.
+ *
+ * To free the memory allocated by a `ProtobufCBufferSimple` object, if any,
+ * call PROTOBUF_C_BUFFER_SIMPLE_CLEAR() on the object, for example:
+ *
+~~~{.c}
+PROTOBUF_C_BUFFER_SIMPLE_CLEAR(&simple);
+~~~
+ *
+ * \see PROTOBUF_C_BUFFER_SIMPLE_INIT
+ * \see PROTOBUF_C_BUFFER_SIMPLE_CLEAR
+ */
+struct ProtobufCBufferSimple {
+ /** "Base class". */
+ ProtobufCBuffer base;
+ /** Number of bytes allocated in `data`. */
+ size_t alloced;
+ /** Number of bytes currently stored in `data`. */
+ size_t len;
+ /** Data bytes. */
+ uint8_t *data;
+ /** Whether `data` must be freed. */
+ protobuf_c_boolean must_free_data;
+ /** Allocator to use. May be NULL to indicate the system allocator. */
+ ProtobufCAllocator *allocator;
+};
+
+/**
+ * Describes an enumeration as a whole, with all of its values.
+ */
+struct ProtobufCEnumDescriptor {
+ /** Magic value checked to ensure that the API is used correctly. */
+ uint32_t magic;
+
+ /** The qualified name (e.g., "namespace.Type"). */
+ const char *name;
+ /** The unqualified name as given in the .proto file (e.g., "Type"). */
+ const char *short_name;
+ /** Identifier used in generated C code. */
+ const char *c_name;
+ /** The dot-separated namespace. */
+ const char *package_name;
+
+ /** Number elements in `values`. */
+ unsigned n_values;
+ /** Array of distinct values, sorted by numeric value. */
+ const ProtobufCEnumValue *values;
+
+ /** Number of elements in `values_by_name`. */
+ unsigned n_value_names;
+ /** Array of named values, including aliases, sorted by name. */
+ const ProtobufCEnumValueIndex *values_by_name;
+
+ /** Number of elements in `value_ranges`. */
+ unsigned n_value_ranges;
+ /** Value ranges, for faster lookups by numeric value. */
+ const ProtobufCIntRange *value_ranges;
+
+ /** Reserved for future use. */
+ void *reserved1;
+ /** Reserved for future use. */
+ void *reserved2;
+ /** Reserved for future use. */
+ void *reserved3;
+ /** Reserved for future use. */
+ void *reserved4;
+};
+
+/**
+ * Represents a single value of an enumeration.
+ */
+struct ProtobufCEnumValue {
+ /** The string identifying this value in the .proto file. */
+ const char *name;
+
+ /** The string identifying this value in generated C code. */
+ const char *c_name;
+
+ /** The numeric value assigned in the .proto file. */
+ int value;
+};
+
+/**
+ * Used by `ProtobufCEnumDescriptor` to look up enum values.
+ */
+struct ProtobufCEnumValueIndex {
+ /** Name of the enum value. */
+ const char *name;
+ /** Index into values[] array. */
+ unsigned index;
+};
+
+/**
+ * Describes a single field in a message.
+ */
+struct ProtobufCFieldDescriptor {
+ /** Name of the field as given in the .proto file. */
+ const char *name;
+
+ /** Tag value of the field as given in the .proto file. */
+ uint32_t id;
+
+ /** Whether the field is `REQUIRED`, `OPTIONAL`, or `REPEATED`. */
+ ProtobufCLabel label;
+
+ /** The type of the field. */
+ ProtobufCType type;
+
+ /**
+ * The offset in bytes of the message's C structure's quantifier field
+ * (the `has_MEMBER` field for optional members or the `n_MEMBER` field
+ * for repeated members or the case enum for oneofs).
+ */
+ unsigned quantifier_offset;
+
+ /**
+ * The offset in bytes into the message's C structure for the member
+ * itself.
+ */
+ unsigned offset;
+
+ /**
+ * A type-specific descriptor.
+ *
+ * If `type` is `PROTOBUF_C_TYPE_ENUM`, then `descriptor` points to the
+ * corresponding `ProtobufCEnumDescriptor`.
+ *
+ * If `type` is `PROTOBUF_C_TYPE_MESSAGE`, then `descriptor` points to
+ * the corresponding `ProtobufCMessageDescriptor`.
+ *
+ * Otherwise this field is NULL.
+ */
+ const void *descriptor; /* for MESSAGE and ENUM types */
+
+ /** The default value for this field, if defined. May be NULL. */
+ const void *default_value;
+
+ /**
+ * A flag word. Zero or more of the bits defined in the
+ * `ProtobufCFieldFlag` enum may be set.
+ */
+ uint32_t flags;
+
+ /** Reserved for future use. */
+ unsigned reserved_flags;
+ /** Reserved for future use. */
+ void *reserved2;
+ /** Reserved for future use. */
+ void *reserved3;
+};
+
+/**
+ * Helper structure for optimizing int => index lookups in the case
+ * where the keys are mostly consecutive values, as they presumably are for
+ * enums and fields.
+ *
+ * The data structures requires that the values in the original array are
+ * sorted.
+ */
+struct ProtobufCIntRange {
+ int start_value;
+ unsigned orig_index;
+ /*
+ * NOTE: the number of values in the range can be inferred by looking
+ * at the next element's orig_index. A dummy element is added to make
+ * this simple.
+ */
+};
+
+/**
+ * An instance of a message.
+ *
+ * `ProtobufCMessage` is a light-weight "base class" for all messages.
+ *
+ * In particular, `ProtobufCMessage` doesn't have any allocation policy
+ * associated with it. That's because it's common to create `ProtobufCMessage`
+ * objects on the stack. In fact, that's what we recommend for sending messages.
+ * If the object is allocated from the stack, you can't really have a memory
+ * leak.
+ *
+ * This means that calls to functions like protobuf_c_message_unpack() which
+ * return a `ProtobufCMessage` must be paired with a call to a free function,
+ * like protobuf_c_message_free_unpacked().
+ */
+struct ProtobufCMessage {
+ /** The descriptor for this message type. */
+ const ProtobufCMessageDescriptor *descriptor;
+ /** The number of elements in `unknown_fields`. */
+ unsigned n_unknown_fields;
+ /** The fields that weren't recognized by the parser. */
+ ProtobufCMessageUnknownField *unknown_fields;
+};
+
+/**
+ * Describes a message.
+ */
+struct ProtobufCMessageDescriptor {
+ /** Magic value checked to ensure that the API is used correctly. */
+ uint32_t magic;
+
+ /** The qualified name (e.g., "namespace.Type"). */
+ const char *name;
+ /** The unqualified name as given in the .proto file (e.g., "Type"). */
+ const char *short_name;
+ /** Identifier used in generated C code. */
+ const char *c_name;
+ /** The dot-separated namespace. */
+ const char *package_name;
+
+ /**
+ * Size in bytes of the C structure representing an instance of this
+ * type of message.
+ */
+ size_t sizeof_message;
+
+ /** Number of elements in `fields`. */
+ unsigned n_fields;
+ /** Field descriptors, sorted by tag number. */
+ const ProtobufCFieldDescriptor *fields;
+ /** Used for looking up fields by name. */
+ const unsigned *fields_sorted_by_name;
+
+ /** Number of elements in `field_ranges`. */
+ unsigned n_field_ranges;
+ /** Used for looking up fields by id. */
+ const ProtobufCIntRange *field_ranges;
+
+ /** Message initialisation function. */
+ ProtobufCMessageInit message_init;
+
+ /** Reserved for future use. */
+ void *reserved1;
+ /** Reserved for future use. */
+ void *reserved2;
+ /** Reserved for future use. */
+ void *reserved3;
+};
+
+/**
+ * An unknown message field.
+ */
+struct ProtobufCMessageUnknownField {
+ /** The tag number. */
+ uint32_t tag;
+ /** The wire type of the field. */
+ ProtobufCWireType wire_type;
+ /** Number of bytes in `data`. */
+ size_t len;
+ /** Field data. */
+ uint8_t *data;
+};
+
+/**
+ * Method descriptor.
+ */
+struct ProtobufCMethodDescriptor {
+ /** Method name. */
+ const char *name;
+ /** Input message descriptor. */
+ const ProtobufCMessageDescriptor *input;
+ /** Output message descriptor. */
+ const ProtobufCMessageDescriptor *output;
+};
+
+/**
+ * Service.
+ */
+struct ProtobufCService {
+ /** Service descriptor. */
+ const ProtobufCServiceDescriptor *descriptor;
+ /** Function to invoke the service. */
+ void (*invoke)(ProtobufCService *service,
+ unsigned method_index,
+ const ProtobufCMessage *input,
+ ProtobufCClosure closure,
+ void *closure_data);
+ /** Function to destroy the service. */
+ void (*destroy)(ProtobufCService *service);
+};
+
+/**
+ * Service descriptor.
+ */
+struct ProtobufCServiceDescriptor {
+ /** Magic value checked to ensure that the API is used correctly. */
+ uint32_t magic;
+
+ /** Service name. */
+ const char *name;
+ /** Short version of service name. */
+ const char *short_name;
+ /** C identifier for the service name. */
+ const char *c_name;
+ /** Package name. */
+ const char *package;
+ /** Number of elements in `methods`. */
+ unsigned n_methods;
+ /** Method descriptors, in the order defined in the .proto file. */
+ const ProtobufCMethodDescriptor *methods;
+ /** Sort index of methods. */
+ const unsigned *method_indices_by_name;
+};
+
+/**
+ * Get the version of the protobuf-c library. Note that this is the version of
+ * the library linked against, not the version of the headers compiled against.
+ *
+ * \return A string containing the version number of protobuf-c.
+ */
+PROTOBUF_C__API
+const char *
+protobuf_c_version(void);
+
+/**
+ * Get the version of the protobuf-c library. Note that this is the version of
+ * the library linked against, not the version of the headers compiled against.
+ *
+ * \return A 32 bit unsigned integer containing the version number of
+ * protobuf-c, represented in base-10 as (MAJOR*1E6) + (MINOR*1E3) + PATCH.
+ */
+PROTOBUF_C__API
+uint32_t
+protobuf_c_version_number(void);
+
+/**
+ * The version of the protobuf-c headers, represented as a string using the same
+ * format as protobuf_c_version().
+ */
+#define PROTOBUF_C_VERSION "1.3.0"
+
+/**
+ * The version of the protobuf-c headers, represented as an integer using the
+ * same format as protobuf_c_version_number().
+ */
+#define PROTOBUF_C_VERSION_NUMBER 1003000
+
+/**
+ * The minimum protoc-c version which works with the current version of the
+ * protobuf-c headers.
+ */
+#define PROTOBUF_C_MIN_COMPILER_VERSION 1000000
+
+/**
+ * Look up a `ProtobufCEnumValue` from a `ProtobufCEnumDescriptor` by name.
+ *
+ * \param desc
+ * The `ProtobufCEnumDescriptor` object.
+ * \param name
+ * The `name` field from the corresponding `ProtobufCEnumValue` object to
+ * match.
+ * \return
+ * A `ProtobufCEnumValue` object.
+ * \retval NULL
+ * If not found or if the optimize_for = CODE_SIZE option was set.
+ */
+PROTOBUF_C__API
+const ProtobufCEnumValue *
+protobuf_c_enum_descriptor_get_value_by_name(
+ const ProtobufCEnumDescriptor *desc,
+ const char *name);
+
+/**
+ * Look up a `ProtobufCEnumValue` from a `ProtobufCEnumDescriptor` by numeric
+ * value.
+ *
+ * \param desc
+ * The `ProtobufCEnumDescriptor` object.
+ * \param value
+ * The `value` field from the corresponding `ProtobufCEnumValue` object to
+ * match.
+ *
+ * \return
+ * A `ProtobufCEnumValue` object.
+ * \retval NULL
+ * If not found.
+ */
+PROTOBUF_C__API
+const ProtobufCEnumValue *
+protobuf_c_enum_descriptor_get_value(
+ const ProtobufCEnumDescriptor *desc,
+ int value);
+
+/**
+ * Look up a `ProtobufCFieldDescriptor` from a `ProtobufCMessageDescriptor` by
+ * the name of the field.
+ *
+ * \param desc
+ * The `ProtobufCMessageDescriptor` object.
+ * \param name
+ * The name of the field.
+ * \return
+ * A `ProtobufCFieldDescriptor` object.
+ * \retval NULL
+ * If not found or if the optimize_for = CODE_SIZE option was set.
+ */
+PROTOBUF_C__API
+const ProtobufCFieldDescriptor *
+protobuf_c_message_descriptor_get_field_by_name(
+ const ProtobufCMessageDescriptor *desc,
+ const char *name);
+
+/**
+ * Look up a `ProtobufCFieldDescriptor` from a `ProtobufCMessageDescriptor` by
+ * the tag value of the field.
+ *
+ * \param desc
+ * The `ProtobufCMessageDescriptor` object.
+ * \param value
+ * The tag value of the field.
+ * \return
+ * A `ProtobufCFieldDescriptor` object.
+ * \retval NULL
+ * If not found.
+ */
+PROTOBUF_C__API
+const ProtobufCFieldDescriptor *
+protobuf_c_message_descriptor_get_field(
+ const ProtobufCMessageDescriptor *desc,
+ unsigned value);
+
+/**
+ * Determine the number of bytes required to store the serialised message.
+ *
+ * \param message
+ * The message object to serialise.
+ * \return
+ * Number of bytes.
+ */
+PROTOBUF_C__API
+size_t
+protobuf_c_message_get_packed_size(const ProtobufCMessage *message);
+
+/**
+ * Serialise a message from its in-memory representation.
+ *
+ * This function stores the serialised bytes of the message in a pre-allocated
+ * buffer.
+ *
+ * \param message
+ * The message object to serialise.
+ * \param[out] out
+ * Buffer to store the bytes of the serialised message. This buffer must
+ * have enough space to store the packed message. Use
+ * protobuf_c_message_get_packed_size() to determine the number of bytes
+ * required.
+ * \return
+ * Number of bytes stored in `out`.
+ */
+PROTOBUF_C__API
+size_t
+protobuf_c_message_pack(const ProtobufCMessage *message, uint8_t *out);
+
+/**
+ * Serialise a message from its in-memory representation to a virtual buffer.
+ *
+ * This function calls the `append` method of a `ProtobufCBuffer` object to
+ * consume the bytes generated by the serialiser.
+ *
+ * \param message
+ * The message object to serialise.
+ * \param buffer
+ * The virtual buffer object.
+ * \return
+ * Number of bytes passed to the virtual buffer.
+ */
+PROTOBUF_C__API
+size_t
+protobuf_c_message_pack_to_buffer(
+ const ProtobufCMessage *message,
+ ProtobufCBuffer *buffer);
+
+/**
+ * Unpack a serialised message into an in-memory representation.
+ *
+ * \param descriptor
+ * The message descriptor.
+ * \param allocator
+ * `ProtobufCAllocator` to use for memory allocation. May be NULL to
+ * specify the default allocator.
+ * \param len
+ * Length in bytes of the serialised message.
+ * \param data
+ * Pointer to the serialised message.
+ * \return
+ * An unpacked message object.
+ * \retval NULL
+ * If an error occurred during unpacking.
+ */
+PROTOBUF_C__API
+ProtobufCMessage *
+protobuf_c_message_unpack(
+ const ProtobufCMessageDescriptor *descriptor,
+ ProtobufCAllocator *allocator,
+ size_t len,
+ const uint8_t *data);
+
+/**
+ * Free an unpacked message object.
+ *
+ * This function should be used to deallocate the memory used by a call to
+ * protobuf_c_message_unpack().
+ *
+ * \param message
+ * The message object to free. May be NULL.
+ * \param allocator
+ * `ProtobufCAllocator` to use for memory deallocation. May be NULL to
+ * specify the default allocator.
+ */
+PROTOBUF_C__API
+void
+protobuf_c_message_free_unpacked(
+ ProtobufCMessage *message,
+ ProtobufCAllocator *allocator);
+
+/**
+ * Check the validity of a message object.
+ *
+ * Makes sure all required fields (`PROTOBUF_C_LABEL_REQUIRED`) are present.
+ * Recursively checks nested messages.
+ *
+ * \retval TRUE
+ * Message is valid.
+ * \retval FALSE
+ * Message is invalid.
+ */
+PROTOBUF_C__API
+protobuf_c_boolean
+protobuf_c_message_check(const ProtobufCMessage *);
+
+/** Message initialiser. */
+#define PROTOBUF_C_MESSAGE_INIT(descriptor) { descriptor, 0, NULL }
+
+/**
+ * Initialise a message object from a message descriptor.
+ *
+ * \param descriptor
+ * Message descriptor.
+ * \param message
+ * Allocated block of memory of size `descriptor->sizeof_message`.
+ */
+PROTOBUF_C__API
+void
+protobuf_c_message_init(
+ const ProtobufCMessageDescriptor *descriptor,
+ void *message);
+
+/**
+ * Free a service.
+ *
+ * \param service
+ * The service object to free.
+ */
+PROTOBUF_C__API
+void
+protobuf_c_service_destroy(ProtobufCService *service);
+
+/**
+ * Look up a `ProtobufCMethodDescriptor` by name.
+ *
+ * \param desc
+ * Service descriptor.
+ * \param name
+ * Name of the method.
+ *
+ * \return
+ * A `ProtobufCMethodDescriptor` object.
+ * \retval NULL
+ * If not found or if the optimize_for = CODE_SIZE option was set.
+ */
+PROTOBUF_C__API
+const ProtobufCMethodDescriptor *
+protobuf_c_service_descriptor_get_method_by_name(
+ const ProtobufCServiceDescriptor *desc,
+ const char *name);
+
+/**
+ * Initialise a `ProtobufCBufferSimple` object.
+ */
+#define PROTOBUF_C_BUFFER_SIMPLE_INIT(array_of_bytes) \
+{ \
+ { protobuf_c_buffer_simple_append }, \
+ sizeof(array_of_bytes), \
+ 0, \
+ (array_of_bytes), \
+ 0, \
+ NULL \
+}
+
+/**
+ * Clear a `ProtobufCBufferSimple` object, freeing any allocated memory.
+ */
+#define PROTOBUF_C_BUFFER_SIMPLE_CLEAR(simp_buf) \
+do { \
+ if ((simp_buf)->must_free_data) { \
+ if ((simp_buf)->allocator != NULL) \
+ (simp_buf)->allocator->free( \
+ (simp_buf)->allocator, \
+ (simp_buf)->data); \
+ else \
+ free((simp_buf)->data); \
+ } \
+} while (0)
+
+/**
+ * The `append` method for `ProtobufCBufferSimple`.
+ *
+ * \param buffer
+ * The buffer object to append to. Must actually be a
+ * `ProtobufCBufferSimple` object.
+ * \param len
+ * Number of bytes in `data`.
+ * \param data
+ * Data to append.
+ */
+PROTOBUF_C__API
+void
+protobuf_c_buffer_simple_append(
+ ProtobufCBuffer *buffer,
+ size_t len,
+ const unsigned char *data);
+
+PROTOBUF_C__API
+void
+protobuf_c_service_generated_init(
+ ProtobufCService *service,
+ const ProtobufCServiceDescriptor *descriptor,
+ ProtobufCServiceDestroy destroy);
+
+PROTOBUF_C__API
+void
+protobuf_c_service_invoke_internal(
+ ProtobufCService *service,
+ unsigned method_index,
+ const ProtobufCMessage *input,
+ ProtobufCClosure closure,
+ void *closure_data);
+
+/**@}*/
+
+PROTOBUF_C__END_DECLS
+
+#endif /* PROTOBUF_C_H */
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/ErrorCode.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/ErrorCode.pb.cc
new file mode 100644
index 000000000..685589881
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/ErrorCode.pb.cc
@@ -0,0 +1,130 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: ErrorCode.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "ErrorCode.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 Tango {
+namespace PMR {
+namespace Common {
+
+namespace protobuf_ErrorCode_2eproto {
+
+
+namespace {
+
+const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[1] = {};
+static const ::google::protobuf::internal::MigrationSchema* schemas = NULL;
+static const ::google::protobuf::Message* const* file_default_instances = NULL;
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "ErrorCode.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ NULL, 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();
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n\017ErrorCode.proto\022\020Tango.PMR.Common*\"\n\tE"
+ "rrorCode\022\010\n\004NONE\020\000\022\013\n\007BAD_CRC\020\001B\034\n\032com.t"
+ "wine.tango.pmr.commonb\006proto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 109);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "ErrorCode.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_ErrorCode_2eproto
+
+const ::google::protobuf::EnumDescriptor* ErrorCode_descriptor() {
+ protobuf_ErrorCode_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_ErrorCode_2eproto::file_level_enum_descriptors[0];
+}
+bool ErrorCode_IsValid(int value) {
+ switch (value) {
+ case 0:
+ case 1:
+ return true;
+ default:
+ return false;
+ }
+}
+
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Common
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/ErrorCode.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/ErrorCode.pb.h
new file mode 100644
index 000000000..ef6b129d6
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/ErrorCode.pb.h
@@ -0,0 +1,118 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: ErrorCode.proto
+
+#ifndef PROTOBUF_ErrorCode_2eproto__INCLUDED
+#define PROTOBUF_ErrorCode_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.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>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Common {
+} // namespace Common
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Common {
+
+namespace protobuf_ErrorCode_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_ErrorCode_2eproto
+
+enum ErrorCode {
+ NONE = 0,
+ BAD_CRC = 1,
+ ErrorCode_INT_MIN_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32min,
+ ErrorCode_INT_MAX_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32max
+};
+bool ErrorCode_IsValid(int value);
+const ErrorCode ErrorCode_MIN = NONE;
+const ErrorCode ErrorCode_MAX = BAD_CRC;
+const int ErrorCode_ARRAYSIZE = ErrorCode_MAX + 1;
+
+const ::google::protobuf::EnumDescriptor* ErrorCode_descriptor();
+inline const ::std::string& ErrorCode_Name(ErrorCode value) {
+ return ::google::protobuf::internal::NameOfEnum(
+ ErrorCode_descriptor(), value);
+}
+inline bool ErrorCode_Parse(
+ const ::std::string& name, ErrorCode* value) {
+ return ::google::protobuf::internal::ParseNamedEnum<ErrorCode>(
+ ErrorCode_descriptor(), name, value);
+}
+// ===================================================================
+
+
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Common
+} // namespace PMR
+} // namespace Tango
+
+namespace google {
+namespace protobuf {
+
+template <> struct is_proto_enum< ::Tango::PMR::Common::ErrorCode> : ::google::protobuf::internal::true_type {};
+template <>
+inline const EnumDescriptor* GetEnumDescriptor< ::Tango::PMR::Common::ErrorCode>() {
+ return ::Tango::PMR::Common::ErrorCode_descriptor();
+}
+
+} // namespace protobuf
+} // namespace google
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_ErrorCode_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/MessageContainer.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/MessageContainer.pb.cc
index e06fad270..3e2a6f2f6 100644
--- a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/MessageContainer.pb.cc
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/MessageContainer.pb.cc
@@ -60,6 +60,8 @@ const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MessageContainer, continuous_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MessageContainer, completed_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MessageContainer, data_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MessageContainer, crc_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(MessageContainer, error_),
};
static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
{ 0, -1, sizeof(MessageContainer)},
@@ -96,6 +98,7 @@ void TableStruct::InitDefaultsImpl() {
::google::protobuf::internal::InitProtobufDefaults();
::Tango::PMR::Common::protobuf_MessageType_2eproto::InitDefaults();
+ ::Tango::PMR::Common::protobuf_ErrorCode_2eproto::InitDefaults();
_MessageContainer_default_instance_._instance.DefaultConstruct();
::google::protobuf::internal::OnShutdownDestroyMessage(
&_MessageContainer_default_instance_);}
@@ -109,17 +112,20 @@ void AddDescriptorsImpl() {
InitDefaults();
static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
"\n\026MessageContainer.proto\022\020Tango.PMR.Comm"
- "on\032\021MessageType.proto\"\203\001\n\020MessageContain"
- "er\022+\n\004Type\030\001 \001(\0162\035.Tango.PMR.Common.Mess"
- "ageType\022\r\n\005Token\030\002 \001(\t\022\022\n\nContinuous\030\003 \001"
- "(\010\022\021\n\tCompleted\030\004 \001(\010\022\014\n\004Data\030\005 \001(\014B\034\n\032c"
- "om.twine.tango.pmr.commonb\006proto3"
+ "on\032\021MessageType.proto\032\017ErrorCode.proto\"\274"
+ "\001\n\020MessageContainer\022+\n\004Type\030\001 \001(\0162\035.Tang"
+ "o.PMR.Common.MessageType\022\r\n\005Token\030\002 \001(\t\022"
+ "\022\n\nContinuous\030\003 \001(\010\022\021\n\tCompleted\030\004 \001(\010\022\014"
+ "\n\004Data\030\005 \001(\014\022\013\n\003CRC\030\006 \001(\r\022*\n\005Error\030\007 \001(\016"
+ "2\033.Tango.PMR.Common.ErrorCodeB\034\n\032com.twi"
+ "ne.tango.pmr.commonb\006proto3"
};
::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
- descriptor, 233);
+ descriptor, 307);
::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
"MessageContainer.proto", &protobuf_RegisterTypes);
::Tango::PMR::Common::protobuf_MessageType_2eproto::AddDescriptors();
+ ::Tango::PMR::Common::protobuf_ErrorCode_2eproto::AddDescriptors();
}
} // anonymous namespace
@@ -145,6 +151,8 @@ const int MessageContainer::kTokenFieldNumber;
const int MessageContainer::kContinuousFieldNumber;
const int MessageContainer::kCompletedFieldNumber;
const int MessageContainer::kDataFieldNumber;
+const int MessageContainer::kCRCFieldNumber;
+const int MessageContainer::kErrorFieldNumber;
#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
MessageContainer::MessageContainer()
@@ -169,8 +177,8 @@ MessageContainer::MessageContainer(const MessageContainer& from)
data_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.data_);
}
::memcpy(&type_, &from.type_,
- static_cast<size_t>(reinterpret_cast<char*>(&completed_) -
- reinterpret_cast<char*>(&type_)) + sizeof(completed_));
+ static_cast<size_t>(reinterpret_cast<char*>(&error_) -
+ reinterpret_cast<char*>(&type_)) + sizeof(error_));
// @@protoc_insertion_point(copy_constructor:Tango.PMR.Common.MessageContainer)
}
@@ -178,8 +186,8 @@ void MessageContainer::SharedCtor() {
token_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
data_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
::memset(&type_, 0, static_cast<size_t>(
- reinterpret_cast<char*>(&completed_) -
- reinterpret_cast<char*>(&type_)) + sizeof(completed_));
+ reinterpret_cast<char*>(&error_) -
+ reinterpret_cast<char*>(&type_)) + sizeof(error_));
_cached_size_ = 0;
}
@@ -225,8 +233,8 @@ void MessageContainer::Clear() {
token_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
data_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
::memset(&type_, 0, static_cast<size_t>(
- reinterpret_cast<char*>(&completed_) -
- reinterpret_cast<char*>(&type_)) + sizeof(completed_));
+ reinterpret_cast<char*>(&error_) -
+ reinterpret_cast<char*>(&type_)) + sizeof(error_));
_internal_metadata_.Clear();
}
@@ -311,6 +319,35 @@ bool MessageContainer::MergePartialFromCodedStream(
break;
}
+ // uint32 CRC = 6;
+ case 6: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(48u /* 48 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &crc_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // .Tango.PMR.Common.ErrorCode Error = 7;
+ case 7: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(56u /* 56 & 0xFF */)) {
+ int value;
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+ input, &value)));
+ set_error(static_cast< ::Tango::PMR::Common::ErrorCode >(value));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
default: {
handle_unusual:
if (tag == 0) {
@@ -369,6 +406,17 @@ void MessageContainer::SerializeWithCachedSizes(
5, this->data(), output);
}
+ // uint32 CRC = 6;
+ if (this->crc() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(6, this->crc(), output);
+ }
+
+ // .Tango.PMR.Common.ErrorCode Error = 7;
+ if (this->error() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteEnum(
+ 7, this->error(), output);
+ }
+
if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
::google::protobuf::internal::WireFormat::SerializeUnknownFields(
(::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
@@ -417,6 +465,17 @@ void MessageContainer::SerializeWithCachedSizes(
5, this->data(), target);
}
+ // uint32 CRC = 6;
+ if (this->crc() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(6, this->crc(), target);
+ }
+
+ // .Tango.PMR.Common.ErrorCode Error = 7;
+ if (this->error() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
+ 7, this->error(), target);
+ }
+
if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
(::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
@@ -464,6 +523,19 @@ size_t MessageContainer::ByteSizeLong() const {
total_size += 1 + 1;
}
+ // uint32 CRC = 6;
+ if (this->crc() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->crc());
+ }
+
+ // .Tango.PMR.Common.ErrorCode Error = 7;
+ if (this->error() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::EnumSize(this->error());
+ }
+
int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
_cached_size_ = cached_size;
@@ -510,6 +582,12 @@ void MessageContainer::MergeFrom(const MessageContainer& from) {
if (from.completed() != 0) {
set_completed(from.completed());
}
+ if (from.crc() != 0) {
+ set_crc(from.crc());
+ }
+ if (from.error() != 0) {
+ set_error(from.error());
+ }
}
void MessageContainer::CopyFrom(const ::google::protobuf::Message& from) {
@@ -541,6 +619,8 @@ void MessageContainer::InternalSwap(MessageContainer* other) {
swap(type_, other->type_);
swap(continuous_, other->continuous_);
swap(completed_, other->completed_);
+ swap(crc_, other->crc_);
+ swap(error_, other->error_);
_internal_metadata_.Swap(&other->_internal_metadata_);
swap(_cached_size_, other->_cached_size_);
}
@@ -701,6 +781,34 @@ void MessageContainer::set_allocated_data(::std::string* data) {
// @@protoc_insertion_point(field_set_allocated:Tango.PMR.Common.MessageContainer.Data)
}
+// uint32 CRC = 6;
+void MessageContainer::clear_crc() {
+ crc_ = 0u;
+}
+::google::protobuf::uint32 MessageContainer::crc() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Common.MessageContainer.CRC)
+ return crc_;
+}
+void MessageContainer::set_crc(::google::protobuf::uint32 value) {
+
+ crc_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Common.MessageContainer.CRC)
+}
+
+// .Tango.PMR.Common.ErrorCode Error = 7;
+void MessageContainer::clear_error() {
+ error_ = 0;
+}
+::Tango::PMR::Common::ErrorCode MessageContainer::error() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Common.MessageContainer.Error)
+ return static_cast< ::Tango::PMR::Common::ErrorCode >(error_);
+}
+void MessageContainer::set_error(::Tango::PMR::Common::ErrorCode value) {
+
+ error_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Common.MessageContainer.Error)
+}
+
#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
// @@protoc_insertion_point(namespace_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/MessageContainer.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/MessageContainer.pb.h
index b853ede29..2ba425077 100644
--- a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/MessageContainer.pb.h
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/MessageContainer.pb.h
@@ -30,6 +30,7 @@
#include <google/protobuf/extension_set.h> // IWYU pragma: export
#include <google/protobuf/unknown_field_set.h>
#include "MessageType.pb.h"
+#include "ErrorCode.pb.h"
// @@protoc_insertion_point(includes)
namespace Tango {
namespace PMR {
@@ -189,6 +190,18 @@ class MessageContainer : public ::google::protobuf::Message /* @@protoc_insertio
bool completed() const;
void set_completed(bool value);
+ // uint32 CRC = 6;
+ void clear_crc();
+ static const int kCRCFieldNumber = 6;
+ ::google::protobuf::uint32 crc() const;
+ void set_crc(::google::protobuf::uint32 value);
+
+ // .Tango.PMR.Common.ErrorCode Error = 7;
+ void clear_error();
+ static const int kErrorFieldNumber = 7;
+ ::Tango::PMR::Common::ErrorCode error() const;
+ void set_error(::Tango::PMR::Common::ErrorCode value);
+
// @@protoc_insertion_point(class_scope:Tango.PMR.Common.MessageContainer)
private:
@@ -198,6 +211,8 @@ class MessageContainer : public ::google::protobuf::Message /* @@protoc_insertio
int type_;
bool continuous_;
bool completed_;
+ ::google::protobuf::uint32 crc_;
+ int error_;
mutable int _cached_size_;
friend struct protobuf_MessageContainer_2eproto::TableStruct;
};
@@ -361,6 +376,34 @@ inline void MessageContainer::set_allocated_data(::std::string* data) {
// @@protoc_insertion_point(field_set_allocated:Tango.PMR.Common.MessageContainer.Data)
}
+// uint32 CRC = 6;
+inline void MessageContainer::clear_crc() {
+ crc_ = 0u;
+}
+inline ::google::protobuf::uint32 MessageContainer::crc() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Common.MessageContainer.CRC)
+ return crc_;
+}
+inline void MessageContainer::set_crc(::google::protobuf::uint32 value) {
+
+ crc_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Common.MessageContainer.CRC)
+}
+
+// .Tango.PMR.Common.ErrorCode Error = 7;
+inline void MessageContainer::clear_error() {
+ error_ = 0;
+}
+inline ::Tango::PMR::Common::ErrorCode MessageContainer::error() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Common.MessageContainer.Error)
+ return static_cast< ::Tango::PMR::Common::ErrorCode >(error_);
+}
+inline void MessageContainer::set_error(::Tango::PMR::Common::ErrorCode value) {
+
+ error_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Common.MessageContainer.Error)
+}
+
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif // __GNUC__
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/MessageType.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/MessageType.pb.cc
index f1c5e4280..5b1090c5d 100644
--- a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/MessageType.pb.cc
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/MessageType.pb.cc
@@ -82,15 +82,33 @@ namespace {
void AddDescriptorsImpl() {
InitDefaults();
static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
- "\n\021MessageType.proto\022\020Tango.PMR.Common*\204\001"
+ "\n\021MessageType.proto\022\020Tango.PMR.Common*\357\006"
"\n\013MessageType\022\007\n\003RGB\020\000\022\007\n\003Job\020\001\022\013\n\007Segme"
"nt\020\002\022\024\n\020CalculateRequest\020\003\022\025\n\021CalculateR"
"esponse\020\004\022\023\n\017ProgressRequest\020\005\022\024\n\020Progre"
- "ssResponse\020\006B\034\n\032com.twine.tango.pmr.comm"
- "onb\006proto3"
+ "ssResponse\020\006\022\034\n\030StubCartridgeReadRequest"
+ "\020\007\022\035\n\031StubCartridgeReadResponse\020\010\022\035\n\031Stu"
+ "bCartridgeWriteRequest\020\t\022\036\n\032StubCartridg"
+ "eWriteResponse\020\n\022\030\n\024StubDispenserRequest"
+ "\020\013\022\031\n\025StubDispenserResponse\020\014\022\035\n\031StubGPI"
+ "OInputSetupRequest\020\r\022\036\n\032StubGPIOInputSet"
+ "upResponse\020\016\022\032\n\026StubGPIOReadBitRequest\020\017"
+ "\022\033\n\027StubGPIOReadBitResponse\020\020\022\033\n\027StubGPI"
+ "OReadByteRequest\020\021\022\034\n\030StubGPIOReadByteRe"
+ "sponse\020\022\022\033\n\027StubGPIOWriteBitRequest\020\023\022\034\n"
+ "\030StubGPIOWriteBitResponse\020\024\022\034\n\030StubGPIOW"
+ "riteByteRequest\020\025\022\035\n\031StubGPIOWriteByteRe"
+ "sponse\020\026\022\025\n\021StubHeaterRequest\020\027\022\026\n\022StubH"
+ "eaterResponse\020\030\022\033\n\027StubMotorEncoderReque"
+ "st\020\031\022\034\n\030StubMotorEncoderResponse\020\032\022\035\n\031St"
+ "ubOptLimitSwitchRequest\020\033\022\036\n\032StubOptLimi"
+ "tSwitchResponse\020\034\022\032\n\026StubSteperMotorRequ"
+ "est\020\035\022\033\n\027StubSteperMotorResponse\020\036\022\024\n\020St"
+ "ubValveRequest\020\037\022\025\n\021StubValveResponse\020 B"
+ "\034\n\032com.twine.tango.pmr.commonb\006proto3"
};
::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
- descriptor, 210);
+ descriptor, 957);
::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
"MessageType.proto", &protobuf_RegisterTypes);
}
@@ -122,6 +140,32 @@ bool MessageType_IsValid(int value) {
case 4:
case 5:
case 6:
+ case 7:
+ case 8:
+ case 9:
+ case 10:
+ case 11:
+ case 12:
+ case 13:
+ case 14:
+ case 15:
+ case 16:
+ case 17:
+ case 18:
+ case 19:
+ case 20:
+ case 21:
+ case 22:
+ case 23:
+ case 24:
+ case 25:
+ case 26:
+ case 27:
+ case 28:
+ case 29:
+ case 30:
+ case 31:
+ case 32:
return true;
default:
return false;
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/MessageType.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/MessageType.pb.h
index 45020a960..e0db308a8 100644
--- a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/MessageType.pb.h
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/MessageType.pb.h
@@ -63,12 +63,38 @@ enum MessageType {
CalculateResponse = 4,
ProgressRequest = 5,
ProgressResponse = 6,
+ StubCartridgeReadRequest = 7,
+ StubCartridgeReadResponse = 8,
+ StubCartridgeWriteRequest = 9,
+ StubCartridgeWriteResponse = 10,
+ StubDispenserRequest = 11,
+ StubDispenserResponse = 12,
+ StubGPIOInputSetupRequest = 13,
+ StubGPIOInputSetupResponse = 14,
+ StubGPIOReadBitRequest = 15,
+ StubGPIOReadBitResponse = 16,
+ StubGPIOReadByteRequest = 17,
+ StubGPIOReadByteResponse = 18,
+ StubGPIOWriteBitRequest = 19,
+ StubGPIOWriteBitResponse = 20,
+ StubGPIOWriteByteRequest = 21,
+ StubGPIOWriteByteResponse = 22,
+ StubHeaterRequest = 23,
+ StubHeaterResponse = 24,
+ StubMotorEncoderRequest = 25,
+ StubMotorEncoderResponse = 26,
+ StubOptLimitSwitchRequest = 27,
+ StubOptLimitSwitchResponse = 28,
+ StubSteperMotorRequest = 29,
+ StubSteperMotorResponse = 30,
+ StubValveRequest = 31,
+ StubValveResponse = 32,
MessageType_INT_MIN_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32min,
MessageType_INT_MAX_SENTINEL_DO_NOT_USE_ = ::google::protobuf::kint32max
};
bool MessageType_IsValid(int value);
const MessageType MessageType_MIN = RGB;
-const MessageType MessageType_MAX = ProgressResponse;
+const MessageType MessageType_MAX = StubValveResponse;
const int MessageType_ARRAYSIZE = MessageType_MAX + 1;
const ::google::protobuf::EnumDescriptor* MessageType_descriptor();
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/ProgressRequest.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/ProgressRequest.pb.cc
index 39adb6a72..971d4967a 100644
--- a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/ProgressRequest.pb.cc
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/ProgressRequest.pb.cc
@@ -55,6 +55,8 @@ const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION
~0u, // no _extensions_
~0u, // no _oneof_case_
~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProgressRequest, amount_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ProgressRequest, delay_),
};
static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
{ 0, -1, sizeof(ProgressRequest)},
@@ -103,11 +105,12 @@ void AddDescriptorsImpl() {
InitDefaults();
static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
"\n\025ProgressRequest.proto\022\017Tango.PMR.Stubs"
- "\"\021\n\017ProgressRequestB\033\n\031com.twine.tango.p"
- "mr.stubsb\006proto3"
+ "\"0\n\017ProgressRequest\022\016\n\006Amount\030\001 \001(\005\022\r\n\005D"
+ "elay\030\002 \001(\005B\033\n\031com.twine.tango.pmr.stubsb"
+ "\006proto3"
};
::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
- descriptor, 96);
+ descriptor, 127);
::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
"ProgressRequest.proto", &protobuf_RegisterTypes);
}
@@ -130,6 +133,8 @@ struct StaticDescriptorInitializer {
// ===================================================================
#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int ProgressRequest::kAmountFieldNumber;
+const int ProgressRequest::kDelayFieldNumber;
#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
ProgressRequest::ProgressRequest()
@@ -145,10 +150,16 @@ ProgressRequest::ProgressRequest(const ProgressRequest& from)
_internal_metadata_(NULL),
_cached_size_(0) {
_internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::memcpy(&amount_, &from.amount_,
+ static_cast<size_t>(reinterpret_cast<char*>(&delay_) -
+ reinterpret_cast<char*>(&amount_)) + sizeof(delay_));
// @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.ProgressRequest)
}
void ProgressRequest::SharedCtor() {
+ ::memset(&amount_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&delay_) -
+ reinterpret_cast<char*>(&amount_)) + sizeof(delay_));
_cached_size_ = 0;
}
@@ -189,6 +200,9 @@ void ProgressRequest::Clear() {
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
+ ::memset(&amount_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&delay_) -
+ reinterpret_cast<char*>(&amount_)) + sizeof(delay_));
_internal_metadata_.Clear();
}
@@ -201,12 +215,45 @@ bool ProgressRequest::MergePartialFromCodedStream(
::std::pair< ::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
tag = p.first;
if (!p.second) goto handle_unusual;
- handle_unusual:
- if (tag == 0) {
- goto success;
+ switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+ // int32 Amount = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+ input, &amount_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // int32 Delay = 2;
+ case 2: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+ input, &delay_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
}
- DO_(::google::protobuf::internal::WireFormat::SkipField(
- input, tag, _internal_metadata_.mutable_unknown_fields()));
}
success:
// @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.ProgressRequest)
@@ -223,6 +270,16 @@ void ProgressRequest::SerializeWithCachedSizes(
::google::protobuf::uint32 cached_has_bits = 0;
(void) cached_has_bits;
+ // int32 Amount = 1;
+ if (this->amount() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->amount(), output);
+ }
+
+ // int32 Delay = 2;
+ if (this->delay() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->delay(), output);
+ }
+
if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
::google::protobuf::internal::WireFormat::SerializeUnknownFields(
(::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
@@ -237,6 +294,16 @@ void ProgressRequest::SerializeWithCachedSizes(
::google::protobuf::uint32 cached_has_bits = 0;
(void) cached_has_bits;
+ // int32 Amount = 1;
+ if (this->amount() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->amount(), target);
+ }
+
+ // int32 Delay = 2;
+ if (this->delay() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->delay(), target);
+ }
+
if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
(::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
@@ -254,6 +321,20 @@ size_t ProgressRequest::ByteSizeLong() const {
::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
(::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
}
+ // int32 Amount = 1;
+ if (this->amount() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::Int32Size(
+ this->amount());
+ }
+
+ // int32 Delay = 2;
+ if (this->delay() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::Int32Size(
+ this->delay());
+ }
+
int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
_cached_size_ = cached_size;
@@ -283,6 +364,12 @@ void ProgressRequest::MergeFrom(const ProgressRequest& from) {
::google::protobuf::uint32 cached_has_bits = 0;
(void) cached_has_bits;
+ if (from.amount() != 0) {
+ set_amount(from.amount());
+ }
+ if (from.delay() != 0) {
+ set_delay(from.delay());
+ }
}
void ProgressRequest::CopyFrom(const ::google::protobuf::Message& from) {
@@ -309,6 +396,8 @@ void ProgressRequest::Swap(ProgressRequest* other) {
}
void ProgressRequest::InternalSwap(ProgressRequest* other) {
using std::swap;
+ swap(amount_, other->amount_);
+ swap(delay_, other->delay_);
_internal_metadata_.Swap(&other->_internal_metadata_);
swap(_cached_size_, other->_cached_size_);
}
@@ -321,6 +410,34 @@ void ProgressRequest::InternalSwap(ProgressRequest* other) {
#if PROTOBUF_INLINE_NOT_IN_HEADERS
// ProgressRequest
+// int32 Amount = 1;
+void ProgressRequest::clear_amount() {
+ amount_ = 0;
+}
+::google::protobuf::int32 ProgressRequest::amount() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.ProgressRequest.Amount)
+ return amount_;
+}
+void ProgressRequest::set_amount(::google::protobuf::int32 value) {
+
+ amount_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.ProgressRequest.Amount)
+}
+
+// int32 Delay = 2;
+void ProgressRequest::clear_delay() {
+ delay_ = 0;
+}
+::google::protobuf::int32 ProgressRequest::delay() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.ProgressRequest.Delay)
+ return delay_;
+}
+void ProgressRequest::set_delay(::google::protobuf::int32 value) {
+
+ delay_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.ProgressRequest.Delay)
+}
+
#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
// @@protoc_insertion_point(namespace_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/ProgressRequest.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/ProgressRequest.pb.h
index a41147953..45d4cda83 100644
--- a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/ProgressRequest.pb.h
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/ProgressRequest.pb.h
@@ -142,10 +142,24 @@ class ProgressRequest : public ::google::protobuf::Message /* @@protoc_insertion
// accessors -------------------------------------------------------
+ // int32 Amount = 1;
+ void clear_amount();
+ static const int kAmountFieldNumber = 1;
+ ::google::protobuf::int32 amount() const;
+ void set_amount(::google::protobuf::int32 value);
+
+ // int32 Delay = 2;
+ void clear_delay();
+ static const int kDelayFieldNumber = 2;
+ ::google::protobuf::int32 delay() const;
+ void set_delay(::google::protobuf::int32 value);
+
// @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.ProgressRequest)
private:
::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::int32 amount_;
+ ::google::protobuf::int32 delay_;
mutable int _cached_size_;
friend struct protobuf_ProgressRequest_2eproto::TableStruct;
};
@@ -161,6 +175,34 @@ class ProgressRequest : public ::google::protobuf::Message /* @@protoc_insertion
#endif // __GNUC__
// ProgressRequest
+// int32 Amount = 1;
+inline void ProgressRequest::clear_amount() {
+ amount_ = 0;
+}
+inline ::google::protobuf::int32 ProgressRequest::amount() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.ProgressRequest.Amount)
+ return amount_;
+}
+inline void ProgressRequest::set_amount(::google::protobuf::int32 value) {
+
+ amount_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.ProgressRequest.Amount)
+}
+
+// int32 Delay = 2;
+inline void ProgressRequest::clear_delay() {
+ delay_ = 0;
+}
+inline ::google::protobuf::int32 ProgressRequest::delay() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.ProgressRequest.Delay)
+ return delay_;
+}
+inline void ProgressRequest::set_delay(::google::protobuf::int32 value) {
+
+ delay_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.ProgressRequest.Delay)
+}
+
#ifdef __GNUC__
#pragma GCC diagnostic pop
#endif // __GNUC__
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeReadRequest.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeReadRequest.pb.cc
new file mode 100644
index 000000000..1956f37ba
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeReadRequest.pb.cc
@@ -0,0 +1,392 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubCartridgeReadRequest.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "StubCartridgeReadRequest.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 Tango {
+namespace PMR {
+namespace Stubs {
+class StubCartridgeReadRequestDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<StubCartridgeReadRequest>
+ _instance;
+} _StubCartridgeReadRequest_default_instance_;
+
+namespace protobuf_StubCartridgeReadRequest_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubCartridgeReadRequest, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubCartridgeReadRequest, cartridgeid_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(StubCartridgeReadRequest)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_StubCartridgeReadRequest_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "StubCartridgeReadRequest.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _StubCartridgeReadRequest_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_StubCartridgeReadRequest_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n\036StubCartridgeReadRequest.proto\022\017Tango."
+ "PMR.Stubs\"/\n\030StubCartridgeReadRequest\022\023\n"
+ "\013CartridgeId\030\001 \001(\rB\033\n\031com.twine.tango.pm"
+ "r.stubsb\006proto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 135);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "StubCartridgeReadRequest.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_StubCartridgeReadRequest_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StubCartridgeReadRequest::kCartridgeIdFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StubCartridgeReadRequest::StubCartridgeReadRequest()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_StubCartridgeReadRequest_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubCartridgeReadRequest)
+}
+StubCartridgeReadRequest::StubCartridgeReadRequest(const StubCartridgeReadRequest& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ cartridgeid_ = from.cartridgeid_;
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubCartridgeReadRequest)
+}
+
+void StubCartridgeReadRequest::SharedCtor() {
+ cartridgeid_ = 0u;
+ _cached_size_ = 0;
+}
+
+StubCartridgeReadRequest::~StubCartridgeReadRequest() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubCartridgeReadRequest)
+ SharedDtor();
+}
+
+void StubCartridgeReadRequest::SharedDtor() {
+}
+
+void StubCartridgeReadRequest::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StubCartridgeReadRequest::descriptor() {
+ protobuf_StubCartridgeReadRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubCartridgeReadRequest_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StubCartridgeReadRequest& StubCartridgeReadRequest::default_instance() {
+ protobuf_StubCartridgeReadRequest_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+StubCartridgeReadRequest* StubCartridgeReadRequest::New(::google::protobuf::Arena* arena) const {
+ StubCartridgeReadRequest* n = new StubCartridgeReadRequest;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StubCartridgeReadRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubCartridgeReadRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ cartridgeid_ = 0u;
+ _internal_metadata_.Clear();
+}
+
+bool StubCartridgeReadRequest::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:Tango.PMR.Stubs.StubCartridgeReadRequest)
+ 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)) {
+ // uint32 CartridgeId = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &cartridgeid_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubCartridgeReadRequest)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubCartridgeReadRequest)
+ return false;
+#undef DO_
+}
+
+void StubCartridgeReadRequest::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubCartridgeReadRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 CartridgeId = 1;
+ if (this->cartridgeid() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->cartridgeid(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubCartridgeReadRequest)
+}
+
+::google::protobuf::uint8* StubCartridgeReadRequest::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubCartridgeReadRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 CartridgeId = 1;
+ if (this->cartridgeid() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->cartridgeid(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubCartridgeReadRequest)
+ return target;
+}
+
+size_t StubCartridgeReadRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubCartridgeReadRequest)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // uint32 CartridgeId = 1;
+ if (this->cartridgeid() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->cartridgeid());
+ }
+
+ 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 StubCartridgeReadRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubCartridgeReadRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ const StubCartridgeReadRequest* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StubCartridgeReadRequest>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubCartridgeReadRequest)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubCartridgeReadRequest)
+ MergeFrom(*source);
+ }
+}
+
+void StubCartridgeReadRequest::MergeFrom(const StubCartridgeReadRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubCartridgeReadRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.cartridgeid() != 0) {
+ set_cartridgeid(from.cartridgeid());
+ }
+}
+
+void StubCartridgeReadRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubCartridgeReadRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StubCartridgeReadRequest::CopyFrom(const StubCartridgeReadRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubCartridgeReadRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StubCartridgeReadRequest::IsInitialized() const {
+ return true;
+}
+
+void StubCartridgeReadRequest::Swap(StubCartridgeReadRequest* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StubCartridgeReadRequest::InternalSwap(StubCartridgeReadRequest* other) {
+ using std::swap;
+ swap(cartridgeid_, other->cartridgeid_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StubCartridgeReadRequest::GetMetadata() const {
+ protobuf_StubCartridgeReadRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubCartridgeReadRequest_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StubCartridgeReadRequest
+
+// uint32 CartridgeId = 1;
+void StubCartridgeReadRequest::clear_cartridgeid() {
+ cartridgeid_ = 0u;
+}
+::google::protobuf::uint32 StubCartridgeReadRequest::cartridgeid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeReadRequest.CartridgeId)
+ return cartridgeid_;
+}
+void StubCartridgeReadRequest::set_cartridgeid(::google::protobuf::uint32 value) {
+
+ cartridgeid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeReadRequest.CartridgeId)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeReadRequest.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeReadRequest.pb.h
new file mode 100644
index 000000000..ee518ef92
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeReadRequest.pb.h
@@ -0,0 +1,199 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubCartridgeReadRequest.proto
+
+#ifndef PROTOBUF_StubCartridgeReadRequest_2eproto__INCLUDED
+#define PROTOBUF_StubCartridgeReadRequest_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+class StubCartridgeReadRequest;
+class StubCartridgeReadRequestDefaultTypeInternal;
+extern StubCartridgeReadRequestDefaultTypeInternal _StubCartridgeReadRequest_default_instance_;
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+
+namespace protobuf_StubCartridgeReadRequest_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_StubCartridgeReadRequest_2eproto
+
+// ===================================================================
+
+class StubCartridgeReadRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Stubs.StubCartridgeReadRequest) */ {
+ public:
+ StubCartridgeReadRequest();
+ virtual ~StubCartridgeReadRequest();
+
+ StubCartridgeReadRequest(const StubCartridgeReadRequest& from);
+
+ inline StubCartridgeReadRequest& operator=(const StubCartridgeReadRequest& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ StubCartridgeReadRequest(StubCartridgeReadRequest&& from) noexcept
+ : StubCartridgeReadRequest() {
+ *this = ::std::move(from);
+ }
+
+ inline StubCartridgeReadRequest& operator=(StubCartridgeReadRequest&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StubCartridgeReadRequest& default_instance();
+
+ static inline const StubCartridgeReadRequest* internal_default_instance() {
+ return reinterpret_cast<const StubCartridgeReadRequest*>(
+ &_StubCartridgeReadRequest_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(StubCartridgeReadRequest* other);
+ friend void swap(StubCartridgeReadRequest& a, StubCartridgeReadRequest& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline StubCartridgeReadRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ StubCartridgeReadRequest* 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 StubCartridgeReadRequest& from);
+ void MergeFrom(const StubCartridgeReadRequest& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(StubCartridgeReadRequest* 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 -------------------------------------------------------
+
+ // uint32 CartridgeId = 1;
+ void clear_cartridgeid();
+ static const int kCartridgeIdFieldNumber = 1;
+ ::google::protobuf::uint32 cartridgeid() const;
+ void set_cartridgeid(::google::protobuf::uint32 value);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.StubCartridgeReadRequest)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::uint32 cartridgeid_;
+ mutable int _cached_size_;
+ friend struct protobuf_StubCartridgeReadRequest_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// StubCartridgeReadRequest
+
+// uint32 CartridgeId = 1;
+inline void StubCartridgeReadRequest::clear_cartridgeid() {
+ cartridgeid_ = 0u;
+}
+inline ::google::protobuf::uint32 StubCartridgeReadRequest::cartridgeid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeReadRequest.CartridgeId)
+ return cartridgeid_;
+}
+inline void StubCartridgeReadRequest::set_cartridgeid(::google::protobuf::uint32 value) {
+
+ cartridgeid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeReadRequest.CartridgeId)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_StubCartridgeReadRequest_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeReadResponse.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeReadResponse.pb.cc
new file mode 100644
index 000000000..2f88e00ee
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeReadResponse.pb.cc
@@ -0,0 +1,654 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubCartridgeReadResponse.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "StubCartridgeReadResponse.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 Tango {
+namespace PMR {
+namespace Stubs {
+class StubCartridgeReadResponseDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<StubCartridgeReadResponse>
+ _instance;
+} _StubCartridgeReadResponse_default_instance_;
+
+namespace protobuf_StubCartridgeReadResponse_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubCartridgeReadResponse, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubCartridgeReadResponse, cartridgeid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubCartridgeReadResponse, cartridgecolor_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubCartridgeReadResponse, cartridgeversion_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubCartridgeReadResponse, cartridgedata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubCartridgeReadResponse, cartridgeused_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubCartridgeReadResponse, status_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(StubCartridgeReadResponse)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_StubCartridgeReadResponse_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "StubCartridgeReadResponse.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _StubCartridgeReadResponse_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_StubCartridgeReadResponse_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n\037StubCartridgeReadResponse.proto\022\017Tango"
+ ".PMR.Stubs\"\240\001\n\031StubCartridgeReadResponse"
+ "\022\023\n\013CartridgeId\030\001 \001(\r\022\026\n\016CartridgeColor\030"
+ "\003 \001(\r\022\030\n\020CartridgeVersion\030\004 \001(\r\022\025\n\rCartr"
+ "idgeData\030\005 \001(\005\022\025\n\rCartridgeUsed\030\006 \001(\010\022\016\n"
+ "\006Status\030\010 \001(\rB\033\n\031com.twine.tango.pmr.stu"
+ "bsb\006proto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 250);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "StubCartridgeReadResponse.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_StubCartridgeReadResponse_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StubCartridgeReadResponse::kCartridgeIdFieldNumber;
+const int StubCartridgeReadResponse::kCartridgeColorFieldNumber;
+const int StubCartridgeReadResponse::kCartridgeVersionFieldNumber;
+const int StubCartridgeReadResponse::kCartridgeDataFieldNumber;
+const int StubCartridgeReadResponse::kCartridgeUsedFieldNumber;
+const int StubCartridgeReadResponse::kStatusFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StubCartridgeReadResponse::StubCartridgeReadResponse()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_StubCartridgeReadResponse_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubCartridgeReadResponse)
+}
+StubCartridgeReadResponse::StubCartridgeReadResponse(const StubCartridgeReadResponse& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::memcpy(&cartridgeid_, &from.cartridgeid_,
+ static_cast<size_t>(reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&cartridgeid_)) + sizeof(status_));
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubCartridgeReadResponse)
+}
+
+void StubCartridgeReadResponse::SharedCtor() {
+ ::memset(&cartridgeid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&cartridgeid_)) + sizeof(status_));
+ _cached_size_ = 0;
+}
+
+StubCartridgeReadResponse::~StubCartridgeReadResponse() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubCartridgeReadResponse)
+ SharedDtor();
+}
+
+void StubCartridgeReadResponse::SharedDtor() {
+}
+
+void StubCartridgeReadResponse::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StubCartridgeReadResponse::descriptor() {
+ protobuf_StubCartridgeReadResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubCartridgeReadResponse_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StubCartridgeReadResponse& StubCartridgeReadResponse::default_instance() {
+ protobuf_StubCartridgeReadResponse_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+StubCartridgeReadResponse* StubCartridgeReadResponse::New(::google::protobuf::Arena* arena) const {
+ StubCartridgeReadResponse* n = new StubCartridgeReadResponse;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StubCartridgeReadResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubCartridgeReadResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ ::memset(&cartridgeid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&cartridgeid_)) + sizeof(status_));
+ _internal_metadata_.Clear();
+}
+
+bool StubCartridgeReadResponse::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:Tango.PMR.Stubs.StubCartridgeReadResponse)
+ 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)) {
+ // uint32 CartridgeId = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &cartridgeid_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 CartridgeColor = 3;
+ case 3: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &cartridgecolor_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 CartridgeVersion = 4;
+ case 4: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &cartridgeversion_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // int32 CartridgeData = 5;
+ case 5: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(40u /* 40 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+ input, &cartridgedata_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // bool CartridgeUsed = 6;
+ case 6: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(48u /* 48 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &cartridgeused_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 Status = 8;
+ case 8: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(64u /* 64 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &status_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubCartridgeReadResponse)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubCartridgeReadResponse)
+ return false;
+#undef DO_
+}
+
+void StubCartridgeReadResponse::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubCartridgeReadResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 CartridgeId = 1;
+ if (this->cartridgeid() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->cartridgeid(), output);
+ }
+
+ // uint32 CartridgeColor = 3;
+ if (this->cartridgecolor() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(3, this->cartridgecolor(), output);
+ }
+
+ // uint32 CartridgeVersion = 4;
+ if (this->cartridgeversion() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(4, this->cartridgeversion(), output);
+ }
+
+ // int32 CartridgeData = 5;
+ if (this->cartridgedata() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteInt32(5, this->cartridgedata(), output);
+ }
+
+ // bool CartridgeUsed = 6;
+ if (this->cartridgeused() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(6, this->cartridgeused(), output);
+ }
+
+ // uint32 Status = 8;
+ if (this->status() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(8, this->status(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubCartridgeReadResponse)
+}
+
+::google::protobuf::uint8* StubCartridgeReadResponse::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubCartridgeReadResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 CartridgeId = 1;
+ if (this->cartridgeid() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->cartridgeid(), target);
+ }
+
+ // uint32 CartridgeColor = 3;
+ if (this->cartridgecolor() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(3, this->cartridgecolor(), target);
+ }
+
+ // uint32 CartridgeVersion = 4;
+ if (this->cartridgeversion() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(4, this->cartridgeversion(), target);
+ }
+
+ // int32 CartridgeData = 5;
+ if (this->cartridgedata() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(5, this->cartridgedata(), target);
+ }
+
+ // bool CartridgeUsed = 6;
+ if (this->cartridgeused() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(6, this->cartridgeused(), target);
+ }
+
+ // uint32 Status = 8;
+ if (this->status() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(8, this->status(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubCartridgeReadResponse)
+ return target;
+}
+
+size_t StubCartridgeReadResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubCartridgeReadResponse)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // uint32 CartridgeId = 1;
+ if (this->cartridgeid() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->cartridgeid());
+ }
+
+ // uint32 CartridgeColor = 3;
+ if (this->cartridgecolor() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->cartridgecolor());
+ }
+
+ // uint32 CartridgeVersion = 4;
+ if (this->cartridgeversion() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->cartridgeversion());
+ }
+
+ // int32 CartridgeData = 5;
+ if (this->cartridgedata() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::Int32Size(
+ this->cartridgedata());
+ }
+
+ // bool CartridgeUsed = 6;
+ if (this->cartridgeused() != 0) {
+ total_size += 1 + 1;
+ }
+
+ // uint32 Status = 8;
+ if (this->status() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->status());
+ }
+
+ 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 StubCartridgeReadResponse::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubCartridgeReadResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ const StubCartridgeReadResponse* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StubCartridgeReadResponse>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubCartridgeReadResponse)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubCartridgeReadResponse)
+ MergeFrom(*source);
+ }
+}
+
+void StubCartridgeReadResponse::MergeFrom(const StubCartridgeReadResponse& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubCartridgeReadResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.cartridgeid() != 0) {
+ set_cartridgeid(from.cartridgeid());
+ }
+ if (from.cartridgecolor() != 0) {
+ set_cartridgecolor(from.cartridgecolor());
+ }
+ if (from.cartridgeversion() != 0) {
+ set_cartridgeversion(from.cartridgeversion());
+ }
+ if (from.cartridgedata() != 0) {
+ set_cartridgedata(from.cartridgedata());
+ }
+ if (from.cartridgeused() != 0) {
+ set_cartridgeused(from.cartridgeused());
+ }
+ if (from.status() != 0) {
+ set_status(from.status());
+ }
+}
+
+void StubCartridgeReadResponse::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubCartridgeReadResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StubCartridgeReadResponse::CopyFrom(const StubCartridgeReadResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubCartridgeReadResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StubCartridgeReadResponse::IsInitialized() const {
+ return true;
+}
+
+void StubCartridgeReadResponse::Swap(StubCartridgeReadResponse* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StubCartridgeReadResponse::InternalSwap(StubCartridgeReadResponse* other) {
+ using std::swap;
+ swap(cartridgeid_, other->cartridgeid_);
+ swap(cartridgecolor_, other->cartridgecolor_);
+ swap(cartridgeversion_, other->cartridgeversion_);
+ swap(cartridgedata_, other->cartridgedata_);
+ swap(cartridgeused_, other->cartridgeused_);
+ swap(status_, other->status_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StubCartridgeReadResponse::GetMetadata() const {
+ protobuf_StubCartridgeReadResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubCartridgeReadResponse_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StubCartridgeReadResponse
+
+// uint32 CartridgeId = 1;
+void StubCartridgeReadResponse::clear_cartridgeid() {
+ cartridgeid_ = 0u;
+}
+::google::protobuf::uint32 StubCartridgeReadResponse::cartridgeid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeReadResponse.CartridgeId)
+ return cartridgeid_;
+}
+void StubCartridgeReadResponse::set_cartridgeid(::google::protobuf::uint32 value) {
+
+ cartridgeid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeReadResponse.CartridgeId)
+}
+
+// uint32 CartridgeColor = 3;
+void StubCartridgeReadResponse::clear_cartridgecolor() {
+ cartridgecolor_ = 0u;
+}
+::google::protobuf::uint32 StubCartridgeReadResponse::cartridgecolor() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeReadResponse.CartridgeColor)
+ return cartridgecolor_;
+}
+void StubCartridgeReadResponse::set_cartridgecolor(::google::protobuf::uint32 value) {
+
+ cartridgecolor_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeReadResponse.CartridgeColor)
+}
+
+// uint32 CartridgeVersion = 4;
+void StubCartridgeReadResponse::clear_cartridgeversion() {
+ cartridgeversion_ = 0u;
+}
+::google::protobuf::uint32 StubCartridgeReadResponse::cartridgeversion() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeReadResponse.CartridgeVersion)
+ return cartridgeversion_;
+}
+void StubCartridgeReadResponse::set_cartridgeversion(::google::protobuf::uint32 value) {
+
+ cartridgeversion_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeReadResponse.CartridgeVersion)
+}
+
+// int32 CartridgeData = 5;
+void StubCartridgeReadResponse::clear_cartridgedata() {
+ cartridgedata_ = 0;
+}
+::google::protobuf::int32 StubCartridgeReadResponse::cartridgedata() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeReadResponse.CartridgeData)
+ return cartridgedata_;
+}
+void StubCartridgeReadResponse::set_cartridgedata(::google::protobuf::int32 value) {
+
+ cartridgedata_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeReadResponse.CartridgeData)
+}
+
+// bool CartridgeUsed = 6;
+void StubCartridgeReadResponse::clear_cartridgeused() {
+ cartridgeused_ = false;
+}
+bool StubCartridgeReadResponse::cartridgeused() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeReadResponse.CartridgeUsed)
+ return cartridgeused_;
+}
+void StubCartridgeReadResponse::set_cartridgeused(bool value) {
+
+ cartridgeused_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeReadResponse.CartridgeUsed)
+}
+
+// uint32 Status = 8;
+void StubCartridgeReadResponse::clear_status() {
+ status_ = 0u;
+}
+::google::protobuf::uint32 StubCartridgeReadResponse::status() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeReadResponse.Status)
+ return status_;
+}
+void StubCartridgeReadResponse::set_status(::google::protobuf::uint32 value) {
+
+ status_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeReadResponse.Status)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeReadResponse.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeReadResponse.pb.h
new file mode 100644
index 000000000..a247f48eb
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeReadResponse.pb.h
@@ -0,0 +1,304 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubCartridgeReadResponse.proto
+
+#ifndef PROTOBUF_StubCartridgeReadResponse_2eproto__INCLUDED
+#define PROTOBUF_StubCartridgeReadResponse_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+class StubCartridgeReadResponse;
+class StubCartridgeReadResponseDefaultTypeInternal;
+extern StubCartridgeReadResponseDefaultTypeInternal _StubCartridgeReadResponse_default_instance_;
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+
+namespace protobuf_StubCartridgeReadResponse_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_StubCartridgeReadResponse_2eproto
+
+// ===================================================================
+
+class StubCartridgeReadResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Stubs.StubCartridgeReadResponse) */ {
+ public:
+ StubCartridgeReadResponse();
+ virtual ~StubCartridgeReadResponse();
+
+ StubCartridgeReadResponse(const StubCartridgeReadResponse& from);
+
+ inline StubCartridgeReadResponse& operator=(const StubCartridgeReadResponse& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ StubCartridgeReadResponse(StubCartridgeReadResponse&& from) noexcept
+ : StubCartridgeReadResponse() {
+ *this = ::std::move(from);
+ }
+
+ inline StubCartridgeReadResponse& operator=(StubCartridgeReadResponse&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StubCartridgeReadResponse& default_instance();
+
+ static inline const StubCartridgeReadResponse* internal_default_instance() {
+ return reinterpret_cast<const StubCartridgeReadResponse*>(
+ &_StubCartridgeReadResponse_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(StubCartridgeReadResponse* other);
+ friend void swap(StubCartridgeReadResponse& a, StubCartridgeReadResponse& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline StubCartridgeReadResponse* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ StubCartridgeReadResponse* 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 StubCartridgeReadResponse& from);
+ void MergeFrom(const StubCartridgeReadResponse& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(StubCartridgeReadResponse* 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 -------------------------------------------------------
+
+ // uint32 CartridgeId = 1;
+ void clear_cartridgeid();
+ static const int kCartridgeIdFieldNumber = 1;
+ ::google::protobuf::uint32 cartridgeid() const;
+ void set_cartridgeid(::google::protobuf::uint32 value);
+
+ // uint32 CartridgeColor = 3;
+ void clear_cartridgecolor();
+ static const int kCartridgeColorFieldNumber = 3;
+ ::google::protobuf::uint32 cartridgecolor() const;
+ void set_cartridgecolor(::google::protobuf::uint32 value);
+
+ // uint32 CartridgeVersion = 4;
+ void clear_cartridgeversion();
+ static const int kCartridgeVersionFieldNumber = 4;
+ ::google::protobuf::uint32 cartridgeversion() const;
+ void set_cartridgeversion(::google::protobuf::uint32 value);
+
+ // int32 CartridgeData = 5;
+ void clear_cartridgedata();
+ static const int kCartridgeDataFieldNumber = 5;
+ ::google::protobuf::int32 cartridgedata() const;
+ void set_cartridgedata(::google::protobuf::int32 value);
+
+ // bool CartridgeUsed = 6;
+ void clear_cartridgeused();
+ static const int kCartridgeUsedFieldNumber = 6;
+ bool cartridgeused() const;
+ void set_cartridgeused(bool value);
+
+ // uint32 Status = 8;
+ void clear_status();
+ static const int kStatusFieldNumber = 8;
+ ::google::protobuf::uint32 status() const;
+ void set_status(::google::protobuf::uint32 value);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.StubCartridgeReadResponse)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::uint32 cartridgeid_;
+ ::google::protobuf::uint32 cartridgecolor_;
+ ::google::protobuf::uint32 cartridgeversion_;
+ ::google::protobuf::int32 cartridgedata_;
+ bool cartridgeused_;
+ ::google::protobuf::uint32 status_;
+ mutable int _cached_size_;
+ friend struct protobuf_StubCartridgeReadResponse_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// StubCartridgeReadResponse
+
+// uint32 CartridgeId = 1;
+inline void StubCartridgeReadResponse::clear_cartridgeid() {
+ cartridgeid_ = 0u;
+}
+inline ::google::protobuf::uint32 StubCartridgeReadResponse::cartridgeid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeReadResponse.CartridgeId)
+ return cartridgeid_;
+}
+inline void StubCartridgeReadResponse::set_cartridgeid(::google::protobuf::uint32 value) {
+
+ cartridgeid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeReadResponse.CartridgeId)
+}
+
+// uint32 CartridgeColor = 3;
+inline void StubCartridgeReadResponse::clear_cartridgecolor() {
+ cartridgecolor_ = 0u;
+}
+inline ::google::protobuf::uint32 StubCartridgeReadResponse::cartridgecolor() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeReadResponse.CartridgeColor)
+ return cartridgecolor_;
+}
+inline void StubCartridgeReadResponse::set_cartridgecolor(::google::protobuf::uint32 value) {
+
+ cartridgecolor_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeReadResponse.CartridgeColor)
+}
+
+// uint32 CartridgeVersion = 4;
+inline void StubCartridgeReadResponse::clear_cartridgeversion() {
+ cartridgeversion_ = 0u;
+}
+inline ::google::protobuf::uint32 StubCartridgeReadResponse::cartridgeversion() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeReadResponse.CartridgeVersion)
+ return cartridgeversion_;
+}
+inline void StubCartridgeReadResponse::set_cartridgeversion(::google::protobuf::uint32 value) {
+
+ cartridgeversion_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeReadResponse.CartridgeVersion)
+}
+
+// int32 CartridgeData = 5;
+inline void StubCartridgeReadResponse::clear_cartridgedata() {
+ cartridgedata_ = 0;
+}
+inline ::google::protobuf::int32 StubCartridgeReadResponse::cartridgedata() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeReadResponse.CartridgeData)
+ return cartridgedata_;
+}
+inline void StubCartridgeReadResponse::set_cartridgedata(::google::protobuf::int32 value) {
+
+ cartridgedata_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeReadResponse.CartridgeData)
+}
+
+// bool CartridgeUsed = 6;
+inline void StubCartridgeReadResponse::clear_cartridgeused() {
+ cartridgeused_ = false;
+}
+inline bool StubCartridgeReadResponse::cartridgeused() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeReadResponse.CartridgeUsed)
+ return cartridgeused_;
+}
+inline void StubCartridgeReadResponse::set_cartridgeused(bool value) {
+
+ cartridgeused_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeReadResponse.CartridgeUsed)
+}
+
+// uint32 Status = 8;
+inline void StubCartridgeReadResponse::clear_status() {
+ status_ = 0u;
+}
+inline ::google::protobuf::uint32 StubCartridgeReadResponse::status() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeReadResponse.Status)
+ return status_;
+}
+inline void StubCartridgeReadResponse::set_status(::google::protobuf::uint32 value) {
+
+ status_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeReadResponse.Status)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_StubCartridgeReadResponse_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeWriteRequest.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeWriteRequest.pb.cc
new file mode 100644
index 000000000..f516b86d9
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeWriteRequest.pb.cc
@@ -0,0 +1,602 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubCartridgeWriteRequest.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "StubCartridgeWriteRequest.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 Tango {
+namespace PMR {
+namespace Stubs {
+class StubCartridgeWriteRequestDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<StubCartridgeWriteRequest>
+ _instance;
+} _StubCartridgeWriteRequest_default_instance_;
+
+namespace protobuf_StubCartridgeWriteRequest_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubCartridgeWriteRequest, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubCartridgeWriteRequest, cartridgeid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubCartridgeWriteRequest, cartridgecolor_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubCartridgeWriteRequest, cartridgeversion_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubCartridgeWriteRequest, cartridgedata_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubCartridgeWriteRequest, cartridgeused_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(StubCartridgeWriteRequest)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_StubCartridgeWriteRequest_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "StubCartridgeWriteRequest.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _StubCartridgeWriteRequest_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_StubCartridgeWriteRequest_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n\037StubCartridgeWriteRequest.proto\022\017Tango"
+ ".PMR.Stubs\"\220\001\n\031StubCartridgeWriteRequest"
+ "\022\023\n\013CartridgeId\030\001 \001(\r\022\026\n\016CartridgeColor\030"
+ "\002 \001(\r\022\030\n\020CartridgeVersion\030\003 \001(\r\022\025\n\rCartr"
+ "idgeData\030\004 \001(\r\022\025\n\rCartridgeUsed\030\005 \001(\010B\033\n"
+ "\031com.twine.tango.pmr.stubsb\006proto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 234);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "StubCartridgeWriteRequest.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_StubCartridgeWriteRequest_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StubCartridgeWriteRequest::kCartridgeIdFieldNumber;
+const int StubCartridgeWriteRequest::kCartridgeColorFieldNumber;
+const int StubCartridgeWriteRequest::kCartridgeVersionFieldNumber;
+const int StubCartridgeWriteRequest::kCartridgeDataFieldNumber;
+const int StubCartridgeWriteRequest::kCartridgeUsedFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StubCartridgeWriteRequest::StubCartridgeWriteRequest()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_StubCartridgeWriteRequest_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubCartridgeWriteRequest)
+}
+StubCartridgeWriteRequest::StubCartridgeWriteRequest(const StubCartridgeWriteRequest& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::memcpy(&cartridgeid_, &from.cartridgeid_,
+ static_cast<size_t>(reinterpret_cast<char*>(&cartridgeused_) -
+ reinterpret_cast<char*>(&cartridgeid_)) + sizeof(cartridgeused_));
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubCartridgeWriteRequest)
+}
+
+void StubCartridgeWriteRequest::SharedCtor() {
+ ::memset(&cartridgeid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&cartridgeused_) -
+ reinterpret_cast<char*>(&cartridgeid_)) + sizeof(cartridgeused_));
+ _cached_size_ = 0;
+}
+
+StubCartridgeWriteRequest::~StubCartridgeWriteRequest() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubCartridgeWriteRequest)
+ SharedDtor();
+}
+
+void StubCartridgeWriteRequest::SharedDtor() {
+}
+
+void StubCartridgeWriteRequest::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StubCartridgeWriteRequest::descriptor() {
+ protobuf_StubCartridgeWriteRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubCartridgeWriteRequest_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StubCartridgeWriteRequest& StubCartridgeWriteRequest::default_instance() {
+ protobuf_StubCartridgeWriteRequest_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+StubCartridgeWriteRequest* StubCartridgeWriteRequest::New(::google::protobuf::Arena* arena) const {
+ StubCartridgeWriteRequest* n = new StubCartridgeWriteRequest;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StubCartridgeWriteRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubCartridgeWriteRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ ::memset(&cartridgeid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&cartridgeused_) -
+ reinterpret_cast<char*>(&cartridgeid_)) + sizeof(cartridgeused_));
+ _internal_metadata_.Clear();
+}
+
+bool StubCartridgeWriteRequest::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:Tango.PMR.Stubs.StubCartridgeWriteRequest)
+ 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)) {
+ // uint32 CartridgeId = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &cartridgeid_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 CartridgeColor = 2;
+ case 2: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &cartridgecolor_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 CartridgeVersion = 3;
+ case 3: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &cartridgeversion_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 CartridgeData = 4;
+ case 4: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &cartridgedata_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // bool CartridgeUsed = 5;
+ case 5: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(40u /* 40 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &cartridgeused_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubCartridgeWriteRequest)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubCartridgeWriteRequest)
+ return false;
+#undef DO_
+}
+
+void StubCartridgeWriteRequest::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubCartridgeWriteRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 CartridgeId = 1;
+ if (this->cartridgeid() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->cartridgeid(), output);
+ }
+
+ // uint32 CartridgeColor = 2;
+ if (this->cartridgecolor() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->cartridgecolor(), output);
+ }
+
+ // uint32 CartridgeVersion = 3;
+ if (this->cartridgeversion() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(3, this->cartridgeversion(), output);
+ }
+
+ // uint32 CartridgeData = 4;
+ if (this->cartridgedata() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(4, this->cartridgedata(), output);
+ }
+
+ // bool CartridgeUsed = 5;
+ if (this->cartridgeused() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(5, this->cartridgeused(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubCartridgeWriteRequest)
+}
+
+::google::protobuf::uint8* StubCartridgeWriteRequest::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubCartridgeWriteRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 CartridgeId = 1;
+ if (this->cartridgeid() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->cartridgeid(), target);
+ }
+
+ // uint32 CartridgeColor = 2;
+ if (this->cartridgecolor() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->cartridgecolor(), target);
+ }
+
+ // uint32 CartridgeVersion = 3;
+ if (this->cartridgeversion() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(3, this->cartridgeversion(), target);
+ }
+
+ // uint32 CartridgeData = 4;
+ if (this->cartridgedata() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(4, this->cartridgedata(), target);
+ }
+
+ // bool CartridgeUsed = 5;
+ if (this->cartridgeused() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(5, this->cartridgeused(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubCartridgeWriteRequest)
+ return target;
+}
+
+size_t StubCartridgeWriteRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubCartridgeWriteRequest)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // uint32 CartridgeId = 1;
+ if (this->cartridgeid() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->cartridgeid());
+ }
+
+ // uint32 CartridgeColor = 2;
+ if (this->cartridgecolor() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->cartridgecolor());
+ }
+
+ // uint32 CartridgeVersion = 3;
+ if (this->cartridgeversion() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->cartridgeversion());
+ }
+
+ // uint32 CartridgeData = 4;
+ if (this->cartridgedata() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->cartridgedata());
+ }
+
+ // bool CartridgeUsed = 5;
+ if (this->cartridgeused() != 0) {
+ 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 StubCartridgeWriteRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubCartridgeWriteRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ const StubCartridgeWriteRequest* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StubCartridgeWriteRequest>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubCartridgeWriteRequest)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubCartridgeWriteRequest)
+ MergeFrom(*source);
+ }
+}
+
+void StubCartridgeWriteRequest::MergeFrom(const StubCartridgeWriteRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubCartridgeWriteRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.cartridgeid() != 0) {
+ set_cartridgeid(from.cartridgeid());
+ }
+ if (from.cartridgecolor() != 0) {
+ set_cartridgecolor(from.cartridgecolor());
+ }
+ if (from.cartridgeversion() != 0) {
+ set_cartridgeversion(from.cartridgeversion());
+ }
+ if (from.cartridgedata() != 0) {
+ set_cartridgedata(from.cartridgedata());
+ }
+ if (from.cartridgeused() != 0) {
+ set_cartridgeused(from.cartridgeused());
+ }
+}
+
+void StubCartridgeWriteRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubCartridgeWriteRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StubCartridgeWriteRequest::CopyFrom(const StubCartridgeWriteRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubCartridgeWriteRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StubCartridgeWriteRequest::IsInitialized() const {
+ return true;
+}
+
+void StubCartridgeWriteRequest::Swap(StubCartridgeWriteRequest* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StubCartridgeWriteRequest::InternalSwap(StubCartridgeWriteRequest* other) {
+ using std::swap;
+ swap(cartridgeid_, other->cartridgeid_);
+ swap(cartridgecolor_, other->cartridgecolor_);
+ swap(cartridgeversion_, other->cartridgeversion_);
+ swap(cartridgedata_, other->cartridgedata_);
+ swap(cartridgeused_, other->cartridgeused_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StubCartridgeWriteRequest::GetMetadata() const {
+ protobuf_StubCartridgeWriteRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubCartridgeWriteRequest_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StubCartridgeWriteRequest
+
+// uint32 CartridgeId = 1;
+void StubCartridgeWriteRequest::clear_cartridgeid() {
+ cartridgeid_ = 0u;
+}
+::google::protobuf::uint32 StubCartridgeWriteRequest::cartridgeid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeWriteRequest.CartridgeId)
+ return cartridgeid_;
+}
+void StubCartridgeWriteRequest::set_cartridgeid(::google::protobuf::uint32 value) {
+
+ cartridgeid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeWriteRequest.CartridgeId)
+}
+
+// uint32 CartridgeColor = 2;
+void StubCartridgeWriteRequest::clear_cartridgecolor() {
+ cartridgecolor_ = 0u;
+}
+::google::protobuf::uint32 StubCartridgeWriteRequest::cartridgecolor() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeWriteRequest.CartridgeColor)
+ return cartridgecolor_;
+}
+void StubCartridgeWriteRequest::set_cartridgecolor(::google::protobuf::uint32 value) {
+
+ cartridgecolor_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeWriteRequest.CartridgeColor)
+}
+
+// uint32 CartridgeVersion = 3;
+void StubCartridgeWriteRequest::clear_cartridgeversion() {
+ cartridgeversion_ = 0u;
+}
+::google::protobuf::uint32 StubCartridgeWriteRequest::cartridgeversion() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeWriteRequest.CartridgeVersion)
+ return cartridgeversion_;
+}
+void StubCartridgeWriteRequest::set_cartridgeversion(::google::protobuf::uint32 value) {
+
+ cartridgeversion_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeWriteRequest.CartridgeVersion)
+}
+
+// uint32 CartridgeData = 4;
+void StubCartridgeWriteRequest::clear_cartridgedata() {
+ cartridgedata_ = 0u;
+}
+::google::protobuf::uint32 StubCartridgeWriteRequest::cartridgedata() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeWriteRequest.CartridgeData)
+ return cartridgedata_;
+}
+void StubCartridgeWriteRequest::set_cartridgedata(::google::protobuf::uint32 value) {
+
+ cartridgedata_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeWriteRequest.CartridgeData)
+}
+
+// bool CartridgeUsed = 5;
+void StubCartridgeWriteRequest::clear_cartridgeused() {
+ cartridgeused_ = false;
+}
+bool StubCartridgeWriteRequest::cartridgeused() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeWriteRequest.CartridgeUsed)
+ return cartridgeused_;
+}
+void StubCartridgeWriteRequest::set_cartridgeused(bool value) {
+
+ cartridgeused_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeWriteRequest.CartridgeUsed)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeWriteRequest.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeWriteRequest.pb.h
new file mode 100644
index 000000000..e80e477ac
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeWriteRequest.pb.h
@@ -0,0 +1,283 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubCartridgeWriteRequest.proto
+
+#ifndef PROTOBUF_StubCartridgeWriteRequest_2eproto__INCLUDED
+#define PROTOBUF_StubCartridgeWriteRequest_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+class StubCartridgeWriteRequest;
+class StubCartridgeWriteRequestDefaultTypeInternal;
+extern StubCartridgeWriteRequestDefaultTypeInternal _StubCartridgeWriteRequest_default_instance_;
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+
+namespace protobuf_StubCartridgeWriteRequest_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_StubCartridgeWriteRequest_2eproto
+
+// ===================================================================
+
+class StubCartridgeWriteRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Stubs.StubCartridgeWriteRequest) */ {
+ public:
+ StubCartridgeWriteRequest();
+ virtual ~StubCartridgeWriteRequest();
+
+ StubCartridgeWriteRequest(const StubCartridgeWriteRequest& from);
+
+ inline StubCartridgeWriteRequest& operator=(const StubCartridgeWriteRequest& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ StubCartridgeWriteRequest(StubCartridgeWriteRequest&& from) noexcept
+ : StubCartridgeWriteRequest() {
+ *this = ::std::move(from);
+ }
+
+ inline StubCartridgeWriteRequest& operator=(StubCartridgeWriteRequest&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StubCartridgeWriteRequest& default_instance();
+
+ static inline const StubCartridgeWriteRequest* internal_default_instance() {
+ return reinterpret_cast<const StubCartridgeWriteRequest*>(
+ &_StubCartridgeWriteRequest_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(StubCartridgeWriteRequest* other);
+ friend void swap(StubCartridgeWriteRequest& a, StubCartridgeWriteRequest& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline StubCartridgeWriteRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ StubCartridgeWriteRequest* 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 StubCartridgeWriteRequest& from);
+ void MergeFrom(const StubCartridgeWriteRequest& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(StubCartridgeWriteRequest* 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 -------------------------------------------------------
+
+ // uint32 CartridgeId = 1;
+ void clear_cartridgeid();
+ static const int kCartridgeIdFieldNumber = 1;
+ ::google::protobuf::uint32 cartridgeid() const;
+ void set_cartridgeid(::google::protobuf::uint32 value);
+
+ // uint32 CartridgeColor = 2;
+ void clear_cartridgecolor();
+ static const int kCartridgeColorFieldNumber = 2;
+ ::google::protobuf::uint32 cartridgecolor() const;
+ void set_cartridgecolor(::google::protobuf::uint32 value);
+
+ // uint32 CartridgeVersion = 3;
+ void clear_cartridgeversion();
+ static const int kCartridgeVersionFieldNumber = 3;
+ ::google::protobuf::uint32 cartridgeversion() const;
+ void set_cartridgeversion(::google::protobuf::uint32 value);
+
+ // uint32 CartridgeData = 4;
+ void clear_cartridgedata();
+ static const int kCartridgeDataFieldNumber = 4;
+ ::google::protobuf::uint32 cartridgedata() const;
+ void set_cartridgedata(::google::protobuf::uint32 value);
+
+ // bool CartridgeUsed = 5;
+ void clear_cartridgeused();
+ static const int kCartridgeUsedFieldNumber = 5;
+ bool cartridgeused() const;
+ void set_cartridgeused(bool value);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.StubCartridgeWriteRequest)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::uint32 cartridgeid_;
+ ::google::protobuf::uint32 cartridgecolor_;
+ ::google::protobuf::uint32 cartridgeversion_;
+ ::google::protobuf::uint32 cartridgedata_;
+ bool cartridgeused_;
+ mutable int _cached_size_;
+ friend struct protobuf_StubCartridgeWriteRequest_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// StubCartridgeWriteRequest
+
+// uint32 CartridgeId = 1;
+inline void StubCartridgeWriteRequest::clear_cartridgeid() {
+ cartridgeid_ = 0u;
+}
+inline ::google::protobuf::uint32 StubCartridgeWriteRequest::cartridgeid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeWriteRequest.CartridgeId)
+ return cartridgeid_;
+}
+inline void StubCartridgeWriteRequest::set_cartridgeid(::google::protobuf::uint32 value) {
+
+ cartridgeid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeWriteRequest.CartridgeId)
+}
+
+// uint32 CartridgeColor = 2;
+inline void StubCartridgeWriteRequest::clear_cartridgecolor() {
+ cartridgecolor_ = 0u;
+}
+inline ::google::protobuf::uint32 StubCartridgeWriteRequest::cartridgecolor() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeWriteRequest.CartridgeColor)
+ return cartridgecolor_;
+}
+inline void StubCartridgeWriteRequest::set_cartridgecolor(::google::protobuf::uint32 value) {
+
+ cartridgecolor_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeWriteRequest.CartridgeColor)
+}
+
+// uint32 CartridgeVersion = 3;
+inline void StubCartridgeWriteRequest::clear_cartridgeversion() {
+ cartridgeversion_ = 0u;
+}
+inline ::google::protobuf::uint32 StubCartridgeWriteRequest::cartridgeversion() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeWriteRequest.CartridgeVersion)
+ return cartridgeversion_;
+}
+inline void StubCartridgeWriteRequest::set_cartridgeversion(::google::protobuf::uint32 value) {
+
+ cartridgeversion_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeWriteRequest.CartridgeVersion)
+}
+
+// uint32 CartridgeData = 4;
+inline void StubCartridgeWriteRequest::clear_cartridgedata() {
+ cartridgedata_ = 0u;
+}
+inline ::google::protobuf::uint32 StubCartridgeWriteRequest::cartridgedata() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeWriteRequest.CartridgeData)
+ return cartridgedata_;
+}
+inline void StubCartridgeWriteRequest::set_cartridgedata(::google::protobuf::uint32 value) {
+
+ cartridgedata_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeWriteRequest.CartridgeData)
+}
+
+// bool CartridgeUsed = 5;
+inline void StubCartridgeWriteRequest::clear_cartridgeused() {
+ cartridgeused_ = false;
+}
+inline bool StubCartridgeWriteRequest::cartridgeused() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeWriteRequest.CartridgeUsed)
+ return cartridgeused_;
+}
+inline void StubCartridgeWriteRequest::set_cartridgeused(bool value) {
+
+ cartridgeused_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeWriteRequest.CartridgeUsed)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_StubCartridgeWriteRequest_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeWriteResponse.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeWriteResponse.pb.cc
new file mode 100644
index 000000000..3429d48fe
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeWriteResponse.pb.cc
@@ -0,0 +1,449 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubCartridgeWriteResponse.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "StubCartridgeWriteResponse.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 Tango {
+namespace PMR {
+namespace Stubs {
+class StubCartridgeWriteResponseDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<StubCartridgeWriteResponse>
+ _instance;
+} _StubCartridgeWriteResponse_default_instance_;
+
+namespace protobuf_StubCartridgeWriteResponse_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubCartridgeWriteResponse, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubCartridgeWriteResponse, cartridgeid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubCartridgeWriteResponse, status_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(StubCartridgeWriteResponse)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_StubCartridgeWriteResponse_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "StubCartridgeWriteResponse.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _StubCartridgeWriteResponse_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_StubCartridgeWriteResponse_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n StubCartridgeWriteResponse.proto\022\017Tang"
+ "o.PMR.Stubs\"A\n\032StubCartridgeWriteRespons"
+ "e\022\023\n\013CartridgeId\030\001 \001(\r\022\016\n\006Status\030\010 \001(\rB\033"
+ "\n\031com.twine.tango.pmr.stubsb\006proto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 155);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "StubCartridgeWriteResponse.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_StubCartridgeWriteResponse_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StubCartridgeWriteResponse::kCartridgeIdFieldNumber;
+const int StubCartridgeWriteResponse::kStatusFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StubCartridgeWriteResponse::StubCartridgeWriteResponse()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_StubCartridgeWriteResponse_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubCartridgeWriteResponse)
+}
+StubCartridgeWriteResponse::StubCartridgeWriteResponse(const StubCartridgeWriteResponse& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::memcpy(&cartridgeid_, &from.cartridgeid_,
+ static_cast<size_t>(reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&cartridgeid_)) + sizeof(status_));
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubCartridgeWriteResponse)
+}
+
+void StubCartridgeWriteResponse::SharedCtor() {
+ ::memset(&cartridgeid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&cartridgeid_)) + sizeof(status_));
+ _cached_size_ = 0;
+}
+
+StubCartridgeWriteResponse::~StubCartridgeWriteResponse() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubCartridgeWriteResponse)
+ SharedDtor();
+}
+
+void StubCartridgeWriteResponse::SharedDtor() {
+}
+
+void StubCartridgeWriteResponse::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StubCartridgeWriteResponse::descriptor() {
+ protobuf_StubCartridgeWriteResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubCartridgeWriteResponse_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StubCartridgeWriteResponse& StubCartridgeWriteResponse::default_instance() {
+ protobuf_StubCartridgeWriteResponse_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+StubCartridgeWriteResponse* StubCartridgeWriteResponse::New(::google::protobuf::Arena* arena) const {
+ StubCartridgeWriteResponse* n = new StubCartridgeWriteResponse;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StubCartridgeWriteResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubCartridgeWriteResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ ::memset(&cartridgeid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&cartridgeid_)) + sizeof(status_));
+ _internal_metadata_.Clear();
+}
+
+bool StubCartridgeWriteResponse::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:Tango.PMR.Stubs.StubCartridgeWriteResponse)
+ 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)) {
+ // uint32 CartridgeId = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &cartridgeid_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 Status = 8;
+ case 8: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(64u /* 64 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &status_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubCartridgeWriteResponse)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubCartridgeWriteResponse)
+ return false;
+#undef DO_
+}
+
+void StubCartridgeWriteResponse::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubCartridgeWriteResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 CartridgeId = 1;
+ if (this->cartridgeid() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->cartridgeid(), output);
+ }
+
+ // uint32 Status = 8;
+ if (this->status() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(8, this->status(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubCartridgeWriteResponse)
+}
+
+::google::protobuf::uint8* StubCartridgeWriteResponse::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubCartridgeWriteResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 CartridgeId = 1;
+ if (this->cartridgeid() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->cartridgeid(), target);
+ }
+
+ // uint32 Status = 8;
+ if (this->status() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(8, this->status(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubCartridgeWriteResponse)
+ return target;
+}
+
+size_t StubCartridgeWriteResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubCartridgeWriteResponse)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // uint32 CartridgeId = 1;
+ if (this->cartridgeid() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->cartridgeid());
+ }
+
+ // uint32 Status = 8;
+ if (this->status() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->status());
+ }
+
+ 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 StubCartridgeWriteResponse::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubCartridgeWriteResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ const StubCartridgeWriteResponse* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StubCartridgeWriteResponse>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubCartridgeWriteResponse)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubCartridgeWriteResponse)
+ MergeFrom(*source);
+ }
+}
+
+void StubCartridgeWriteResponse::MergeFrom(const StubCartridgeWriteResponse& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubCartridgeWriteResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.cartridgeid() != 0) {
+ set_cartridgeid(from.cartridgeid());
+ }
+ if (from.status() != 0) {
+ set_status(from.status());
+ }
+}
+
+void StubCartridgeWriteResponse::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubCartridgeWriteResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StubCartridgeWriteResponse::CopyFrom(const StubCartridgeWriteResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubCartridgeWriteResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StubCartridgeWriteResponse::IsInitialized() const {
+ return true;
+}
+
+void StubCartridgeWriteResponse::Swap(StubCartridgeWriteResponse* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StubCartridgeWriteResponse::InternalSwap(StubCartridgeWriteResponse* other) {
+ using std::swap;
+ swap(cartridgeid_, other->cartridgeid_);
+ swap(status_, other->status_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StubCartridgeWriteResponse::GetMetadata() const {
+ protobuf_StubCartridgeWriteResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubCartridgeWriteResponse_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StubCartridgeWriteResponse
+
+// uint32 CartridgeId = 1;
+void StubCartridgeWriteResponse::clear_cartridgeid() {
+ cartridgeid_ = 0u;
+}
+::google::protobuf::uint32 StubCartridgeWriteResponse::cartridgeid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeWriteResponse.CartridgeId)
+ return cartridgeid_;
+}
+void StubCartridgeWriteResponse::set_cartridgeid(::google::protobuf::uint32 value) {
+
+ cartridgeid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeWriteResponse.CartridgeId)
+}
+
+// uint32 Status = 8;
+void StubCartridgeWriteResponse::clear_status() {
+ status_ = 0u;
+}
+::google::protobuf::uint32 StubCartridgeWriteResponse::status() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeWriteResponse.Status)
+ return status_;
+}
+void StubCartridgeWriteResponse::set_status(::google::protobuf::uint32 value) {
+
+ status_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeWriteResponse.Status)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeWriteResponse.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeWriteResponse.pb.h
new file mode 100644
index 000000000..54dca0cb3
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubCartridgeWriteResponse.pb.h
@@ -0,0 +1,220 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubCartridgeWriteResponse.proto
+
+#ifndef PROTOBUF_StubCartridgeWriteResponse_2eproto__INCLUDED
+#define PROTOBUF_StubCartridgeWriteResponse_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+class StubCartridgeWriteResponse;
+class StubCartridgeWriteResponseDefaultTypeInternal;
+extern StubCartridgeWriteResponseDefaultTypeInternal _StubCartridgeWriteResponse_default_instance_;
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+
+namespace protobuf_StubCartridgeWriteResponse_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_StubCartridgeWriteResponse_2eproto
+
+// ===================================================================
+
+class StubCartridgeWriteResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Stubs.StubCartridgeWriteResponse) */ {
+ public:
+ StubCartridgeWriteResponse();
+ virtual ~StubCartridgeWriteResponse();
+
+ StubCartridgeWriteResponse(const StubCartridgeWriteResponse& from);
+
+ inline StubCartridgeWriteResponse& operator=(const StubCartridgeWriteResponse& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ StubCartridgeWriteResponse(StubCartridgeWriteResponse&& from) noexcept
+ : StubCartridgeWriteResponse() {
+ *this = ::std::move(from);
+ }
+
+ inline StubCartridgeWriteResponse& operator=(StubCartridgeWriteResponse&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StubCartridgeWriteResponse& default_instance();
+
+ static inline const StubCartridgeWriteResponse* internal_default_instance() {
+ return reinterpret_cast<const StubCartridgeWriteResponse*>(
+ &_StubCartridgeWriteResponse_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(StubCartridgeWriteResponse* other);
+ friend void swap(StubCartridgeWriteResponse& a, StubCartridgeWriteResponse& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline StubCartridgeWriteResponse* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ StubCartridgeWriteResponse* 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 StubCartridgeWriteResponse& from);
+ void MergeFrom(const StubCartridgeWriteResponse& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(StubCartridgeWriteResponse* 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 -------------------------------------------------------
+
+ // uint32 CartridgeId = 1;
+ void clear_cartridgeid();
+ static const int kCartridgeIdFieldNumber = 1;
+ ::google::protobuf::uint32 cartridgeid() const;
+ void set_cartridgeid(::google::protobuf::uint32 value);
+
+ // uint32 Status = 8;
+ void clear_status();
+ static const int kStatusFieldNumber = 8;
+ ::google::protobuf::uint32 status() const;
+ void set_status(::google::protobuf::uint32 value);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.StubCartridgeWriteResponse)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::uint32 cartridgeid_;
+ ::google::protobuf::uint32 status_;
+ mutable int _cached_size_;
+ friend struct protobuf_StubCartridgeWriteResponse_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// StubCartridgeWriteResponse
+
+// uint32 CartridgeId = 1;
+inline void StubCartridgeWriteResponse::clear_cartridgeid() {
+ cartridgeid_ = 0u;
+}
+inline ::google::protobuf::uint32 StubCartridgeWriteResponse::cartridgeid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeWriteResponse.CartridgeId)
+ return cartridgeid_;
+}
+inline void StubCartridgeWriteResponse::set_cartridgeid(::google::protobuf::uint32 value) {
+
+ cartridgeid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeWriteResponse.CartridgeId)
+}
+
+// uint32 Status = 8;
+inline void StubCartridgeWriteResponse::clear_status() {
+ status_ = 0u;
+}
+inline ::google::protobuf::uint32 StubCartridgeWriteResponse::status() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubCartridgeWriteResponse.Status)
+ return status_;
+}
+inline void StubCartridgeWriteResponse::set_status(::google::protobuf::uint32 value) {
+
+ status_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubCartridgeWriteResponse.Status)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_StubCartridgeWriteResponse_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubDispenserRequest.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubDispenserRequest.pb.cc
new file mode 100644
index 000000000..f17e79311
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubDispenserRequest.pb.cc
@@ -0,0 +1,600 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubDispenserRequest.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "StubDispenserRequest.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 Tango {
+namespace PMR {
+namespace Stubs {
+class StubDispenserRequestDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<StubDispenserRequest>
+ _instance;
+} _StubDispenserRequest_default_instance_;
+
+namespace protobuf_StubDispenserRequest_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubDispenserRequest, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubDispenserRequest, dispenserid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubDispenserRequest, start_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubDispenserRequest, setdirection_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubDispenserRequest, setmicrostepdivision_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubDispenserRequest, setspeed_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(StubDispenserRequest)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_StubDispenserRequest_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "StubDispenserRequest.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _StubDispenserRequest_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_StubDispenserRequest_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n\032StubDispenserRequest.proto\022\017Tango.PMR."
+ "Stubs\"\200\001\n\024StubDispenserRequest\022\023\n\013Dispen"
+ "serId\030\001 \001(\r\022\r\n\005Start\030\002 \001(\010\022\024\n\014SetDirecti"
+ "on\030\003 \001(\010\022\034\n\024SetMicrostepDivision\030\004 \001(\r\022\020"
+ "\n\010SetSpeed\030\005 \001(\005B\033\n\031com.twine.tango.pmr."
+ "stubsb\006proto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 213);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "StubDispenserRequest.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_StubDispenserRequest_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StubDispenserRequest::kDispenserIdFieldNumber;
+const int StubDispenserRequest::kStartFieldNumber;
+const int StubDispenserRequest::kSetDirectionFieldNumber;
+const int StubDispenserRequest::kSetMicrostepDivisionFieldNumber;
+const int StubDispenserRequest::kSetSpeedFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StubDispenserRequest::StubDispenserRequest()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_StubDispenserRequest_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubDispenserRequest)
+}
+StubDispenserRequest::StubDispenserRequest(const StubDispenserRequest& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::memcpy(&dispenserid_, &from.dispenserid_,
+ static_cast<size_t>(reinterpret_cast<char*>(&setspeed_) -
+ reinterpret_cast<char*>(&dispenserid_)) + sizeof(setspeed_));
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubDispenserRequest)
+}
+
+void StubDispenserRequest::SharedCtor() {
+ ::memset(&dispenserid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&setspeed_) -
+ reinterpret_cast<char*>(&dispenserid_)) + sizeof(setspeed_));
+ _cached_size_ = 0;
+}
+
+StubDispenserRequest::~StubDispenserRequest() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubDispenserRequest)
+ SharedDtor();
+}
+
+void StubDispenserRequest::SharedDtor() {
+}
+
+void StubDispenserRequest::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StubDispenserRequest::descriptor() {
+ protobuf_StubDispenserRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubDispenserRequest_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StubDispenserRequest& StubDispenserRequest::default_instance() {
+ protobuf_StubDispenserRequest_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+StubDispenserRequest* StubDispenserRequest::New(::google::protobuf::Arena* arena) const {
+ StubDispenserRequest* n = new StubDispenserRequest;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StubDispenserRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubDispenserRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ ::memset(&dispenserid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&setspeed_) -
+ reinterpret_cast<char*>(&dispenserid_)) + sizeof(setspeed_));
+ _internal_metadata_.Clear();
+}
+
+bool StubDispenserRequest::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:Tango.PMR.Stubs.StubDispenserRequest)
+ 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)) {
+ // uint32 DispenserId = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &dispenserid_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // bool Start = 2;
+ case 2: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &start_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // bool SetDirection = 3;
+ case 3: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &setdirection_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 SetMicrostepDivision = 4;
+ case 4: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &setmicrostepdivision_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // int32 SetSpeed = 5;
+ case 5: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(40u /* 40 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+ input, &setspeed_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubDispenserRequest)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubDispenserRequest)
+ return false;
+#undef DO_
+}
+
+void StubDispenserRequest::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubDispenserRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 DispenserId = 1;
+ if (this->dispenserid() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->dispenserid(), output);
+ }
+
+ // bool Start = 2;
+ if (this->start() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(2, this->start(), output);
+ }
+
+ // bool SetDirection = 3;
+ if (this->setdirection() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(3, this->setdirection(), output);
+ }
+
+ // uint32 SetMicrostepDivision = 4;
+ if (this->setmicrostepdivision() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(4, this->setmicrostepdivision(), output);
+ }
+
+ // int32 SetSpeed = 5;
+ if (this->setspeed() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteInt32(5, this->setspeed(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubDispenserRequest)
+}
+
+::google::protobuf::uint8* StubDispenserRequest::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubDispenserRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 DispenserId = 1;
+ if (this->dispenserid() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->dispenserid(), target);
+ }
+
+ // bool Start = 2;
+ if (this->start() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(2, this->start(), target);
+ }
+
+ // bool SetDirection = 3;
+ if (this->setdirection() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(3, this->setdirection(), target);
+ }
+
+ // uint32 SetMicrostepDivision = 4;
+ if (this->setmicrostepdivision() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(4, this->setmicrostepdivision(), target);
+ }
+
+ // int32 SetSpeed = 5;
+ if (this->setspeed() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(5, this->setspeed(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubDispenserRequest)
+ return target;
+}
+
+size_t StubDispenserRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubDispenserRequest)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // uint32 DispenserId = 1;
+ if (this->dispenserid() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->dispenserid());
+ }
+
+ // bool Start = 2;
+ if (this->start() != 0) {
+ total_size += 1 + 1;
+ }
+
+ // bool SetDirection = 3;
+ if (this->setdirection() != 0) {
+ total_size += 1 + 1;
+ }
+
+ // uint32 SetMicrostepDivision = 4;
+ if (this->setmicrostepdivision() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->setmicrostepdivision());
+ }
+
+ // int32 SetSpeed = 5;
+ if (this->setspeed() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::Int32Size(
+ this->setspeed());
+ }
+
+ 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 StubDispenserRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubDispenserRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ const StubDispenserRequest* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StubDispenserRequest>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubDispenserRequest)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubDispenserRequest)
+ MergeFrom(*source);
+ }
+}
+
+void StubDispenserRequest::MergeFrom(const StubDispenserRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubDispenserRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.dispenserid() != 0) {
+ set_dispenserid(from.dispenserid());
+ }
+ if (from.start() != 0) {
+ set_start(from.start());
+ }
+ if (from.setdirection() != 0) {
+ set_setdirection(from.setdirection());
+ }
+ if (from.setmicrostepdivision() != 0) {
+ set_setmicrostepdivision(from.setmicrostepdivision());
+ }
+ if (from.setspeed() != 0) {
+ set_setspeed(from.setspeed());
+ }
+}
+
+void StubDispenserRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubDispenserRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StubDispenserRequest::CopyFrom(const StubDispenserRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubDispenserRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StubDispenserRequest::IsInitialized() const {
+ return true;
+}
+
+void StubDispenserRequest::Swap(StubDispenserRequest* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StubDispenserRequest::InternalSwap(StubDispenserRequest* other) {
+ using std::swap;
+ swap(dispenserid_, other->dispenserid_);
+ swap(start_, other->start_);
+ swap(setdirection_, other->setdirection_);
+ swap(setmicrostepdivision_, other->setmicrostepdivision_);
+ swap(setspeed_, other->setspeed_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StubDispenserRequest::GetMetadata() const {
+ protobuf_StubDispenserRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubDispenserRequest_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StubDispenserRequest
+
+// uint32 DispenserId = 1;
+void StubDispenserRequest::clear_dispenserid() {
+ dispenserid_ = 0u;
+}
+::google::protobuf::uint32 StubDispenserRequest::dispenserid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubDispenserRequest.DispenserId)
+ return dispenserid_;
+}
+void StubDispenserRequest::set_dispenserid(::google::protobuf::uint32 value) {
+
+ dispenserid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubDispenserRequest.DispenserId)
+}
+
+// bool Start = 2;
+void StubDispenserRequest::clear_start() {
+ start_ = false;
+}
+bool StubDispenserRequest::start() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubDispenserRequest.Start)
+ return start_;
+}
+void StubDispenserRequest::set_start(bool value) {
+
+ start_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubDispenserRequest.Start)
+}
+
+// bool SetDirection = 3;
+void StubDispenserRequest::clear_setdirection() {
+ setdirection_ = false;
+}
+bool StubDispenserRequest::setdirection() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubDispenserRequest.SetDirection)
+ return setdirection_;
+}
+void StubDispenserRequest::set_setdirection(bool value) {
+
+ setdirection_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubDispenserRequest.SetDirection)
+}
+
+// uint32 SetMicrostepDivision = 4;
+void StubDispenserRequest::clear_setmicrostepdivision() {
+ setmicrostepdivision_ = 0u;
+}
+::google::protobuf::uint32 StubDispenserRequest::setmicrostepdivision() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubDispenserRequest.SetMicrostepDivision)
+ return setmicrostepdivision_;
+}
+void StubDispenserRequest::set_setmicrostepdivision(::google::protobuf::uint32 value) {
+
+ setmicrostepdivision_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubDispenserRequest.SetMicrostepDivision)
+}
+
+// int32 SetSpeed = 5;
+void StubDispenserRequest::clear_setspeed() {
+ setspeed_ = 0;
+}
+::google::protobuf::int32 StubDispenserRequest::setspeed() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubDispenserRequest.SetSpeed)
+ return setspeed_;
+}
+void StubDispenserRequest::set_setspeed(::google::protobuf::int32 value) {
+
+ setspeed_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubDispenserRequest.SetSpeed)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubDispenserRequest.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubDispenserRequest.pb.h
new file mode 100644
index 000000000..baee3f210
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubDispenserRequest.pb.h
@@ -0,0 +1,283 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubDispenserRequest.proto
+
+#ifndef PROTOBUF_StubDispenserRequest_2eproto__INCLUDED
+#define PROTOBUF_StubDispenserRequest_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+class StubDispenserRequest;
+class StubDispenserRequestDefaultTypeInternal;
+extern StubDispenserRequestDefaultTypeInternal _StubDispenserRequest_default_instance_;
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+
+namespace protobuf_StubDispenserRequest_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_StubDispenserRequest_2eproto
+
+// ===================================================================
+
+class StubDispenserRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Stubs.StubDispenserRequest) */ {
+ public:
+ StubDispenserRequest();
+ virtual ~StubDispenserRequest();
+
+ StubDispenserRequest(const StubDispenserRequest& from);
+
+ inline StubDispenserRequest& operator=(const StubDispenserRequest& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ StubDispenserRequest(StubDispenserRequest&& from) noexcept
+ : StubDispenserRequest() {
+ *this = ::std::move(from);
+ }
+
+ inline StubDispenserRequest& operator=(StubDispenserRequest&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StubDispenserRequest& default_instance();
+
+ static inline const StubDispenserRequest* internal_default_instance() {
+ return reinterpret_cast<const StubDispenserRequest*>(
+ &_StubDispenserRequest_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(StubDispenserRequest* other);
+ friend void swap(StubDispenserRequest& a, StubDispenserRequest& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline StubDispenserRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ StubDispenserRequest* 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 StubDispenserRequest& from);
+ void MergeFrom(const StubDispenserRequest& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(StubDispenserRequest* 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 -------------------------------------------------------
+
+ // uint32 DispenserId = 1;
+ void clear_dispenserid();
+ static const int kDispenserIdFieldNumber = 1;
+ ::google::protobuf::uint32 dispenserid() const;
+ void set_dispenserid(::google::protobuf::uint32 value);
+
+ // bool Start = 2;
+ void clear_start();
+ static const int kStartFieldNumber = 2;
+ bool start() const;
+ void set_start(bool value);
+
+ // bool SetDirection = 3;
+ void clear_setdirection();
+ static const int kSetDirectionFieldNumber = 3;
+ bool setdirection() const;
+ void set_setdirection(bool value);
+
+ // uint32 SetMicrostepDivision = 4;
+ void clear_setmicrostepdivision();
+ static const int kSetMicrostepDivisionFieldNumber = 4;
+ ::google::protobuf::uint32 setmicrostepdivision() const;
+ void set_setmicrostepdivision(::google::protobuf::uint32 value);
+
+ // int32 SetSpeed = 5;
+ void clear_setspeed();
+ static const int kSetSpeedFieldNumber = 5;
+ ::google::protobuf::int32 setspeed() const;
+ void set_setspeed(::google::protobuf::int32 value);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.StubDispenserRequest)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::uint32 dispenserid_;
+ bool start_;
+ bool setdirection_;
+ ::google::protobuf::uint32 setmicrostepdivision_;
+ ::google::protobuf::int32 setspeed_;
+ mutable int _cached_size_;
+ friend struct protobuf_StubDispenserRequest_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// StubDispenserRequest
+
+// uint32 DispenserId = 1;
+inline void StubDispenserRequest::clear_dispenserid() {
+ dispenserid_ = 0u;
+}
+inline ::google::protobuf::uint32 StubDispenserRequest::dispenserid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubDispenserRequest.DispenserId)
+ return dispenserid_;
+}
+inline void StubDispenserRequest::set_dispenserid(::google::protobuf::uint32 value) {
+
+ dispenserid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubDispenserRequest.DispenserId)
+}
+
+// bool Start = 2;
+inline void StubDispenserRequest::clear_start() {
+ start_ = false;
+}
+inline bool StubDispenserRequest::start() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubDispenserRequest.Start)
+ return start_;
+}
+inline void StubDispenserRequest::set_start(bool value) {
+
+ start_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubDispenserRequest.Start)
+}
+
+// bool SetDirection = 3;
+inline void StubDispenserRequest::clear_setdirection() {
+ setdirection_ = false;
+}
+inline bool StubDispenserRequest::setdirection() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubDispenserRequest.SetDirection)
+ return setdirection_;
+}
+inline void StubDispenserRequest::set_setdirection(bool value) {
+
+ setdirection_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubDispenserRequest.SetDirection)
+}
+
+// uint32 SetMicrostepDivision = 4;
+inline void StubDispenserRequest::clear_setmicrostepdivision() {
+ setmicrostepdivision_ = 0u;
+}
+inline ::google::protobuf::uint32 StubDispenserRequest::setmicrostepdivision() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubDispenserRequest.SetMicrostepDivision)
+ return setmicrostepdivision_;
+}
+inline void StubDispenserRequest::set_setmicrostepdivision(::google::protobuf::uint32 value) {
+
+ setmicrostepdivision_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubDispenserRequest.SetMicrostepDivision)
+}
+
+// int32 SetSpeed = 5;
+inline void StubDispenserRequest::clear_setspeed() {
+ setspeed_ = 0;
+}
+inline ::google::protobuf::int32 StubDispenserRequest::setspeed() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubDispenserRequest.SetSpeed)
+ return setspeed_;
+}
+inline void StubDispenserRequest::set_setspeed(::google::protobuf::int32 value) {
+
+ setspeed_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubDispenserRequest.SetSpeed)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_StubDispenserRequest_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubDispenserResponse.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubDispenserResponse.pb.cc
new file mode 100644
index 000000000..55012a293
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubDispenserResponse.pb.cc
@@ -0,0 +1,550 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubDispenserResponse.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "StubDispenserResponse.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 Tango {
+namespace PMR {
+namespace Stubs {
+class StubDispenserResponseDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<StubDispenserResponse>
+ _instance;
+} _StubDispenserResponse_default_instance_;
+
+namespace protobuf_StubDispenserResponse_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubDispenserResponse, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubDispenserResponse, dispenserid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubDispenserResponse, dispenserposition_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubDispenserResponse, inkworninglevel_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubDispenserResponse, status_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(StubDispenserResponse)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_StubDispenserResponse_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "StubDispenserResponse.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _StubDispenserResponse_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_StubDispenserResponse_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n\033StubDispenserResponse.proto\022\017Tango.PMR"
+ ".Stubs\"p\n\025StubDispenserResponse\022\023\n\013Dispe"
+ "nserId\030\001 \001(\r\022\031\n\021DispenserPosition\030\002 \001(\r\022"
+ "\027\n\017InkWorningLevel\030\003 \001(\r\022\016\n\006Status\030\004 \001(\010"
+ "B\033\n\031com.twine.tango.pmr.stubsb\006proto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 197);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "StubDispenserResponse.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_StubDispenserResponse_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StubDispenserResponse::kDispenserIdFieldNumber;
+const int StubDispenserResponse::kDispenserPositionFieldNumber;
+const int StubDispenserResponse::kInkWorningLevelFieldNumber;
+const int StubDispenserResponse::kStatusFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StubDispenserResponse::StubDispenserResponse()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_StubDispenserResponse_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubDispenserResponse)
+}
+StubDispenserResponse::StubDispenserResponse(const StubDispenserResponse& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::memcpy(&dispenserid_, &from.dispenserid_,
+ static_cast<size_t>(reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&dispenserid_)) + sizeof(status_));
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubDispenserResponse)
+}
+
+void StubDispenserResponse::SharedCtor() {
+ ::memset(&dispenserid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&dispenserid_)) + sizeof(status_));
+ _cached_size_ = 0;
+}
+
+StubDispenserResponse::~StubDispenserResponse() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubDispenserResponse)
+ SharedDtor();
+}
+
+void StubDispenserResponse::SharedDtor() {
+}
+
+void StubDispenserResponse::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StubDispenserResponse::descriptor() {
+ protobuf_StubDispenserResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubDispenserResponse_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StubDispenserResponse& StubDispenserResponse::default_instance() {
+ protobuf_StubDispenserResponse_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+StubDispenserResponse* StubDispenserResponse::New(::google::protobuf::Arena* arena) const {
+ StubDispenserResponse* n = new StubDispenserResponse;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StubDispenserResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubDispenserResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ ::memset(&dispenserid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&dispenserid_)) + sizeof(status_));
+ _internal_metadata_.Clear();
+}
+
+bool StubDispenserResponse::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:Tango.PMR.Stubs.StubDispenserResponse)
+ 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)) {
+ // uint32 DispenserId = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &dispenserid_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 DispenserPosition = 2;
+ case 2: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &dispenserposition_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 InkWorningLevel = 3;
+ case 3: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &inkworninglevel_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // bool Status = 4;
+ case 4: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &status_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubDispenserResponse)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubDispenserResponse)
+ return false;
+#undef DO_
+}
+
+void StubDispenserResponse::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubDispenserResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 DispenserId = 1;
+ if (this->dispenserid() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->dispenserid(), output);
+ }
+
+ // uint32 DispenserPosition = 2;
+ if (this->dispenserposition() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->dispenserposition(), output);
+ }
+
+ // uint32 InkWorningLevel = 3;
+ if (this->inkworninglevel() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(3, this->inkworninglevel(), output);
+ }
+
+ // bool Status = 4;
+ if (this->status() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(4, this->status(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubDispenserResponse)
+}
+
+::google::protobuf::uint8* StubDispenserResponse::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubDispenserResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 DispenserId = 1;
+ if (this->dispenserid() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->dispenserid(), target);
+ }
+
+ // uint32 DispenserPosition = 2;
+ if (this->dispenserposition() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->dispenserposition(), target);
+ }
+
+ // uint32 InkWorningLevel = 3;
+ if (this->inkworninglevel() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(3, this->inkworninglevel(), target);
+ }
+
+ // bool Status = 4;
+ if (this->status() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(4, this->status(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubDispenserResponse)
+ return target;
+}
+
+size_t StubDispenserResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubDispenserResponse)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // uint32 DispenserId = 1;
+ if (this->dispenserid() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->dispenserid());
+ }
+
+ // uint32 DispenserPosition = 2;
+ if (this->dispenserposition() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->dispenserposition());
+ }
+
+ // uint32 InkWorningLevel = 3;
+ if (this->inkworninglevel() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->inkworninglevel());
+ }
+
+ // bool Status = 4;
+ if (this->status() != 0) {
+ 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 StubDispenserResponse::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubDispenserResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ const StubDispenserResponse* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StubDispenserResponse>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubDispenserResponse)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubDispenserResponse)
+ MergeFrom(*source);
+ }
+}
+
+void StubDispenserResponse::MergeFrom(const StubDispenserResponse& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubDispenserResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.dispenserid() != 0) {
+ set_dispenserid(from.dispenserid());
+ }
+ if (from.dispenserposition() != 0) {
+ set_dispenserposition(from.dispenserposition());
+ }
+ if (from.inkworninglevel() != 0) {
+ set_inkworninglevel(from.inkworninglevel());
+ }
+ if (from.status() != 0) {
+ set_status(from.status());
+ }
+}
+
+void StubDispenserResponse::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubDispenserResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StubDispenserResponse::CopyFrom(const StubDispenserResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubDispenserResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StubDispenserResponse::IsInitialized() const {
+ return true;
+}
+
+void StubDispenserResponse::Swap(StubDispenserResponse* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StubDispenserResponse::InternalSwap(StubDispenserResponse* other) {
+ using std::swap;
+ swap(dispenserid_, other->dispenserid_);
+ swap(dispenserposition_, other->dispenserposition_);
+ swap(inkworninglevel_, other->inkworninglevel_);
+ swap(status_, other->status_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StubDispenserResponse::GetMetadata() const {
+ protobuf_StubDispenserResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubDispenserResponse_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StubDispenserResponse
+
+// uint32 DispenserId = 1;
+void StubDispenserResponse::clear_dispenserid() {
+ dispenserid_ = 0u;
+}
+::google::protobuf::uint32 StubDispenserResponse::dispenserid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubDispenserResponse.DispenserId)
+ return dispenserid_;
+}
+void StubDispenserResponse::set_dispenserid(::google::protobuf::uint32 value) {
+
+ dispenserid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubDispenserResponse.DispenserId)
+}
+
+// uint32 DispenserPosition = 2;
+void StubDispenserResponse::clear_dispenserposition() {
+ dispenserposition_ = 0u;
+}
+::google::protobuf::uint32 StubDispenserResponse::dispenserposition() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubDispenserResponse.DispenserPosition)
+ return dispenserposition_;
+}
+void StubDispenserResponse::set_dispenserposition(::google::protobuf::uint32 value) {
+
+ dispenserposition_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubDispenserResponse.DispenserPosition)
+}
+
+// uint32 InkWorningLevel = 3;
+void StubDispenserResponse::clear_inkworninglevel() {
+ inkworninglevel_ = 0u;
+}
+::google::protobuf::uint32 StubDispenserResponse::inkworninglevel() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubDispenserResponse.InkWorningLevel)
+ return inkworninglevel_;
+}
+void StubDispenserResponse::set_inkworninglevel(::google::protobuf::uint32 value) {
+
+ inkworninglevel_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubDispenserResponse.InkWorningLevel)
+}
+
+// bool Status = 4;
+void StubDispenserResponse::clear_status() {
+ status_ = false;
+}
+bool StubDispenserResponse::status() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubDispenserResponse.Status)
+ return status_;
+}
+void StubDispenserResponse::set_status(bool value) {
+
+ status_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubDispenserResponse.Status)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubDispenserResponse.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubDispenserResponse.pb.h
new file mode 100644
index 000000000..40f290dde
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubDispenserResponse.pb.h
@@ -0,0 +1,262 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubDispenserResponse.proto
+
+#ifndef PROTOBUF_StubDispenserResponse_2eproto__INCLUDED
+#define PROTOBUF_StubDispenserResponse_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+class StubDispenserResponse;
+class StubDispenserResponseDefaultTypeInternal;
+extern StubDispenserResponseDefaultTypeInternal _StubDispenserResponse_default_instance_;
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+
+namespace protobuf_StubDispenserResponse_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_StubDispenserResponse_2eproto
+
+// ===================================================================
+
+class StubDispenserResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Stubs.StubDispenserResponse) */ {
+ public:
+ StubDispenserResponse();
+ virtual ~StubDispenserResponse();
+
+ StubDispenserResponse(const StubDispenserResponse& from);
+
+ inline StubDispenserResponse& operator=(const StubDispenserResponse& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ StubDispenserResponse(StubDispenserResponse&& from) noexcept
+ : StubDispenserResponse() {
+ *this = ::std::move(from);
+ }
+
+ inline StubDispenserResponse& operator=(StubDispenserResponse&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StubDispenserResponse& default_instance();
+
+ static inline const StubDispenserResponse* internal_default_instance() {
+ return reinterpret_cast<const StubDispenserResponse*>(
+ &_StubDispenserResponse_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(StubDispenserResponse* other);
+ friend void swap(StubDispenserResponse& a, StubDispenserResponse& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline StubDispenserResponse* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ StubDispenserResponse* 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 StubDispenserResponse& from);
+ void MergeFrom(const StubDispenserResponse& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(StubDispenserResponse* 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 -------------------------------------------------------
+
+ // uint32 DispenserId = 1;
+ void clear_dispenserid();
+ static const int kDispenserIdFieldNumber = 1;
+ ::google::protobuf::uint32 dispenserid() const;
+ void set_dispenserid(::google::protobuf::uint32 value);
+
+ // uint32 DispenserPosition = 2;
+ void clear_dispenserposition();
+ static const int kDispenserPositionFieldNumber = 2;
+ ::google::protobuf::uint32 dispenserposition() const;
+ void set_dispenserposition(::google::protobuf::uint32 value);
+
+ // uint32 InkWorningLevel = 3;
+ void clear_inkworninglevel();
+ static const int kInkWorningLevelFieldNumber = 3;
+ ::google::protobuf::uint32 inkworninglevel() const;
+ void set_inkworninglevel(::google::protobuf::uint32 value);
+
+ // bool Status = 4;
+ void clear_status();
+ static const int kStatusFieldNumber = 4;
+ bool status() const;
+ void set_status(bool value);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.StubDispenserResponse)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::uint32 dispenserid_;
+ ::google::protobuf::uint32 dispenserposition_;
+ ::google::protobuf::uint32 inkworninglevel_;
+ bool status_;
+ mutable int _cached_size_;
+ friend struct protobuf_StubDispenserResponse_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// StubDispenserResponse
+
+// uint32 DispenserId = 1;
+inline void StubDispenserResponse::clear_dispenserid() {
+ dispenserid_ = 0u;
+}
+inline ::google::protobuf::uint32 StubDispenserResponse::dispenserid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubDispenserResponse.DispenserId)
+ return dispenserid_;
+}
+inline void StubDispenserResponse::set_dispenserid(::google::protobuf::uint32 value) {
+
+ dispenserid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubDispenserResponse.DispenserId)
+}
+
+// uint32 DispenserPosition = 2;
+inline void StubDispenserResponse::clear_dispenserposition() {
+ dispenserposition_ = 0u;
+}
+inline ::google::protobuf::uint32 StubDispenserResponse::dispenserposition() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubDispenserResponse.DispenserPosition)
+ return dispenserposition_;
+}
+inline void StubDispenserResponse::set_dispenserposition(::google::protobuf::uint32 value) {
+
+ dispenserposition_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubDispenserResponse.DispenserPosition)
+}
+
+// uint32 InkWorningLevel = 3;
+inline void StubDispenserResponse::clear_inkworninglevel() {
+ inkworninglevel_ = 0u;
+}
+inline ::google::protobuf::uint32 StubDispenserResponse::inkworninglevel() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubDispenserResponse.InkWorningLevel)
+ return inkworninglevel_;
+}
+inline void StubDispenserResponse::set_inkworninglevel(::google::protobuf::uint32 value) {
+
+ inkworninglevel_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubDispenserResponse.InkWorningLevel)
+}
+
+// bool Status = 4;
+inline void StubDispenserResponse::clear_status() {
+ status_ = false;
+}
+inline bool StubDispenserResponse::status() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubDispenserResponse.Status)
+ return status_;
+}
+inline void StubDispenserResponse::set_status(bool value) {
+
+ status_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubDispenserResponse.Status)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_StubDispenserResponse_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOInputSetupRequest.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOInputSetupRequest.pb.cc
new file mode 100644
index 000000000..d4ea1baed
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOInputSetupRequest.pb.cc
@@ -0,0 +1,612 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubGPIOInputSetupRequest.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "StubGPIOInputSetupRequest.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 Tango {
+namespace PMR {
+namespace Stubs {
+class StubGPIOInputSetupRequestDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<StubGPIOInputSetupRequest>
+ _instance;
+} _StubGPIOInputSetupRequest_default_instance_;
+
+namespace protobuf_StubGPIOInputSetupRequest_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOInputSetupRequest, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOInputSetupRequest, portid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOInputSetupRequest, pinid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOInputSetupRequest, setinput_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOInputSetupRequest, setpullup_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(StubGPIOInputSetupRequest)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_StubGPIOInputSetupRequest_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "StubGPIOInputSetupRequest.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _StubGPIOInputSetupRequest_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_StubGPIOInputSetupRequest_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n\037StubGPIOInputSetupRequest.proto\022\017Tango"
+ ".PMR.Stubs\"_\n\031StubGPIOInputSetupRequest\022"
+ "\016\n\006PortId\030\001 \001(\t\022\r\n\005PinId\030\002 \001(\r\022\020\n\010SetInp"
+ "ut\030\003 \001(\r\022\021\n\tSetPullUP\030\004 \001(\rB\033\n\031com.twine"
+ ".tango.pmr.stubsb\006proto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 184);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "StubGPIOInputSetupRequest.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_StubGPIOInputSetupRequest_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StubGPIOInputSetupRequest::kPortIdFieldNumber;
+const int StubGPIOInputSetupRequest::kPinIdFieldNumber;
+const int StubGPIOInputSetupRequest::kSetInputFieldNumber;
+const int StubGPIOInputSetupRequest::kSetPullUPFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StubGPIOInputSetupRequest::StubGPIOInputSetupRequest()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_StubGPIOInputSetupRequest_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubGPIOInputSetupRequest)
+}
+StubGPIOInputSetupRequest::StubGPIOInputSetupRequest(const StubGPIOInputSetupRequest& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ portid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (from.portid().size() > 0) {
+ portid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.portid_);
+ }
+ ::memcpy(&pinid_, &from.pinid_,
+ static_cast<size_t>(reinterpret_cast<char*>(&setpullup_) -
+ reinterpret_cast<char*>(&pinid_)) + sizeof(setpullup_));
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubGPIOInputSetupRequest)
+}
+
+void StubGPIOInputSetupRequest::SharedCtor() {
+ portid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ ::memset(&pinid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&setpullup_) -
+ reinterpret_cast<char*>(&pinid_)) + sizeof(setpullup_));
+ _cached_size_ = 0;
+}
+
+StubGPIOInputSetupRequest::~StubGPIOInputSetupRequest() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubGPIOInputSetupRequest)
+ SharedDtor();
+}
+
+void StubGPIOInputSetupRequest::SharedDtor() {
+ portid_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void StubGPIOInputSetupRequest::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StubGPIOInputSetupRequest::descriptor() {
+ protobuf_StubGPIOInputSetupRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubGPIOInputSetupRequest_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StubGPIOInputSetupRequest& StubGPIOInputSetupRequest::default_instance() {
+ protobuf_StubGPIOInputSetupRequest_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+StubGPIOInputSetupRequest* StubGPIOInputSetupRequest::New(::google::protobuf::Arena* arena) const {
+ StubGPIOInputSetupRequest* n = new StubGPIOInputSetupRequest;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StubGPIOInputSetupRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubGPIOInputSetupRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ ::memset(&pinid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&setpullup_) -
+ reinterpret_cast<char*>(&pinid_)) + sizeof(setpullup_));
+ _internal_metadata_.Clear();
+}
+
+bool StubGPIOInputSetupRequest::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:Tango.PMR.Stubs.StubGPIOInputSetupRequest)
+ 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)) {
+ // string PortId = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_portid()));
+ DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::PARSE,
+ "Tango.PMR.Stubs.StubGPIOInputSetupRequest.PortId"));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 PinId = 2;
+ case 2: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &pinid_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 SetInput = 3;
+ case 3: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &setinput_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 SetPullUP = 4;
+ case 4: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &setpullup_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubGPIOInputSetupRequest)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubGPIOInputSetupRequest)
+ return false;
+#undef DO_
+}
+
+void StubGPIOInputSetupRequest::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubGPIOInputSetupRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+ "Tango.PMR.Stubs.StubGPIOInputSetupRequest.PortId");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 1, this->portid(), output);
+ }
+
+ // uint32 PinId = 2;
+ if (this->pinid() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->pinid(), output);
+ }
+
+ // uint32 SetInput = 3;
+ if (this->setinput() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(3, this->setinput(), output);
+ }
+
+ // uint32 SetPullUP = 4;
+ if (this->setpullup() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(4, this->setpullup(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubGPIOInputSetupRequest)
+}
+
+::google::protobuf::uint8* StubGPIOInputSetupRequest::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubGPIOInputSetupRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+ "Tango.PMR.Stubs.StubGPIOInputSetupRequest.PortId");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 1, this->portid(), target);
+ }
+
+ // uint32 PinId = 2;
+ if (this->pinid() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->pinid(), target);
+ }
+
+ // uint32 SetInput = 3;
+ if (this->setinput() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(3, this->setinput(), target);
+ }
+
+ // uint32 SetPullUP = 4;
+ if (this->setpullup() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(4, this->setpullup(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubGPIOInputSetupRequest)
+ return target;
+}
+
+size_t StubGPIOInputSetupRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubGPIOInputSetupRequest)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->portid());
+ }
+
+ // uint32 PinId = 2;
+ if (this->pinid() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->pinid());
+ }
+
+ // uint32 SetInput = 3;
+ if (this->setinput() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->setinput());
+ }
+
+ // uint32 SetPullUP = 4;
+ if (this->setpullup() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->setpullup());
+ }
+
+ 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 StubGPIOInputSetupRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubGPIOInputSetupRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ const StubGPIOInputSetupRequest* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StubGPIOInputSetupRequest>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubGPIOInputSetupRequest)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubGPIOInputSetupRequest)
+ MergeFrom(*source);
+ }
+}
+
+void StubGPIOInputSetupRequest::MergeFrom(const StubGPIOInputSetupRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubGPIOInputSetupRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.portid().size() > 0) {
+
+ portid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.portid_);
+ }
+ if (from.pinid() != 0) {
+ set_pinid(from.pinid());
+ }
+ if (from.setinput() != 0) {
+ set_setinput(from.setinput());
+ }
+ if (from.setpullup() != 0) {
+ set_setpullup(from.setpullup());
+ }
+}
+
+void StubGPIOInputSetupRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubGPIOInputSetupRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StubGPIOInputSetupRequest::CopyFrom(const StubGPIOInputSetupRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubGPIOInputSetupRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StubGPIOInputSetupRequest::IsInitialized() const {
+ return true;
+}
+
+void StubGPIOInputSetupRequest::Swap(StubGPIOInputSetupRequest* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StubGPIOInputSetupRequest::InternalSwap(StubGPIOInputSetupRequest* other) {
+ using std::swap;
+ portid_.Swap(&other->portid_);
+ swap(pinid_, other->pinid_);
+ swap(setinput_, other->setinput_);
+ swap(setpullup_, other->setpullup_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StubGPIOInputSetupRequest::GetMetadata() const {
+ protobuf_StubGPIOInputSetupRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubGPIOInputSetupRequest_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StubGPIOInputSetupRequest
+
+// string PortId = 1;
+void StubGPIOInputSetupRequest::clear_portid() {
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+const ::std::string& StubGPIOInputSetupRequest::portid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOInputSetupRequest.PortId)
+ return portid_.GetNoArena();
+}
+void StubGPIOInputSetupRequest::set_portid(const ::std::string& value) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOInputSetupRequest.PortId)
+}
+#if LANG_CXX11
+void StubGPIOInputSetupRequest::set_portid(::std::string&& value) {
+
+ portid_.SetNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+ // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Stubs.StubGPIOInputSetupRequest.PortId)
+}
+#endif
+void StubGPIOInputSetupRequest::set_portid(const char* value) {
+ GOOGLE_DCHECK(value != NULL);
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:Tango.PMR.Stubs.StubGPIOInputSetupRequest.PortId)
+}
+void StubGPIOInputSetupRequest::set_portid(const char* value, size_t size) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Stubs.StubGPIOInputSetupRequest.PortId)
+}
+::std::string* StubGPIOInputSetupRequest::mutable_portid() {
+
+ // @@protoc_insertion_point(field_mutable:Tango.PMR.Stubs.StubGPIOInputSetupRequest.PortId)
+ return portid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* StubGPIOInputSetupRequest::release_portid() {
+ // @@protoc_insertion_point(field_release:Tango.PMR.Stubs.StubGPIOInputSetupRequest.PortId)
+
+ return portid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void StubGPIOInputSetupRequest::set_allocated_portid(::std::string* portid) {
+ if (portid != NULL) {
+
+ } else {
+
+ }
+ portid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), portid);
+ // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Stubs.StubGPIOInputSetupRequest.PortId)
+}
+
+// uint32 PinId = 2;
+void StubGPIOInputSetupRequest::clear_pinid() {
+ pinid_ = 0u;
+}
+::google::protobuf::uint32 StubGPIOInputSetupRequest::pinid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOInputSetupRequest.PinId)
+ return pinid_;
+}
+void StubGPIOInputSetupRequest::set_pinid(::google::protobuf::uint32 value) {
+
+ pinid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOInputSetupRequest.PinId)
+}
+
+// uint32 SetInput = 3;
+void StubGPIOInputSetupRequest::clear_setinput() {
+ setinput_ = 0u;
+}
+::google::protobuf::uint32 StubGPIOInputSetupRequest::setinput() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOInputSetupRequest.SetInput)
+ return setinput_;
+}
+void StubGPIOInputSetupRequest::set_setinput(::google::protobuf::uint32 value) {
+
+ setinput_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOInputSetupRequest.SetInput)
+}
+
+// uint32 SetPullUP = 4;
+void StubGPIOInputSetupRequest::clear_setpullup() {
+ setpullup_ = 0u;
+}
+::google::protobuf::uint32 StubGPIOInputSetupRequest::setpullup() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOInputSetupRequest.SetPullUP)
+ return setpullup_;
+}
+void StubGPIOInputSetupRequest::set_setpullup(::google::protobuf::uint32 value) {
+
+ setpullup_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOInputSetupRequest.SetPullUP)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOInputSetupRequest.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOInputSetupRequest.pb.h
new file mode 100644
index 000000000..00238e3b2
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOInputSetupRequest.pb.h
@@ -0,0 +1,309 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubGPIOInputSetupRequest.proto
+
+#ifndef PROTOBUF_StubGPIOInputSetupRequest_2eproto__INCLUDED
+#define PROTOBUF_StubGPIOInputSetupRequest_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+class StubGPIOInputSetupRequest;
+class StubGPIOInputSetupRequestDefaultTypeInternal;
+extern StubGPIOInputSetupRequestDefaultTypeInternal _StubGPIOInputSetupRequest_default_instance_;
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+
+namespace protobuf_StubGPIOInputSetupRequest_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_StubGPIOInputSetupRequest_2eproto
+
+// ===================================================================
+
+class StubGPIOInputSetupRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Stubs.StubGPIOInputSetupRequest) */ {
+ public:
+ StubGPIOInputSetupRequest();
+ virtual ~StubGPIOInputSetupRequest();
+
+ StubGPIOInputSetupRequest(const StubGPIOInputSetupRequest& from);
+
+ inline StubGPIOInputSetupRequest& operator=(const StubGPIOInputSetupRequest& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ StubGPIOInputSetupRequest(StubGPIOInputSetupRequest&& from) noexcept
+ : StubGPIOInputSetupRequest() {
+ *this = ::std::move(from);
+ }
+
+ inline StubGPIOInputSetupRequest& operator=(StubGPIOInputSetupRequest&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StubGPIOInputSetupRequest& default_instance();
+
+ static inline const StubGPIOInputSetupRequest* internal_default_instance() {
+ return reinterpret_cast<const StubGPIOInputSetupRequest*>(
+ &_StubGPIOInputSetupRequest_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(StubGPIOInputSetupRequest* other);
+ friend void swap(StubGPIOInputSetupRequest& a, StubGPIOInputSetupRequest& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline StubGPIOInputSetupRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ StubGPIOInputSetupRequest* 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 StubGPIOInputSetupRequest& from);
+ void MergeFrom(const StubGPIOInputSetupRequest& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(StubGPIOInputSetupRequest* 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 -------------------------------------------------------
+
+ // string PortId = 1;
+ void clear_portid();
+ static const int kPortIdFieldNumber = 1;
+ const ::std::string& portid() const;
+ void set_portid(const ::std::string& value);
+ #if LANG_CXX11
+ void set_portid(::std::string&& value);
+ #endif
+ void set_portid(const char* value);
+ void set_portid(const char* value, size_t size);
+ ::std::string* mutable_portid();
+ ::std::string* release_portid();
+ void set_allocated_portid(::std::string* portid);
+
+ // uint32 PinId = 2;
+ void clear_pinid();
+ static const int kPinIdFieldNumber = 2;
+ ::google::protobuf::uint32 pinid() const;
+ void set_pinid(::google::protobuf::uint32 value);
+
+ // uint32 SetInput = 3;
+ void clear_setinput();
+ static const int kSetInputFieldNumber = 3;
+ ::google::protobuf::uint32 setinput() const;
+ void set_setinput(::google::protobuf::uint32 value);
+
+ // uint32 SetPullUP = 4;
+ void clear_setpullup();
+ static const int kSetPullUPFieldNumber = 4;
+ ::google::protobuf::uint32 setpullup() const;
+ void set_setpullup(::google::protobuf::uint32 value);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.StubGPIOInputSetupRequest)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::internal::ArenaStringPtr portid_;
+ ::google::protobuf::uint32 pinid_;
+ ::google::protobuf::uint32 setinput_;
+ ::google::protobuf::uint32 setpullup_;
+ mutable int _cached_size_;
+ friend struct protobuf_StubGPIOInputSetupRequest_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// StubGPIOInputSetupRequest
+
+// string PortId = 1;
+inline void StubGPIOInputSetupRequest::clear_portid() {
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& StubGPIOInputSetupRequest::portid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOInputSetupRequest.PortId)
+ return portid_.GetNoArena();
+}
+inline void StubGPIOInputSetupRequest::set_portid(const ::std::string& value) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOInputSetupRequest.PortId)
+}
+#if LANG_CXX11
+inline void StubGPIOInputSetupRequest::set_portid(::std::string&& value) {
+
+ portid_.SetNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+ // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Stubs.StubGPIOInputSetupRequest.PortId)
+}
+#endif
+inline void StubGPIOInputSetupRequest::set_portid(const char* value) {
+ GOOGLE_DCHECK(value != NULL);
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:Tango.PMR.Stubs.StubGPIOInputSetupRequest.PortId)
+}
+inline void StubGPIOInputSetupRequest::set_portid(const char* value, size_t size) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Stubs.StubGPIOInputSetupRequest.PortId)
+}
+inline ::std::string* StubGPIOInputSetupRequest::mutable_portid() {
+
+ // @@protoc_insertion_point(field_mutable:Tango.PMR.Stubs.StubGPIOInputSetupRequest.PortId)
+ return portid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* StubGPIOInputSetupRequest::release_portid() {
+ // @@protoc_insertion_point(field_release:Tango.PMR.Stubs.StubGPIOInputSetupRequest.PortId)
+
+ return portid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void StubGPIOInputSetupRequest::set_allocated_portid(::std::string* portid) {
+ if (portid != NULL) {
+
+ } else {
+
+ }
+ portid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), portid);
+ // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Stubs.StubGPIOInputSetupRequest.PortId)
+}
+
+// uint32 PinId = 2;
+inline void StubGPIOInputSetupRequest::clear_pinid() {
+ pinid_ = 0u;
+}
+inline ::google::protobuf::uint32 StubGPIOInputSetupRequest::pinid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOInputSetupRequest.PinId)
+ return pinid_;
+}
+inline void StubGPIOInputSetupRequest::set_pinid(::google::protobuf::uint32 value) {
+
+ pinid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOInputSetupRequest.PinId)
+}
+
+// uint32 SetInput = 3;
+inline void StubGPIOInputSetupRequest::clear_setinput() {
+ setinput_ = 0u;
+}
+inline ::google::protobuf::uint32 StubGPIOInputSetupRequest::setinput() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOInputSetupRequest.SetInput)
+ return setinput_;
+}
+inline void StubGPIOInputSetupRequest::set_setinput(::google::protobuf::uint32 value) {
+
+ setinput_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOInputSetupRequest.SetInput)
+}
+
+// uint32 SetPullUP = 4;
+inline void StubGPIOInputSetupRequest::clear_setpullup() {
+ setpullup_ = 0u;
+}
+inline ::google::protobuf::uint32 StubGPIOInputSetupRequest::setpullup() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOInputSetupRequest.SetPullUP)
+ return setpullup_;
+}
+inline void StubGPIOInputSetupRequest::set_setpullup(::google::protobuf::uint32 value) {
+
+ setpullup_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOInputSetupRequest.SetPullUP)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_StubGPIOInputSetupRequest_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOInputSetupResponse.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOInputSetupResponse.pb.cc
new file mode 100644
index 000000000..616670dd2
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOInputSetupResponse.pb.cc
@@ -0,0 +1,561 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubGPIOInputSetupResponse.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "StubGPIOInputSetupResponse.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 Tango {
+namespace PMR {
+namespace Stubs {
+class StubGPIOInputSetupResponseDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<StubGPIOInputSetupResponse>
+ _instance;
+} _StubGPIOInputSetupResponse_default_instance_;
+
+namespace protobuf_StubGPIOInputSetupResponse_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOInputSetupResponse, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOInputSetupResponse, portid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOInputSetupResponse, pinid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOInputSetupResponse, status_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(StubGPIOInputSetupResponse)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_StubGPIOInputSetupResponse_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "StubGPIOInputSetupResponse.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _StubGPIOInputSetupResponse_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_StubGPIOInputSetupResponse_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n StubGPIOInputSetupResponse.proto\022\017Tang"
+ "o.PMR.Stubs\"K\n\032StubGPIOInputSetupRespons"
+ "e\022\016\n\006PortId\030\001 \001(\t\022\r\n\005PinId\030\002 \001(\r\022\016\n\006Stat"
+ "us\030\003 \001(\rB\033\n\031com.twine.tango.pmr.stubsb\006p"
+ "roto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 165);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "StubGPIOInputSetupResponse.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_StubGPIOInputSetupResponse_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StubGPIOInputSetupResponse::kPortIdFieldNumber;
+const int StubGPIOInputSetupResponse::kPinIdFieldNumber;
+const int StubGPIOInputSetupResponse::kStatusFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StubGPIOInputSetupResponse::StubGPIOInputSetupResponse()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_StubGPIOInputSetupResponse_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubGPIOInputSetupResponse)
+}
+StubGPIOInputSetupResponse::StubGPIOInputSetupResponse(const StubGPIOInputSetupResponse& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ portid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (from.portid().size() > 0) {
+ portid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.portid_);
+ }
+ ::memcpy(&pinid_, &from.pinid_,
+ static_cast<size_t>(reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&pinid_)) + sizeof(status_));
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubGPIOInputSetupResponse)
+}
+
+void StubGPIOInputSetupResponse::SharedCtor() {
+ portid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ ::memset(&pinid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&pinid_)) + sizeof(status_));
+ _cached_size_ = 0;
+}
+
+StubGPIOInputSetupResponse::~StubGPIOInputSetupResponse() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubGPIOInputSetupResponse)
+ SharedDtor();
+}
+
+void StubGPIOInputSetupResponse::SharedDtor() {
+ portid_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void StubGPIOInputSetupResponse::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StubGPIOInputSetupResponse::descriptor() {
+ protobuf_StubGPIOInputSetupResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubGPIOInputSetupResponse_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StubGPIOInputSetupResponse& StubGPIOInputSetupResponse::default_instance() {
+ protobuf_StubGPIOInputSetupResponse_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+StubGPIOInputSetupResponse* StubGPIOInputSetupResponse::New(::google::protobuf::Arena* arena) const {
+ StubGPIOInputSetupResponse* n = new StubGPIOInputSetupResponse;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StubGPIOInputSetupResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubGPIOInputSetupResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ ::memset(&pinid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&pinid_)) + sizeof(status_));
+ _internal_metadata_.Clear();
+}
+
+bool StubGPIOInputSetupResponse::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:Tango.PMR.Stubs.StubGPIOInputSetupResponse)
+ 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)) {
+ // string PortId = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_portid()));
+ DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::PARSE,
+ "Tango.PMR.Stubs.StubGPIOInputSetupResponse.PortId"));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 PinId = 2;
+ case 2: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &pinid_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 Status = 3;
+ case 3: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &status_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubGPIOInputSetupResponse)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubGPIOInputSetupResponse)
+ return false;
+#undef DO_
+}
+
+void StubGPIOInputSetupResponse::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubGPIOInputSetupResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+ "Tango.PMR.Stubs.StubGPIOInputSetupResponse.PortId");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 1, this->portid(), output);
+ }
+
+ // uint32 PinId = 2;
+ if (this->pinid() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->pinid(), output);
+ }
+
+ // uint32 Status = 3;
+ if (this->status() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(3, this->status(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubGPIOInputSetupResponse)
+}
+
+::google::protobuf::uint8* StubGPIOInputSetupResponse::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubGPIOInputSetupResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+ "Tango.PMR.Stubs.StubGPIOInputSetupResponse.PortId");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 1, this->portid(), target);
+ }
+
+ // uint32 PinId = 2;
+ if (this->pinid() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->pinid(), target);
+ }
+
+ // uint32 Status = 3;
+ if (this->status() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(3, this->status(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubGPIOInputSetupResponse)
+ return target;
+}
+
+size_t StubGPIOInputSetupResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubGPIOInputSetupResponse)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->portid());
+ }
+
+ // uint32 PinId = 2;
+ if (this->pinid() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->pinid());
+ }
+
+ // uint32 Status = 3;
+ if (this->status() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->status());
+ }
+
+ 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 StubGPIOInputSetupResponse::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubGPIOInputSetupResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ const StubGPIOInputSetupResponse* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StubGPIOInputSetupResponse>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubGPIOInputSetupResponse)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubGPIOInputSetupResponse)
+ MergeFrom(*source);
+ }
+}
+
+void StubGPIOInputSetupResponse::MergeFrom(const StubGPIOInputSetupResponse& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubGPIOInputSetupResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.portid().size() > 0) {
+
+ portid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.portid_);
+ }
+ if (from.pinid() != 0) {
+ set_pinid(from.pinid());
+ }
+ if (from.status() != 0) {
+ set_status(from.status());
+ }
+}
+
+void StubGPIOInputSetupResponse::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubGPIOInputSetupResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StubGPIOInputSetupResponse::CopyFrom(const StubGPIOInputSetupResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubGPIOInputSetupResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StubGPIOInputSetupResponse::IsInitialized() const {
+ return true;
+}
+
+void StubGPIOInputSetupResponse::Swap(StubGPIOInputSetupResponse* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StubGPIOInputSetupResponse::InternalSwap(StubGPIOInputSetupResponse* other) {
+ using std::swap;
+ portid_.Swap(&other->portid_);
+ swap(pinid_, other->pinid_);
+ swap(status_, other->status_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StubGPIOInputSetupResponse::GetMetadata() const {
+ protobuf_StubGPIOInputSetupResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubGPIOInputSetupResponse_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StubGPIOInputSetupResponse
+
+// string PortId = 1;
+void StubGPIOInputSetupResponse::clear_portid() {
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+const ::std::string& StubGPIOInputSetupResponse::portid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOInputSetupResponse.PortId)
+ return portid_.GetNoArena();
+}
+void StubGPIOInputSetupResponse::set_portid(const ::std::string& value) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOInputSetupResponse.PortId)
+}
+#if LANG_CXX11
+void StubGPIOInputSetupResponse::set_portid(::std::string&& value) {
+
+ portid_.SetNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+ // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Stubs.StubGPIOInputSetupResponse.PortId)
+}
+#endif
+void StubGPIOInputSetupResponse::set_portid(const char* value) {
+ GOOGLE_DCHECK(value != NULL);
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:Tango.PMR.Stubs.StubGPIOInputSetupResponse.PortId)
+}
+void StubGPIOInputSetupResponse::set_portid(const char* value, size_t size) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Stubs.StubGPIOInputSetupResponse.PortId)
+}
+::std::string* StubGPIOInputSetupResponse::mutable_portid() {
+
+ // @@protoc_insertion_point(field_mutable:Tango.PMR.Stubs.StubGPIOInputSetupResponse.PortId)
+ return portid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* StubGPIOInputSetupResponse::release_portid() {
+ // @@protoc_insertion_point(field_release:Tango.PMR.Stubs.StubGPIOInputSetupResponse.PortId)
+
+ return portid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void StubGPIOInputSetupResponse::set_allocated_portid(::std::string* portid) {
+ if (portid != NULL) {
+
+ } else {
+
+ }
+ portid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), portid);
+ // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Stubs.StubGPIOInputSetupResponse.PortId)
+}
+
+// uint32 PinId = 2;
+void StubGPIOInputSetupResponse::clear_pinid() {
+ pinid_ = 0u;
+}
+::google::protobuf::uint32 StubGPIOInputSetupResponse::pinid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOInputSetupResponse.PinId)
+ return pinid_;
+}
+void StubGPIOInputSetupResponse::set_pinid(::google::protobuf::uint32 value) {
+
+ pinid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOInputSetupResponse.PinId)
+}
+
+// uint32 Status = 3;
+void StubGPIOInputSetupResponse::clear_status() {
+ status_ = 0u;
+}
+::google::protobuf::uint32 StubGPIOInputSetupResponse::status() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOInputSetupResponse.Status)
+ return status_;
+}
+void StubGPIOInputSetupResponse::set_status(::google::protobuf::uint32 value) {
+
+ status_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOInputSetupResponse.Status)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOInputSetupResponse.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOInputSetupResponse.pb.h
new file mode 100644
index 000000000..e49ae028a
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOInputSetupResponse.pb.h
@@ -0,0 +1,288 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubGPIOInputSetupResponse.proto
+
+#ifndef PROTOBUF_StubGPIOInputSetupResponse_2eproto__INCLUDED
+#define PROTOBUF_StubGPIOInputSetupResponse_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+class StubGPIOInputSetupResponse;
+class StubGPIOInputSetupResponseDefaultTypeInternal;
+extern StubGPIOInputSetupResponseDefaultTypeInternal _StubGPIOInputSetupResponse_default_instance_;
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+
+namespace protobuf_StubGPIOInputSetupResponse_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_StubGPIOInputSetupResponse_2eproto
+
+// ===================================================================
+
+class StubGPIOInputSetupResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Stubs.StubGPIOInputSetupResponse) */ {
+ public:
+ StubGPIOInputSetupResponse();
+ virtual ~StubGPIOInputSetupResponse();
+
+ StubGPIOInputSetupResponse(const StubGPIOInputSetupResponse& from);
+
+ inline StubGPIOInputSetupResponse& operator=(const StubGPIOInputSetupResponse& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ StubGPIOInputSetupResponse(StubGPIOInputSetupResponse&& from) noexcept
+ : StubGPIOInputSetupResponse() {
+ *this = ::std::move(from);
+ }
+
+ inline StubGPIOInputSetupResponse& operator=(StubGPIOInputSetupResponse&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StubGPIOInputSetupResponse& default_instance();
+
+ static inline const StubGPIOInputSetupResponse* internal_default_instance() {
+ return reinterpret_cast<const StubGPIOInputSetupResponse*>(
+ &_StubGPIOInputSetupResponse_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(StubGPIOInputSetupResponse* other);
+ friend void swap(StubGPIOInputSetupResponse& a, StubGPIOInputSetupResponse& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline StubGPIOInputSetupResponse* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ StubGPIOInputSetupResponse* 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 StubGPIOInputSetupResponse& from);
+ void MergeFrom(const StubGPIOInputSetupResponse& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(StubGPIOInputSetupResponse* 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 -------------------------------------------------------
+
+ // string PortId = 1;
+ void clear_portid();
+ static const int kPortIdFieldNumber = 1;
+ const ::std::string& portid() const;
+ void set_portid(const ::std::string& value);
+ #if LANG_CXX11
+ void set_portid(::std::string&& value);
+ #endif
+ void set_portid(const char* value);
+ void set_portid(const char* value, size_t size);
+ ::std::string* mutable_portid();
+ ::std::string* release_portid();
+ void set_allocated_portid(::std::string* portid);
+
+ // uint32 PinId = 2;
+ void clear_pinid();
+ static const int kPinIdFieldNumber = 2;
+ ::google::protobuf::uint32 pinid() const;
+ void set_pinid(::google::protobuf::uint32 value);
+
+ // uint32 Status = 3;
+ void clear_status();
+ static const int kStatusFieldNumber = 3;
+ ::google::protobuf::uint32 status() const;
+ void set_status(::google::protobuf::uint32 value);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.StubGPIOInputSetupResponse)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::internal::ArenaStringPtr portid_;
+ ::google::protobuf::uint32 pinid_;
+ ::google::protobuf::uint32 status_;
+ mutable int _cached_size_;
+ friend struct protobuf_StubGPIOInputSetupResponse_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// StubGPIOInputSetupResponse
+
+// string PortId = 1;
+inline void StubGPIOInputSetupResponse::clear_portid() {
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& StubGPIOInputSetupResponse::portid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOInputSetupResponse.PortId)
+ return portid_.GetNoArena();
+}
+inline void StubGPIOInputSetupResponse::set_portid(const ::std::string& value) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOInputSetupResponse.PortId)
+}
+#if LANG_CXX11
+inline void StubGPIOInputSetupResponse::set_portid(::std::string&& value) {
+
+ portid_.SetNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+ // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Stubs.StubGPIOInputSetupResponse.PortId)
+}
+#endif
+inline void StubGPIOInputSetupResponse::set_portid(const char* value) {
+ GOOGLE_DCHECK(value != NULL);
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:Tango.PMR.Stubs.StubGPIOInputSetupResponse.PortId)
+}
+inline void StubGPIOInputSetupResponse::set_portid(const char* value, size_t size) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Stubs.StubGPIOInputSetupResponse.PortId)
+}
+inline ::std::string* StubGPIOInputSetupResponse::mutable_portid() {
+
+ // @@protoc_insertion_point(field_mutable:Tango.PMR.Stubs.StubGPIOInputSetupResponse.PortId)
+ return portid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* StubGPIOInputSetupResponse::release_portid() {
+ // @@protoc_insertion_point(field_release:Tango.PMR.Stubs.StubGPIOInputSetupResponse.PortId)
+
+ return portid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void StubGPIOInputSetupResponse::set_allocated_portid(::std::string* portid) {
+ if (portid != NULL) {
+
+ } else {
+
+ }
+ portid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), portid);
+ // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Stubs.StubGPIOInputSetupResponse.PortId)
+}
+
+// uint32 PinId = 2;
+inline void StubGPIOInputSetupResponse::clear_pinid() {
+ pinid_ = 0u;
+}
+inline ::google::protobuf::uint32 StubGPIOInputSetupResponse::pinid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOInputSetupResponse.PinId)
+ return pinid_;
+}
+inline void StubGPIOInputSetupResponse::set_pinid(::google::protobuf::uint32 value) {
+
+ pinid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOInputSetupResponse.PinId)
+}
+
+// uint32 Status = 3;
+inline void StubGPIOInputSetupResponse::clear_status() {
+ status_ = 0u;
+}
+inline ::google::protobuf::uint32 StubGPIOInputSetupResponse::status() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOInputSetupResponse.Status)
+ return status_;
+}
+inline void StubGPIOInputSetupResponse::set_status(::google::protobuf::uint32 value) {
+
+ status_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOInputSetupResponse.Status)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_StubGPIOInputSetupResponse_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadBitRequest.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadBitRequest.pb.cc
new file mode 100644
index 000000000..f70dce580
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadBitRequest.pb.cc
@@ -0,0 +1,608 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubGPIOReadBitRequest.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "StubGPIOReadBitRequest.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 Tango {
+namespace PMR {
+namespace Stubs {
+class StubGPIOReadBitRequestDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<StubGPIOReadBitRequest>
+ _instance;
+} _StubGPIOReadBitRequest_default_instance_;
+
+namespace protobuf_StubGPIOReadBitRequest_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOReadBitRequest, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOReadBitRequest, portid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOReadBitRequest, pinid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOReadBitRequest, polling_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOReadBitRequest, pollexpvalue_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(StubGPIOReadBitRequest)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_StubGPIOReadBitRequest_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "StubGPIOReadBitRequest.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _StubGPIOReadBitRequest_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_StubGPIOReadBitRequest_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n\034StubGPIOReadBitRequest.proto\022\017Tango.PM"
+ "R.Stubs\"^\n\026StubGPIOReadBitRequest\022\016\n\006Por"
+ "tId\030\001 \001(\t\022\r\n\005PinId\030\002 \001(\r\022\017\n\007Polling\030\003 \001("
+ "\010\022\024\n\014PollExpValue\030\004 \001(\010B\033\n\031com.twine.tan"
+ "go.pmr.stubsb\006proto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 180);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "StubGPIOReadBitRequest.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_StubGPIOReadBitRequest_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StubGPIOReadBitRequest::kPortIdFieldNumber;
+const int StubGPIOReadBitRequest::kPinIdFieldNumber;
+const int StubGPIOReadBitRequest::kPollingFieldNumber;
+const int StubGPIOReadBitRequest::kPollExpValueFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StubGPIOReadBitRequest::StubGPIOReadBitRequest()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_StubGPIOReadBitRequest_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubGPIOReadBitRequest)
+}
+StubGPIOReadBitRequest::StubGPIOReadBitRequest(const StubGPIOReadBitRequest& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ portid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (from.portid().size() > 0) {
+ portid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.portid_);
+ }
+ ::memcpy(&pinid_, &from.pinid_,
+ static_cast<size_t>(reinterpret_cast<char*>(&pollexpvalue_) -
+ reinterpret_cast<char*>(&pinid_)) + sizeof(pollexpvalue_));
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubGPIOReadBitRequest)
+}
+
+void StubGPIOReadBitRequest::SharedCtor() {
+ portid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ ::memset(&pinid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&pollexpvalue_) -
+ reinterpret_cast<char*>(&pinid_)) + sizeof(pollexpvalue_));
+ _cached_size_ = 0;
+}
+
+StubGPIOReadBitRequest::~StubGPIOReadBitRequest() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubGPIOReadBitRequest)
+ SharedDtor();
+}
+
+void StubGPIOReadBitRequest::SharedDtor() {
+ portid_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void StubGPIOReadBitRequest::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StubGPIOReadBitRequest::descriptor() {
+ protobuf_StubGPIOReadBitRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubGPIOReadBitRequest_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StubGPIOReadBitRequest& StubGPIOReadBitRequest::default_instance() {
+ protobuf_StubGPIOReadBitRequest_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+StubGPIOReadBitRequest* StubGPIOReadBitRequest::New(::google::protobuf::Arena* arena) const {
+ StubGPIOReadBitRequest* n = new StubGPIOReadBitRequest;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StubGPIOReadBitRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubGPIOReadBitRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ ::memset(&pinid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&pollexpvalue_) -
+ reinterpret_cast<char*>(&pinid_)) + sizeof(pollexpvalue_));
+ _internal_metadata_.Clear();
+}
+
+bool StubGPIOReadBitRequest::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:Tango.PMR.Stubs.StubGPIOReadBitRequest)
+ 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)) {
+ // string PortId = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_portid()));
+ DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::PARSE,
+ "Tango.PMR.Stubs.StubGPIOReadBitRequest.PortId"));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 PinId = 2;
+ case 2: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &pinid_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // bool Polling = 3;
+ case 3: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &polling_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // bool PollExpValue = 4;
+ case 4: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &pollexpvalue_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubGPIOReadBitRequest)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubGPIOReadBitRequest)
+ return false;
+#undef DO_
+}
+
+void StubGPIOReadBitRequest::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubGPIOReadBitRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+ "Tango.PMR.Stubs.StubGPIOReadBitRequest.PortId");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 1, this->portid(), output);
+ }
+
+ // uint32 PinId = 2;
+ if (this->pinid() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->pinid(), output);
+ }
+
+ // bool Polling = 3;
+ if (this->polling() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(3, this->polling(), output);
+ }
+
+ // bool PollExpValue = 4;
+ if (this->pollexpvalue() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(4, this->pollexpvalue(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubGPIOReadBitRequest)
+}
+
+::google::protobuf::uint8* StubGPIOReadBitRequest::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubGPIOReadBitRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+ "Tango.PMR.Stubs.StubGPIOReadBitRequest.PortId");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 1, this->portid(), target);
+ }
+
+ // uint32 PinId = 2;
+ if (this->pinid() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->pinid(), target);
+ }
+
+ // bool Polling = 3;
+ if (this->polling() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(3, this->polling(), target);
+ }
+
+ // bool PollExpValue = 4;
+ if (this->pollexpvalue() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(4, this->pollexpvalue(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubGPIOReadBitRequest)
+ return target;
+}
+
+size_t StubGPIOReadBitRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubGPIOReadBitRequest)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->portid());
+ }
+
+ // uint32 PinId = 2;
+ if (this->pinid() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->pinid());
+ }
+
+ // bool Polling = 3;
+ if (this->polling() != 0) {
+ total_size += 1 + 1;
+ }
+
+ // bool PollExpValue = 4;
+ if (this->pollexpvalue() != 0) {
+ 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 StubGPIOReadBitRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubGPIOReadBitRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ const StubGPIOReadBitRequest* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StubGPIOReadBitRequest>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubGPIOReadBitRequest)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubGPIOReadBitRequest)
+ MergeFrom(*source);
+ }
+}
+
+void StubGPIOReadBitRequest::MergeFrom(const StubGPIOReadBitRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubGPIOReadBitRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.portid().size() > 0) {
+
+ portid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.portid_);
+ }
+ if (from.pinid() != 0) {
+ set_pinid(from.pinid());
+ }
+ if (from.polling() != 0) {
+ set_polling(from.polling());
+ }
+ if (from.pollexpvalue() != 0) {
+ set_pollexpvalue(from.pollexpvalue());
+ }
+}
+
+void StubGPIOReadBitRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubGPIOReadBitRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StubGPIOReadBitRequest::CopyFrom(const StubGPIOReadBitRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubGPIOReadBitRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StubGPIOReadBitRequest::IsInitialized() const {
+ return true;
+}
+
+void StubGPIOReadBitRequest::Swap(StubGPIOReadBitRequest* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StubGPIOReadBitRequest::InternalSwap(StubGPIOReadBitRequest* other) {
+ using std::swap;
+ portid_.Swap(&other->portid_);
+ swap(pinid_, other->pinid_);
+ swap(polling_, other->polling_);
+ swap(pollexpvalue_, other->pollexpvalue_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StubGPIOReadBitRequest::GetMetadata() const {
+ protobuf_StubGPIOReadBitRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubGPIOReadBitRequest_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StubGPIOReadBitRequest
+
+// string PortId = 1;
+void StubGPIOReadBitRequest::clear_portid() {
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+const ::std::string& StubGPIOReadBitRequest::portid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOReadBitRequest.PortId)
+ return portid_.GetNoArena();
+}
+void StubGPIOReadBitRequest::set_portid(const ::std::string& value) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOReadBitRequest.PortId)
+}
+#if LANG_CXX11
+void StubGPIOReadBitRequest::set_portid(::std::string&& value) {
+
+ portid_.SetNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+ // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Stubs.StubGPIOReadBitRequest.PortId)
+}
+#endif
+void StubGPIOReadBitRequest::set_portid(const char* value) {
+ GOOGLE_DCHECK(value != NULL);
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:Tango.PMR.Stubs.StubGPIOReadBitRequest.PortId)
+}
+void StubGPIOReadBitRequest::set_portid(const char* value, size_t size) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Stubs.StubGPIOReadBitRequest.PortId)
+}
+::std::string* StubGPIOReadBitRequest::mutable_portid() {
+
+ // @@protoc_insertion_point(field_mutable:Tango.PMR.Stubs.StubGPIOReadBitRequest.PortId)
+ return portid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* StubGPIOReadBitRequest::release_portid() {
+ // @@protoc_insertion_point(field_release:Tango.PMR.Stubs.StubGPIOReadBitRequest.PortId)
+
+ return portid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void StubGPIOReadBitRequest::set_allocated_portid(::std::string* portid) {
+ if (portid != NULL) {
+
+ } else {
+
+ }
+ portid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), portid);
+ // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Stubs.StubGPIOReadBitRequest.PortId)
+}
+
+// uint32 PinId = 2;
+void StubGPIOReadBitRequest::clear_pinid() {
+ pinid_ = 0u;
+}
+::google::protobuf::uint32 StubGPIOReadBitRequest::pinid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOReadBitRequest.PinId)
+ return pinid_;
+}
+void StubGPIOReadBitRequest::set_pinid(::google::protobuf::uint32 value) {
+
+ pinid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOReadBitRequest.PinId)
+}
+
+// bool Polling = 3;
+void StubGPIOReadBitRequest::clear_polling() {
+ polling_ = false;
+}
+bool StubGPIOReadBitRequest::polling() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOReadBitRequest.Polling)
+ return polling_;
+}
+void StubGPIOReadBitRequest::set_polling(bool value) {
+
+ polling_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOReadBitRequest.Polling)
+}
+
+// bool PollExpValue = 4;
+void StubGPIOReadBitRequest::clear_pollexpvalue() {
+ pollexpvalue_ = false;
+}
+bool StubGPIOReadBitRequest::pollexpvalue() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOReadBitRequest.PollExpValue)
+ return pollexpvalue_;
+}
+void StubGPIOReadBitRequest::set_pollexpvalue(bool value) {
+
+ pollexpvalue_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOReadBitRequest.PollExpValue)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadBitRequest.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadBitRequest.pb.h
new file mode 100644
index 000000000..34d11b21a
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadBitRequest.pb.h
@@ -0,0 +1,309 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubGPIOReadBitRequest.proto
+
+#ifndef PROTOBUF_StubGPIOReadBitRequest_2eproto__INCLUDED
+#define PROTOBUF_StubGPIOReadBitRequest_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+class StubGPIOReadBitRequest;
+class StubGPIOReadBitRequestDefaultTypeInternal;
+extern StubGPIOReadBitRequestDefaultTypeInternal _StubGPIOReadBitRequest_default_instance_;
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+
+namespace protobuf_StubGPIOReadBitRequest_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_StubGPIOReadBitRequest_2eproto
+
+// ===================================================================
+
+class StubGPIOReadBitRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Stubs.StubGPIOReadBitRequest) */ {
+ public:
+ StubGPIOReadBitRequest();
+ virtual ~StubGPIOReadBitRequest();
+
+ StubGPIOReadBitRequest(const StubGPIOReadBitRequest& from);
+
+ inline StubGPIOReadBitRequest& operator=(const StubGPIOReadBitRequest& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ StubGPIOReadBitRequest(StubGPIOReadBitRequest&& from) noexcept
+ : StubGPIOReadBitRequest() {
+ *this = ::std::move(from);
+ }
+
+ inline StubGPIOReadBitRequest& operator=(StubGPIOReadBitRequest&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StubGPIOReadBitRequest& default_instance();
+
+ static inline const StubGPIOReadBitRequest* internal_default_instance() {
+ return reinterpret_cast<const StubGPIOReadBitRequest*>(
+ &_StubGPIOReadBitRequest_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(StubGPIOReadBitRequest* other);
+ friend void swap(StubGPIOReadBitRequest& a, StubGPIOReadBitRequest& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline StubGPIOReadBitRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ StubGPIOReadBitRequest* 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 StubGPIOReadBitRequest& from);
+ void MergeFrom(const StubGPIOReadBitRequest& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(StubGPIOReadBitRequest* 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 -------------------------------------------------------
+
+ // string PortId = 1;
+ void clear_portid();
+ static const int kPortIdFieldNumber = 1;
+ const ::std::string& portid() const;
+ void set_portid(const ::std::string& value);
+ #if LANG_CXX11
+ void set_portid(::std::string&& value);
+ #endif
+ void set_portid(const char* value);
+ void set_portid(const char* value, size_t size);
+ ::std::string* mutable_portid();
+ ::std::string* release_portid();
+ void set_allocated_portid(::std::string* portid);
+
+ // uint32 PinId = 2;
+ void clear_pinid();
+ static const int kPinIdFieldNumber = 2;
+ ::google::protobuf::uint32 pinid() const;
+ void set_pinid(::google::protobuf::uint32 value);
+
+ // bool Polling = 3;
+ void clear_polling();
+ static const int kPollingFieldNumber = 3;
+ bool polling() const;
+ void set_polling(bool value);
+
+ // bool PollExpValue = 4;
+ void clear_pollexpvalue();
+ static const int kPollExpValueFieldNumber = 4;
+ bool pollexpvalue() const;
+ void set_pollexpvalue(bool value);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.StubGPIOReadBitRequest)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::internal::ArenaStringPtr portid_;
+ ::google::protobuf::uint32 pinid_;
+ bool polling_;
+ bool pollexpvalue_;
+ mutable int _cached_size_;
+ friend struct protobuf_StubGPIOReadBitRequest_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// StubGPIOReadBitRequest
+
+// string PortId = 1;
+inline void StubGPIOReadBitRequest::clear_portid() {
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& StubGPIOReadBitRequest::portid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOReadBitRequest.PortId)
+ return portid_.GetNoArena();
+}
+inline void StubGPIOReadBitRequest::set_portid(const ::std::string& value) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOReadBitRequest.PortId)
+}
+#if LANG_CXX11
+inline void StubGPIOReadBitRequest::set_portid(::std::string&& value) {
+
+ portid_.SetNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+ // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Stubs.StubGPIOReadBitRequest.PortId)
+}
+#endif
+inline void StubGPIOReadBitRequest::set_portid(const char* value) {
+ GOOGLE_DCHECK(value != NULL);
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:Tango.PMR.Stubs.StubGPIOReadBitRequest.PortId)
+}
+inline void StubGPIOReadBitRequest::set_portid(const char* value, size_t size) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Stubs.StubGPIOReadBitRequest.PortId)
+}
+inline ::std::string* StubGPIOReadBitRequest::mutable_portid() {
+
+ // @@protoc_insertion_point(field_mutable:Tango.PMR.Stubs.StubGPIOReadBitRequest.PortId)
+ return portid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* StubGPIOReadBitRequest::release_portid() {
+ // @@protoc_insertion_point(field_release:Tango.PMR.Stubs.StubGPIOReadBitRequest.PortId)
+
+ return portid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void StubGPIOReadBitRequest::set_allocated_portid(::std::string* portid) {
+ if (portid != NULL) {
+
+ } else {
+
+ }
+ portid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), portid);
+ // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Stubs.StubGPIOReadBitRequest.PortId)
+}
+
+// uint32 PinId = 2;
+inline void StubGPIOReadBitRequest::clear_pinid() {
+ pinid_ = 0u;
+}
+inline ::google::protobuf::uint32 StubGPIOReadBitRequest::pinid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOReadBitRequest.PinId)
+ return pinid_;
+}
+inline void StubGPIOReadBitRequest::set_pinid(::google::protobuf::uint32 value) {
+
+ pinid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOReadBitRequest.PinId)
+}
+
+// bool Polling = 3;
+inline void StubGPIOReadBitRequest::clear_polling() {
+ polling_ = false;
+}
+inline bool StubGPIOReadBitRequest::polling() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOReadBitRequest.Polling)
+ return polling_;
+}
+inline void StubGPIOReadBitRequest::set_polling(bool value) {
+
+ polling_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOReadBitRequest.Polling)
+}
+
+// bool PollExpValue = 4;
+inline void StubGPIOReadBitRequest::clear_pollexpvalue() {
+ pollexpvalue_ = false;
+}
+inline bool StubGPIOReadBitRequest::pollexpvalue() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOReadBitRequest.PollExpValue)
+ return pollexpvalue_;
+}
+inline void StubGPIOReadBitRequest::set_pollexpvalue(bool value) {
+
+ pollexpvalue_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOReadBitRequest.PollExpValue)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_StubGPIOReadBitRequest_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadBitResponse.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadBitResponse.pb.cc
new file mode 100644
index 000000000..3ea7fdccc
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadBitResponse.pb.cc
@@ -0,0 +1,610 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubGPIOReadBitResponse.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "StubGPIOReadBitResponse.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 Tango {
+namespace PMR {
+namespace Stubs {
+class StubGPIOReadBitResponseDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<StubGPIOReadBitResponse>
+ _instance;
+} _StubGPIOReadBitResponse_default_instance_;
+
+namespace protobuf_StubGPIOReadBitResponse_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOReadBitResponse, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOReadBitResponse, portid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOReadBitResponse, pinid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOReadBitResponse, bitvalue_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOReadBitResponse, status_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(StubGPIOReadBitResponse)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_StubGPIOReadBitResponse_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "StubGPIOReadBitResponse.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _StubGPIOReadBitResponse_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_StubGPIOReadBitResponse_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n\035StubGPIOReadBitResponse.proto\022\017Tango.P"
+ "MR.Stubs\"Z\n\027StubGPIOReadBitResponse\022\016\n\006P"
+ "ortId\030\001 \001(\t\022\r\n\005PinId\030\002 \001(\r\022\020\n\010BitValue\030\003"
+ " \001(\010\022\016\n\006Status\030\004 \001(\rB\033\n\031com.twine.tango."
+ "pmr.stubsb\006proto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 177);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "StubGPIOReadBitResponse.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_StubGPIOReadBitResponse_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StubGPIOReadBitResponse::kPortIdFieldNumber;
+const int StubGPIOReadBitResponse::kPinIdFieldNumber;
+const int StubGPIOReadBitResponse::kBitValueFieldNumber;
+const int StubGPIOReadBitResponse::kStatusFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StubGPIOReadBitResponse::StubGPIOReadBitResponse()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_StubGPIOReadBitResponse_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubGPIOReadBitResponse)
+}
+StubGPIOReadBitResponse::StubGPIOReadBitResponse(const StubGPIOReadBitResponse& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ portid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (from.portid().size() > 0) {
+ portid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.portid_);
+ }
+ ::memcpy(&pinid_, &from.pinid_,
+ static_cast<size_t>(reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&pinid_)) + sizeof(status_));
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubGPIOReadBitResponse)
+}
+
+void StubGPIOReadBitResponse::SharedCtor() {
+ portid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ ::memset(&pinid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&pinid_)) + sizeof(status_));
+ _cached_size_ = 0;
+}
+
+StubGPIOReadBitResponse::~StubGPIOReadBitResponse() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubGPIOReadBitResponse)
+ SharedDtor();
+}
+
+void StubGPIOReadBitResponse::SharedDtor() {
+ portid_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void StubGPIOReadBitResponse::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StubGPIOReadBitResponse::descriptor() {
+ protobuf_StubGPIOReadBitResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubGPIOReadBitResponse_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StubGPIOReadBitResponse& StubGPIOReadBitResponse::default_instance() {
+ protobuf_StubGPIOReadBitResponse_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+StubGPIOReadBitResponse* StubGPIOReadBitResponse::New(::google::protobuf::Arena* arena) const {
+ StubGPIOReadBitResponse* n = new StubGPIOReadBitResponse;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StubGPIOReadBitResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubGPIOReadBitResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ ::memset(&pinid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&pinid_)) + sizeof(status_));
+ _internal_metadata_.Clear();
+}
+
+bool StubGPIOReadBitResponse::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:Tango.PMR.Stubs.StubGPIOReadBitResponse)
+ 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)) {
+ // string PortId = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_portid()));
+ DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::PARSE,
+ "Tango.PMR.Stubs.StubGPIOReadBitResponse.PortId"));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 PinId = 2;
+ case 2: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &pinid_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // bool BitValue = 3;
+ case 3: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &bitvalue_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 Status = 4;
+ case 4: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &status_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubGPIOReadBitResponse)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubGPIOReadBitResponse)
+ return false;
+#undef DO_
+}
+
+void StubGPIOReadBitResponse::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubGPIOReadBitResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+ "Tango.PMR.Stubs.StubGPIOReadBitResponse.PortId");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 1, this->portid(), output);
+ }
+
+ // uint32 PinId = 2;
+ if (this->pinid() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->pinid(), output);
+ }
+
+ // bool BitValue = 3;
+ if (this->bitvalue() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(3, this->bitvalue(), output);
+ }
+
+ // uint32 Status = 4;
+ if (this->status() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(4, this->status(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubGPIOReadBitResponse)
+}
+
+::google::protobuf::uint8* StubGPIOReadBitResponse::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubGPIOReadBitResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+ "Tango.PMR.Stubs.StubGPIOReadBitResponse.PortId");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 1, this->portid(), target);
+ }
+
+ // uint32 PinId = 2;
+ if (this->pinid() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->pinid(), target);
+ }
+
+ // bool BitValue = 3;
+ if (this->bitvalue() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(3, this->bitvalue(), target);
+ }
+
+ // uint32 Status = 4;
+ if (this->status() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(4, this->status(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubGPIOReadBitResponse)
+ return target;
+}
+
+size_t StubGPIOReadBitResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubGPIOReadBitResponse)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->portid());
+ }
+
+ // uint32 PinId = 2;
+ if (this->pinid() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->pinid());
+ }
+
+ // bool BitValue = 3;
+ if (this->bitvalue() != 0) {
+ total_size += 1 + 1;
+ }
+
+ // uint32 Status = 4;
+ if (this->status() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->status());
+ }
+
+ 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 StubGPIOReadBitResponse::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubGPIOReadBitResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ const StubGPIOReadBitResponse* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StubGPIOReadBitResponse>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubGPIOReadBitResponse)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubGPIOReadBitResponse)
+ MergeFrom(*source);
+ }
+}
+
+void StubGPIOReadBitResponse::MergeFrom(const StubGPIOReadBitResponse& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubGPIOReadBitResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.portid().size() > 0) {
+
+ portid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.portid_);
+ }
+ if (from.pinid() != 0) {
+ set_pinid(from.pinid());
+ }
+ if (from.bitvalue() != 0) {
+ set_bitvalue(from.bitvalue());
+ }
+ if (from.status() != 0) {
+ set_status(from.status());
+ }
+}
+
+void StubGPIOReadBitResponse::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubGPIOReadBitResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StubGPIOReadBitResponse::CopyFrom(const StubGPIOReadBitResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubGPIOReadBitResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StubGPIOReadBitResponse::IsInitialized() const {
+ return true;
+}
+
+void StubGPIOReadBitResponse::Swap(StubGPIOReadBitResponse* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StubGPIOReadBitResponse::InternalSwap(StubGPIOReadBitResponse* other) {
+ using std::swap;
+ portid_.Swap(&other->portid_);
+ swap(pinid_, other->pinid_);
+ swap(bitvalue_, other->bitvalue_);
+ swap(status_, other->status_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StubGPIOReadBitResponse::GetMetadata() const {
+ protobuf_StubGPIOReadBitResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubGPIOReadBitResponse_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StubGPIOReadBitResponse
+
+// string PortId = 1;
+void StubGPIOReadBitResponse::clear_portid() {
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+const ::std::string& StubGPIOReadBitResponse::portid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOReadBitResponse.PortId)
+ return portid_.GetNoArena();
+}
+void StubGPIOReadBitResponse::set_portid(const ::std::string& value) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOReadBitResponse.PortId)
+}
+#if LANG_CXX11
+void StubGPIOReadBitResponse::set_portid(::std::string&& value) {
+
+ portid_.SetNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+ // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Stubs.StubGPIOReadBitResponse.PortId)
+}
+#endif
+void StubGPIOReadBitResponse::set_portid(const char* value) {
+ GOOGLE_DCHECK(value != NULL);
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:Tango.PMR.Stubs.StubGPIOReadBitResponse.PortId)
+}
+void StubGPIOReadBitResponse::set_portid(const char* value, size_t size) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Stubs.StubGPIOReadBitResponse.PortId)
+}
+::std::string* StubGPIOReadBitResponse::mutable_portid() {
+
+ // @@protoc_insertion_point(field_mutable:Tango.PMR.Stubs.StubGPIOReadBitResponse.PortId)
+ return portid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* StubGPIOReadBitResponse::release_portid() {
+ // @@protoc_insertion_point(field_release:Tango.PMR.Stubs.StubGPIOReadBitResponse.PortId)
+
+ return portid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void StubGPIOReadBitResponse::set_allocated_portid(::std::string* portid) {
+ if (portid != NULL) {
+
+ } else {
+
+ }
+ portid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), portid);
+ // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Stubs.StubGPIOReadBitResponse.PortId)
+}
+
+// uint32 PinId = 2;
+void StubGPIOReadBitResponse::clear_pinid() {
+ pinid_ = 0u;
+}
+::google::protobuf::uint32 StubGPIOReadBitResponse::pinid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOReadBitResponse.PinId)
+ return pinid_;
+}
+void StubGPIOReadBitResponse::set_pinid(::google::protobuf::uint32 value) {
+
+ pinid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOReadBitResponse.PinId)
+}
+
+// bool BitValue = 3;
+void StubGPIOReadBitResponse::clear_bitvalue() {
+ bitvalue_ = false;
+}
+bool StubGPIOReadBitResponse::bitvalue() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOReadBitResponse.BitValue)
+ return bitvalue_;
+}
+void StubGPIOReadBitResponse::set_bitvalue(bool value) {
+
+ bitvalue_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOReadBitResponse.BitValue)
+}
+
+// uint32 Status = 4;
+void StubGPIOReadBitResponse::clear_status() {
+ status_ = 0u;
+}
+::google::protobuf::uint32 StubGPIOReadBitResponse::status() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOReadBitResponse.Status)
+ return status_;
+}
+void StubGPIOReadBitResponse::set_status(::google::protobuf::uint32 value) {
+
+ status_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOReadBitResponse.Status)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadBitResponse.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadBitResponse.pb.h
new file mode 100644
index 000000000..138016756
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadBitResponse.pb.h
@@ -0,0 +1,309 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubGPIOReadBitResponse.proto
+
+#ifndef PROTOBUF_StubGPIOReadBitResponse_2eproto__INCLUDED
+#define PROTOBUF_StubGPIOReadBitResponse_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+class StubGPIOReadBitResponse;
+class StubGPIOReadBitResponseDefaultTypeInternal;
+extern StubGPIOReadBitResponseDefaultTypeInternal _StubGPIOReadBitResponse_default_instance_;
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+
+namespace protobuf_StubGPIOReadBitResponse_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_StubGPIOReadBitResponse_2eproto
+
+// ===================================================================
+
+class StubGPIOReadBitResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Stubs.StubGPIOReadBitResponse) */ {
+ public:
+ StubGPIOReadBitResponse();
+ virtual ~StubGPIOReadBitResponse();
+
+ StubGPIOReadBitResponse(const StubGPIOReadBitResponse& from);
+
+ inline StubGPIOReadBitResponse& operator=(const StubGPIOReadBitResponse& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ StubGPIOReadBitResponse(StubGPIOReadBitResponse&& from) noexcept
+ : StubGPIOReadBitResponse() {
+ *this = ::std::move(from);
+ }
+
+ inline StubGPIOReadBitResponse& operator=(StubGPIOReadBitResponse&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StubGPIOReadBitResponse& default_instance();
+
+ static inline const StubGPIOReadBitResponse* internal_default_instance() {
+ return reinterpret_cast<const StubGPIOReadBitResponse*>(
+ &_StubGPIOReadBitResponse_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(StubGPIOReadBitResponse* other);
+ friend void swap(StubGPIOReadBitResponse& a, StubGPIOReadBitResponse& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline StubGPIOReadBitResponse* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ StubGPIOReadBitResponse* 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 StubGPIOReadBitResponse& from);
+ void MergeFrom(const StubGPIOReadBitResponse& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(StubGPIOReadBitResponse* 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 -------------------------------------------------------
+
+ // string PortId = 1;
+ void clear_portid();
+ static const int kPortIdFieldNumber = 1;
+ const ::std::string& portid() const;
+ void set_portid(const ::std::string& value);
+ #if LANG_CXX11
+ void set_portid(::std::string&& value);
+ #endif
+ void set_portid(const char* value);
+ void set_portid(const char* value, size_t size);
+ ::std::string* mutable_portid();
+ ::std::string* release_portid();
+ void set_allocated_portid(::std::string* portid);
+
+ // uint32 PinId = 2;
+ void clear_pinid();
+ static const int kPinIdFieldNumber = 2;
+ ::google::protobuf::uint32 pinid() const;
+ void set_pinid(::google::protobuf::uint32 value);
+
+ // bool BitValue = 3;
+ void clear_bitvalue();
+ static const int kBitValueFieldNumber = 3;
+ bool bitvalue() const;
+ void set_bitvalue(bool value);
+
+ // uint32 Status = 4;
+ void clear_status();
+ static const int kStatusFieldNumber = 4;
+ ::google::protobuf::uint32 status() const;
+ void set_status(::google::protobuf::uint32 value);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.StubGPIOReadBitResponse)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::internal::ArenaStringPtr portid_;
+ ::google::protobuf::uint32 pinid_;
+ bool bitvalue_;
+ ::google::protobuf::uint32 status_;
+ mutable int _cached_size_;
+ friend struct protobuf_StubGPIOReadBitResponse_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// StubGPIOReadBitResponse
+
+// string PortId = 1;
+inline void StubGPIOReadBitResponse::clear_portid() {
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& StubGPIOReadBitResponse::portid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOReadBitResponse.PortId)
+ return portid_.GetNoArena();
+}
+inline void StubGPIOReadBitResponse::set_portid(const ::std::string& value) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOReadBitResponse.PortId)
+}
+#if LANG_CXX11
+inline void StubGPIOReadBitResponse::set_portid(::std::string&& value) {
+
+ portid_.SetNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+ // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Stubs.StubGPIOReadBitResponse.PortId)
+}
+#endif
+inline void StubGPIOReadBitResponse::set_portid(const char* value) {
+ GOOGLE_DCHECK(value != NULL);
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:Tango.PMR.Stubs.StubGPIOReadBitResponse.PortId)
+}
+inline void StubGPIOReadBitResponse::set_portid(const char* value, size_t size) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Stubs.StubGPIOReadBitResponse.PortId)
+}
+inline ::std::string* StubGPIOReadBitResponse::mutable_portid() {
+
+ // @@protoc_insertion_point(field_mutable:Tango.PMR.Stubs.StubGPIOReadBitResponse.PortId)
+ return portid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* StubGPIOReadBitResponse::release_portid() {
+ // @@protoc_insertion_point(field_release:Tango.PMR.Stubs.StubGPIOReadBitResponse.PortId)
+
+ return portid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void StubGPIOReadBitResponse::set_allocated_portid(::std::string* portid) {
+ if (portid != NULL) {
+
+ } else {
+
+ }
+ portid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), portid);
+ // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Stubs.StubGPIOReadBitResponse.PortId)
+}
+
+// uint32 PinId = 2;
+inline void StubGPIOReadBitResponse::clear_pinid() {
+ pinid_ = 0u;
+}
+inline ::google::protobuf::uint32 StubGPIOReadBitResponse::pinid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOReadBitResponse.PinId)
+ return pinid_;
+}
+inline void StubGPIOReadBitResponse::set_pinid(::google::protobuf::uint32 value) {
+
+ pinid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOReadBitResponse.PinId)
+}
+
+// bool BitValue = 3;
+inline void StubGPIOReadBitResponse::clear_bitvalue() {
+ bitvalue_ = false;
+}
+inline bool StubGPIOReadBitResponse::bitvalue() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOReadBitResponse.BitValue)
+ return bitvalue_;
+}
+inline void StubGPIOReadBitResponse::set_bitvalue(bool value) {
+
+ bitvalue_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOReadBitResponse.BitValue)
+}
+
+// uint32 Status = 4;
+inline void StubGPIOReadBitResponse::clear_status() {
+ status_ = 0u;
+}
+inline ::google::protobuf::uint32 StubGPIOReadBitResponse::status() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOReadBitResponse.Status)
+ return status_;
+}
+inline void StubGPIOReadBitResponse::set_status(::google::protobuf::uint32 value) {
+
+ status_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOReadBitResponse.Status)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_StubGPIOReadBitResponse_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadByteRequest.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadByteRequest.pb.cc
new file mode 100644
index 000000000..c1fe11638
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadByteRequest.pb.cc
@@ -0,0 +1,449 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubGPIOReadByteRequest.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "StubGPIOReadByteRequest.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 Tango {
+namespace PMR {
+namespace Stubs {
+class StubGPIOReadByteRequestDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<StubGPIOReadByteRequest>
+ _instance;
+} _StubGPIOReadByteRequest_default_instance_;
+
+namespace protobuf_StubGPIOReadByteRequest_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOReadByteRequest, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOReadByteRequest, portid_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(StubGPIOReadByteRequest)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_StubGPIOReadByteRequest_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "StubGPIOReadByteRequest.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _StubGPIOReadByteRequest_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_StubGPIOReadByteRequest_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n\035StubGPIOReadByteRequest.proto\022\017Tango.P"
+ "MR.Stubs\")\n\027StubGPIOReadByteRequest\022\016\n\006P"
+ "ortId\030\001 \001(\tB\033\n\031com.twine.tango.pmr.stubs"
+ "b\006proto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 128);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "StubGPIOReadByteRequest.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_StubGPIOReadByteRequest_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StubGPIOReadByteRequest::kPortIdFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StubGPIOReadByteRequest::StubGPIOReadByteRequest()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_StubGPIOReadByteRequest_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubGPIOReadByteRequest)
+}
+StubGPIOReadByteRequest::StubGPIOReadByteRequest(const StubGPIOReadByteRequest& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ portid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (from.portid().size() > 0) {
+ portid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.portid_);
+ }
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubGPIOReadByteRequest)
+}
+
+void StubGPIOReadByteRequest::SharedCtor() {
+ portid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ _cached_size_ = 0;
+}
+
+StubGPIOReadByteRequest::~StubGPIOReadByteRequest() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubGPIOReadByteRequest)
+ SharedDtor();
+}
+
+void StubGPIOReadByteRequest::SharedDtor() {
+ portid_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void StubGPIOReadByteRequest::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StubGPIOReadByteRequest::descriptor() {
+ protobuf_StubGPIOReadByteRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubGPIOReadByteRequest_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StubGPIOReadByteRequest& StubGPIOReadByteRequest::default_instance() {
+ protobuf_StubGPIOReadByteRequest_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+StubGPIOReadByteRequest* StubGPIOReadByteRequest::New(::google::protobuf::Arena* arena) const {
+ StubGPIOReadByteRequest* n = new StubGPIOReadByteRequest;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StubGPIOReadByteRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubGPIOReadByteRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ _internal_metadata_.Clear();
+}
+
+bool StubGPIOReadByteRequest::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:Tango.PMR.Stubs.StubGPIOReadByteRequest)
+ 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)) {
+ // string PortId = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_portid()));
+ DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::PARSE,
+ "Tango.PMR.Stubs.StubGPIOReadByteRequest.PortId"));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubGPIOReadByteRequest)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubGPIOReadByteRequest)
+ return false;
+#undef DO_
+}
+
+void StubGPIOReadByteRequest::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubGPIOReadByteRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+ "Tango.PMR.Stubs.StubGPIOReadByteRequest.PortId");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 1, this->portid(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubGPIOReadByteRequest)
+}
+
+::google::protobuf::uint8* StubGPIOReadByteRequest::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubGPIOReadByteRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+ "Tango.PMR.Stubs.StubGPIOReadByteRequest.PortId");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 1, this->portid(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubGPIOReadByteRequest)
+ return target;
+}
+
+size_t StubGPIOReadByteRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubGPIOReadByteRequest)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->portid());
+ }
+
+ 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 StubGPIOReadByteRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubGPIOReadByteRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ const StubGPIOReadByteRequest* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StubGPIOReadByteRequest>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubGPIOReadByteRequest)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubGPIOReadByteRequest)
+ MergeFrom(*source);
+ }
+}
+
+void StubGPIOReadByteRequest::MergeFrom(const StubGPIOReadByteRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubGPIOReadByteRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.portid().size() > 0) {
+
+ portid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.portid_);
+ }
+}
+
+void StubGPIOReadByteRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubGPIOReadByteRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StubGPIOReadByteRequest::CopyFrom(const StubGPIOReadByteRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubGPIOReadByteRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StubGPIOReadByteRequest::IsInitialized() const {
+ return true;
+}
+
+void StubGPIOReadByteRequest::Swap(StubGPIOReadByteRequest* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StubGPIOReadByteRequest::InternalSwap(StubGPIOReadByteRequest* other) {
+ using std::swap;
+ portid_.Swap(&other->portid_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StubGPIOReadByteRequest::GetMetadata() const {
+ protobuf_StubGPIOReadByteRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubGPIOReadByteRequest_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StubGPIOReadByteRequest
+
+// string PortId = 1;
+void StubGPIOReadByteRequest::clear_portid() {
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+const ::std::string& StubGPIOReadByteRequest::portid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOReadByteRequest.PortId)
+ return portid_.GetNoArena();
+}
+void StubGPIOReadByteRequest::set_portid(const ::std::string& value) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOReadByteRequest.PortId)
+}
+#if LANG_CXX11
+void StubGPIOReadByteRequest::set_portid(::std::string&& value) {
+
+ portid_.SetNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+ // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Stubs.StubGPIOReadByteRequest.PortId)
+}
+#endif
+void StubGPIOReadByteRequest::set_portid(const char* value) {
+ GOOGLE_DCHECK(value != NULL);
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:Tango.PMR.Stubs.StubGPIOReadByteRequest.PortId)
+}
+void StubGPIOReadByteRequest::set_portid(const char* value, size_t size) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Stubs.StubGPIOReadByteRequest.PortId)
+}
+::std::string* StubGPIOReadByteRequest::mutable_portid() {
+
+ // @@protoc_insertion_point(field_mutable:Tango.PMR.Stubs.StubGPIOReadByteRequest.PortId)
+ return portid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* StubGPIOReadByteRequest::release_portid() {
+ // @@protoc_insertion_point(field_release:Tango.PMR.Stubs.StubGPIOReadByteRequest.PortId)
+
+ return portid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void StubGPIOReadByteRequest::set_allocated_portid(::std::string* portid) {
+ if (portid != NULL) {
+
+ } else {
+
+ }
+ portid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), portid);
+ // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Stubs.StubGPIOReadByteRequest.PortId)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadByteRequest.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadByteRequest.pb.h
new file mode 100644
index 000000000..d9eb017f1
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadByteRequest.pb.h
@@ -0,0 +1,246 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubGPIOReadByteRequest.proto
+
+#ifndef PROTOBUF_StubGPIOReadByteRequest_2eproto__INCLUDED
+#define PROTOBUF_StubGPIOReadByteRequest_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+class StubGPIOReadByteRequest;
+class StubGPIOReadByteRequestDefaultTypeInternal;
+extern StubGPIOReadByteRequestDefaultTypeInternal _StubGPIOReadByteRequest_default_instance_;
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+
+namespace protobuf_StubGPIOReadByteRequest_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_StubGPIOReadByteRequest_2eproto
+
+// ===================================================================
+
+class StubGPIOReadByteRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Stubs.StubGPIOReadByteRequest) */ {
+ public:
+ StubGPIOReadByteRequest();
+ virtual ~StubGPIOReadByteRequest();
+
+ StubGPIOReadByteRequest(const StubGPIOReadByteRequest& from);
+
+ inline StubGPIOReadByteRequest& operator=(const StubGPIOReadByteRequest& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ StubGPIOReadByteRequest(StubGPIOReadByteRequest&& from) noexcept
+ : StubGPIOReadByteRequest() {
+ *this = ::std::move(from);
+ }
+
+ inline StubGPIOReadByteRequest& operator=(StubGPIOReadByteRequest&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StubGPIOReadByteRequest& default_instance();
+
+ static inline const StubGPIOReadByteRequest* internal_default_instance() {
+ return reinterpret_cast<const StubGPIOReadByteRequest*>(
+ &_StubGPIOReadByteRequest_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(StubGPIOReadByteRequest* other);
+ friend void swap(StubGPIOReadByteRequest& a, StubGPIOReadByteRequest& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline StubGPIOReadByteRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ StubGPIOReadByteRequest* 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 StubGPIOReadByteRequest& from);
+ void MergeFrom(const StubGPIOReadByteRequest& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(StubGPIOReadByteRequest* 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 -------------------------------------------------------
+
+ // string PortId = 1;
+ void clear_portid();
+ static const int kPortIdFieldNumber = 1;
+ const ::std::string& portid() const;
+ void set_portid(const ::std::string& value);
+ #if LANG_CXX11
+ void set_portid(::std::string&& value);
+ #endif
+ void set_portid(const char* value);
+ void set_portid(const char* value, size_t size);
+ ::std::string* mutable_portid();
+ ::std::string* release_portid();
+ void set_allocated_portid(::std::string* portid);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.StubGPIOReadByteRequest)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::internal::ArenaStringPtr portid_;
+ mutable int _cached_size_;
+ friend struct protobuf_StubGPIOReadByteRequest_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// StubGPIOReadByteRequest
+
+// string PortId = 1;
+inline void StubGPIOReadByteRequest::clear_portid() {
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& StubGPIOReadByteRequest::portid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOReadByteRequest.PortId)
+ return portid_.GetNoArena();
+}
+inline void StubGPIOReadByteRequest::set_portid(const ::std::string& value) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOReadByteRequest.PortId)
+}
+#if LANG_CXX11
+inline void StubGPIOReadByteRequest::set_portid(::std::string&& value) {
+
+ portid_.SetNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+ // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Stubs.StubGPIOReadByteRequest.PortId)
+}
+#endif
+inline void StubGPIOReadByteRequest::set_portid(const char* value) {
+ GOOGLE_DCHECK(value != NULL);
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:Tango.PMR.Stubs.StubGPIOReadByteRequest.PortId)
+}
+inline void StubGPIOReadByteRequest::set_portid(const char* value, size_t size) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Stubs.StubGPIOReadByteRequest.PortId)
+}
+inline ::std::string* StubGPIOReadByteRequest::mutable_portid() {
+
+ // @@protoc_insertion_point(field_mutable:Tango.PMR.Stubs.StubGPIOReadByteRequest.PortId)
+ return portid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* StubGPIOReadByteRequest::release_portid() {
+ // @@protoc_insertion_point(field_release:Tango.PMR.Stubs.StubGPIOReadByteRequest.PortId)
+
+ return portid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void StubGPIOReadByteRequest::set_allocated_portid(::std::string* portid) {
+ if (portid != NULL) {
+
+ } else {
+
+ }
+ portid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), portid);
+ // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Stubs.StubGPIOReadByteRequest.PortId)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_StubGPIOReadByteRequest_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadByteResponse.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadByteResponse.pb.cc
new file mode 100644
index 000000000..5f22fffb7
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadByteResponse.pb.cc
@@ -0,0 +1,561 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubGPIOReadByteResponse.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "StubGPIOReadByteResponse.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 Tango {
+namespace PMR {
+namespace Stubs {
+class StubGPIOReadByteResponseDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<StubGPIOReadByteResponse>
+ _instance;
+} _StubGPIOReadByteResponse_default_instance_;
+
+namespace protobuf_StubGPIOReadByteResponse_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOReadByteResponse, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOReadByteResponse, portid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOReadByteResponse, bytevalue_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOReadByteResponse, status_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(StubGPIOReadByteResponse)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_StubGPIOReadByteResponse_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "StubGPIOReadByteResponse.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _StubGPIOReadByteResponse_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_StubGPIOReadByteResponse_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n\036StubGPIOReadByteResponse.proto\022\017Tango."
+ "PMR.Stubs\"M\n\030StubGPIOReadByteResponse\022\016\n"
+ "\006PortId\030\001 \001(\t\022\021\n\tByteValue\030\002 \001(\r\022\016\n\006stat"
+ "us\030\003 \001(\rB\033\n\031com.twine.tango.pmr.stubsb\006p"
+ "roto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 165);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "StubGPIOReadByteResponse.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_StubGPIOReadByteResponse_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StubGPIOReadByteResponse::kPortIdFieldNumber;
+const int StubGPIOReadByteResponse::kByteValueFieldNumber;
+const int StubGPIOReadByteResponse::kStatusFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StubGPIOReadByteResponse::StubGPIOReadByteResponse()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_StubGPIOReadByteResponse_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubGPIOReadByteResponse)
+}
+StubGPIOReadByteResponse::StubGPIOReadByteResponse(const StubGPIOReadByteResponse& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ portid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (from.portid().size() > 0) {
+ portid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.portid_);
+ }
+ ::memcpy(&bytevalue_, &from.bytevalue_,
+ static_cast<size_t>(reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&bytevalue_)) + sizeof(status_));
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubGPIOReadByteResponse)
+}
+
+void StubGPIOReadByteResponse::SharedCtor() {
+ portid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ ::memset(&bytevalue_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&bytevalue_)) + sizeof(status_));
+ _cached_size_ = 0;
+}
+
+StubGPIOReadByteResponse::~StubGPIOReadByteResponse() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubGPIOReadByteResponse)
+ SharedDtor();
+}
+
+void StubGPIOReadByteResponse::SharedDtor() {
+ portid_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void StubGPIOReadByteResponse::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StubGPIOReadByteResponse::descriptor() {
+ protobuf_StubGPIOReadByteResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubGPIOReadByteResponse_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StubGPIOReadByteResponse& StubGPIOReadByteResponse::default_instance() {
+ protobuf_StubGPIOReadByteResponse_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+StubGPIOReadByteResponse* StubGPIOReadByteResponse::New(::google::protobuf::Arena* arena) const {
+ StubGPIOReadByteResponse* n = new StubGPIOReadByteResponse;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StubGPIOReadByteResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubGPIOReadByteResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ ::memset(&bytevalue_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&bytevalue_)) + sizeof(status_));
+ _internal_metadata_.Clear();
+}
+
+bool StubGPIOReadByteResponse::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:Tango.PMR.Stubs.StubGPIOReadByteResponse)
+ 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)) {
+ // string PortId = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_portid()));
+ DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::PARSE,
+ "Tango.PMR.Stubs.StubGPIOReadByteResponse.PortId"));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 ByteValue = 2;
+ case 2: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &bytevalue_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 status = 3;
+ case 3: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &status_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubGPIOReadByteResponse)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubGPIOReadByteResponse)
+ return false;
+#undef DO_
+}
+
+void StubGPIOReadByteResponse::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubGPIOReadByteResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+ "Tango.PMR.Stubs.StubGPIOReadByteResponse.PortId");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 1, this->portid(), output);
+ }
+
+ // uint32 ByteValue = 2;
+ if (this->bytevalue() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->bytevalue(), output);
+ }
+
+ // uint32 status = 3;
+ if (this->status() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(3, this->status(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubGPIOReadByteResponse)
+}
+
+::google::protobuf::uint8* StubGPIOReadByteResponse::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubGPIOReadByteResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+ "Tango.PMR.Stubs.StubGPIOReadByteResponse.PortId");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 1, this->portid(), target);
+ }
+
+ // uint32 ByteValue = 2;
+ if (this->bytevalue() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->bytevalue(), target);
+ }
+
+ // uint32 status = 3;
+ if (this->status() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(3, this->status(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubGPIOReadByteResponse)
+ return target;
+}
+
+size_t StubGPIOReadByteResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubGPIOReadByteResponse)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->portid());
+ }
+
+ // uint32 ByteValue = 2;
+ if (this->bytevalue() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->bytevalue());
+ }
+
+ // uint32 status = 3;
+ if (this->status() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->status());
+ }
+
+ 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 StubGPIOReadByteResponse::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubGPIOReadByteResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ const StubGPIOReadByteResponse* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StubGPIOReadByteResponse>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubGPIOReadByteResponse)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubGPIOReadByteResponse)
+ MergeFrom(*source);
+ }
+}
+
+void StubGPIOReadByteResponse::MergeFrom(const StubGPIOReadByteResponse& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubGPIOReadByteResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.portid().size() > 0) {
+
+ portid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.portid_);
+ }
+ if (from.bytevalue() != 0) {
+ set_bytevalue(from.bytevalue());
+ }
+ if (from.status() != 0) {
+ set_status(from.status());
+ }
+}
+
+void StubGPIOReadByteResponse::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubGPIOReadByteResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StubGPIOReadByteResponse::CopyFrom(const StubGPIOReadByteResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubGPIOReadByteResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StubGPIOReadByteResponse::IsInitialized() const {
+ return true;
+}
+
+void StubGPIOReadByteResponse::Swap(StubGPIOReadByteResponse* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StubGPIOReadByteResponse::InternalSwap(StubGPIOReadByteResponse* other) {
+ using std::swap;
+ portid_.Swap(&other->portid_);
+ swap(bytevalue_, other->bytevalue_);
+ swap(status_, other->status_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StubGPIOReadByteResponse::GetMetadata() const {
+ protobuf_StubGPIOReadByteResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubGPIOReadByteResponse_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StubGPIOReadByteResponse
+
+// string PortId = 1;
+void StubGPIOReadByteResponse::clear_portid() {
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+const ::std::string& StubGPIOReadByteResponse::portid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOReadByteResponse.PortId)
+ return portid_.GetNoArena();
+}
+void StubGPIOReadByteResponse::set_portid(const ::std::string& value) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOReadByteResponse.PortId)
+}
+#if LANG_CXX11
+void StubGPIOReadByteResponse::set_portid(::std::string&& value) {
+
+ portid_.SetNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+ // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Stubs.StubGPIOReadByteResponse.PortId)
+}
+#endif
+void StubGPIOReadByteResponse::set_portid(const char* value) {
+ GOOGLE_DCHECK(value != NULL);
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:Tango.PMR.Stubs.StubGPIOReadByteResponse.PortId)
+}
+void StubGPIOReadByteResponse::set_portid(const char* value, size_t size) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Stubs.StubGPIOReadByteResponse.PortId)
+}
+::std::string* StubGPIOReadByteResponse::mutable_portid() {
+
+ // @@protoc_insertion_point(field_mutable:Tango.PMR.Stubs.StubGPIOReadByteResponse.PortId)
+ return portid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* StubGPIOReadByteResponse::release_portid() {
+ // @@protoc_insertion_point(field_release:Tango.PMR.Stubs.StubGPIOReadByteResponse.PortId)
+
+ return portid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void StubGPIOReadByteResponse::set_allocated_portid(::std::string* portid) {
+ if (portid != NULL) {
+
+ } else {
+
+ }
+ portid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), portid);
+ // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Stubs.StubGPIOReadByteResponse.PortId)
+}
+
+// uint32 ByteValue = 2;
+void StubGPIOReadByteResponse::clear_bytevalue() {
+ bytevalue_ = 0u;
+}
+::google::protobuf::uint32 StubGPIOReadByteResponse::bytevalue() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOReadByteResponse.ByteValue)
+ return bytevalue_;
+}
+void StubGPIOReadByteResponse::set_bytevalue(::google::protobuf::uint32 value) {
+
+ bytevalue_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOReadByteResponse.ByteValue)
+}
+
+// uint32 status = 3;
+void StubGPIOReadByteResponse::clear_status() {
+ status_ = 0u;
+}
+::google::protobuf::uint32 StubGPIOReadByteResponse::status() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOReadByteResponse.status)
+ return status_;
+}
+void StubGPIOReadByteResponse::set_status(::google::protobuf::uint32 value) {
+
+ status_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOReadByteResponse.status)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadByteResponse.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadByteResponse.pb.h
new file mode 100644
index 000000000..1cca751be
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOReadByteResponse.pb.h
@@ -0,0 +1,288 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubGPIOReadByteResponse.proto
+
+#ifndef PROTOBUF_StubGPIOReadByteResponse_2eproto__INCLUDED
+#define PROTOBUF_StubGPIOReadByteResponse_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+class StubGPIOReadByteResponse;
+class StubGPIOReadByteResponseDefaultTypeInternal;
+extern StubGPIOReadByteResponseDefaultTypeInternal _StubGPIOReadByteResponse_default_instance_;
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+
+namespace protobuf_StubGPIOReadByteResponse_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_StubGPIOReadByteResponse_2eproto
+
+// ===================================================================
+
+class StubGPIOReadByteResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Stubs.StubGPIOReadByteResponse) */ {
+ public:
+ StubGPIOReadByteResponse();
+ virtual ~StubGPIOReadByteResponse();
+
+ StubGPIOReadByteResponse(const StubGPIOReadByteResponse& from);
+
+ inline StubGPIOReadByteResponse& operator=(const StubGPIOReadByteResponse& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ StubGPIOReadByteResponse(StubGPIOReadByteResponse&& from) noexcept
+ : StubGPIOReadByteResponse() {
+ *this = ::std::move(from);
+ }
+
+ inline StubGPIOReadByteResponse& operator=(StubGPIOReadByteResponse&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StubGPIOReadByteResponse& default_instance();
+
+ static inline const StubGPIOReadByteResponse* internal_default_instance() {
+ return reinterpret_cast<const StubGPIOReadByteResponse*>(
+ &_StubGPIOReadByteResponse_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(StubGPIOReadByteResponse* other);
+ friend void swap(StubGPIOReadByteResponse& a, StubGPIOReadByteResponse& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline StubGPIOReadByteResponse* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ StubGPIOReadByteResponse* 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 StubGPIOReadByteResponse& from);
+ void MergeFrom(const StubGPIOReadByteResponse& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(StubGPIOReadByteResponse* 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 -------------------------------------------------------
+
+ // string PortId = 1;
+ void clear_portid();
+ static const int kPortIdFieldNumber = 1;
+ const ::std::string& portid() const;
+ void set_portid(const ::std::string& value);
+ #if LANG_CXX11
+ void set_portid(::std::string&& value);
+ #endif
+ void set_portid(const char* value);
+ void set_portid(const char* value, size_t size);
+ ::std::string* mutable_portid();
+ ::std::string* release_portid();
+ void set_allocated_portid(::std::string* portid);
+
+ // uint32 ByteValue = 2;
+ void clear_bytevalue();
+ static const int kByteValueFieldNumber = 2;
+ ::google::protobuf::uint32 bytevalue() const;
+ void set_bytevalue(::google::protobuf::uint32 value);
+
+ // uint32 status = 3;
+ void clear_status();
+ static const int kStatusFieldNumber = 3;
+ ::google::protobuf::uint32 status() const;
+ void set_status(::google::protobuf::uint32 value);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.StubGPIOReadByteResponse)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::internal::ArenaStringPtr portid_;
+ ::google::protobuf::uint32 bytevalue_;
+ ::google::protobuf::uint32 status_;
+ mutable int _cached_size_;
+ friend struct protobuf_StubGPIOReadByteResponse_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// StubGPIOReadByteResponse
+
+// string PortId = 1;
+inline void StubGPIOReadByteResponse::clear_portid() {
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& StubGPIOReadByteResponse::portid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOReadByteResponse.PortId)
+ return portid_.GetNoArena();
+}
+inline void StubGPIOReadByteResponse::set_portid(const ::std::string& value) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOReadByteResponse.PortId)
+}
+#if LANG_CXX11
+inline void StubGPIOReadByteResponse::set_portid(::std::string&& value) {
+
+ portid_.SetNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+ // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Stubs.StubGPIOReadByteResponse.PortId)
+}
+#endif
+inline void StubGPIOReadByteResponse::set_portid(const char* value) {
+ GOOGLE_DCHECK(value != NULL);
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:Tango.PMR.Stubs.StubGPIOReadByteResponse.PortId)
+}
+inline void StubGPIOReadByteResponse::set_portid(const char* value, size_t size) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Stubs.StubGPIOReadByteResponse.PortId)
+}
+inline ::std::string* StubGPIOReadByteResponse::mutable_portid() {
+
+ // @@protoc_insertion_point(field_mutable:Tango.PMR.Stubs.StubGPIOReadByteResponse.PortId)
+ return portid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* StubGPIOReadByteResponse::release_portid() {
+ // @@protoc_insertion_point(field_release:Tango.PMR.Stubs.StubGPIOReadByteResponse.PortId)
+
+ return portid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void StubGPIOReadByteResponse::set_allocated_portid(::std::string* portid) {
+ if (portid != NULL) {
+
+ } else {
+
+ }
+ portid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), portid);
+ // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Stubs.StubGPIOReadByteResponse.PortId)
+}
+
+// uint32 ByteValue = 2;
+inline void StubGPIOReadByteResponse::clear_bytevalue() {
+ bytevalue_ = 0u;
+}
+inline ::google::protobuf::uint32 StubGPIOReadByteResponse::bytevalue() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOReadByteResponse.ByteValue)
+ return bytevalue_;
+}
+inline void StubGPIOReadByteResponse::set_bytevalue(::google::protobuf::uint32 value) {
+
+ bytevalue_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOReadByteResponse.ByteValue)
+}
+
+// uint32 status = 3;
+inline void StubGPIOReadByteResponse::clear_status() {
+ status_ = 0u;
+}
+inline ::google::protobuf::uint32 StubGPIOReadByteResponse::status() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOReadByteResponse.status)
+ return status_;
+}
+inline void StubGPIOReadByteResponse::set_status(::google::protobuf::uint32 value) {
+
+ status_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOReadByteResponse.status)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_StubGPIOReadByteResponse_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteBitRequest.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteBitRequest.pb.cc
new file mode 100644
index 000000000..8334aab07
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteBitRequest.pb.cc
@@ -0,0 +1,559 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubGPIOWriteBitRequest.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "StubGPIOWriteBitRequest.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 Tango {
+namespace PMR {
+namespace Stubs {
+class StubGPIOWriteBitRequestDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<StubGPIOWriteBitRequest>
+ _instance;
+} _StubGPIOWriteBitRequest_default_instance_;
+
+namespace protobuf_StubGPIOWriteBitRequest_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOWriteBitRequest, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOWriteBitRequest, portid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOWriteBitRequest, pinid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOWriteBitRequest, bittowrite_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(StubGPIOWriteBitRequest)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_StubGPIOWriteBitRequest_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "StubGPIOWriteBitRequest.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _StubGPIOWriteBitRequest_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_StubGPIOWriteBitRequest_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n\035StubGPIOWriteBitRequest.proto\022\017Tango.P"
+ "MR.Stubs\"L\n\027StubGPIOWriteBitRequest\022\016\n\006P"
+ "ortId\030\001 \001(\t\022\r\n\005PinId\030\002 \001(\r\022\022\n\nBitToWrite"
+ "\030\003 \001(\010B\033\n\031com.twine.tango.pmr.stubsb\006pro"
+ "to3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 163);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "StubGPIOWriteBitRequest.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_StubGPIOWriteBitRequest_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StubGPIOWriteBitRequest::kPortIdFieldNumber;
+const int StubGPIOWriteBitRequest::kPinIdFieldNumber;
+const int StubGPIOWriteBitRequest::kBitToWriteFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StubGPIOWriteBitRequest::StubGPIOWriteBitRequest()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_StubGPIOWriteBitRequest_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubGPIOWriteBitRequest)
+}
+StubGPIOWriteBitRequest::StubGPIOWriteBitRequest(const StubGPIOWriteBitRequest& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ portid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (from.portid().size() > 0) {
+ portid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.portid_);
+ }
+ ::memcpy(&pinid_, &from.pinid_,
+ static_cast<size_t>(reinterpret_cast<char*>(&bittowrite_) -
+ reinterpret_cast<char*>(&pinid_)) + sizeof(bittowrite_));
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubGPIOWriteBitRequest)
+}
+
+void StubGPIOWriteBitRequest::SharedCtor() {
+ portid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ ::memset(&pinid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&bittowrite_) -
+ reinterpret_cast<char*>(&pinid_)) + sizeof(bittowrite_));
+ _cached_size_ = 0;
+}
+
+StubGPIOWriteBitRequest::~StubGPIOWriteBitRequest() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubGPIOWriteBitRequest)
+ SharedDtor();
+}
+
+void StubGPIOWriteBitRequest::SharedDtor() {
+ portid_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void StubGPIOWriteBitRequest::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StubGPIOWriteBitRequest::descriptor() {
+ protobuf_StubGPIOWriteBitRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubGPIOWriteBitRequest_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StubGPIOWriteBitRequest& StubGPIOWriteBitRequest::default_instance() {
+ protobuf_StubGPIOWriteBitRequest_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+StubGPIOWriteBitRequest* StubGPIOWriteBitRequest::New(::google::protobuf::Arena* arena) const {
+ StubGPIOWriteBitRequest* n = new StubGPIOWriteBitRequest;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StubGPIOWriteBitRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubGPIOWriteBitRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ ::memset(&pinid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&bittowrite_) -
+ reinterpret_cast<char*>(&pinid_)) + sizeof(bittowrite_));
+ _internal_metadata_.Clear();
+}
+
+bool StubGPIOWriteBitRequest::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:Tango.PMR.Stubs.StubGPIOWriteBitRequest)
+ 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)) {
+ // string PortId = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_portid()));
+ DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::PARSE,
+ "Tango.PMR.Stubs.StubGPIOWriteBitRequest.PortId"));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 PinId = 2;
+ case 2: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &pinid_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // bool BitToWrite = 3;
+ case 3: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &bittowrite_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubGPIOWriteBitRequest)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubGPIOWriteBitRequest)
+ return false;
+#undef DO_
+}
+
+void StubGPIOWriteBitRequest::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubGPIOWriteBitRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+ "Tango.PMR.Stubs.StubGPIOWriteBitRequest.PortId");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 1, this->portid(), output);
+ }
+
+ // uint32 PinId = 2;
+ if (this->pinid() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->pinid(), output);
+ }
+
+ // bool BitToWrite = 3;
+ if (this->bittowrite() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(3, this->bittowrite(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubGPIOWriteBitRequest)
+}
+
+::google::protobuf::uint8* StubGPIOWriteBitRequest::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubGPIOWriteBitRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+ "Tango.PMR.Stubs.StubGPIOWriteBitRequest.PortId");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 1, this->portid(), target);
+ }
+
+ // uint32 PinId = 2;
+ if (this->pinid() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->pinid(), target);
+ }
+
+ // bool BitToWrite = 3;
+ if (this->bittowrite() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(3, this->bittowrite(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubGPIOWriteBitRequest)
+ return target;
+}
+
+size_t StubGPIOWriteBitRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubGPIOWriteBitRequest)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->portid());
+ }
+
+ // uint32 PinId = 2;
+ if (this->pinid() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->pinid());
+ }
+
+ // bool BitToWrite = 3;
+ if (this->bittowrite() != 0) {
+ 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 StubGPIOWriteBitRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubGPIOWriteBitRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ const StubGPIOWriteBitRequest* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StubGPIOWriteBitRequest>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubGPIOWriteBitRequest)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubGPIOWriteBitRequest)
+ MergeFrom(*source);
+ }
+}
+
+void StubGPIOWriteBitRequest::MergeFrom(const StubGPIOWriteBitRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubGPIOWriteBitRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.portid().size() > 0) {
+
+ portid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.portid_);
+ }
+ if (from.pinid() != 0) {
+ set_pinid(from.pinid());
+ }
+ if (from.bittowrite() != 0) {
+ set_bittowrite(from.bittowrite());
+ }
+}
+
+void StubGPIOWriteBitRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubGPIOWriteBitRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StubGPIOWriteBitRequest::CopyFrom(const StubGPIOWriteBitRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubGPIOWriteBitRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StubGPIOWriteBitRequest::IsInitialized() const {
+ return true;
+}
+
+void StubGPIOWriteBitRequest::Swap(StubGPIOWriteBitRequest* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StubGPIOWriteBitRequest::InternalSwap(StubGPIOWriteBitRequest* other) {
+ using std::swap;
+ portid_.Swap(&other->portid_);
+ swap(pinid_, other->pinid_);
+ swap(bittowrite_, other->bittowrite_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StubGPIOWriteBitRequest::GetMetadata() const {
+ protobuf_StubGPIOWriteBitRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubGPIOWriteBitRequest_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StubGPIOWriteBitRequest
+
+// string PortId = 1;
+void StubGPIOWriteBitRequest::clear_portid() {
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+const ::std::string& StubGPIOWriteBitRequest::portid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOWriteBitRequest.PortId)
+ return portid_.GetNoArena();
+}
+void StubGPIOWriteBitRequest::set_portid(const ::std::string& value) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOWriteBitRequest.PortId)
+}
+#if LANG_CXX11
+void StubGPIOWriteBitRequest::set_portid(::std::string&& value) {
+
+ portid_.SetNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+ // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Stubs.StubGPIOWriteBitRequest.PortId)
+}
+#endif
+void StubGPIOWriteBitRequest::set_portid(const char* value) {
+ GOOGLE_DCHECK(value != NULL);
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:Tango.PMR.Stubs.StubGPIOWriteBitRequest.PortId)
+}
+void StubGPIOWriteBitRequest::set_portid(const char* value, size_t size) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Stubs.StubGPIOWriteBitRequest.PortId)
+}
+::std::string* StubGPIOWriteBitRequest::mutable_portid() {
+
+ // @@protoc_insertion_point(field_mutable:Tango.PMR.Stubs.StubGPIOWriteBitRequest.PortId)
+ return portid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* StubGPIOWriteBitRequest::release_portid() {
+ // @@protoc_insertion_point(field_release:Tango.PMR.Stubs.StubGPIOWriteBitRequest.PortId)
+
+ return portid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void StubGPIOWriteBitRequest::set_allocated_portid(::std::string* portid) {
+ if (portid != NULL) {
+
+ } else {
+
+ }
+ portid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), portid);
+ // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Stubs.StubGPIOWriteBitRequest.PortId)
+}
+
+// uint32 PinId = 2;
+void StubGPIOWriteBitRequest::clear_pinid() {
+ pinid_ = 0u;
+}
+::google::protobuf::uint32 StubGPIOWriteBitRequest::pinid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOWriteBitRequest.PinId)
+ return pinid_;
+}
+void StubGPIOWriteBitRequest::set_pinid(::google::protobuf::uint32 value) {
+
+ pinid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOWriteBitRequest.PinId)
+}
+
+// bool BitToWrite = 3;
+void StubGPIOWriteBitRequest::clear_bittowrite() {
+ bittowrite_ = false;
+}
+bool StubGPIOWriteBitRequest::bittowrite() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOWriteBitRequest.BitToWrite)
+ return bittowrite_;
+}
+void StubGPIOWriteBitRequest::set_bittowrite(bool value) {
+
+ bittowrite_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOWriteBitRequest.BitToWrite)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteBitRequest.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteBitRequest.pb.h
new file mode 100644
index 000000000..c748a9dc0
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteBitRequest.pb.h
@@ -0,0 +1,288 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubGPIOWriteBitRequest.proto
+
+#ifndef PROTOBUF_StubGPIOWriteBitRequest_2eproto__INCLUDED
+#define PROTOBUF_StubGPIOWriteBitRequest_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+class StubGPIOWriteBitRequest;
+class StubGPIOWriteBitRequestDefaultTypeInternal;
+extern StubGPIOWriteBitRequestDefaultTypeInternal _StubGPIOWriteBitRequest_default_instance_;
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+
+namespace protobuf_StubGPIOWriteBitRequest_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_StubGPIOWriteBitRequest_2eproto
+
+// ===================================================================
+
+class StubGPIOWriteBitRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Stubs.StubGPIOWriteBitRequest) */ {
+ public:
+ StubGPIOWriteBitRequest();
+ virtual ~StubGPIOWriteBitRequest();
+
+ StubGPIOWriteBitRequest(const StubGPIOWriteBitRequest& from);
+
+ inline StubGPIOWriteBitRequest& operator=(const StubGPIOWriteBitRequest& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ StubGPIOWriteBitRequest(StubGPIOWriteBitRequest&& from) noexcept
+ : StubGPIOWriteBitRequest() {
+ *this = ::std::move(from);
+ }
+
+ inline StubGPIOWriteBitRequest& operator=(StubGPIOWriteBitRequest&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StubGPIOWriteBitRequest& default_instance();
+
+ static inline const StubGPIOWriteBitRequest* internal_default_instance() {
+ return reinterpret_cast<const StubGPIOWriteBitRequest*>(
+ &_StubGPIOWriteBitRequest_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(StubGPIOWriteBitRequest* other);
+ friend void swap(StubGPIOWriteBitRequest& a, StubGPIOWriteBitRequest& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline StubGPIOWriteBitRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ StubGPIOWriteBitRequest* 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 StubGPIOWriteBitRequest& from);
+ void MergeFrom(const StubGPIOWriteBitRequest& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(StubGPIOWriteBitRequest* 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 -------------------------------------------------------
+
+ // string PortId = 1;
+ void clear_portid();
+ static const int kPortIdFieldNumber = 1;
+ const ::std::string& portid() const;
+ void set_portid(const ::std::string& value);
+ #if LANG_CXX11
+ void set_portid(::std::string&& value);
+ #endif
+ void set_portid(const char* value);
+ void set_portid(const char* value, size_t size);
+ ::std::string* mutable_portid();
+ ::std::string* release_portid();
+ void set_allocated_portid(::std::string* portid);
+
+ // uint32 PinId = 2;
+ void clear_pinid();
+ static const int kPinIdFieldNumber = 2;
+ ::google::protobuf::uint32 pinid() const;
+ void set_pinid(::google::protobuf::uint32 value);
+
+ // bool BitToWrite = 3;
+ void clear_bittowrite();
+ static const int kBitToWriteFieldNumber = 3;
+ bool bittowrite() const;
+ void set_bittowrite(bool value);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.StubGPIOWriteBitRequest)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::internal::ArenaStringPtr portid_;
+ ::google::protobuf::uint32 pinid_;
+ bool bittowrite_;
+ mutable int _cached_size_;
+ friend struct protobuf_StubGPIOWriteBitRequest_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// StubGPIOWriteBitRequest
+
+// string PortId = 1;
+inline void StubGPIOWriteBitRequest::clear_portid() {
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& StubGPIOWriteBitRequest::portid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOWriteBitRequest.PortId)
+ return portid_.GetNoArena();
+}
+inline void StubGPIOWriteBitRequest::set_portid(const ::std::string& value) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOWriteBitRequest.PortId)
+}
+#if LANG_CXX11
+inline void StubGPIOWriteBitRequest::set_portid(::std::string&& value) {
+
+ portid_.SetNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+ // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Stubs.StubGPIOWriteBitRequest.PortId)
+}
+#endif
+inline void StubGPIOWriteBitRequest::set_portid(const char* value) {
+ GOOGLE_DCHECK(value != NULL);
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:Tango.PMR.Stubs.StubGPIOWriteBitRequest.PortId)
+}
+inline void StubGPIOWriteBitRequest::set_portid(const char* value, size_t size) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Stubs.StubGPIOWriteBitRequest.PortId)
+}
+inline ::std::string* StubGPIOWriteBitRequest::mutable_portid() {
+
+ // @@protoc_insertion_point(field_mutable:Tango.PMR.Stubs.StubGPIOWriteBitRequest.PortId)
+ return portid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* StubGPIOWriteBitRequest::release_portid() {
+ // @@protoc_insertion_point(field_release:Tango.PMR.Stubs.StubGPIOWriteBitRequest.PortId)
+
+ return portid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void StubGPIOWriteBitRequest::set_allocated_portid(::std::string* portid) {
+ if (portid != NULL) {
+
+ } else {
+
+ }
+ portid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), portid);
+ // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Stubs.StubGPIOWriteBitRequest.PortId)
+}
+
+// uint32 PinId = 2;
+inline void StubGPIOWriteBitRequest::clear_pinid() {
+ pinid_ = 0u;
+}
+inline ::google::protobuf::uint32 StubGPIOWriteBitRequest::pinid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOWriteBitRequest.PinId)
+ return pinid_;
+}
+inline void StubGPIOWriteBitRequest::set_pinid(::google::protobuf::uint32 value) {
+
+ pinid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOWriteBitRequest.PinId)
+}
+
+// bool BitToWrite = 3;
+inline void StubGPIOWriteBitRequest::clear_bittowrite() {
+ bittowrite_ = false;
+}
+inline bool StubGPIOWriteBitRequest::bittowrite() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOWriteBitRequest.BitToWrite)
+ return bittowrite_;
+}
+inline void StubGPIOWriteBitRequest::set_bittowrite(bool value) {
+
+ bittowrite_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOWriteBitRequest.BitToWrite)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_StubGPIOWriteBitRequest_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteBitResponse.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteBitResponse.pb.cc
new file mode 100644
index 000000000..6a8ebb57b
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteBitResponse.pb.cc
@@ -0,0 +1,561 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubGPIOWriteBitResponse.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "StubGPIOWriteBitResponse.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 Tango {
+namespace PMR {
+namespace Stubs {
+class StubGPIOWriteBitResponseDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<StubGPIOWriteBitResponse>
+ _instance;
+} _StubGPIOWriteBitResponse_default_instance_;
+
+namespace protobuf_StubGPIOWriteBitResponse_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOWriteBitResponse, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOWriteBitResponse, portid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOWriteBitResponse, pinid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOWriteBitResponse, status_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(StubGPIOWriteBitResponse)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_StubGPIOWriteBitResponse_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "StubGPIOWriteBitResponse.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _StubGPIOWriteBitResponse_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_StubGPIOWriteBitResponse_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n\036StubGPIOWriteBitResponse.proto\022\017Tango."
+ "PMR.Stubs\"I\n\030StubGPIOWriteBitResponse\022\016\n"
+ "\006PortId\030\001 \001(\t\022\r\n\005PinId\030\002 \001(\r\022\016\n\006Status\030\003"
+ " \001(\rB\033\n\031com.twine.tango.pmr.stubsb\006proto"
+ "3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 161);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "StubGPIOWriteBitResponse.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_StubGPIOWriteBitResponse_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StubGPIOWriteBitResponse::kPortIdFieldNumber;
+const int StubGPIOWriteBitResponse::kPinIdFieldNumber;
+const int StubGPIOWriteBitResponse::kStatusFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StubGPIOWriteBitResponse::StubGPIOWriteBitResponse()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_StubGPIOWriteBitResponse_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubGPIOWriteBitResponse)
+}
+StubGPIOWriteBitResponse::StubGPIOWriteBitResponse(const StubGPIOWriteBitResponse& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ portid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (from.portid().size() > 0) {
+ portid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.portid_);
+ }
+ ::memcpy(&pinid_, &from.pinid_,
+ static_cast<size_t>(reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&pinid_)) + sizeof(status_));
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubGPIOWriteBitResponse)
+}
+
+void StubGPIOWriteBitResponse::SharedCtor() {
+ portid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ ::memset(&pinid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&pinid_)) + sizeof(status_));
+ _cached_size_ = 0;
+}
+
+StubGPIOWriteBitResponse::~StubGPIOWriteBitResponse() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubGPIOWriteBitResponse)
+ SharedDtor();
+}
+
+void StubGPIOWriteBitResponse::SharedDtor() {
+ portid_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void StubGPIOWriteBitResponse::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StubGPIOWriteBitResponse::descriptor() {
+ protobuf_StubGPIOWriteBitResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubGPIOWriteBitResponse_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StubGPIOWriteBitResponse& StubGPIOWriteBitResponse::default_instance() {
+ protobuf_StubGPIOWriteBitResponse_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+StubGPIOWriteBitResponse* StubGPIOWriteBitResponse::New(::google::protobuf::Arena* arena) const {
+ StubGPIOWriteBitResponse* n = new StubGPIOWriteBitResponse;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StubGPIOWriteBitResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubGPIOWriteBitResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ ::memset(&pinid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&pinid_)) + sizeof(status_));
+ _internal_metadata_.Clear();
+}
+
+bool StubGPIOWriteBitResponse::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:Tango.PMR.Stubs.StubGPIOWriteBitResponse)
+ 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)) {
+ // string PortId = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_portid()));
+ DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::PARSE,
+ "Tango.PMR.Stubs.StubGPIOWriteBitResponse.PortId"));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 PinId = 2;
+ case 2: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &pinid_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 Status = 3;
+ case 3: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &status_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubGPIOWriteBitResponse)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubGPIOWriteBitResponse)
+ return false;
+#undef DO_
+}
+
+void StubGPIOWriteBitResponse::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubGPIOWriteBitResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+ "Tango.PMR.Stubs.StubGPIOWriteBitResponse.PortId");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 1, this->portid(), output);
+ }
+
+ // uint32 PinId = 2;
+ if (this->pinid() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->pinid(), output);
+ }
+
+ // uint32 Status = 3;
+ if (this->status() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(3, this->status(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubGPIOWriteBitResponse)
+}
+
+::google::protobuf::uint8* StubGPIOWriteBitResponse::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubGPIOWriteBitResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+ "Tango.PMR.Stubs.StubGPIOWriteBitResponse.PortId");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 1, this->portid(), target);
+ }
+
+ // uint32 PinId = 2;
+ if (this->pinid() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->pinid(), target);
+ }
+
+ // uint32 Status = 3;
+ if (this->status() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(3, this->status(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubGPIOWriteBitResponse)
+ return target;
+}
+
+size_t StubGPIOWriteBitResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubGPIOWriteBitResponse)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->portid());
+ }
+
+ // uint32 PinId = 2;
+ if (this->pinid() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->pinid());
+ }
+
+ // uint32 Status = 3;
+ if (this->status() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->status());
+ }
+
+ 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 StubGPIOWriteBitResponse::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubGPIOWriteBitResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ const StubGPIOWriteBitResponse* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StubGPIOWriteBitResponse>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubGPIOWriteBitResponse)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubGPIOWriteBitResponse)
+ MergeFrom(*source);
+ }
+}
+
+void StubGPIOWriteBitResponse::MergeFrom(const StubGPIOWriteBitResponse& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubGPIOWriteBitResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.portid().size() > 0) {
+
+ portid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.portid_);
+ }
+ if (from.pinid() != 0) {
+ set_pinid(from.pinid());
+ }
+ if (from.status() != 0) {
+ set_status(from.status());
+ }
+}
+
+void StubGPIOWriteBitResponse::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubGPIOWriteBitResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StubGPIOWriteBitResponse::CopyFrom(const StubGPIOWriteBitResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubGPIOWriteBitResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StubGPIOWriteBitResponse::IsInitialized() const {
+ return true;
+}
+
+void StubGPIOWriteBitResponse::Swap(StubGPIOWriteBitResponse* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StubGPIOWriteBitResponse::InternalSwap(StubGPIOWriteBitResponse* other) {
+ using std::swap;
+ portid_.Swap(&other->portid_);
+ swap(pinid_, other->pinid_);
+ swap(status_, other->status_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StubGPIOWriteBitResponse::GetMetadata() const {
+ protobuf_StubGPIOWriteBitResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubGPIOWriteBitResponse_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StubGPIOWriteBitResponse
+
+// string PortId = 1;
+void StubGPIOWriteBitResponse::clear_portid() {
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+const ::std::string& StubGPIOWriteBitResponse::portid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOWriteBitResponse.PortId)
+ return portid_.GetNoArena();
+}
+void StubGPIOWriteBitResponse::set_portid(const ::std::string& value) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOWriteBitResponse.PortId)
+}
+#if LANG_CXX11
+void StubGPIOWriteBitResponse::set_portid(::std::string&& value) {
+
+ portid_.SetNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+ // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Stubs.StubGPIOWriteBitResponse.PortId)
+}
+#endif
+void StubGPIOWriteBitResponse::set_portid(const char* value) {
+ GOOGLE_DCHECK(value != NULL);
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:Tango.PMR.Stubs.StubGPIOWriteBitResponse.PortId)
+}
+void StubGPIOWriteBitResponse::set_portid(const char* value, size_t size) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Stubs.StubGPIOWriteBitResponse.PortId)
+}
+::std::string* StubGPIOWriteBitResponse::mutable_portid() {
+
+ // @@protoc_insertion_point(field_mutable:Tango.PMR.Stubs.StubGPIOWriteBitResponse.PortId)
+ return portid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* StubGPIOWriteBitResponse::release_portid() {
+ // @@protoc_insertion_point(field_release:Tango.PMR.Stubs.StubGPIOWriteBitResponse.PortId)
+
+ return portid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void StubGPIOWriteBitResponse::set_allocated_portid(::std::string* portid) {
+ if (portid != NULL) {
+
+ } else {
+
+ }
+ portid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), portid);
+ // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Stubs.StubGPIOWriteBitResponse.PortId)
+}
+
+// uint32 PinId = 2;
+void StubGPIOWriteBitResponse::clear_pinid() {
+ pinid_ = 0u;
+}
+::google::protobuf::uint32 StubGPIOWriteBitResponse::pinid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOWriteBitResponse.PinId)
+ return pinid_;
+}
+void StubGPIOWriteBitResponse::set_pinid(::google::protobuf::uint32 value) {
+
+ pinid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOWriteBitResponse.PinId)
+}
+
+// uint32 Status = 3;
+void StubGPIOWriteBitResponse::clear_status() {
+ status_ = 0u;
+}
+::google::protobuf::uint32 StubGPIOWriteBitResponse::status() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOWriteBitResponse.Status)
+ return status_;
+}
+void StubGPIOWriteBitResponse::set_status(::google::protobuf::uint32 value) {
+
+ status_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOWriteBitResponse.Status)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteBitResponse.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteBitResponse.pb.h
new file mode 100644
index 000000000..74df2d98e
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteBitResponse.pb.h
@@ -0,0 +1,288 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubGPIOWriteBitResponse.proto
+
+#ifndef PROTOBUF_StubGPIOWriteBitResponse_2eproto__INCLUDED
+#define PROTOBUF_StubGPIOWriteBitResponse_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+class StubGPIOWriteBitResponse;
+class StubGPIOWriteBitResponseDefaultTypeInternal;
+extern StubGPIOWriteBitResponseDefaultTypeInternal _StubGPIOWriteBitResponse_default_instance_;
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+
+namespace protobuf_StubGPIOWriteBitResponse_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_StubGPIOWriteBitResponse_2eproto
+
+// ===================================================================
+
+class StubGPIOWriteBitResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Stubs.StubGPIOWriteBitResponse) */ {
+ public:
+ StubGPIOWriteBitResponse();
+ virtual ~StubGPIOWriteBitResponse();
+
+ StubGPIOWriteBitResponse(const StubGPIOWriteBitResponse& from);
+
+ inline StubGPIOWriteBitResponse& operator=(const StubGPIOWriteBitResponse& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ StubGPIOWriteBitResponse(StubGPIOWriteBitResponse&& from) noexcept
+ : StubGPIOWriteBitResponse() {
+ *this = ::std::move(from);
+ }
+
+ inline StubGPIOWriteBitResponse& operator=(StubGPIOWriteBitResponse&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StubGPIOWriteBitResponse& default_instance();
+
+ static inline const StubGPIOWriteBitResponse* internal_default_instance() {
+ return reinterpret_cast<const StubGPIOWriteBitResponse*>(
+ &_StubGPIOWriteBitResponse_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(StubGPIOWriteBitResponse* other);
+ friend void swap(StubGPIOWriteBitResponse& a, StubGPIOWriteBitResponse& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline StubGPIOWriteBitResponse* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ StubGPIOWriteBitResponse* 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 StubGPIOWriteBitResponse& from);
+ void MergeFrom(const StubGPIOWriteBitResponse& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(StubGPIOWriteBitResponse* 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 -------------------------------------------------------
+
+ // string PortId = 1;
+ void clear_portid();
+ static const int kPortIdFieldNumber = 1;
+ const ::std::string& portid() const;
+ void set_portid(const ::std::string& value);
+ #if LANG_CXX11
+ void set_portid(::std::string&& value);
+ #endif
+ void set_portid(const char* value);
+ void set_portid(const char* value, size_t size);
+ ::std::string* mutable_portid();
+ ::std::string* release_portid();
+ void set_allocated_portid(::std::string* portid);
+
+ // uint32 PinId = 2;
+ void clear_pinid();
+ static const int kPinIdFieldNumber = 2;
+ ::google::protobuf::uint32 pinid() const;
+ void set_pinid(::google::protobuf::uint32 value);
+
+ // uint32 Status = 3;
+ void clear_status();
+ static const int kStatusFieldNumber = 3;
+ ::google::protobuf::uint32 status() const;
+ void set_status(::google::protobuf::uint32 value);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.StubGPIOWriteBitResponse)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::internal::ArenaStringPtr portid_;
+ ::google::protobuf::uint32 pinid_;
+ ::google::protobuf::uint32 status_;
+ mutable int _cached_size_;
+ friend struct protobuf_StubGPIOWriteBitResponse_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// StubGPIOWriteBitResponse
+
+// string PortId = 1;
+inline void StubGPIOWriteBitResponse::clear_portid() {
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& StubGPIOWriteBitResponse::portid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOWriteBitResponse.PortId)
+ return portid_.GetNoArena();
+}
+inline void StubGPIOWriteBitResponse::set_portid(const ::std::string& value) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOWriteBitResponse.PortId)
+}
+#if LANG_CXX11
+inline void StubGPIOWriteBitResponse::set_portid(::std::string&& value) {
+
+ portid_.SetNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+ // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Stubs.StubGPIOWriteBitResponse.PortId)
+}
+#endif
+inline void StubGPIOWriteBitResponse::set_portid(const char* value) {
+ GOOGLE_DCHECK(value != NULL);
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:Tango.PMR.Stubs.StubGPIOWriteBitResponse.PortId)
+}
+inline void StubGPIOWriteBitResponse::set_portid(const char* value, size_t size) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Stubs.StubGPIOWriteBitResponse.PortId)
+}
+inline ::std::string* StubGPIOWriteBitResponse::mutable_portid() {
+
+ // @@protoc_insertion_point(field_mutable:Tango.PMR.Stubs.StubGPIOWriteBitResponse.PortId)
+ return portid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* StubGPIOWriteBitResponse::release_portid() {
+ // @@protoc_insertion_point(field_release:Tango.PMR.Stubs.StubGPIOWriteBitResponse.PortId)
+
+ return portid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void StubGPIOWriteBitResponse::set_allocated_portid(::std::string* portid) {
+ if (portid != NULL) {
+
+ } else {
+
+ }
+ portid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), portid);
+ // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Stubs.StubGPIOWriteBitResponse.PortId)
+}
+
+// uint32 PinId = 2;
+inline void StubGPIOWriteBitResponse::clear_pinid() {
+ pinid_ = 0u;
+}
+inline ::google::protobuf::uint32 StubGPIOWriteBitResponse::pinid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOWriteBitResponse.PinId)
+ return pinid_;
+}
+inline void StubGPIOWriteBitResponse::set_pinid(::google::protobuf::uint32 value) {
+
+ pinid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOWriteBitResponse.PinId)
+}
+
+// uint32 Status = 3;
+inline void StubGPIOWriteBitResponse::clear_status() {
+ status_ = 0u;
+}
+inline ::google::protobuf::uint32 StubGPIOWriteBitResponse::status() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOWriteBitResponse.Status)
+ return status_;
+}
+inline void StubGPIOWriteBitResponse::set_status(::google::protobuf::uint32 value) {
+
+ status_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOWriteBitResponse.Status)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_StubGPIOWriteBitResponse_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteByteRequest.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteByteRequest.pb.cc
new file mode 100644
index 000000000..eb11abbeb
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteByteRequest.pb.cc
@@ -0,0 +1,503 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubGPIOWriteByteRequest.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "StubGPIOWriteByteRequest.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 Tango {
+namespace PMR {
+namespace Stubs {
+class StubGPIOWriteByteRequestDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<StubGPIOWriteByteRequest>
+ _instance;
+} _StubGPIOWriteByteRequest_default_instance_;
+
+namespace protobuf_StubGPIOWriteByteRequest_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOWriteByteRequest, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOWriteByteRequest, portid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOWriteByteRequest, datatowrite_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(StubGPIOWriteByteRequest)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_StubGPIOWriteByteRequest_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "StubGPIOWriteByteRequest.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _StubGPIOWriteByteRequest_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_StubGPIOWriteByteRequest_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n\036StubGPIOWriteByteRequest.proto\022\017Tango."
+ "PMR.Stubs\"\?\n\030StubGPIOWriteByteRequest\022\016\n"
+ "\006PortId\030\001 \001(\t\022\023\n\013DataToWrite\030\003 \001(\rB\033\n\031co"
+ "m.twine.tango.pmr.stubsb\006proto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 151);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "StubGPIOWriteByteRequest.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_StubGPIOWriteByteRequest_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StubGPIOWriteByteRequest::kPortIdFieldNumber;
+const int StubGPIOWriteByteRequest::kDataToWriteFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StubGPIOWriteByteRequest::StubGPIOWriteByteRequest()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_StubGPIOWriteByteRequest_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubGPIOWriteByteRequest)
+}
+StubGPIOWriteByteRequest::StubGPIOWriteByteRequest(const StubGPIOWriteByteRequest& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ portid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (from.portid().size() > 0) {
+ portid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.portid_);
+ }
+ datatowrite_ = from.datatowrite_;
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubGPIOWriteByteRequest)
+}
+
+void StubGPIOWriteByteRequest::SharedCtor() {
+ portid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ datatowrite_ = 0u;
+ _cached_size_ = 0;
+}
+
+StubGPIOWriteByteRequest::~StubGPIOWriteByteRequest() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubGPIOWriteByteRequest)
+ SharedDtor();
+}
+
+void StubGPIOWriteByteRequest::SharedDtor() {
+ portid_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void StubGPIOWriteByteRequest::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StubGPIOWriteByteRequest::descriptor() {
+ protobuf_StubGPIOWriteByteRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubGPIOWriteByteRequest_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StubGPIOWriteByteRequest& StubGPIOWriteByteRequest::default_instance() {
+ protobuf_StubGPIOWriteByteRequest_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+StubGPIOWriteByteRequest* StubGPIOWriteByteRequest::New(::google::protobuf::Arena* arena) const {
+ StubGPIOWriteByteRequest* n = new StubGPIOWriteByteRequest;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StubGPIOWriteByteRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubGPIOWriteByteRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ datatowrite_ = 0u;
+ _internal_metadata_.Clear();
+}
+
+bool StubGPIOWriteByteRequest::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:Tango.PMR.Stubs.StubGPIOWriteByteRequest)
+ 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)) {
+ // string PortId = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_portid()));
+ DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::PARSE,
+ "Tango.PMR.Stubs.StubGPIOWriteByteRequest.PortId"));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 DataToWrite = 3;
+ case 3: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &datatowrite_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubGPIOWriteByteRequest)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubGPIOWriteByteRequest)
+ return false;
+#undef DO_
+}
+
+void StubGPIOWriteByteRequest::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubGPIOWriteByteRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+ "Tango.PMR.Stubs.StubGPIOWriteByteRequest.PortId");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 1, this->portid(), output);
+ }
+
+ // uint32 DataToWrite = 3;
+ if (this->datatowrite() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(3, this->datatowrite(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubGPIOWriteByteRequest)
+}
+
+::google::protobuf::uint8* StubGPIOWriteByteRequest::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubGPIOWriteByteRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+ "Tango.PMR.Stubs.StubGPIOWriteByteRequest.PortId");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 1, this->portid(), target);
+ }
+
+ // uint32 DataToWrite = 3;
+ if (this->datatowrite() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(3, this->datatowrite(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubGPIOWriteByteRequest)
+ return target;
+}
+
+size_t StubGPIOWriteByteRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubGPIOWriteByteRequest)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->portid());
+ }
+
+ // uint32 DataToWrite = 3;
+ if (this->datatowrite() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->datatowrite());
+ }
+
+ 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 StubGPIOWriteByteRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubGPIOWriteByteRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ const StubGPIOWriteByteRequest* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StubGPIOWriteByteRequest>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubGPIOWriteByteRequest)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubGPIOWriteByteRequest)
+ MergeFrom(*source);
+ }
+}
+
+void StubGPIOWriteByteRequest::MergeFrom(const StubGPIOWriteByteRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubGPIOWriteByteRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.portid().size() > 0) {
+
+ portid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.portid_);
+ }
+ if (from.datatowrite() != 0) {
+ set_datatowrite(from.datatowrite());
+ }
+}
+
+void StubGPIOWriteByteRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubGPIOWriteByteRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StubGPIOWriteByteRequest::CopyFrom(const StubGPIOWriteByteRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubGPIOWriteByteRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StubGPIOWriteByteRequest::IsInitialized() const {
+ return true;
+}
+
+void StubGPIOWriteByteRequest::Swap(StubGPIOWriteByteRequest* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StubGPIOWriteByteRequest::InternalSwap(StubGPIOWriteByteRequest* other) {
+ using std::swap;
+ portid_.Swap(&other->portid_);
+ swap(datatowrite_, other->datatowrite_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StubGPIOWriteByteRequest::GetMetadata() const {
+ protobuf_StubGPIOWriteByteRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubGPIOWriteByteRequest_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StubGPIOWriteByteRequest
+
+// string PortId = 1;
+void StubGPIOWriteByteRequest::clear_portid() {
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+const ::std::string& StubGPIOWriteByteRequest::portid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOWriteByteRequest.PortId)
+ return portid_.GetNoArena();
+}
+void StubGPIOWriteByteRequest::set_portid(const ::std::string& value) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOWriteByteRequest.PortId)
+}
+#if LANG_CXX11
+void StubGPIOWriteByteRequest::set_portid(::std::string&& value) {
+
+ portid_.SetNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+ // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Stubs.StubGPIOWriteByteRequest.PortId)
+}
+#endif
+void StubGPIOWriteByteRequest::set_portid(const char* value) {
+ GOOGLE_DCHECK(value != NULL);
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:Tango.PMR.Stubs.StubGPIOWriteByteRequest.PortId)
+}
+void StubGPIOWriteByteRequest::set_portid(const char* value, size_t size) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Stubs.StubGPIOWriteByteRequest.PortId)
+}
+::std::string* StubGPIOWriteByteRequest::mutable_portid() {
+
+ // @@protoc_insertion_point(field_mutable:Tango.PMR.Stubs.StubGPIOWriteByteRequest.PortId)
+ return portid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* StubGPIOWriteByteRequest::release_portid() {
+ // @@protoc_insertion_point(field_release:Tango.PMR.Stubs.StubGPIOWriteByteRequest.PortId)
+
+ return portid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void StubGPIOWriteByteRequest::set_allocated_portid(::std::string* portid) {
+ if (portid != NULL) {
+
+ } else {
+
+ }
+ portid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), portid);
+ // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Stubs.StubGPIOWriteByteRequest.PortId)
+}
+
+// uint32 DataToWrite = 3;
+void StubGPIOWriteByteRequest::clear_datatowrite() {
+ datatowrite_ = 0u;
+}
+::google::protobuf::uint32 StubGPIOWriteByteRequest::datatowrite() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOWriteByteRequest.DataToWrite)
+ return datatowrite_;
+}
+void StubGPIOWriteByteRequest::set_datatowrite(::google::protobuf::uint32 value) {
+
+ datatowrite_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOWriteByteRequest.DataToWrite)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteByteRequest.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteByteRequest.pb.h
new file mode 100644
index 000000000..3f08fcbec
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteByteRequest.pb.h
@@ -0,0 +1,267 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubGPIOWriteByteRequest.proto
+
+#ifndef PROTOBUF_StubGPIOWriteByteRequest_2eproto__INCLUDED
+#define PROTOBUF_StubGPIOWriteByteRequest_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+class StubGPIOWriteByteRequest;
+class StubGPIOWriteByteRequestDefaultTypeInternal;
+extern StubGPIOWriteByteRequestDefaultTypeInternal _StubGPIOWriteByteRequest_default_instance_;
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+
+namespace protobuf_StubGPIOWriteByteRequest_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_StubGPIOWriteByteRequest_2eproto
+
+// ===================================================================
+
+class StubGPIOWriteByteRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Stubs.StubGPIOWriteByteRequest) */ {
+ public:
+ StubGPIOWriteByteRequest();
+ virtual ~StubGPIOWriteByteRequest();
+
+ StubGPIOWriteByteRequest(const StubGPIOWriteByteRequest& from);
+
+ inline StubGPIOWriteByteRequest& operator=(const StubGPIOWriteByteRequest& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ StubGPIOWriteByteRequest(StubGPIOWriteByteRequest&& from) noexcept
+ : StubGPIOWriteByteRequest() {
+ *this = ::std::move(from);
+ }
+
+ inline StubGPIOWriteByteRequest& operator=(StubGPIOWriteByteRequest&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StubGPIOWriteByteRequest& default_instance();
+
+ static inline const StubGPIOWriteByteRequest* internal_default_instance() {
+ return reinterpret_cast<const StubGPIOWriteByteRequest*>(
+ &_StubGPIOWriteByteRequest_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(StubGPIOWriteByteRequest* other);
+ friend void swap(StubGPIOWriteByteRequest& a, StubGPIOWriteByteRequest& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline StubGPIOWriteByteRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ StubGPIOWriteByteRequest* 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 StubGPIOWriteByteRequest& from);
+ void MergeFrom(const StubGPIOWriteByteRequest& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(StubGPIOWriteByteRequest* 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 -------------------------------------------------------
+
+ // string PortId = 1;
+ void clear_portid();
+ static const int kPortIdFieldNumber = 1;
+ const ::std::string& portid() const;
+ void set_portid(const ::std::string& value);
+ #if LANG_CXX11
+ void set_portid(::std::string&& value);
+ #endif
+ void set_portid(const char* value);
+ void set_portid(const char* value, size_t size);
+ ::std::string* mutable_portid();
+ ::std::string* release_portid();
+ void set_allocated_portid(::std::string* portid);
+
+ // uint32 DataToWrite = 3;
+ void clear_datatowrite();
+ static const int kDataToWriteFieldNumber = 3;
+ ::google::protobuf::uint32 datatowrite() const;
+ void set_datatowrite(::google::protobuf::uint32 value);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.StubGPIOWriteByteRequest)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::internal::ArenaStringPtr portid_;
+ ::google::protobuf::uint32 datatowrite_;
+ mutable int _cached_size_;
+ friend struct protobuf_StubGPIOWriteByteRequest_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// StubGPIOWriteByteRequest
+
+// string PortId = 1;
+inline void StubGPIOWriteByteRequest::clear_portid() {
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& StubGPIOWriteByteRequest::portid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOWriteByteRequest.PortId)
+ return portid_.GetNoArena();
+}
+inline void StubGPIOWriteByteRequest::set_portid(const ::std::string& value) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOWriteByteRequest.PortId)
+}
+#if LANG_CXX11
+inline void StubGPIOWriteByteRequest::set_portid(::std::string&& value) {
+
+ portid_.SetNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+ // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Stubs.StubGPIOWriteByteRequest.PortId)
+}
+#endif
+inline void StubGPIOWriteByteRequest::set_portid(const char* value) {
+ GOOGLE_DCHECK(value != NULL);
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:Tango.PMR.Stubs.StubGPIOWriteByteRequest.PortId)
+}
+inline void StubGPIOWriteByteRequest::set_portid(const char* value, size_t size) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Stubs.StubGPIOWriteByteRequest.PortId)
+}
+inline ::std::string* StubGPIOWriteByteRequest::mutable_portid() {
+
+ // @@protoc_insertion_point(field_mutable:Tango.PMR.Stubs.StubGPIOWriteByteRequest.PortId)
+ return portid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* StubGPIOWriteByteRequest::release_portid() {
+ // @@protoc_insertion_point(field_release:Tango.PMR.Stubs.StubGPIOWriteByteRequest.PortId)
+
+ return portid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void StubGPIOWriteByteRequest::set_allocated_portid(::std::string* portid) {
+ if (portid != NULL) {
+
+ } else {
+
+ }
+ portid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), portid);
+ // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Stubs.StubGPIOWriteByteRequest.PortId)
+}
+
+// uint32 DataToWrite = 3;
+inline void StubGPIOWriteByteRequest::clear_datatowrite() {
+ datatowrite_ = 0u;
+}
+inline ::google::protobuf::uint32 StubGPIOWriteByteRequest::datatowrite() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOWriteByteRequest.DataToWrite)
+ return datatowrite_;
+}
+inline void StubGPIOWriteByteRequest::set_datatowrite(::google::protobuf::uint32 value) {
+
+ datatowrite_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOWriteByteRequest.DataToWrite)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_StubGPIOWriteByteRequest_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteByteResponse.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteByteResponse.pb.cc
new file mode 100644
index 000000000..583b199af
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteByteResponse.pb.cc
@@ -0,0 +1,503 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubGPIOWriteByteResponse.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "StubGPIOWriteByteResponse.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 Tango {
+namespace PMR {
+namespace Stubs {
+class StubGPIOWriteByteResponseDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<StubGPIOWriteByteResponse>
+ _instance;
+} _StubGPIOWriteByteResponse_default_instance_;
+
+namespace protobuf_StubGPIOWriteByteResponse_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOWriteByteResponse, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOWriteByteResponse, portid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubGPIOWriteByteResponse, status_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(StubGPIOWriteByteResponse)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_StubGPIOWriteByteResponse_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "StubGPIOWriteByteResponse.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _StubGPIOWriteByteResponse_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_StubGPIOWriteByteResponse_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n\037StubGPIOWriteByteResponse.proto\022\017Tango"
+ ".PMR.Stubs\";\n\031StubGPIOWriteByteResponse\022"
+ "\016\n\006PortId\030\001 \001(\t\022\016\n\006status\030\003 \001(\rB\033\n\031com.t"
+ "wine.tango.pmr.stubsb\006proto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 148);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "StubGPIOWriteByteResponse.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_StubGPIOWriteByteResponse_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StubGPIOWriteByteResponse::kPortIdFieldNumber;
+const int StubGPIOWriteByteResponse::kStatusFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StubGPIOWriteByteResponse::StubGPIOWriteByteResponse()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_StubGPIOWriteByteResponse_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubGPIOWriteByteResponse)
+}
+StubGPIOWriteByteResponse::StubGPIOWriteByteResponse(const StubGPIOWriteByteResponse& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ portid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (from.portid().size() > 0) {
+ portid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.portid_);
+ }
+ status_ = from.status_;
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubGPIOWriteByteResponse)
+}
+
+void StubGPIOWriteByteResponse::SharedCtor() {
+ portid_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ status_ = 0u;
+ _cached_size_ = 0;
+}
+
+StubGPIOWriteByteResponse::~StubGPIOWriteByteResponse() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubGPIOWriteByteResponse)
+ SharedDtor();
+}
+
+void StubGPIOWriteByteResponse::SharedDtor() {
+ portid_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void StubGPIOWriteByteResponse::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StubGPIOWriteByteResponse::descriptor() {
+ protobuf_StubGPIOWriteByteResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubGPIOWriteByteResponse_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StubGPIOWriteByteResponse& StubGPIOWriteByteResponse::default_instance() {
+ protobuf_StubGPIOWriteByteResponse_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+StubGPIOWriteByteResponse* StubGPIOWriteByteResponse::New(::google::protobuf::Arena* arena) const {
+ StubGPIOWriteByteResponse* n = new StubGPIOWriteByteResponse;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StubGPIOWriteByteResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubGPIOWriteByteResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ status_ = 0u;
+ _internal_metadata_.Clear();
+}
+
+bool StubGPIOWriteByteResponse::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:Tango.PMR.Stubs.StubGPIOWriteByteResponse)
+ 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)) {
+ // string PortId = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_portid()));
+ DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::PARSE,
+ "Tango.PMR.Stubs.StubGPIOWriteByteResponse.PortId"));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 status = 3;
+ case 3: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &status_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubGPIOWriteByteResponse)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubGPIOWriteByteResponse)
+ return false;
+#undef DO_
+}
+
+void StubGPIOWriteByteResponse::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubGPIOWriteByteResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+ "Tango.PMR.Stubs.StubGPIOWriteByteResponse.PortId");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 1, this->portid(), output);
+ }
+
+ // uint32 status = 3;
+ if (this->status() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(3, this->status(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubGPIOWriteByteResponse)
+}
+
+::google::protobuf::uint8* StubGPIOWriteByteResponse::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubGPIOWriteByteResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->portid().data(), static_cast<int>(this->portid().length()),
+ ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+ "Tango.PMR.Stubs.StubGPIOWriteByteResponse.PortId");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 1, this->portid(), target);
+ }
+
+ // uint32 status = 3;
+ if (this->status() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(3, this->status(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubGPIOWriteByteResponse)
+ return target;
+}
+
+size_t StubGPIOWriteByteResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubGPIOWriteByteResponse)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // string PortId = 1;
+ if (this->portid().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->portid());
+ }
+
+ // uint32 status = 3;
+ if (this->status() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->status());
+ }
+
+ 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 StubGPIOWriteByteResponse::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubGPIOWriteByteResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ const StubGPIOWriteByteResponse* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StubGPIOWriteByteResponse>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubGPIOWriteByteResponse)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubGPIOWriteByteResponse)
+ MergeFrom(*source);
+ }
+}
+
+void StubGPIOWriteByteResponse::MergeFrom(const StubGPIOWriteByteResponse& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubGPIOWriteByteResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.portid().size() > 0) {
+
+ portid_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.portid_);
+ }
+ if (from.status() != 0) {
+ set_status(from.status());
+ }
+}
+
+void StubGPIOWriteByteResponse::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubGPIOWriteByteResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StubGPIOWriteByteResponse::CopyFrom(const StubGPIOWriteByteResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubGPIOWriteByteResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StubGPIOWriteByteResponse::IsInitialized() const {
+ return true;
+}
+
+void StubGPIOWriteByteResponse::Swap(StubGPIOWriteByteResponse* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StubGPIOWriteByteResponse::InternalSwap(StubGPIOWriteByteResponse* other) {
+ using std::swap;
+ portid_.Swap(&other->portid_);
+ swap(status_, other->status_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StubGPIOWriteByteResponse::GetMetadata() const {
+ protobuf_StubGPIOWriteByteResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubGPIOWriteByteResponse_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StubGPIOWriteByteResponse
+
+// string PortId = 1;
+void StubGPIOWriteByteResponse::clear_portid() {
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+const ::std::string& StubGPIOWriteByteResponse::portid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOWriteByteResponse.PortId)
+ return portid_.GetNoArena();
+}
+void StubGPIOWriteByteResponse::set_portid(const ::std::string& value) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOWriteByteResponse.PortId)
+}
+#if LANG_CXX11
+void StubGPIOWriteByteResponse::set_portid(::std::string&& value) {
+
+ portid_.SetNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+ // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Stubs.StubGPIOWriteByteResponse.PortId)
+}
+#endif
+void StubGPIOWriteByteResponse::set_portid(const char* value) {
+ GOOGLE_DCHECK(value != NULL);
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:Tango.PMR.Stubs.StubGPIOWriteByteResponse.PortId)
+}
+void StubGPIOWriteByteResponse::set_portid(const char* value, size_t size) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Stubs.StubGPIOWriteByteResponse.PortId)
+}
+::std::string* StubGPIOWriteByteResponse::mutable_portid() {
+
+ // @@protoc_insertion_point(field_mutable:Tango.PMR.Stubs.StubGPIOWriteByteResponse.PortId)
+ return portid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* StubGPIOWriteByteResponse::release_portid() {
+ // @@protoc_insertion_point(field_release:Tango.PMR.Stubs.StubGPIOWriteByteResponse.PortId)
+
+ return portid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void StubGPIOWriteByteResponse::set_allocated_portid(::std::string* portid) {
+ if (portid != NULL) {
+
+ } else {
+
+ }
+ portid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), portid);
+ // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Stubs.StubGPIOWriteByteResponse.PortId)
+}
+
+// uint32 status = 3;
+void StubGPIOWriteByteResponse::clear_status() {
+ status_ = 0u;
+}
+::google::protobuf::uint32 StubGPIOWriteByteResponse::status() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOWriteByteResponse.status)
+ return status_;
+}
+void StubGPIOWriteByteResponse::set_status(::google::protobuf::uint32 value) {
+
+ status_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOWriteByteResponse.status)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteByteResponse.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteByteResponse.pb.h
new file mode 100644
index 000000000..ec03d4043
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubGPIOWriteByteResponse.pb.h
@@ -0,0 +1,267 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubGPIOWriteByteResponse.proto
+
+#ifndef PROTOBUF_StubGPIOWriteByteResponse_2eproto__INCLUDED
+#define PROTOBUF_StubGPIOWriteByteResponse_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+class StubGPIOWriteByteResponse;
+class StubGPIOWriteByteResponseDefaultTypeInternal;
+extern StubGPIOWriteByteResponseDefaultTypeInternal _StubGPIOWriteByteResponse_default_instance_;
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+
+namespace protobuf_StubGPIOWriteByteResponse_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_StubGPIOWriteByteResponse_2eproto
+
+// ===================================================================
+
+class StubGPIOWriteByteResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Stubs.StubGPIOWriteByteResponse) */ {
+ public:
+ StubGPIOWriteByteResponse();
+ virtual ~StubGPIOWriteByteResponse();
+
+ StubGPIOWriteByteResponse(const StubGPIOWriteByteResponse& from);
+
+ inline StubGPIOWriteByteResponse& operator=(const StubGPIOWriteByteResponse& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ StubGPIOWriteByteResponse(StubGPIOWriteByteResponse&& from) noexcept
+ : StubGPIOWriteByteResponse() {
+ *this = ::std::move(from);
+ }
+
+ inline StubGPIOWriteByteResponse& operator=(StubGPIOWriteByteResponse&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StubGPIOWriteByteResponse& default_instance();
+
+ static inline const StubGPIOWriteByteResponse* internal_default_instance() {
+ return reinterpret_cast<const StubGPIOWriteByteResponse*>(
+ &_StubGPIOWriteByteResponse_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(StubGPIOWriteByteResponse* other);
+ friend void swap(StubGPIOWriteByteResponse& a, StubGPIOWriteByteResponse& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline StubGPIOWriteByteResponse* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ StubGPIOWriteByteResponse* 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 StubGPIOWriteByteResponse& from);
+ void MergeFrom(const StubGPIOWriteByteResponse& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(StubGPIOWriteByteResponse* 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 -------------------------------------------------------
+
+ // string PortId = 1;
+ void clear_portid();
+ static const int kPortIdFieldNumber = 1;
+ const ::std::string& portid() const;
+ void set_portid(const ::std::string& value);
+ #if LANG_CXX11
+ void set_portid(::std::string&& value);
+ #endif
+ void set_portid(const char* value);
+ void set_portid(const char* value, size_t size);
+ ::std::string* mutable_portid();
+ ::std::string* release_portid();
+ void set_allocated_portid(::std::string* portid);
+
+ // uint32 status = 3;
+ void clear_status();
+ static const int kStatusFieldNumber = 3;
+ ::google::protobuf::uint32 status() const;
+ void set_status(::google::protobuf::uint32 value);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.StubGPIOWriteByteResponse)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::internal::ArenaStringPtr portid_;
+ ::google::protobuf::uint32 status_;
+ mutable int _cached_size_;
+ friend struct protobuf_StubGPIOWriteByteResponse_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// StubGPIOWriteByteResponse
+
+// string PortId = 1;
+inline void StubGPIOWriteByteResponse::clear_portid() {
+ portid_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& StubGPIOWriteByteResponse::portid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOWriteByteResponse.PortId)
+ return portid_.GetNoArena();
+}
+inline void StubGPIOWriteByteResponse::set_portid(const ::std::string& value) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOWriteByteResponse.PortId)
+}
+#if LANG_CXX11
+inline void StubGPIOWriteByteResponse::set_portid(::std::string&& value) {
+
+ portid_.SetNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+ // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Stubs.StubGPIOWriteByteResponse.PortId)
+}
+#endif
+inline void StubGPIOWriteByteResponse::set_portid(const char* value) {
+ GOOGLE_DCHECK(value != NULL);
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:Tango.PMR.Stubs.StubGPIOWriteByteResponse.PortId)
+}
+inline void StubGPIOWriteByteResponse::set_portid(const char* value, size_t size) {
+
+ portid_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Stubs.StubGPIOWriteByteResponse.PortId)
+}
+inline ::std::string* StubGPIOWriteByteResponse::mutable_portid() {
+
+ // @@protoc_insertion_point(field_mutable:Tango.PMR.Stubs.StubGPIOWriteByteResponse.PortId)
+ return portid_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* StubGPIOWriteByteResponse::release_portid() {
+ // @@protoc_insertion_point(field_release:Tango.PMR.Stubs.StubGPIOWriteByteResponse.PortId)
+
+ return portid_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void StubGPIOWriteByteResponse::set_allocated_portid(::std::string* portid) {
+ if (portid != NULL) {
+
+ } else {
+
+ }
+ portid_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), portid);
+ // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Stubs.StubGPIOWriteByteResponse.PortId)
+}
+
+// uint32 status = 3;
+inline void StubGPIOWriteByteResponse::clear_status() {
+ status_ = 0u;
+}
+inline ::google::protobuf::uint32 StubGPIOWriteByteResponse::status() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubGPIOWriteByteResponse.status)
+ return status_;
+}
+inline void StubGPIOWriteByteResponse::set_status(::google::protobuf::uint32 value) {
+
+ status_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubGPIOWriteByteResponse.status)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_StubGPIOWriteByteResponse_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubHeaterRequest.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubHeaterRequest.pb.cc
new file mode 100644
index 000000000..66dfb613b
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubHeaterRequest.pb.cc
@@ -0,0 +1,499 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubHeaterRequest.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "StubHeaterRequest.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 Tango {
+namespace PMR {
+namespace Stubs {
+class StubHeaterRequestDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<StubHeaterRequest>
+ _instance;
+} _StubHeaterRequest_default_instance_;
+
+namespace protobuf_StubHeaterRequest_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubHeaterRequest, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubHeaterRequest, heatergroupid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubHeaterRequest, heatergroupon_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubHeaterRequest, heatertemperaturereq_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(StubHeaterRequest)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_StubHeaterRequest_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "StubHeaterRequest.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _StubHeaterRequest_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_StubHeaterRequest_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n\027StubHeaterRequest.proto\022\017Tango.PMR.Stu"
+ "bs\"_\n\021StubHeaterRequest\022\025\n\rHeaterGroupId"
+ "\030\001 \001(\r\022\025\n\rHeaterGroupOn\030\002 \001(\010\022\034\n\024HeaterT"
+ "emperatureReq\030\003 \001(\rB\033\n\031com.twine.tango.p"
+ "mr.stubsb\006proto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 176);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "StubHeaterRequest.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_StubHeaterRequest_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StubHeaterRequest::kHeaterGroupIdFieldNumber;
+const int StubHeaterRequest::kHeaterGroupOnFieldNumber;
+const int StubHeaterRequest::kHeaterTemperatureReqFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StubHeaterRequest::StubHeaterRequest()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_StubHeaterRequest_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubHeaterRequest)
+}
+StubHeaterRequest::StubHeaterRequest(const StubHeaterRequest& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::memcpy(&heatergroupid_, &from.heatergroupid_,
+ static_cast<size_t>(reinterpret_cast<char*>(&heatertemperaturereq_) -
+ reinterpret_cast<char*>(&heatergroupid_)) + sizeof(heatertemperaturereq_));
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubHeaterRequest)
+}
+
+void StubHeaterRequest::SharedCtor() {
+ ::memset(&heatergroupid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&heatertemperaturereq_) -
+ reinterpret_cast<char*>(&heatergroupid_)) + sizeof(heatertemperaturereq_));
+ _cached_size_ = 0;
+}
+
+StubHeaterRequest::~StubHeaterRequest() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubHeaterRequest)
+ SharedDtor();
+}
+
+void StubHeaterRequest::SharedDtor() {
+}
+
+void StubHeaterRequest::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StubHeaterRequest::descriptor() {
+ protobuf_StubHeaterRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubHeaterRequest_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StubHeaterRequest& StubHeaterRequest::default_instance() {
+ protobuf_StubHeaterRequest_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+StubHeaterRequest* StubHeaterRequest::New(::google::protobuf::Arena* arena) const {
+ StubHeaterRequest* n = new StubHeaterRequest;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StubHeaterRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubHeaterRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ ::memset(&heatergroupid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&heatertemperaturereq_) -
+ reinterpret_cast<char*>(&heatergroupid_)) + sizeof(heatertemperaturereq_));
+ _internal_metadata_.Clear();
+}
+
+bool StubHeaterRequest::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:Tango.PMR.Stubs.StubHeaterRequest)
+ 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)) {
+ // uint32 HeaterGroupId = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &heatergroupid_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // bool HeaterGroupOn = 2;
+ case 2: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &heatergroupon_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 HeaterTemperatureReq = 3;
+ case 3: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &heatertemperaturereq_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubHeaterRequest)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubHeaterRequest)
+ return false;
+#undef DO_
+}
+
+void StubHeaterRequest::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubHeaterRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 HeaterGroupId = 1;
+ if (this->heatergroupid() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->heatergroupid(), output);
+ }
+
+ // bool HeaterGroupOn = 2;
+ if (this->heatergroupon() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(2, this->heatergroupon(), output);
+ }
+
+ // uint32 HeaterTemperatureReq = 3;
+ if (this->heatertemperaturereq() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(3, this->heatertemperaturereq(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubHeaterRequest)
+}
+
+::google::protobuf::uint8* StubHeaterRequest::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubHeaterRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 HeaterGroupId = 1;
+ if (this->heatergroupid() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->heatergroupid(), target);
+ }
+
+ // bool HeaterGroupOn = 2;
+ if (this->heatergroupon() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(2, this->heatergroupon(), target);
+ }
+
+ // uint32 HeaterTemperatureReq = 3;
+ if (this->heatertemperaturereq() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(3, this->heatertemperaturereq(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubHeaterRequest)
+ return target;
+}
+
+size_t StubHeaterRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubHeaterRequest)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // uint32 HeaterGroupId = 1;
+ if (this->heatergroupid() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->heatergroupid());
+ }
+
+ // bool HeaterGroupOn = 2;
+ if (this->heatergroupon() != 0) {
+ total_size += 1 + 1;
+ }
+
+ // uint32 HeaterTemperatureReq = 3;
+ if (this->heatertemperaturereq() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->heatertemperaturereq());
+ }
+
+ 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 StubHeaterRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubHeaterRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ const StubHeaterRequest* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StubHeaterRequest>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubHeaterRequest)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubHeaterRequest)
+ MergeFrom(*source);
+ }
+}
+
+void StubHeaterRequest::MergeFrom(const StubHeaterRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubHeaterRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.heatergroupid() != 0) {
+ set_heatergroupid(from.heatergroupid());
+ }
+ if (from.heatergroupon() != 0) {
+ set_heatergroupon(from.heatergroupon());
+ }
+ if (from.heatertemperaturereq() != 0) {
+ set_heatertemperaturereq(from.heatertemperaturereq());
+ }
+}
+
+void StubHeaterRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubHeaterRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StubHeaterRequest::CopyFrom(const StubHeaterRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubHeaterRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StubHeaterRequest::IsInitialized() const {
+ return true;
+}
+
+void StubHeaterRequest::Swap(StubHeaterRequest* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StubHeaterRequest::InternalSwap(StubHeaterRequest* other) {
+ using std::swap;
+ swap(heatergroupid_, other->heatergroupid_);
+ swap(heatergroupon_, other->heatergroupon_);
+ swap(heatertemperaturereq_, other->heatertemperaturereq_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StubHeaterRequest::GetMetadata() const {
+ protobuf_StubHeaterRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubHeaterRequest_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StubHeaterRequest
+
+// uint32 HeaterGroupId = 1;
+void StubHeaterRequest::clear_heatergroupid() {
+ heatergroupid_ = 0u;
+}
+::google::protobuf::uint32 StubHeaterRequest::heatergroupid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubHeaterRequest.HeaterGroupId)
+ return heatergroupid_;
+}
+void StubHeaterRequest::set_heatergroupid(::google::protobuf::uint32 value) {
+
+ heatergroupid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubHeaterRequest.HeaterGroupId)
+}
+
+// bool HeaterGroupOn = 2;
+void StubHeaterRequest::clear_heatergroupon() {
+ heatergroupon_ = false;
+}
+bool StubHeaterRequest::heatergroupon() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubHeaterRequest.HeaterGroupOn)
+ return heatergroupon_;
+}
+void StubHeaterRequest::set_heatergroupon(bool value) {
+
+ heatergroupon_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubHeaterRequest.HeaterGroupOn)
+}
+
+// uint32 HeaterTemperatureReq = 3;
+void StubHeaterRequest::clear_heatertemperaturereq() {
+ heatertemperaturereq_ = 0u;
+}
+::google::protobuf::uint32 StubHeaterRequest::heatertemperaturereq() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubHeaterRequest.HeaterTemperatureReq)
+ return heatertemperaturereq_;
+}
+void StubHeaterRequest::set_heatertemperaturereq(::google::protobuf::uint32 value) {
+
+ heatertemperaturereq_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubHeaterRequest.HeaterTemperatureReq)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubHeaterRequest.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubHeaterRequest.pb.h
new file mode 100644
index 000000000..559901691
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubHeaterRequest.pb.h
@@ -0,0 +1,241 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubHeaterRequest.proto
+
+#ifndef PROTOBUF_StubHeaterRequest_2eproto__INCLUDED
+#define PROTOBUF_StubHeaterRequest_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+class StubHeaterRequest;
+class StubHeaterRequestDefaultTypeInternal;
+extern StubHeaterRequestDefaultTypeInternal _StubHeaterRequest_default_instance_;
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+
+namespace protobuf_StubHeaterRequest_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_StubHeaterRequest_2eproto
+
+// ===================================================================
+
+class StubHeaterRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Stubs.StubHeaterRequest) */ {
+ public:
+ StubHeaterRequest();
+ virtual ~StubHeaterRequest();
+
+ StubHeaterRequest(const StubHeaterRequest& from);
+
+ inline StubHeaterRequest& operator=(const StubHeaterRequest& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ StubHeaterRequest(StubHeaterRequest&& from) noexcept
+ : StubHeaterRequest() {
+ *this = ::std::move(from);
+ }
+
+ inline StubHeaterRequest& operator=(StubHeaterRequest&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StubHeaterRequest& default_instance();
+
+ static inline const StubHeaterRequest* internal_default_instance() {
+ return reinterpret_cast<const StubHeaterRequest*>(
+ &_StubHeaterRequest_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(StubHeaterRequest* other);
+ friend void swap(StubHeaterRequest& a, StubHeaterRequest& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline StubHeaterRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ StubHeaterRequest* 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 StubHeaterRequest& from);
+ void MergeFrom(const StubHeaterRequest& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(StubHeaterRequest* 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 -------------------------------------------------------
+
+ // uint32 HeaterGroupId = 1;
+ void clear_heatergroupid();
+ static const int kHeaterGroupIdFieldNumber = 1;
+ ::google::protobuf::uint32 heatergroupid() const;
+ void set_heatergroupid(::google::protobuf::uint32 value);
+
+ // bool HeaterGroupOn = 2;
+ void clear_heatergroupon();
+ static const int kHeaterGroupOnFieldNumber = 2;
+ bool heatergroupon() const;
+ void set_heatergroupon(bool value);
+
+ // uint32 HeaterTemperatureReq = 3;
+ void clear_heatertemperaturereq();
+ static const int kHeaterTemperatureReqFieldNumber = 3;
+ ::google::protobuf::uint32 heatertemperaturereq() const;
+ void set_heatertemperaturereq(::google::protobuf::uint32 value);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.StubHeaterRequest)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::uint32 heatergroupid_;
+ bool heatergroupon_;
+ ::google::protobuf::uint32 heatertemperaturereq_;
+ mutable int _cached_size_;
+ friend struct protobuf_StubHeaterRequest_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// StubHeaterRequest
+
+// uint32 HeaterGroupId = 1;
+inline void StubHeaterRequest::clear_heatergroupid() {
+ heatergroupid_ = 0u;
+}
+inline ::google::protobuf::uint32 StubHeaterRequest::heatergroupid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubHeaterRequest.HeaterGroupId)
+ return heatergroupid_;
+}
+inline void StubHeaterRequest::set_heatergroupid(::google::protobuf::uint32 value) {
+
+ heatergroupid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubHeaterRequest.HeaterGroupId)
+}
+
+// bool HeaterGroupOn = 2;
+inline void StubHeaterRequest::clear_heatergroupon() {
+ heatergroupon_ = false;
+}
+inline bool StubHeaterRequest::heatergroupon() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubHeaterRequest.HeaterGroupOn)
+ return heatergroupon_;
+}
+inline void StubHeaterRequest::set_heatergroupon(bool value) {
+
+ heatergroupon_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubHeaterRequest.HeaterGroupOn)
+}
+
+// uint32 HeaterTemperatureReq = 3;
+inline void StubHeaterRequest::clear_heatertemperaturereq() {
+ heatertemperaturereq_ = 0u;
+}
+inline ::google::protobuf::uint32 StubHeaterRequest::heatertemperaturereq() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubHeaterRequest.HeaterTemperatureReq)
+ return heatertemperaturereq_;
+}
+inline void StubHeaterRequest::set_heatertemperaturereq(::google::protobuf::uint32 value) {
+
+ heatertemperaturereq_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubHeaterRequest.HeaterTemperatureReq)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_StubHeaterRequest_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubHeaterResponse.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubHeaterResponse.pb.cc
new file mode 100644
index 000000000..33c1cb390
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubHeaterResponse.pb.cc
@@ -0,0 +1,499 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubHeaterResponse.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "StubHeaterResponse.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 Tango {
+namespace PMR {
+namespace Stubs {
+class StubHeaterResponseDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<StubHeaterResponse>
+ _instance;
+} _StubHeaterResponse_default_instance_;
+
+namespace protobuf_StubHeaterResponse_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubHeaterResponse, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubHeaterResponse, heatergroupid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubHeaterResponse, heatertemperaturesensor_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubHeaterResponse, status_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(StubHeaterResponse)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_StubHeaterResponse_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "StubHeaterResponse.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _StubHeaterResponse_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_StubHeaterResponse_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n\030StubHeaterResponse.proto\022\017Tango.PMR.St"
+ "ubs\"\\\n\022StubHeaterResponse\022\025\n\rHeaterGroup"
+ "Id\030\001 \001(\r\022\037\n\027HeaterTemperatureSensor\030\002 \001("
+ "\r\022\016\n\006Status\030\003 \001(\010B\033\n\031com.twine.tango.pmr"
+ ".stubsb\006proto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 174);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "StubHeaterResponse.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_StubHeaterResponse_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StubHeaterResponse::kHeaterGroupIdFieldNumber;
+const int StubHeaterResponse::kHeaterTemperatureSensorFieldNumber;
+const int StubHeaterResponse::kStatusFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StubHeaterResponse::StubHeaterResponse()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_StubHeaterResponse_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubHeaterResponse)
+}
+StubHeaterResponse::StubHeaterResponse(const StubHeaterResponse& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::memcpy(&heatergroupid_, &from.heatergroupid_,
+ static_cast<size_t>(reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&heatergroupid_)) + sizeof(status_));
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubHeaterResponse)
+}
+
+void StubHeaterResponse::SharedCtor() {
+ ::memset(&heatergroupid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&heatergroupid_)) + sizeof(status_));
+ _cached_size_ = 0;
+}
+
+StubHeaterResponse::~StubHeaterResponse() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubHeaterResponse)
+ SharedDtor();
+}
+
+void StubHeaterResponse::SharedDtor() {
+}
+
+void StubHeaterResponse::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StubHeaterResponse::descriptor() {
+ protobuf_StubHeaterResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubHeaterResponse_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StubHeaterResponse& StubHeaterResponse::default_instance() {
+ protobuf_StubHeaterResponse_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+StubHeaterResponse* StubHeaterResponse::New(::google::protobuf::Arena* arena) const {
+ StubHeaterResponse* n = new StubHeaterResponse;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StubHeaterResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubHeaterResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ ::memset(&heatergroupid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&heatergroupid_)) + sizeof(status_));
+ _internal_metadata_.Clear();
+}
+
+bool StubHeaterResponse::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:Tango.PMR.Stubs.StubHeaterResponse)
+ 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)) {
+ // uint32 HeaterGroupId = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &heatergroupid_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 HeaterTemperatureSensor = 2;
+ case 2: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &heatertemperaturesensor_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // bool Status = 3;
+ case 3: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &status_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubHeaterResponse)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubHeaterResponse)
+ return false;
+#undef DO_
+}
+
+void StubHeaterResponse::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubHeaterResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 HeaterGroupId = 1;
+ if (this->heatergroupid() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->heatergroupid(), output);
+ }
+
+ // uint32 HeaterTemperatureSensor = 2;
+ if (this->heatertemperaturesensor() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->heatertemperaturesensor(), output);
+ }
+
+ // bool Status = 3;
+ if (this->status() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(3, this->status(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubHeaterResponse)
+}
+
+::google::protobuf::uint8* StubHeaterResponse::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubHeaterResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 HeaterGroupId = 1;
+ if (this->heatergroupid() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->heatergroupid(), target);
+ }
+
+ // uint32 HeaterTemperatureSensor = 2;
+ if (this->heatertemperaturesensor() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->heatertemperaturesensor(), target);
+ }
+
+ // bool Status = 3;
+ if (this->status() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(3, this->status(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubHeaterResponse)
+ return target;
+}
+
+size_t StubHeaterResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubHeaterResponse)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // uint32 HeaterGroupId = 1;
+ if (this->heatergroupid() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->heatergroupid());
+ }
+
+ // uint32 HeaterTemperatureSensor = 2;
+ if (this->heatertemperaturesensor() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->heatertemperaturesensor());
+ }
+
+ // bool Status = 3;
+ if (this->status() != 0) {
+ 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 StubHeaterResponse::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubHeaterResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ const StubHeaterResponse* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StubHeaterResponse>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubHeaterResponse)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubHeaterResponse)
+ MergeFrom(*source);
+ }
+}
+
+void StubHeaterResponse::MergeFrom(const StubHeaterResponse& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubHeaterResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.heatergroupid() != 0) {
+ set_heatergroupid(from.heatergroupid());
+ }
+ if (from.heatertemperaturesensor() != 0) {
+ set_heatertemperaturesensor(from.heatertemperaturesensor());
+ }
+ if (from.status() != 0) {
+ set_status(from.status());
+ }
+}
+
+void StubHeaterResponse::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubHeaterResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StubHeaterResponse::CopyFrom(const StubHeaterResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubHeaterResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StubHeaterResponse::IsInitialized() const {
+ return true;
+}
+
+void StubHeaterResponse::Swap(StubHeaterResponse* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StubHeaterResponse::InternalSwap(StubHeaterResponse* other) {
+ using std::swap;
+ swap(heatergroupid_, other->heatergroupid_);
+ swap(heatertemperaturesensor_, other->heatertemperaturesensor_);
+ swap(status_, other->status_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StubHeaterResponse::GetMetadata() const {
+ protobuf_StubHeaterResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubHeaterResponse_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StubHeaterResponse
+
+// uint32 HeaterGroupId = 1;
+void StubHeaterResponse::clear_heatergroupid() {
+ heatergroupid_ = 0u;
+}
+::google::protobuf::uint32 StubHeaterResponse::heatergroupid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubHeaterResponse.HeaterGroupId)
+ return heatergroupid_;
+}
+void StubHeaterResponse::set_heatergroupid(::google::protobuf::uint32 value) {
+
+ heatergroupid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubHeaterResponse.HeaterGroupId)
+}
+
+// uint32 HeaterTemperatureSensor = 2;
+void StubHeaterResponse::clear_heatertemperaturesensor() {
+ heatertemperaturesensor_ = 0u;
+}
+::google::protobuf::uint32 StubHeaterResponse::heatertemperaturesensor() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubHeaterResponse.HeaterTemperatureSensor)
+ return heatertemperaturesensor_;
+}
+void StubHeaterResponse::set_heatertemperaturesensor(::google::protobuf::uint32 value) {
+
+ heatertemperaturesensor_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubHeaterResponse.HeaterTemperatureSensor)
+}
+
+// bool Status = 3;
+void StubHeaterResponse::clear_status() {
+ status_ = false;
+}
+bool StubHeaterResponse::status() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubHeaterResponse.Status)
+ return status_;
+}
+void StubHeaterResponse::set_status(bool value) {
+
+ status_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubHeaterResponse.Status)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubHeaterResponse.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubHeaterResponse.pb.h
new file mode 100644
index 000000000..c545f78f6
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubHeaterResponse.pb.h
@@ -0,0 +1,241 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubHeaterResponse.proto
+
+#ifndef PROTOBUF_StubHeaterResponse_2eproto__INCLUDED
+#define PROTOBUF_StubHeaterResponse_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+class StubHeaterResponse;
+class StubHeaterResponseDefaultTypeInternal;
+extern StubHeaterResponseDefaultTypeInternal _StubHeaterResponse_default_instance_;
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+
+namespace protobuf_StubHeaterResponse_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_StubHeaterResponse_2eproto
+
+// ===================================================================
+
+class StubHeaterResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Stubs.StubHeaterResponse) */ {
+ public:
+ StubHeaterResponse();
+ virtual ~StubHeaterResponse();
+
+ StubHeaterResponse(const StubHeaterResponse& from);
+
+ inline StubHeaterResponse& operator=(const StubHeaterResponse& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ StubHeaterResponse(StubHeaterResponse&& from) noexcept
+ : StubHeaterResponse() {
+ *this = ::std::move(from);
+ }
+
+ inline StubHeaterResponse& operator=(StubHeaterResponse&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StubHeaterResponse& default_instance();
+
+ static inline const StubHeaterResponse* internal_default_instance() {
+ return reinterpret_cast<const StubHeaterResponse*>(
+ &_StubHeaterResponse_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(StubHeaterResponse* other);
+ friend void swap(StubHeaterResponse& a, StubHeaterResponse& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline StubHeaterResponse* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ StubHeaterResponse* 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 StubHeaterResponse& from);
+ void MergeFrom(const StubHeaterResponse& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(StubHeaterResponse* 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 -------------------------------------------------------
+
+ // uint32 HeaterGroupId = 1;
+ void clear_heatergroupid();
+ static const int kHeaterGroupIdFieldNumber = 1;
+ ::google::protobuf::uint32 heatergroupid() const;
+ void set_heatergroupid(::google::protobuf::uint32 value);
+
+ // uint32 HeaterTemperatureSensor = 2;
+ void clear_heatertemperaturesensor();
+ static const int kHeaterTemperatureSensorFieldNumber = 2;
+ ::google::protobuf::uint32 heatertemperaturesensor() const;
+ void set_heatertemperaturesensor(::google::protobuf::uint32 value);
+
+ // bool Status = 3;
+ void clear_status();
+ static const int kStatusFieldNumber = 3;
+ bool status() const;
+ void set_status(bool value);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.StubHeaterResponse)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::uint32 heatergroupid_;
+ ::google::protobuf::uint32 heatertemperaturesensor_;
+ bool status_;
+ mutable int _cached_size_;
+ friend struct protobuf_StubHeaterResponse_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// StubHeaterResponse
+
+// uint32 HeaterGroupId = 1;
+inline void StubHeaterResponse::clear_heatergroupid() {
+ heatergroupid_ = 0u;
+}
+inline ::google::protobuf::uint32 StubHeaterResponse::heatergroupid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubHeaterResponse.HeaterGroupId)
+ return heatergroupid_;
+}
+inline void StubHeaterResponse::set_heatergroupid(::google::protobuf::uint32 value) {
+
+ heatergroupid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubHeaterResponse.HeaterGroupId)
+}
+
+// uint32 HeaterTemperatureSensor = 2;
+inline void StubHeaterResponse::clear_heatertemperaturesensor() {
+ heatertemperaturesensor_ = 0u;
+}
+inline ::google::protobuf::uint32 StubHeaterResponse::heatertemperaturesensor() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubHeaterResponse.HeaterTemperatureSensor)
+ return heatertemperaturesensor_;
+}
+inline void StubHeaterResponse::set_heatertemperaturesensor(::google::protobuf::uint32 value) {
+
+ heatertemperaturesensor_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubHeaterResponse.HeaterTemperatureSensor)
+}
+
+// bool Status = 3;
+inline void StubHeaterResponse::clear_status() {
+ status_ = false;
+}
+inline bool StubHeaterResponse::status() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubHeaterResponse.Status)
+ return status_;
+}
+inline void StubHeaterResponse::set_status(bool value) {
+
+ status_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubHeaterResponse.Status)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_StubHeaterResponse_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubMotorEncoderRequest.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubMotorEncoderRequest.pb.cc
new file mode 100644
index 000000000..69a608de4
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubMotorEncoderRequest.pb.cc
@@ -0,0 +1,546 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubMotorEncoderRequest.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "StubMotorEncoderRequest.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 Tango {
+namespace PMR {
+namespace Stubs {
+class StubMotorEncoderRequestDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<StubMotorEncoderRequest>
+ _instance;
+} _StubMotorEncoderRequest_default_instance_;
+
+namespace protobuf_StubMotorEncoderRequest_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubMotorEncoderRequest, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubMotorEncoderRequest, motorid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubMotorEncoderRequest, readencspeed_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubMotorEncoderRequest, readdirection_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubMotorEncoderRequest, motion_control_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(StubMotorEncoderRequest)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_StubMotorEncoderRequest_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "StubMotorEncoderRequest.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _StubMotorEncoderRequest_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_StubMotorEncoderRequest_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n\035StubMotorEncoderRequest.proto\022\017Tango.P"
+ "MR.Stubs\"o\n\027StubMotorEncoderRequest\022\017\n\007M"
+ "otorId\030\001 \001(\r\022\024\n\014ReadEncSpeed\030\002 \001(\010\022\025\n\rRe"
+ "adDirection\030\003 \001(\010\022\026\n\016Motion_Control\030\004 \001("
+ "\010B\033\n\031com.twine.tango.pmr.stubsb\006proto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 198);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "StubMotorEncoderRequest.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_StubMotorEncoderRequest_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StubMotorEncoderRequest::kMotorIdFieldNumber;
+const int StubMotorEncoderRequest::kReadEncSpeedFieldNumber;
+const int StubMotorEncoderRequest::kReadDirectionFieldNumber;
+const int StubMotorEncoderRequest::kMotionControlFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StubMotorEncoderRequest::StubMotorEncoderRequest()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_StubMotorEncoderRequest_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubMotorEncoderRequest)
+}
+StubMotorEncoderRequest::StubMotorEncoderRequest(const StubMotorEncoderRequest& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::memcpy(&motorid_, &from.motorid_,
+ static_cast<size_t>(reinterpret_cast<char*>(&motion_control_) -
+ reinterpret_cast<char*>(&motorid_)) + sizeof(motion_control_));
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubMotorEncoderRequest)
+}
+
+void StubMotorEncoderRequest::SharedCtor() {
+ ::memset(&motorid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&motion_control_) -
+ reinterpret_cast<char*>(&motorid_)) + sizeof(motion_control_));
+ _cached_size_ = 0;
+}
+
+StubMotorEncoderRequest::~StubMotorEncoderRequest() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubMotorEncoderRequest)
+ SharedDtor();
+}
+
+void StubMotorEncoderRequest::SharedDtor() {
+}
+
+void StubMotorEncoderRequest::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StubMotorEncoderRequest::descriptor() {
+ protobuf_StubMotorEncoderRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubMotorEncoderRequest_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StubMotorEncoderRequest& StubMotorEncoderRequest::default_instance() {
+ protobuf_StubMotorEncoderRequest_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+StubMotorEncoderRequest* StubMotorEncoderRequest::New(::google::protobuf::Arena* arena) const {
+ StubMotorEncoderRequest* n = new StubMotorEncoderRequest;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StubMotorEncoderRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubMotorEncoderRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ ::memset(&motorid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&motion_control_) -
+ reinterpret_cast<char*>(&motorid_)) + sizeof(motion_control_));
+ _internal_metadata_.Clear();
+}
+
+bool StubMotorEncoderRequest::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:Tango.PMR.Stubs.StubMotorEncoderRequest)
+ 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)) {
+ // uint32 MotorId = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &motorid_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // bool ReadEncSpeed = 2;
+ case 2: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &readencspeed_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // bool ReadDirection = 3;
+ case 3: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &readdirection_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // bool Motion_Control = 4;
+ case 4: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &motion_control_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubMotorEncoderRequest)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubMotorEncoderRequest)
+ return false;
+#undef DO_
+}
+
+void StubMotorEncoderRequest::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubMotorEncoderRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 MotorId = 1;
+ if (this->motorid() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->motorid(), output);
+ }
+
+ // bool ReadEncSpeed = 2;
+ if (this->readencspeed() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(2, this->readencspeed(), output);
+ }
+
+ // bool ReadDirection = 3;
+ if (this->readdirection() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(3, this->readdirection(), output);
+ }
+
+ // bool Motion_Control = 4;
+ if (this->motion_control() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(4, this->motion_control(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubMotorEncoderRequest)
+}
+
+::google::protobuf::uint8* StubMotorEncoderRequest::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubMotorEncoderRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 MotorId = 1;
+ if (this->motorid() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->motorid(), target);
+ }
+
+ // bool ReadEncSpeed = 2;
+ if (this->readencspeed() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(2, this->readencspeed(), target);
+ }
+
+ // bool ReadDirection = 3;
+ if (this->readdirection() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(3, this->readdirection(), target);
+ }
+
+ // bool Motion_Control = 4;
+ if (this->motion_control() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(4, this->motion_control(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubMotorEncoderRequest)
+ return target;
+}
+
+size_t StubMotorEncoderRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubMotorEncoderRequest)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // uint32 MotorId = 1;
+ if (this->motorid() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->motorid());
+ }
+
+ // bool ReadEncSpeed = 2;
+ if (this->readencspeed() != 0) {
+ total_size += 1 + 1;
+ }
+
+ // bool ReadDirection = 3;
+ if (this->readdirection() != 0) {
+ total_size += 1 + 1;
+ }
+
+ // bool Motion_Control = 4;
+ if (this->motion_control() != 0) {
+ 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 StubMotorEncoderRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubMotorEncoderRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ const StubMotorEncoderRequest* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StubMotorEncoderRequest>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubMotorEncoderRequest)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubMotorEncoderRequest)
+ MergeFrom(*source);
+ }
+}
+
+void StubMotorEncoderRequest::MergeFrom(const StubMotorEncoderRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubMotorEncoderRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.motorid() != 0) {
+ set_motorid(from.motorid());
+ }
+ if (from.readencspeed() != 0) {
+ set_readencspeed(from.readencspeed());
+ }
+ if (from.readdirection() != 0) {
+ set_readdirection(from.readdirection());
+ }
+ if (from.motion_control() != 0) {
+ set_motion_control(from.motion_control());
+ }
+}
+
+void StubMotorEncoderRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubMotorEncoderRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StubMotorEncoderRequest::CopyFrom(const StubMotorEncoderRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubMotorEncoderRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StubMotorEncoderRequest::IsInitialized() const {
+ return true;
+}
+
+void StubMotorEncoderRequest::Swap(StubMotorEncoderRequest* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StubMotorEncoderRequest::InternalSwap(StubMotorEncoderRequest* other) {
+ using std::swap;
+ swap(motorid_, other->motorid_);
+ swap(readencspeed_, other->readencspeed_);
+ swap(readdirection_, other->readdirection_);
+ swap(motion_control_, other->motion_control_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StubMotorEncoderRequest::GetMetadata() const {
+ protobuf_StubMotorEncoderRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubMotorEncoderRequest_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StubMotorEncoderRequest
+
+// uint32 MotorId = 1;
+void StubMotorEncoderRequest::clear_motorid() {
+ motorid_ = 0u;
+}
+::google::protobuf::uint32 StubMotorEncoderRequest::motorid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubMotorEncoderRequest.MotorId)
+ return motorid_;
+}
+void StubMotorEncoderRequest::set_motorid(::google::protobuf::uint32 value) {
+
+ motorid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubMotorEncoderRequest.MotorId)
+}
+
+// bool ReadEncSpeed = 2;
+void StubMotorEncoderRequest::clear_readencspeed() {
+ readencspeed_ = false;
+}
+bool StubMotorEncoderRequest::readencspeed() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubMotorEncoderRequest.ReadEncSpeed)
+ return readencspeed_;
+}
+void StubMotorEncoderRequest::set_readencspeed(bool value) {
+
+ readencspeed_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubMotorEncoderRequest.ReadEncSpeed)
+}
+
+// bool ReadDirection = 3;
+void StubMotorEncoderRequest::clear_readdirection() {
+ readdirection_ = false;
+}
+bool StubMotorEncoderRequest::readdirection() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubMotorEncoderRequest.ReadDirection)
+ return readdirection_;
+}
+void StubMotorEncoderRequest::set_readdirection(bool value) {
+
+ readdirection_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubMotorEncoderRequest.ReadDirection)
+}
+
+// bool Motion_Control = 4;
+void StubMotorEncoderRequest::clear_motion_control() {
+ motion_control_ = false;
+}
+bool StubMotorEncoderRequest::motion_control() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubMotorEncoderRequest.Motion_Control)
+ return motion_control_;
+}
+void StubMotorEncoderRequest::set_motion_control(bool value) {
+
+ motion_control_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubMotorEncoderRequest.Motion_Control)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubMotorEncoderRequest.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubMotorEncoderRequest.pb.h
new file mode 100644
index 000000000..7d6364139
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubMotorEncoderRequest.pb.h
@@ -0,0 +1,262 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubMotorEncoderRequest.proto
+
+#ifndef PROTOBUF_StubMotorEncoderRequest_2eproto__INCLUDED
+#define PROTOBUF_StubMotorEncoderRequest_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+class StubMotorEncoderRequest;
+class StubMotorEncoderRequestDefaultTypeInternal;
+extern StubMotorEncoderRequestDefaultTypeInternal _StubMotorEncoderRequest_default_instance_;
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+
+namespace protobuf_StubMotorEncoderRequest_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_StubMotorEncoderRequest_2eproto
+
+// ===================================================================
+
+class StubMotorEncoderRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Stubs.StubMotorEncoderRequest) */ {
+ public:
+ StubMotorEncoderRequest();
+ virtual ~StubMotorEncoderRequest();
+
+ StubMotorEncoderRequest(const StubMotorEncoderRequest& from);
+
+ inline StubMotorEncoderRequest& operator=(const StubMotorEncoderRequest& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ StubMotorEncoderRequest(StubMotorEncoderRequest&& from) noexcept
+ : StubMotorEncoderRequest() {
+ *this = ::std::move(from);
+ }
+
+ inline StubMotorEncoderRequest& operator=(StubMotorEncoderRequest&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StubMotorEncoderRequest& default_instance();
+
+ static inline const StubMotorEncoderRequest* internal_default_instance() {
+ return reinterpret_cast<const StubMotorEncoderRequest*>(
+ &_StubMotorEncoderRequest_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(StubMotorEncoderRequest* other);
+ friend void swap(StubMotorEncoderRequest& a, StubMotorEncoderRequest& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline StubMotorEncoderRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ StubMotorEncoderRequest* 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 StubMotorEncoderRequest& from);
+ void MergeFrom(const StubMotorEncoderRequest& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(StubMotorEncoderRequest* 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 -------------------------------------------------------
+
+ // uint32 MotorId = 1;
+ void clear_motorid();
+ static const int kMotorIdFieldNumber = 1;
+ ::google::protobuf::uint32 motorid() const;
+ void set_motorid(::google::protobuf::uint32 value);
+
+ // bool ReadEncSpeed = 2;
+ void clear_readencspeed();
+ static const int kReadEncSpeedFieldNumber = 2;
+ bool readencspeed() const;
+ void set_readencspeed(bool value);
+
+ // bool ReadDirection = 3;
+ void clear_readdirection();
+ static const int kReadDirectionFieldNumber = 3;
+ bool readdirection() const;
+ void set_readdirection(bool value);
+
+ // bool Motion_Control = 4;
+ void clear_motion_control();
+ static const int kMotionControlFieldNumber = 4;
+ bool motion_control() const;
+ void set_motion_control(bool value);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.StubMotorEncoderRequest)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::uint32 motorid_;
+ bool readencspeed_;
+ bool readdirection_;
+ bool motion_control_;
+ mutable int _cached_size_;
+ friend struct protobuf_StubMotorEncoderRequest_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// StubMotorEncoderRequest
+
+// uint32 MotorId = 1;
+inline void StubMotorEncoderRequest::clear_motorid() {
+ motorid_ = 0u;
+}
+inline ::google::protobuf::uint32 StubMotorEncoderRequest::motorid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubMotorEncoderRequest.MotorId)
+ return motorid_;
+}
+inline void StubMotorEncoderRequest::set_motorid(::google::protobuf::uint32 value) {
+
+ motorid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubMotorEncoderRequest.MotorId)
+}
+
+// bool ReadEncSpeed = 2;
+inline void StubMotorEncoderRequest::clear_readencspeed() {
+ readencspeed_ = false;
+}
+inline bool StubMotorEncoderRequest::readencspeed() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubMotorEncoderRequest.ReadEncSpeed)
+ return readencspeed_;
+}
+inline void StubMotorEncoderRequest::set_readencspeed(bool value) {
+
+ readencspeed_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubMotorEncoderRequest.ReadEncSpeed)
+}
+
+// bool ReadDirection = 3;
+inline void StubMotorEncoderRequest::clear_readdirection() {
+ readdirection_ = false;
+}
+inline bool StubMotorEncoderRequest::readdirection() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubMotorEncoderRequest.ReadDirection)
+ return readdirection_;
+}
+inline void StubMotorEncoderRequest::set_readdirection(bool value) {
+
+ readdirection_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubMotorEncoderRequest.ReadDirection)
+}
+
+// bool Motion_Control = 4;
+inline void StubMotorEncoderRequest::clear_motion_control() {
+ motion_control_ = false;
+}
+inline bool StubMotorEncoderRequest::motion_control() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubMotorEncoderRequest.Motion_Control)
+ return motion_control_;
+}
+inline void StubMotorEncoderRequest::set_motion_control(bool value) {
+
+ motion_control_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubMotorEncoderRequest.Motion_Control)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_StubMotorEncoderRequest_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubMotorEncoderResponse.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubMotorEncoderResponse.pb.cc
new file mode 100644
index 000000000..220d70a86
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubMotorEncoderResponse.pb.cc
@@ -0,0 +1,600 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubMotorEncoderResponse.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "StubMotorEncoderResponse.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 Tango {
+namespace PMR {
+namespace Stubs {
+class StubMotorEncoderResponseDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<StubMotorEncoderResponse>
+ _instance;
+} _StubMotorEncoderResponse_default_instance_;
+
+namespace protobuf_StubMotorEncoderResponse_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubMotorEncoderResponse, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubMotorEncoderResponse, encoderid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubMotorEncoderResponse, encoderversion_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubMotorEncoderResponse, motorspeed_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubMotorEncoderResponse, motordirection_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubMotorEncoderResponse, status_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(StubMotorEncoderResponse)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_StubMotorEncoderResponse_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "StubMotorEncoderResponse.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _StubMotorEncoderResponse_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_StubMotorEncoderResponse_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n\036StubMotorEncoderResponse.proto\022\017Tango."
+ "PMR.Stubs\"\201\001\n\030StubMotorEncoderResponse\022\021"
+ "\n\tEncoderId\030\001 \001(\r\022\026\n\016EncoderVersion\030\002 \001("
+ "\r\022\022\n\nMotorSpeed\030\003 \001(\005\022\026\n\016MotorDirection\030"
+ "\004 \001(\010\022\016\n\006Status\030\005 \001(\010B\033\n\031com.twine.tango"
+ ".pmr.stubsb\006proto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 218);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "StubMotorEncoderResponse.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_StubMotorEncoderResponse_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StubMotorEncoderResponse::kEncoderIdFieldNumber;
+const int StubMotorEncoderResponse::kEncoderVersionFieldNumber;
+const int StubMotorEncoderResponse::kMotorSpeedFieldNumber;
+const int StubMotorEncoderResponse::kMotorDirectionFieldNumber;
+const int StubMotorEncoderResponse::kStatusFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StubMotorEncoderResponse::StubMotorEncoderResponse()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_StubMotorEncoderResponse_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubMotorEncoderResponse)
+}
+StubMotorEncoderResponse::StubMotorEncoderResponse(const StubMotorEncoderResponse& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::memcpy(&encoderid_, &from.encoderid_,
+ static_cast<size_t>(reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&encoderid_)) + sizeof(status_));
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubMotorEncoderResponse)
+}
+
+void StubMotorEncoderResponse::SharedCtor() {
+ ::memset(&encoderid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&encoderid_)) + sizeof(status_));
+ _cached_size_ = 0;
+}
+
+StubMotorEncoderResponse::~StubMotorEncoderResponse() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubMotorEncoderResponse)
+ SharedDtor();
+}
+
+void StubMotorEncoderResponse::SharedDtor() {
+}
+
+void StubMotorEncoderResponse::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StubMotorEncoderResponse::descriptor() {
+ protobuf_StubMotorEncoderResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubMotorEncoderResponse_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StubMotorEncoderResponse& StubMotorEncoderResponse::default_instance() {
+ protobuf_StubMotorEncoderResponse_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+StubMotorEncoderResponse* StubMotorEncoderResponse::New(::google::protobuf::Arena* arena) const {
+ StubMotorEncoderResponse* n = new StubMotorEncoderResponse;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StubMotorEncoderResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubMotorEncoderResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ ::memset(&encoderid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&encoderid_)) + sizeof(status_));
+ _internal_metadata_.Clear();
+}
+
+bool StubMotorEncoderResponse::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:Tango.PMR.Stubs.StubMotorEncoderResponse)
+ 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)) {
+ // uint32 EncoderId = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &encoderid_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 EncoderVersion = 2;
+ case 2: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &encoderversion_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // int32 MotorSpeed = 3;
+ case 3: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+ input, &motorspeed_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // bool MotorDirection = 4;
+ case 4: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &motordirection_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // bool Status = 5;
+ case 5: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(40u /* 40 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &status_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubMotorEncoderResponse)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubMotorEncoderResponse)
+ return false;
+#undef DO_
+}
+
+void StubMotorEncoderResponse::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubMotorEncoderResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 EncoderId = 1;
+ if (this->encoderid() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->encoderid(), output);
+ }
+
+ // uint32 EncoderVersion = 2;
+ if (this->encoderversion() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->encoderversion(), output);
+ }
+
+ // int32 MotorSpeed = 3;
+ if (this->motorspeed() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->motorspeed(), output);
+ }
+
+ // bool MotorDirection = 4;
+ if (this->motordirection() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(4, this->motordirection(), output);
+ }
+
+ // bool Status = 5;
+ if (this->status() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(5, this->status(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubMotorEncoderResponse)
+}
+
+::google::protobuf::uint8* StubMotorEncoderResponse::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubMotorEncoderResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 EncoderId = 1;
+ if (this->encoderid() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->encoderid(), target);
+ }
+
+ // uint32 EncoderVersion = 2;
+ if (this->encoderversion() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->encoderversion(), target);
+ }
+
+ // int32 MotorSpeed = 3;
+ if (this->motorspeed() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->motorspeed(), target);
+ }
+
+ // bool MotorDirection = 4;
+ if (this->motordirection() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(4, this->motordirection(), target);
+ }
+
+ // bool Status = 5;
+ if (this->status() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(5, this->status(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubMotorEncoderResponse)
+ return target;
+}
+
+size_t StubMotorEncoderResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubMotorEncoderResponse)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // uint32 EncoderId = 1;
+ if (this->encoderid() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->encoderid());
+ }
+
+ // uint32 EncoderVersion = 2;
+ if (this->encoderversion() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->encoderversion());
+ }
+
+ // int32 MotorSpeed = 3;
+ if (this->motorspeed() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::Int32Size(
+ this->motorspeed());
+ }
+
+ // bool MotorDirection = 4;
+ if (this->motordirection() != 0) {
+ total_size += 1 + 1;
+ }
+
+ // bool Status = 5;
+ if (this->status() != 0) {
+ 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 StubMotorEncoderResponse::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubMotorEncoderResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ const StubMotorEncoderResponse* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StubMotorEncoderResponse>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubMotorEncoderResponse)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubMotorEncoderResponse)
+ MergeFrom(*source);
+ }
+}
+
+void StubMotorEncoderResponse::MergeFrom(const StubMotorEncoderResponse& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubMotorEncoderResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.encoderid() != 0) {
+ set_encoderid(from.encoderid());
+ }
+ if (from.encoderversion() != 0) {
+ set_encoderversion(from.encoderversion());
+ }
+ if (from.motorspeed() != 0) {
+ set_motorspeed(from.motorspeed());
+ }
+ if (from.motordirection() != 0) {
+ set_motordirection(from.motordirection());
+ }
+ if (from.status() != 0) {
+ set_status(from.status());
+ }
+}
+
+void StubMotorEncoderResponse::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubMotorEncoderResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StubMotorEncoderResponse::CopyFrom(const StubMotorEncoderResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubMotorEncoderResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StubMotorEncoderResponse::IsInitialized() const {
+ return true;
+}
+
+void StubMotorEncoderResponse::Swap(StubMotorEncoderResponse* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StubMotorEncoderResponse::InternalSwap(StubMotorEncoderResponse* other) {
+ using std::swap;
+ swap(encoderid_, other->encoderid_);
+ swap(encoderversion_, other->encoderversion_);
+ swap(motorspeed_, other->motorspeed_);
+ swap(motordirection_, other->motordirection_);
+ swap(status_, other->status_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StubMotorEncoderResponse::GetMetadata() const {
+ protobuf_StubMotorEncoderResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubMotorEncoderResponse_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StubMotorEncoderResponse
+
+// uint32 EncoderId = 1;
+void StubMotorEncoderResponse::clear_encoderid() {
+ encoderid_ = 0u;
+}
+::google::protobuf::uint32 StubMotorEncoderResponse::encoderid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubMotorEncoderResponse.EncoderId)
+ return encoderid_;
+}
+void StubMotorEncoderResponse::set_encoderid(::google::protobuf::uint32 value) {
+
+ encoderid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubMotorEncoderResponse.EncoderId)
+}
+
+// uint32 EncoderVersion = 2;
+void StubMotorEncoderResponse::clear_encoderversion() {
+ encoderversion_ = 0u;
+}
+::google::protobuf::uint32 StubMotorEncoderResponse::encoderversion() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubMotorEncoderResponse.EncoderVersion)
+ return encoderversion_;
+}
+void StubMotorEncoderResponse::set_encoderversion(::google::protobuf::uint32 value) {
+
+ encoderversion_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubMotorEncoderResponse.EncoderVersion)
+}
+
+// int32 MotorSpeed = 3;
+void StubMotorEncoderResponse::clear_motorspeed() {
+ motorspeed_ = 0;
+}
+::google::protobuf::int32 StubMotorEncoderResponse::motorspeed() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubMotorEncoderResponse.MotorSpeed)
+ return motorspeed_;
+}
+void StubMotorEncoderResponse::set_motorspeed(::google::protobuf::int32 value) {
+
+ motorspeed_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubMotorEncoderResponse.MotorSpeed)
+}
+
+// bool MotorDirection = 4;
+void StubMotorEncoderResponse::clear_motordirection() {
+ motordirection_ = false;
+}
+bool StubMotorEncoderResponse::motordirection() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubMotorEncoderResponse.MotorDirection)
+ return motordirection_;
+}
+void StubMotorEncoderResponse::set_motordirection(bool value) {
+
+ motordirection_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubMotorEncoderResponse.MotorDirection)
+}
+
+// bool Status = 5;
+void StubMotorEncoderResponse::clear_status() {
+ status_ = false;
+}
+bool StubMotorEncoderResponse::status() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubMotorEncoderResponse.Status)
+ return status_;
+}
+void StubMotorEncoderResponse::set_status(bool value) {
+
+ status_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubMotorEncoderResponse.Status)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubMotorEncoderResponse.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubMotorEncoderResponse.pb.h
new file mode 100644
index 000000000..41c8f240c
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubMotorEncoderResponse.pb.h
@@ -0,0 +1,283 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubMotorEncoderResponse.proto
+
+#ifndef PROTOBUF_StubMotorEncoderResponse_2eproto__INCLUDED
+#define PROTOBUF_StubMotorEncoderResponse_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+class StubMotorEncoderResponse;
+class StubMotorEncoderResponseDefaultTypeInternal;
+extern StubMotorEncoderResponseDefaultTypeInternal _StubMotorEncoderResponse_default_instance_;
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+
+namespace protobuf_StubMotorEncoderResponse_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_StubMotorEncoderResponse_2eproto
+
+// ===================================================================
+
+class StubMotorEncoderResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Stubs.StubMotorEncoderResponse) */ {
+ public:
+ StubMotorEncoderResponse();
+ virtual ~StubMotorEncoderResponse();
+
+ StubMotorEncoderResponse(const StubMotorEncoderResponse& from);
+
+ inline StubMotorEncoderResponse& operator=(const StubMotorEncoderResponse& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ StubMotorEncoderResponse(StubMotorEncoderResponse&& from) noexcept
+ : StubMotorEncoderResponse() {
+ *this = ::std::move(from);
+ }
+
+ inline StubMotorEncoderResponse& operator=(StubMotorEncoderResponse&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StubMotorEncoderResponse& default_instance();
+
+ static inline const StubMotorEncoderResponse* internal_default_instance() {
+ return reinterpret_cast<const StubMotorEncoderResponse*>(
+ &_StubMotorEncoderResponse_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(StubMotorEncoderResponse* other);
+ friend void swap(StubMotorEncoderResponse& a, StubMotorEncoderResponse& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline StubMotorEncoderResponse* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ StubMotorEncoderResponse* 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 StubMotorEncoderResponse& from);
+ void MergeFrom(const StubMotorEncoderResponse& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(StubMotorEncoderResponse* 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 -------------------------------------------------------
+
+ // uint32 EncoderId = 1;
+ void clear_encoderid();
+ static const int kEncoderIdFieldNumber = 1;
+ ::google::protobuf::uint32 encoderid() const;
+ void set_encoderid(::google::protobuf::uint32 value);
+
+ // uint32 EncoderVersion = 2;
+ void clear_encoderversion();
+ static const int kEncoderVersionFieldNumber = 2;
+ ::google::protobuf::uint32 encoderversion() const;
+ void set_encoderversion(::google::protobuf::uint32 value);
+
+ // int32 MotorSpeed = 3;
+ void clear_motorspeed();
+ static const int kMotorSpeedFieldNumber = 3;
+ ::google::protobuf::int32 motorspeed() const;
+ void set_motorspeed(::google::protobuf::int32 value);
+
+ // bool MotorDirection = 4;
+ void clear_motordirection();
+ static const int kMotorDirectionFieldNumber = 4;
+ bool motordirection() const;
+ void set_motordirection(bool value);
+
+ // bool Status = 5;
+ void clear_status();
+ static const int kStatusFieldNumber = 5;
+ bool status() const;
+ void set_status(bool value);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.StubMotorEncoderResponse)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::uint32 encoderid_;
+ ::google::protobuf::uint32 encoderversion_;
+ ::google::protobuf::int32 motorspeed_;
+ bool motordirection_;
+ bool status_;
+ mutable int _cached_size_;
+ friend struct protobuf_StubMotorEncoderResponse_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// StubMotorEncoderResponse
+
+// uint32 EncoderId = 1;
+inline void StubMotorEncoderResponse::clear_encoderid() {
+ encoderid_ = 0u;
+}
+inline ::google::protobuf::uint32 StubMotorEncoderResponse::encoderid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubMotorEncoderResponse.EncoderId)
+ return encoderid_;
+}
+inline void StubMotorEncoderResponse::set_encoderid(::google::protobuf::uint32 value) {
+
+ encoderid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubMotorEncoderResponse.EncoderId)
+}
+
+// uint32 EncoderVersion = 2;
+inline void StubMotorEncoderResponse::clear_encoderversion() {
+ encoderversion_ = 0u;
+}
+inline ::google::protobuf::uint32 StubMotorEncoderResponse::encoderversion() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubMotorEncoderResponse.EncoderVersion)
+ return encoderversion_;
+}
+inline void StubMotorEncoderResponse::set_encoderversion(::google::protobuf::uint32 value) {
+
+ encoderversion_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubMotorEncoderResponse.EncoderVersion)
+}
+
+// int32 MotorSpeed = 3;
+inline void StubMotorEncoderResponse::clear_motorspeed() {
+ motorspeed_ = 0;
+}
+inline ::google::protobuf::int32 StubMotorEncoderResponse::motorspeed() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubMotorEncoderResponse.MotorSpeed)
+ return motorspeed_;
+}
+inline void StubMotorEncoderResponse::set_motorspeed(::google::protobuf::int32 value) {
+
+ motorspeed_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubMotorEncoderResponse.MotorSpeed)
+}
+
+// bool MotorDirection = 4;
+inline void StubMotorEncoderResponse::clear_motordirection() {
+ motordirection_ = false;
+}
+inline bool StubMotorEncoderResponse::motordirection() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubMotorEncoderResponse.MotorDirection)
+ return motordirection_;
+}
+inline void StubMotorEncoderResponse::set_motordirection(bool value) {
+
+ motordirection_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubMotorEncoderResponse.MotorDirection)
+}
+
+// bool Status = 5;
+inline void StubMotorEncoderResponse::clear_status() {
+ status_ = false;
+}
+inline bool StubMotorEncoderResponse::status() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubMotorEncoderResponse.Status)
+ return status_;
+}
+inline void StubMotorEncoderResponse::set_status(bool value) {
+
+ status_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubMotorEncoderResponse.Status)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_StubMotorEncoderResponse_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubOptLimitSwitchRequest.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubOptLimitSwitchRequest.pb.cc
new file mode 100644
index 000000000..648a753c0
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubOptLimitSwitchRequest.pb.cc
@@ -0,0 +1,448 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubOptLimitSwitchRequest.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "StubOptLimitSwitchRequest.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 Tango {
+namespace PMR {
+namespace Stubs {
+class StubOptLimitSwitchRequestDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<StubOptLimitSwitchRequest>
+ _instance;
+} _StubOptLimitSwitchRequest_default_instance_;
+
+namespace protobuf_StubOptLimitSwitchRequest_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubOptLimitSwitchRequest, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubOptLimitSwitchRequest, limitswitchrid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubOptLimitSwitchRequest, limitswitchrdisable_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(StubOptLimitSwitchRequest)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_StubOptLimitSwitchRequest_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "StubOptLimitSwitchRequest.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _StubOptLimitSwitchRequest_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_StubOptLimitSwitchRequest_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n\037StubOptLimitSwitchRequest.proto\022\017Tango"
+ ".PMR.Stubs\"P\n\031StubOptLimitSwitchRequest\022"
+ "\026\n\016LimitSwitchrId\030\001 \001(\r\022\033\n\023LimitSwitchrD"
+ "isable\030\002 \001(\010B\033\n\031com.twine.tango.pmr.stub"
+ "sb\006proto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 169);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "StubOptLimitSwitchRequest.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_StubOptLimitSwitchRequest_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StubOptLimitSwitchRequest::kLimitSwitchrIdFieldNumber;
+const int StubOptLimitSwitchRequest::kLimitSwitchrDisableFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StubOptLimitSwitchRequest::StubOptLimitSwitchRequest()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_StubOptLimitSwitchRequest_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubOptLimitSwitchRequest)
+}
+StubOptLimitSwitchRequest::StubOptLimitSwitchRequest(const StubOptLimitSwitchRequest& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::memcpy(&limitswitchrid_, &from.limitswitchrid_,
+ static_cast<size_t>(reinterpret_cast<char*>(&limitswitchrdisable_) -
+ reinterpret_cast<char*>(&limitswitchrid_)) + sizeof(limitswitchrdisable_));
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubOptLimitSwitchRequest)
+}
+
+void StubOptLimitSwitchRequest::SharedCtor() {
+ ::memset(&limitswitchrid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&limitswitchrdisable_) -
+ reinterpret_cast<char*>(&limitswitchrid_)) + sizeof(limitswitchrdisable_));
+ _cached_size_ = 0;
+}
+
+StubOptLimitSwitchRequest::~StubOptLimitSwitchRequest() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubOptLimitSwitchRequest)
+ SharedDtor();
+}
+
+void StubOptLimitSwitchRequest::SharedDtor() {
+}
+
+void StubOptLimitSwitchRequest::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StubOptLimitSwitchRequest::descriptor() {
+ protobuf_StubOptLimitSwitchRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubOptLimitSwitchRequest_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StubOptLimitSwitchRequest& StubOptLimitSwitchRequest::default_instance() {
+ protobuf_StubOptLimitSwitchRequest_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+StubOptLimitSwitchRequest* StubOptLimitSwitchRequest::New(::google::protobuf::Arena* arena) const {
+ StubOptLimitSwitchRequest* n = new StubOptLimitSwitchRequest;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StubOptLimitSwitchRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubOptLimitSwitchRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ ::memset(&limitswitchrid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&limitswitchrdisable_) -
+ reinterpret_cast<char*>(&limitswitchrid_)) + sizeof(limitswitchrdisable_));
+ _internal_metadata_.Clear();
+}
+
+bool StubOptLimitSwitchRequest::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:Tango.PMR.Stubs.StubOptLimitSwitchRequest)
+ 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)) {
+ // uint32 LimitSwitchrId = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &limitswitchrid_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // bool LimitSwitchrDisable = 2;
+ case 2: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &limitswitchrdisable_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubOptLimitSwitchRequest)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubOptLimitSwitchRequest)
+ return false;
+#undef DO_
+}
+
+void StubOptLimitSwitchRequest::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubOptLimitSwitchRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 LimitSwitchrId = 1;
+ if (this->limitswitchrid() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->limitswitchrid(), output);
+ }
+
+ // bool LimitSwitchrDisable = 2;
+ if (this->limitswitchrdisable() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(2, this->limitswitchrdisable(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubOptLimitSwitchRequest)
+}
+
+::google::protobuf::uint8* StubOptLimitSwitchRequest::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubOptLimitSwitchRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 LimitSwitchrId = 1;
+ if (this->limitswitchrid() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->limitswitchrid(), target);
+ }
+
+ // bool LimitSwitchrDisable = 2;
+ if (this->limitswitchrdisable() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(2, this->limitswitchrdisable(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubOptLimitSwitchRequest)
+ return target;
+}
+
+size_t StubOptLimitSwitchRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubOptLimitSwitchRequest)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // uint32 LimitSwitchrId = 1;
+ if (this->limitswitchrid() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->limitswitchrid());
+ }
+
+ // bool LimitSwitchrDisable = 2;
+ if (this->limitswitchrdisable() != 0) {
+ 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 StubOptLimitSwitchRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubOptLimitSwitchRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ const StubOptLimitSwitchRequest* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StubOptLimitSwitchRequest>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubOptLimitSwitchRequest)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubOptLimitSwitchRequest)
+ MergeFrom(*source);
+ }
+}
+
+void StubOptLimitSwitchRequest::MergeFrom(const StubOptLimitSwitchRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubOptLimitSwitchRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.limitswitchrid() != 0) {
+ set_limitswitchrid(from.limitswitchrid());
+ }
+ if (from.limitswitchrdisable() != 0) {
+ set_limitswitchrdisable(from.limitswitchrdisable());
+ }
+}
+
+void StubOptLimitSwitchRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubOptLimitSwitchRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StubOptLimitSwitchRequest::CopyFrom(const StubOptLimitSwitchRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubOptLimitSwitchRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StubOptLimitSwitchRequest::IsInitialized() const {
+ return true;
+}
+
+void StubOptLimitSwitchRequest::Swap(StubOptLimitSwitchRequest* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StubOptLimitSwitchRequest::InternalSwap(StubOptLimitSwitchRequest* other) {
+ using std::swap;
+ swap(limitswitchrid_, other->limitswitchrid_);
+ swap(limitswitchrdisable_, other->limitswitchrdisable_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StubOptLimitSwitchRequest::GetMetadata() const {
+ protobuf_StubOptLimitSwitchRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubOptLimitSwitchRequest_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StubOptLimitSwitchRequest
+
+// uint32 LimitSwitchrId = 1;
+void StubOptLimitSwitchRequest::clear_limitswitchrid() {
+ limitswitchrid_ = 0u;
+}
+::google::protobuf::uint32 StubOptLimitSwitchRequest::limitswitchrid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubOptLimitSwitchRequest.LimitSwitchrId)
+ return limitswitchrid_;
+}
+void StubOptLimitSwitchRequest::set_limitswitchrid(::google::protobuf::uint32 value) {
+
+ limitswitchrid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubOptLimitSwitchRequest.LimitSwitchrId)
+}
+
+// bool LimitSwitchrDisable = 2;
+void StubOptLimitSwitchRequest::clear_limitswitchrdisable() {
+ limitswitchrdisable_ = false;
+}
+bool StubOptLimitSwitchRequest::limitswitchrdisable() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubOptLimitSwitchRequest.LimitSwitchrDisable)
+ return limitswitchrdisable_;
+}
+void StubOptLimitSwitchRequest::set_limitswitchrdisable(bool value) {
+
+ limitswitchrdisable_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubOptLimitSwitchRequest.LimitSwitchrDisable)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubOptLimitSwitchRequest.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubOptLimitSwitchRequest.pb.h
new file mode 100644
index 000000000..5cf5b107e
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubOptLimitSwitchRequest.pb.h
@@ -0,0 +1,220 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubOptLimitSwitchRequest.proto
+
+#ifndef PROTOBUF_StubOptLimitSwitchRequest_2eproto__INCLUDED
+#define PROTOBUF_StubOptLimitSwitchRequest_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+class StubOptLimitSwitchRequest;
+class StubOptLimitSwitchRequestDefaultTypeInternal;
+extern StubOptLimitSwitchRequestDefaultTypeInternal _StubOptLimitSwitchRequest_default_instance_;
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+
+namespace protobuf_StubOptLimitSwitchRequest_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_StubOptLimitSwitchRequest_2eproto
+
+// ===================================================================
+
+class StubOptLimitSwitchRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Stubs.StubOptLimitSwitchRequest) */ {
+ public:
+ StubOptLimitSwitchRequest();
+ virtual ~StubOptLimitSwitchRequest();
+
+ StubOptLimitSwitchRequest(const StubOptLimitSwitchRequest& from);
+
+ inline StubOptLimitSwitchRequest& operator=(const StubOptLimitSwitchRequest& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ StubOptLimitSwitchRequest(StubOptLimitSwitchRequest&& from) noexcept
+ : StubOptLimitSwitchRequest() {
+ *this = ::std::move(from);
+ }
+
+ inline StubOptLimitSwitchRequest& operator=(StubOptLimitSwitchRequest&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StubOptLimitSwitchRequest& default_instance();
+
+ static inline const StubOptLimitSwitchRequest* internal_default_instance() {
+ return reinterpret_cast<const StubOptLimitSwitchRequest*>(
+ &_StubOptLimitSwitchRequest_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(StubOptLimitSwitchRequest* other);
+ friend void swap(StubOptLimitSwitchRequest& a, StubOptLimitSwitchRequest& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline StubOptLimitSwitchRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ StubOptLimitSwitchRequest* 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 StubOptLimitSwitchRequest& from);
+ void MergeFrom(const StubOptLimitSwitchRequest& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(StubOptLimitSwitchRequest* 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 -------------------------------------------------------
+
+ // uint32 LimitSwitchrId = 1;
+ void clear_limitswitchrid();
+ static const int kLimitSwitchrIdFieldNumber = 1;
+ ::google::protobuf::uint32 limitswitchrid() const;
+ void set_limitswitchrid(::google::protobuf::uint32 value);
+
+ // bool LimitSwitchrDisable = 2;
+ void clear_limitswitchrdisable();
+ static const int kLimitSwitchrDisableFieldNumber = 2;
+ bool limitswitchrdisable() const;
+ void set_limitswitchrdisable(bool value);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.StubOptLimitSwitchRequest)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::uint32 limitswitchrid_;
+ bool limitswitchrdisable_;
+ mutable int _cached_size_;
+ friend struct protobuf_StubOptLimitSwitchRequest_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// StubOptLimitSwitchRequest
+
+// uint32 LimitSwitchrId = 1;
+inline void StubOptLimitSwitchRequest::clear_limitswitchrid() {
+ limitswitchrid_ = 0u;
+}
+inline ::google::protobuf::uint32 StubOptLimitSwitchRequest::limitswitchrid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubOptLimitSwitchRequest.LimitSwitchrId)
+ return limitswitchrid_;
+}
+inline void StubOptLimitSwitchRequest::set_limitswitchrid(::google::protobuf::uint32 value) {
+
+ limitswitchrid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubOptLimitSwitchRequest.LimitSwitchrId)
+}
+
+// bool LimitSwitchrDisable = 2;
+inline void StubOptLimitSwitchRequest::clear_limitswitchrdisable() {
+ limitswitchrdisable_ = false;
+}
+inline bool StubOptLimitSwitchRequest::limitswitchrdisable() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubOptLimitSwitchRequest.LimitSwitchrDisable)
+ return limitswitchrdisable_;
+}
+inline void StubOptLimitSwitchRequest::set_limitswitchrdisable(bool value) {
+
+ limitswitchrdisable_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubOptLimitSwitchRequest.LimitSwitchrDisable)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_StubOptLimitSwitchRequest_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubOptLimitSwitchResponse.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubOptLimitSwitchResponse.pb.cc
new file mode 100644
index 000000000..68cac840a
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubOptLimitSwitchResponse.pb.cc
@@ -0,0 +1,497 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubOptLimitSwitchResponse.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "StubOptLimitSwitchResponse.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 Tango {
+namespace PMR {
+namespace Stubs {
+class StubOptLimitSwitchResponseDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<StubOptLimitSwitchResponse>
+ _instance;
+} _StubOptLimitSwitchResponse_default_instance_;
+
+namespace protobuf_StubOptLimitSwitchResponse_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubOptLimitSwitchResponse, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubOptLimitSwitchResponse, limitswitchrid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubOptLimitSwitchResponse, limitswitchditection_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubOptLimitSwitchResponse, status_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(StubOptLimitSwitchResponse)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_StubOptLimitSwitchResponse_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "StubOptLimitSwitchResponse.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _StubOptLimitSwitchResponse_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_StubOptLimitSwitchResponse_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n StubOptLimitSwitchResponse.proto\022\017Tang"
+ "o.PMR.Stubs\"b\n\032StubOptLimitSwitchRespons"
+ "e\022\026\n\016LimitSwitchrId\030\001 \001(\r\022\034\n\024LimitSwitch"
+ "Ditection\030\002 \001(\010\022\016\n\006Status\030\003 \001(\010B\033\n\031com.t"
+ "wine.tango.pmr.stubsb\006proto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 188);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "StubOptLimitSwitchResponse.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_StubOptLimitSwitchResponse_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StubOptLimitSwitchResponse::kLimitSwitchrIdFieldNumber;
+const int StubOptLimitSwitchResponse::kLimitSwitchDitectionFieldNumber;
+const int StubOptLimitSwitchResponse::kStatusFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StubOptLimitSwitchResponse::StubOptLimitSwitchResponse()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_StubOptLimitSwitchResponse_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubOptLimitSwitchResponse)
+}
+StubOptLimitSwitchResponse::StubOptLimitSwitchResponse(const StubOptLimitSwitchResponse& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::memcpy(&limitswitchrid_, &from.limitswitchrid_,
+ static_cast<size_t>(reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&limitswitchrid_)) + sizeof(status_));
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubOptLimitSwitchResponse)
+}
+
+void StubOptLimitSwitchResponse::SharedCtor() {
+ ::memset(&limitswitchrid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&limitswitchrid_)) + sizeof(status_));
+ _cached_size_ = 0;
+}
+
+StubOptLimitSwitchResponse::~StubOptLimitSwitchResponse() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubOptLimitSwitchResponse)
+ SharedDtor();
+}
+
+void StubOptLimitSwitchResponse::SharedDtor() {
+}
+
+void StubOptLimitSwitchResponse::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StubOptLimitSwitchResponse::descriptor() {
+ protobuf_StubOptLimitSwitchResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubOptLimitSwitchResponse_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StubOptLimitSwitchResponse& StubOptLimitSwitchResponse::default_instance() {
+ protobuf_StubOptLimitSwitchResponse_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+StubOptLimitSwitchResponse* StubOptLimitSwitchResponse::New(::google::protobuf::Arena* arena) const {
+ StubOptLimitSwitchResponse* n = new StubOptLimitSwitchResponse;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StubOptLimitSwitchResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubOptLimitSwitchResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ ::memset(&limitswitchrid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&limitswitchrid_)) + sizeof(status_));
+ _internal_metadata_.Clear();
+}
+
+bool StubOptLimitSwitchResponse::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:Tango.PMR.Stubs.StubOptLimitSwitchResponse)
+ 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)) {
+ // uint32 LimitSwitchrId = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &limitswitchrid_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // bool LimitSwitchDitection = 2;
+ case 2: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &limitswitchditection_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // bool Status = 3;
+ case 3: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &status_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubOptLimitSwitchResponse)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubOptLimitSwitchResponse)
+ return false;
+#undef DO_
+}
+
+void StubOptLimitSwitchResponse::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubOptLimitSwitchResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 LimitSwitchrId = 1;
+ if (this->limitswitchrid() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->limitswitchrid(), output);
+ }
+
+ // bool LimitSwitchDitection = 2;
+ if (this->limitswitchditection() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(2, this->limitswitchditection(), output);
+ }
+
+ // bool Status = 3;
+ if (this->status() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(3, this->status(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubOptLimitSwitchResponse)
+}
+
+::google::protobuf::uint8* StubOptLimitSwitchResponse::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubOptLimitSwitchResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 LimitSwitchrId = 1;
+ if (this->limitswitchrid() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->limitswitchrid(), target);
+ }
+
+ // bool LimitSwitchDitection = 2;
+ if (this->limitswitchditection() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(2, this->limitswitchditection(), target);
+ }
+
+ // bool Status = 3;
+ if (this->status() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(3, this->status(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubOptLimitSwitchResponse)
+ return target;
+}
+
+size_t StubOptLimitSwitchResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubOptLimitSwitchResponse)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // uint32 LimitSwitchrId = 1;
+ if (this->limitswitchrid() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->limitswitchrid());
+ }
+
+ // bool LimitSwitchDitection = 2;
+ if (this->limitswitchditection() != 0) {
+ total_size += 1 + 1;
+ }
+
+ // bool Status = 3;
+ if (this->status() != 0) {
+ 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 StubOptLimitSwitchResponse::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubOptLimitSwitchResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ const StubOptLimitSwitchResponse* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StubOptLimitSwitchResponse>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubOptLimitSwitchResponse)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubOptLimitSwitchResponse)
+ MergeFrom(*source);
+ }
+}
+
+void StubOptLimitSwitchResponse::MergeFrom(const StubOptLimitSwitchResponse& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubOptLimitSwitchResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.limitswitchrid() != 0) {
+ set_limitswitchrid(from.limitswitchrid());
+ }
+ if (from.limitswitchditection() != 0) {
+ set_limitswitchditection(from.limitswitchditection());
+ }
+ if (from.status() != 0) {
+ set_status(from.status());
+ }
+}
+
+void StubOptLimitSwitchResponse::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubOptLimitSwitchResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StubOptLimitSwitchResponse::CopyFrom(const StubOptLimitSwitchResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubOptLimitSwitchResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StubOptLimitSwitchResponse::IsInitialized() const {
+ return true;
+}
+
+void StubOptLimitSwitchResponse::Swap(StubOptLimitSwitchResponse* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StubOptLimitSwitchResponse::InternalSwap(StubOptLimitSwitchResponse* other) {
+ using std::swap;
+ swap(limitswitchrid_, other->limitswitchrid_);
+ swap(limitswitchditection_, other->limitswitchditection_);
+ swap(status_, other->status_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StubOptLimitSwitchResponse::GetMetadata() const {
+ protobuf_StubOptLimitSwitchResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubOptLimitSwitchResponse_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StubOptLimitSwitchResponse
+
+// uint32 LimitSwitchrId = 1;
+void StubOptLimitSwitchResponse::clear_limitswitchrid() {
+ limitswitchrid_ = 0u;
+}
+::google::protobuf::uint32 StubOptLimitSwitchResponse::limitswitchrid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubOptLimitSwitchResponse.LimitSwitchrId)
+ return limitswitchrid_;
+}
+void StubOptLimitSwitchResponse::set_limitswitchrid(::google::protobuf::uint32 value) {
+
+ limitswitchrid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubOptLimitSwitchResponse.LimitSwitchrId)
+}
+
+// bool LimitSwitchDitection = 2;
+void StubOptLimitSwitchResponse::clear_limitswitchditection() {
+ limitswitchditection_ = false;
+}
+bool StubOptLimitSwitchResponse::limitswitchditection() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubOptLimitSwitchResponse.LimitSwitchDitection)
+ return limitswitchditection_;
+}
+void StubOptLimitSwitchResponse::set_limitswitchditection(bool value) {
+
+ limitswitchditection_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubOptLimitSwitchResponse.LimitSwitchDitection)
+}
+
+// bool Status = 3;
+void StubOptLimitSwitchResponse::clear_status() {
+ status_ = false;
+}
+bool StubOptLimitSwitchResponse::status() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubOptLimitSwitchResponse.Status)
+ return status_;
+}
+void StubOptLimitSwitchResponse::set_status(bool value) {
+
+ status_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubOptLimitSwitchResponse.Status)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubOptLimitSwitchResponse.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubOptLimitSwitchResponse.pb.h
new file mode 100644
index 000000000..25457b3ac
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubOptLimitSwitchResponse.pb.h
@@ -0,0 +1,241 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubOptLimitSwitchResponse.proto
+
+#ifndef PROTOBUF_StubOptLimitSwitchResponse_2eproto__INCLUDED
+#define PROTOBUF_StubOptLimitSwitchResponse_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+class StubOptLimitSwitchResponse;
+class StubOptLimitSwitchResponseDefaultTypeInternal;
+extern StubOptLimitSwitchResponseDefaultTypeInternal _StubOptLimitSwitchResponse_default_instance_;
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+
+namespace protobuf_StubOptLimitSwitchResponse_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_StubOptLimitSwitchResponse_2eproto
+
+// ===================================================================
+
+class StubOptLimitSwitchResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Stubs.StubOptLimitSwitchResponse) */ {
+ public:
+ StubOptLimitSwitchResponse();
+ virtual ~StubOptLimitSwitchResponse();
+
+ StubOptLimitSwitchResponse(const StubOptLimitSwitchResponse& from);
+
+ inline StubOptLimitSwitchResponse& operator=(const StubOptLimitSwitchResponse& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ StubOptLimitSwitchResponse(StubOptLimitSwitchResponse&& from) noexcept
+ : StubOptLimitSwitchResponse() {
+ *this = ::std::move(from);
+ }
+
+ inline StubOptLimitSwitchResponse& operator=(StubOptLimitSwitchResponse&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StubOptLimitSwitchResponse& default_instance();
+
+ static inline const StubOptLimitSwitchResponse* internal_default_instance() {
+ return reinterpret_cast<const StubOptLimitSwitchResponse*>(
+ &_StubOptLimitSwitchResponse_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(StubOptLimitSwitchResponse* other);
+ friend void swap(StubOptLimitSwitchResponse& a, StubOptLimitSwitchResponse& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline StubOptLimitSwitchResponse* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ StubOptLimitSwitchResponse* 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 StubOptLimitSwitchResponse& from);
+ void MergeFrom(const StubOptLimitSwitchResponse& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(StubOptLimitSwitchResponse* 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 -------------------------------------------------------
+
+ // uint32 LimitSwitchrId = 1;
+ void clear_limitswitchrid();
+ static const int kLimitSwitchrIdFieldNumber = 1;
+ ::google::protobuf::uint32 limitswitchrid() const;
+ void set_limitswitchrid(::google::protobuf::uint32 value);
+
+ // bool LimitSwitchDitection = 2;
+ void clear_limitswitchditection();
+ static const int kLimitSwitchDitectionFieldNumber = 2;
+ bool limitswitchditection() const;
+ void set_limitswitchditection(bool value);
+
+ // bool Status = 3;
+ void clear_status();
+ static const int kStatusFieldNumber = 3;
+ bool status() const;
+ void set_status(bool value);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.StubOptLimitSwitchResponse)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::uint32 limitswitchrid_;
+ bool limitswitchditection_;
+ bool status_;
+ mutable int _cached_size_;
+ friend struct protobuf_StubOptLimitSwitchResponse_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// StubOptLimitSwitchResponse
+
+// uint32 LimitSwitchrId = 1;
+inline void StubOptLimitSwitchResponse::clear_limitswitchrid() {
+ limitswitchrid_ = 0u;
+}
+inline ::google::protobuf::uint32 StubOptLimitSwitchResponse::limitswitchrid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubOptLimitSwitchResponse.LimitSwitchrId)
+ return limitswitchrid_;
+}
+inline void StubOptLimitSwitchResponse::set_limitswitchrid(::google::protobuf::uint32 value) {
+
+ limitswitchrid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubOptLimitSwitchResponse.LimitSwitchrId)
+}
+
+// bool LimitSwitchDitection = 2;
+inline void StubOptLimitSwitchResponse::clear_limitswitchditection() {
+ limitswitchditection_ = false;
+}
+inline bool StubOptLimitSwitchResponse::limitswitchditection() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubOptLimitSwitchResponse.LimitSwitchDitection)
+ return limitswitchditection_;
+}
+inline void StubOptLimitSwitchResponse::set_limitswitchditection(bool value) {
+
+ limitswitchditection_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubOptLimitSwitchResponse.LimitSwitchDitection)
+}
+
+// bool Status = 3;
+inline void StubOptLimitSwitchResponse::clear_status() {
+ status_ = false;
+}
+inline bool StubOptLimitSwitchResponse::status() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubOptLimitSwitchResponse.Status)
+ return status_;
+}
+inline void StubOptLimitSwitchResponse::set_status(bool value) {
+
+ status_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubOptLimitSwitchResponse.Status)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_StubOptLimitSwitchResponse_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubSteperMotorRequest.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubSteperMotorRequest.pb.cc
new file mode 100644
index 000000000..c342f27a2
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubSteperMotorRequest.pb.cc
@@ -0,0 +1,600 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubSteperMotorRequest.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "StubSteperMotorRequest.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 Tango {
+namespace PMR {
+namespace Stubs {
+class StubSteperMotorRequestDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<StubSteperMotorRequest>
+ _instance;
+} _StubSteperMotorRequest_default_instance_;
+
+namespace protobuf_StubSteperMotorRequest_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubSteperMotorRequest, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubSteperMotorRequest, motorid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubSteperMotorRequest, start_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubSteperMotorRequest, setdirection_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubSteperMotorRequest, setmicrostepdivision_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubSteperMotorRequest, setspeed_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(StubSteperMotorRequest)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_StubSteperMotorRequest_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "StubSteperMotorRequest.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _StubSteperMotorRequest_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_StubSteperMotorRequest_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n\034StubSteperMotorRequest.proto\022\017Tango.PM"
+ "R.Stubs\"~\n\026StubSteperMotorRequest\022\017\n\007Mot"
+ "orId\030\001 \001(\r\022\r\n\005Start\030\002 \001(\010\022\024\n\014SetDirectio"
+ "n\030\003 \001(\010\022\034\n\024SetMicrostepDivision\030\004 \001(\r\022\020\n"
+ "\010SetSpeed\030\005 \001(\005B\033\n\031com.twine.tango.pmr.s"
+ "tubsb\006proto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 212);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "StubSteperMotorRequest.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_StubSteperMotorRequest_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StubSteperMotorRequest::kMotorIdFieldNumber;
+const int StubSteperMotorRequest::kStartFieldNumber;
+const int StubSteperMotorRequest::kSetDirectionFieldNumber;
+const int StubSteperMotorRequest::kSetMicrostepDivisionFieldNumber;
+const int StubSteperMotorRequest::kSetSpeedFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StubSteperMotorRequest::StubSteperMotorRequest()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_StubSteperMotorRequest_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubSteperMotorRequest)
+}
+StubSteperMotorRequest::StubSteperMotorRequest(const StubSteperMotorRequest& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::memcpy(&motorid_, &from.motorid_,
+ static_cast<size_t>(reinterpret_cast<char*>(&setspeed_) -
+ reinterpret_cast<char*>(&motorid_)) + sizeof(setspeed_));
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubSteperMotorRequest)
+}
+
+void StubSteperMotorRequest::SharedCtor() {
+ ::memset(&motorid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&setspeed_) -
+ reinterpret_cast<char*>(&motorid_)) + sizeof(setspeed_));
+ _cached_size_ = 0;
+}
+
+StubSteperMotorRequest::~StubSteperMotorRequest() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubSteperMotorRequest)
+ SharedDtor();
+}
+
+void StubSteperMotorRequest::SharedDtor() {
+}
+
+void StubSteperMotorRequest::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StubSteperMotorRequest::descriptor() {
+ protobuf_StubSteperMotorRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubSteperMotorRequest_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StubSteperMotorRequest& StubSteperMotorRequest::default_instance() {
+ protobuf_StubSteperMotorRequest_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+StubSteperMotorRequest* StubSteperMotorRequest::New(::google::protobuf::Arena* arena) const {
+ StubSteperMotorRequest* n = new StubSteperMotorRequest;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StubSteperMotorRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubSteperMotorRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ ::memset(&motorid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&setspeed_) -
+ reinterpret_cast<char*>(&motorid_)) + sizeof(setspeed_));
+ _internal_metadata_.Clear();
+}
+
+bool StubSteperMotorRequest::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:Tango.PMR.Stubs.StubSteperMotorRequest)
+ 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)) {
+ // uint32 MotorId = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &motorid_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // bool Start = 2;
+ case 2: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &start_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // bool SetDirection = 3;
+ case 3: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &setdirection_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 SetMicrostepDivision = 4;
+ case 4: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(32u /* 32 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &setmicrostepdivision_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // int32 SetSpeed = 5;
+ case 5: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(40u /* 40 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
+ input, &setspeed_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubSteperMotorRequest)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubSteperMotorRequest)
+ return false;
+#undef DO_
+}
+
+void StubSteperMotorRequest::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubSteperMotorRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 MotorId = 1;
+ if (this->motorid() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->motorid(), output);
+ }
+
+ // bool Start = 2;
+ if (this->start() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(2, this->start(), output);
+ }
+
+ // bool SetDirection = 3;
+ if (this->setdirection() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(3, this->setdirection(), output);
+ }
+
+ // uint32 SetMicrostepDivision = 4;
+ if (this->setmicrostepdivision() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(4, this->setmicrostepdivision(), output);
+ }
+
+ // int32 SetSpeed = 5;
+ if (this->setspeed() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteInt32(5, this->setspeed(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubSteperMotorRequest)
+}
+
+::google::protobuf::uint8* StubSteperMotorRequest::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubSteperMotorRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 MotorId = 1;
+ if (this->motorid() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->motorid(), target);
+ }
+
+ // bool Start = 2;
+ if (this->start() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(2, this->start(), target);
+ }
+
+ // bool SetDirection = 3;
+ if (this->setdirection() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(3, this->setdirection(), target);
+ }
+
+ // uint32 SetMicrostepDivision = 4;
+ if (this->setmicrostepdivision() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(4, this->setmicrostepdivision(), target);
+ }
+
+ // int32 SetSpeed = 5;
+ if (this->setspeed() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(5, this->setspeed(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubSteperMotorRequest)
+ return target;
+}
+
+size_t StubSteperMotorRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubSteperMotorRequest)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // uint32 MotorId = 1;
+ if (this->motorid() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->motorid());
+ }
+
+ // bool Start = 2;
+ if (this->start() != 0) {
+ total_size += 1 + 1;
+ }
+
+ // bool SetDirection = 3;
+ if (this->setdirection() != 0) {
+ total_size += 1 + 1;
+ }
+
+ // uint32 SetMicrostepDivision = 4;
+ if (this->setmicrostepdivision() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->setmicrostepdivision());
+ }
+
+ // int32 SetSpeed = 5;
+ if (this->setspeed() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::Int32Size(
+ this->setspeed());
+ }
+
+ 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 StubSteperMotorRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubSteperMotorRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ const StubSteperMotorRequest* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StubSteperMotorRequest>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubSteperMotorRequest)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubSteperMotorRequest)
+ MergeFrom(*source);
+ }
+}
+
+void StubSteperMotorRequest::MergeFrom(const StubSteperMotorRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubSteperMotorRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.motorid() != 0) {
+ set_motorid(from.motorid());
+ }
+ if (from.start() != 0) {
+ set_start(from.start());
+ }
+ if (from.setdirection() != 0) {
+ set_setdirection(from.setdirection());
+ }
+ if (from.setmicrostepdivision() != 0) {
+ set_setmicrostepdivision(from.setmicrostepdivision());
+ }
+ if (from.setspeed() != 0) {
+ set_setspeed(from.setspeed());
+ }
+}
+
+void StubSteperMotorRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubSteperMotorRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StubSteperMotorRequest::CopyFrom(const StubSteperMotorRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubSteperMotorRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StubSteperMotorRequest::IsInitialized() const {
+ return true;
+}
+
+void StubSteperMotorRequest::Swap(StubSteperMotorRequest* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StubSteperMotorRequest::InternalSwap(StubSteperMotorRequest* other) {
+ using std::swap;
+ swap(motorid_, other->motorid_);
+ swap(start_, other->start_);
+ swap(setdirection_, other->setdirection_);
+ swap(setmicrostepdivision_, other->setmicrostepdivision_);
+ swap(setspeed_, other->setspeed_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StubSteperMotorRequest::GetMetadata() const {
+ protobuf_StubSteperMotorRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubSteperMotorRequest_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StubSteperMotorRequest
+
+// uint32 MotorId = 1;
+void StubSteperMotorRequest::clear_motorid() {
+ motorid_ = 0u;
+}
+::google::protobuf::uint32 StubSteperMotorRequest::motorid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubSteperMotorRequest.MotorId)
+ return motorid_;
+}
+void StubSteperMotorRequest::set_motorid(::google::protobuf::uint32 value) {
+
+ motorid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubSteperMotorRequest.MotorId)
+}
+
+// bool Start = 2;
+void StubSteperMotorRequest::clear_start() {
+ start_ = false;
+}
+bool StubSteperMotorRequest::start() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubSteperMotorRequest.Start)
+ return start_;
+}
+void StubSteperMotorRequest::set_start(bool value) {
+
+ start_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubSteperMotorRequest.Start)
+}
+
+// bool SetDirection = 3;
+void StubSteperMotorRequest::clear_setdirection() {
+ setdirection_ = false;
+}
+bool StubSteperMotorRequest::setdirection() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubSteperMotorRequest.SetDirection)
+ return setdirection_;
+}
+void StubSteperMotorRequest::set_setdirection(bool value) {
+
+ setdirection_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubSteperMotorRequest.SetDirection)
+}
+
+// uint32 SetMicrostepDivision = 4;
+void StubSteperMotorRequest::clear_setmicrostepdivision() {
+ setmicrostepdivision_ = 0u;
+}
+::google::protobuf::uint32 StubSteperMotorRequest::setmicrostepdivision() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubSteperMotorRequest.SetMicrostepDivision)
+ return setmicrostepdivision_;
+}
+void StubSteperMotorRequest::set_setmicrostepdivision(::google::protobuf::uint32 value) {
+
+ setmicrostepdivision_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubSteperMotorRequest.SetMicrostepDivision)
+}
+
+// int32 SetSpeed = 5;
+void StubSteperMotorRequest::clear_setspeed() {
+ setspeed_ = 0;
+}
+::google::protobuf::int32 StubSteperMotorRequest::setspeed() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubSteperMotorRequest.SetSpeed)
+ return setspeed_;
+}
+void StubSteperMotorRequest::set_setspeed(::google::protobuf::int32 value) {
+
+ setspeed_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubSteperMotorRequest.SetSpeed)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubSteperMotorRequest.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubSteperMotorRequest.pb.h
new file mode 100644
index 000000000..d6c0b7d33
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubSteperMotorRequest.pb.h
@@ -0,0 +1,283 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubSteperMotorRequest.proto
+
+#ifndef PROTOBUF_StubSteperMotorRequest_2eproto__INCLUDED
+#define PROTOBUF_StubSteperMotorRequest_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+class StubSteperMotorRequest;
+class StubSteperMotorRequestDefaultTypeInternal;
+extern StubSteperMotorRequestDefaultTypeInternal _StubSteperMotorRequest_default_instance_;
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+
+namespace protobuf_StubSteperMotorRequest_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_StubSteperMotorRequest_2eproto
+
+// ===================================================================
+
+class StubSteperMotorRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Stubs.StubSteperMotorRequest) */ {
+ public:
+ StubSteperMotorRequest();
+ virtual ~StubSteperMotorRequest();
+
+ StubSteperMotorRequest(const StubSteperMotorRequest& from);
+
+ inline StubSteperMotorRequest& operator=(const StubSteperMotorRequest& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ StubSteperMotorRequest(StubSteperMotorRequest&& from) noexcept
+ : StubSteperMotorRequest() {
+ *this = ::std::move(from);
+ }
+
+ inline StubSteperMotorRequest& operator=(StubSteperMotorRequest&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StubSteperMotorRequest& default_instance();
+
+ static inline const StubSteperMotorRequest* internal_default_instance() {
+ return reinterpret_cast<const StubSteperMotorRequest*>(
+ &_StubSteperMotorRequest_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(StubSteperMotorRequest* other);
+ friend void swap(StubSteperMotorRequest& a, StubSteperMotorRequest& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline StubSteperMotorRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ StubSteperMotorRequest* 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 StubSteperMotorRequest& from);
+ void MergeFrom(const StubSteperMotorRequest& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(StubSteperMotorRequest* 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 -------------------------------------------------------
+
+ // uint32 MotorId = 1;
+ void clear_motorid();
+ static const int kMotorIdFieldNumber = 1;
+ ::google::protobuf::uint32 motorid() const;
+ void set_motorid(::google::protobuf::uint32 value);
+
+ // bool Start = 2;
+ void clear_start();
+ static const int kStartFieldNumber = 2;
+ bool start() const;
+ void set_start(bool value);
+
+ // bool SetDirection = 3;
+ void clear_setdirection();
+ static const int kSetDirectionFieldNumber = 3;
+ bool setdirection() const;
+ void set_setdirection(bool value);
+
+ // uint32 SetMicrostepDivision = 4;
+ void clear_setmicrostepdivision();
+ static const int kSetMicrostepDivisionFieldNumber = 4;
+ ::google::protobuf::uint32 setmicrostepdivision() const;
+ void set_setmicrostepdivision(::google::protobuf::uint32 value);
+
+ // int32 SetSpeed = 5;
+ void clear_setspeed();
+ static const int kSetSpeedFieldNumber = 5;
+ ::google::protobuf::int32 setspeed() const;
+ void set_setspeed(::google::protobuf::int32 value);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.StubSteperMotorRequest)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::uint32 motorid_;
+ bool start_;
+ bool setdirection_;
+ ::google::protobuf::uint32 setmicrostepdivision_;
+ ::google::protobuf::int32 setspeed_;
+ mutable int _cached_size_;
+ friend struct protobuf_StubSteperMotorRequest_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// StubSteperMotorRequest
+
+// uint32 MotorId = 1;
+inline void StubSteperMotorRequest::clear_motorid() {
+ motorid_ = 0u;
+}
+inline ::google::protobuf::uint32 StubSteperMotorRequest::motorid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubSteperMotorRequest.MotorId)
+ return motorid_;
+}
+inline void StubSteperMotorRequest::set_motorid(::google::protobuf::uint32 value) {
+
+ motorid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubSteperMotorRequest.MotorId)
+}
+
+// bool Start = 2;
+inline void StubSteperMotorRequest::clear_start() {
+ start_ = false;
+}
+inline bool StubSteperMotorRequest::start() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubSteperMotorRequest.Start)
+ return start_;
+}
+inline void StubSteperMotorRequest::set_start(bool value) {
+
+ start_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubSteperMotorRequest.Start)
+}
+
+// bool SetDirection = 3;
+inline void StubSteperMotorRequest::clear_setdirection() {
+ setdirection_ = false;
+}
+inline bool StubSteperMotorRequest::setdirection() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubSteperMotorRequest.SetDirection)
+ return setdirection_;
+}
+inline void StubSteperMotorRequest::set_setdirection(bool value) {
+
+ setdirection_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubSteperMotorRequest.SetDirection)
+}
+
+// uint32 SetMicrostepDivision = 4;
+inline void StubSteperMotorRequest::clear_setmicrostepdivision() {
+ setmicrostepdivision_ = 0u;
+}
+inline ::google::protobuf::uint32 StubSteperMotorRequest::setmicrostepdivision() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubSteperMotorRequest.SetMicrostepDivision)
+ return setmicrostepdivision_;
+}
+inline void StubSteperMotorRequest::set_setmicrostepdivision(::google::protobuf::uint32 value) {
+
+ setmicrostepdivision_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubSteperMotorRequest.SetMicrostepDivision)
+}
+
+// int32 SetSpeed = 5;
+inline void StubSteperMotorRequest::clear_setspeed() {
+ setspeed_ = 0;
+}
+inline ::google::protobuf::int32 StubSteperMotorRequest::setspeed() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubSteperMotorRequest.SetSpeed)
+ return setspeed_;
+}
+inline void StubSteperMotorRequest::set_setspeed(::google::protobuf::int32 value) {
+
+ setspeed_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubSteperMotorRequest.SetSpeed)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_StubSteperMotorRequest_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubSteperMotorResponse.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubSteperMotorResponse.pb.cc
new file mode 100644
index 000000000..adb2c384a
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubSteperMotorResponse.pb.cc
@@ -0,0 +1,499 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubSteperMotorResponse.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "StubSteperMotorResponse.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 Tango {
+namespace PMR {
+namespace Stubs {
+class StubSteperMotorResponseDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<StubSteperMotorResponse>
+ _instance;
+} _StubSteperMotorResponse_default_instance_;
+
+namespace protobuf_StubSteperMotorResponse_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubSteperMotorResponse, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubSteperMotorResponse, motorid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubSteperMotorResponse, motorversion_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubSteperMotorResponse, status_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(StubSteperMotorResponse)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_StubSteperMotorResponse_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "StubSteperMotorResponse.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _StubSteperMotorResponse_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_StubSteperMotorResponse_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n\035StubSteperMotorResponse.proto\022\017Tango.P"
+ "MR.Stubs\"P\n\027StubSteperMotorResponse\022\017\n\007M"
+ "otorId\030\001 \001(\r\022\024\n\014MotorVersion\030\002 \001(\r\022\016\n\006St"
+ "atus\030\003 \001(\010B\033\n\031com.twine.tango.pmr.stubsb"
+ "\006proto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 167);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "StubSteperMotorResponse.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_StubSteperMotorResponse_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StubSteperMotorResponse::kMotorIdFieldNumber;
+const int StubSteperMotorResponse::kMotorVersionFieldNumber;
+const int StubSteperMotorResponse::kStatusFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StubSteperMotorResponse::StubSteperMotorResponse()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_StubSteperMotorResponse_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubSteperMotorResponse)
+}
+StubSteperMotorResponse::StubSteperMotorResponse(const StubSteperMotorResponse& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::memcpy(&motorid_, &from.motorid_,
+ static_cast<size_t>(reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&motorid_)) + sizeof(status_));
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubSteperMotorResponse)
+}
+
+void StubSteperMotorResponse::SharedCtor() {
+ ::memset(&motorid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&motorid_)) + sizeof(status_));
+ _cached_size_ = 0;
+}
+
+StubSteperMotorResponse::~StubSteperMotorResponse() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubSteperMotorResponse)
+ SharedDtor();
+}
+
+void StubSteperMotorResponse::SharedDtor() {
+}
+
+void StubSteperMotorResponse::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StubSteperMotorResponse::descriptor() {
+ protobuf_StubSteperMotorResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubSteperMotorResponse_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StubSteperMotorResponse& StubSteperMotorResponse::default_instance() {
+ protobuf_StubSteperMotorResponse_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+StubSteperMotorResponse* StubSteperMotorResponse::New(::google::protobuf::Arena* arena) const {
+ StubSteperMotorResponse* n = new StubSteperMotorResponse;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StubSteperMotorResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubSteperMotorResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ ::memset(&motorid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&status_) -
+ reinterpret_cast<char*>(&motorid_)) + sizeof(status_));
+ _internal_metadata_.Clear();
+}
+
+bool StubSteperMotorResponse::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:Tango.PMR.Stubs.StubSteperMotorResponse)
+ 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)) {
+ // uint32 MotorId = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &motorid_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 MotorVersion = 2;
+ case 2: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &motorversion_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // bool Status = 3;
+ case 3: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &status_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubSteperMotorResponse)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubSteperMotorResponse)
+ return false;
+#undef DO_
+}
+
+void StubSteperMotorResponse::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubSteperMotorResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 MotorId = 1;
+ if (this->motorid() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->motorid(), output);
+ }
+
+ // uint32 MotorVersion = 2;
+ if (this->motorversion() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->motorversion(), output);
+ }
+
+ // bool Status = 3;
+ if (this->status() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(3, this->status(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubSteperMotorResponse)
+}
+
+::google::protobuf::uint8* StubSteperMotorResponse::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubSteperMotorResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 MotorId = 1;
+ if (this->motorid() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->motorid(), target);
+ }
+
+ // uint32 MotorVersion = 2;
+ if (this->motorversion() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->motorversion(), target);
+ }
+
+ // bool Status = 3;
+ if (this->status() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(3, this->status(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubSteperMotorResponse)
+ return target;
+}
+
+size_t StubSteperMotorResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubSteperMotorResponse)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // uint32 MotorId = 1;
+ if (this->motorid() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->motorid());
+ }
+
+ // uint32 MotorVersion = 2;
+ if (this->motorversion() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->motorversion());
+ }
+
+ // bool Status = 3;
+ if (this->status() != 0) {
+ 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 StubSteperMotorResponse::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubSteperMotorResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ const StubSteperMotorResponse* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StubSteperMotorResponse>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubSteperMotorResponse)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubSteperMotorResponse)
+ MergeFrom(*source);
+ }
+}
+
+void StubSteperMotorResponse::MergeFrom(const StubSteperMotorResponse& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubSteperMotorResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.motorid() != 0) {
+ set_motorid(from.motorid());
+ }
+ if (from.motorversion() != 0) {
+ set_motorversion(from.motorversion());
+ }
+ if (from.status() != 0) {
+ set_status(from.status());
+ }
+}
+
+void StubSteperMotorResponse::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubSteperMotorResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StubSteperMotorResponse::CopyFrom(const StubSteperMotorResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubSteperMotorResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StubSteperMotorResponse::IsInitialized() const {
+ return true;
+}
+
+void StubSteperMotorResponse::Swap(StubSteperMotorResponse* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StubSteperMotorResponse::InternalSwap(StubSteperMotorResponse* other) {
+ using std::swap;
+ swap(motorid_, other->motorid_);
+ swap(motorversion_, other->motorversion_);
+ swap(status_, other->status_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StubSteperMotorResponse::GetMetadata() const {
+ protobuf_StubSteperMotorResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubSteperMotorResponse_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StubSteperMotorResponse
+
+// uint32 MotorId = 1;
+void StubSteperMotorResponse::clear_motorid() {
+ motorid_ = 0u;
+}
+::google::protobuf::uint32 StubSteperMotorResponse::motorid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubSteperMotorResponse.MotorId)
+ return motorid_;
+}
+void StubSteperMotorResponse::set_motorid(::google::protobuf::uint32 value) {
+
+ motorid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubSteperMotorResponse.MotorId)
+}
+
+// uint32 MotorVersion = 2;
+void StubSteperMotorResponse::clear_motorversion() {
+ motorversion_ = 0u;
+}
+::google::protobuf::uint32 StubSteperMotorResponse::motorversion() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubSteperMotorResponse.MotorVersion)
+ return motorversion_;
+}
+void StubSteperMotorResponse::set_motorversion(::google::protobuf::uint32 value) {
+
+ motorversion_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubSteperMotorResponse.MotorVersion)
+}
+
+// bool Status = 3;
+void StubSteperMotorResponse::clear_status() {
+ status_ = false;
+}
+bool StubSteperMotorResponse::status() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubSteperMotorResponse.Status)
+ return status_;
+}
+void StubSteperMotorResponse::set_status(bool value) {
+
+ status_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubSteperMotorResponse.Status)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubSteperMotorResponse.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubSteperMotorResponse.pb.h
new file mode 100644
index 000000000..5bb45a6d3
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubSteperMotorResponse.pb.h
@@ -0,0 +1,241 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubSteperMotorResponse.proto
+
+#ifndef PROTOBUF_StubSteperMotorResponse_2eproto__INCLUDED
+#define PROTOBUF_StubSteperMotorResponse_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+class StubSteperMotorResponse;
+class StubSteperMotorResponseDefaultTypeInternal;
+extern StubSteperMotorResponseDefaultTypeInternal _StubSteperMotorResponse_default_instance_;
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+
+namespace protobuf_StubSteperMotorResponse_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_StubSteperMotorResponse_2eproto
+
+// ===================================================================
+
+class StubSteperMotorResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Stubs.StubSteperMotorResponse) */ {
+ public:
+ StubSteperMotorResponse();
+ virtual ~StubSteperMotorResponse();
+
+ StubSteperMotorResponse(const StubSteperMotorResponse& from);
+
+ inline StubSteperMotorResponse& operator=(const StubSteperMotorResponse& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ StubSteperMotorResponse(StubSteperMotorResponse&& from) noexcept
+ : StubSteperMotorResponse() {
+ *this = ::std::move(from);
+ }
+
+ inline StubSteperMotorResponse& operator=(StubSteperMotorResponse&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StubSteperMotorResponse& default_instance();
+
+ static inline const StubSteperMotorResponse* internal_default_instance() {
+ return reinterpret_cast<const StubSteperMotorResponse*>(
+ &_StubSteperMotorResponse_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(StubSteperMotorResponse* other);
+ friend void swap(StubSteperMotorResponse& a, StubSteperMotorResponse& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline StubSteperMotorResponse* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ StubSteperMotorResponse* 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 StubSteperMotorResponse& from);
+ void MergeFrom(const StubSteperMotorResponse& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(StubSteperMotorResponse* 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 -------------------------------------------------------
+
+ // uint32 MotorId = 1;
+ void clear_motorid();
+ static const int kMotorIdFieldNumber = 1;
+ ::google::protobuf::uint32 motorid() const;
+ void set_motorid(::google::protobuf::uint32 value);
+
+ // uint32 MotorVersion = 2;
+ void clear_motorversion();
+ static const int kMotorVersionFieldNumber = 2;
+ ::google::protobuf::uint32 motorversion() const;
+ void set_motorversion(::google::protobuf::uint32 value);
+
+ // bool Status = 3;
+ void clear_status();
+ static const int kStatusFieldNumber = 3;
+ bool status() const;
+ void set_status(bool value);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.StubSteperMotorResponse)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::uint32 motorid_;
+ ::google::protobuf::uint32 motorversion_;
+ bool status_;
+ mutable int _cached_size_;
+ friend struct protobuf_StubSteperMotorResponse_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// StubSteperMotorResponse
+
+// uint32 MotorId = 1;
+inline void StubSteperMotorResponse::clear_motorid() {
+ motorid_ = 0u;
+}
+inline ::google::protobuf::uint32 StubSteperMotorResponse::motorid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubSteperMotorResponse.MotorId)
+ return motorid_;
+}
+inline void StubSteperMotorResponse::set_motorid(::google::protobuf::uint32 value) {
+
+ motorid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubSteperMotorResponse.MotorId)
+}
+
+// uint32 MotorVersion = 2;
+inline void StubSteperMotorResponse::clear_motorversion() {
+ motorversion_ = 0u;
+}
+inline ::google::protobuf::uint32 StubSteperMotorResponse::motorversion() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubSteperMotorResponse.MotorVersion)
+ return motorversion_;
+}
+inline void StubSteperMotorResponse::set_motorversion(::google::protobuf::uint32 value) {
+
+ motorversion_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubSteperMotorResponse.MotorVersion)
+}
+
+// bool Status = 3;
+inline void StubSteperMotorResponse::clear_status() {
+ status_ = false;
+}
+inline bool StubSteperMotorResponse::status() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubSteperMotorResponse.Status)
+ return status_;
+}
+inline void StubSteperMotorResponse::set_status(bool value) {
+
+ status_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubSteperMotorResponse.Status)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_StubSteperMotorResponse_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubValveRequest.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubValveRequest.pb.cc
new file mode 100644
index 000000000..489971fe9
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubValveRequest.pb.cc
@@ -0,0 +1,498 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubValveRequest.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "StubValveRequest.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 Tango {
+namespace PMR {
+namespace Stubs {
+class StubValveRequestDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<StubValveRequest>
+ _instance;
+} _StubValveRequest_default_instance_;
+
+namespace protobuf_StubValveRequest_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubValveRequest, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubValveRequest, valveid_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubValveRequest, inkflow_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubValveRequest, valveon_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(StubValveRequest)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_StubValveRequest_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "StubValveRequest.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _StubValveRequest_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_StubValveRequest_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n\026StubValveRequest.proto\022\017Tango.PMR.Stub"
+ "s\"E\n\020StubValveRequest\022\017\n\007ValveId\030\001 \001(\r\022\017"
+ "\n\007Inkflow\030\002 \001(\r\022\017\n\007ValveOn\030\003 \001(\010B\033\n\031com."
+ "twine.tango.pmr.stubsb\006proto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 149);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "StubValveRequest.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_StubValveRequest_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StubValveRequest::kValveIdFieldNumber;
+const int StubValveRequest::kInkflowFieldNumber;
+const int StubValveRequest::kValveOnFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StubValveRequest::StubValveRequest()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_StubValveRequest_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubValveRequest)
+}
+StubValveRequest::StubValveRequest(const StubValveRequest& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::memcpy(&valveid_, &from.valveid_,
+ static_cast<size_t>(reinterpret_cast<char*>(&valveon_) -
+ reinterpret_cast<char*>(&valveid_)) + sizeof(valveon_));
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubValveRequest)
+}
+
+void StubValveRequest::SharedCtor() {
+ ::memset(&valveid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&valveon_) -
+ reinterpret_cast<char*>(&valveid_)) + sizeof(valveon_));
+ _cached_size_ = 0;
+}
+
+StubValveRequest::~StubValveRequest() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubValveRequest)
+ SharedDtor();
+}
+
+void StubValveRequest::SharedDtor() {
+}
+
+void StubValveRequest::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StubValveRequest::descriptor() {
+ protobuf_StubValveRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubValveRequest_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StubValveRequest& StubValveRequest::default_instance() {
+ protobuf_StubValveRequest_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+StubValveRequest* StubValveRequest::New(::google::protobuf::Arena* arena) const {
+ StubValveRequest* n = new StubValveRequest;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StubValveRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubValveRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ ::memset(&valveid_, 0, static_cast<size_t>(
+ reinterpret_cast<char*>(&valveon_) -
+ reinterpret_cast<char*>(&valveid_)) + sizeof(valveon_));
+ _internal_metadata_.Clear();
+}
+
+bool StubValveRequest::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:Tango.PMR.Stubs.StubValveRequest)
+ 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)) {
+ // uint32 ValveId = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(8u /* 8 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &valveid_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // uint32 Inkflow = 2;
+ case 2: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(16u /* 16 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
+ input, &inkflow_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // bool ValveOn = 3;
+ case 3: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &valveon_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubValveRequest)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubValveRequest)
+ return false;
+#undef DO_
+}
+
+void StubValveRequest::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubValveRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 ValveId = 1;
+ if (this->valveid() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(1, this->valveid(), output);
+ }
+
+ // uint32 Inkflow = 2;
+ if (this->inkflow() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->inkflow(), output);
+ }
+
+ // bool ValveOn = 3;
+ if (this->valveon() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(3, this->valveon(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubValveRequest)
+}
+
+::google::protobuf::uint8* StubValveRequest::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubValveRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // uint32 ValveId = 1;
+ if (this->valveid() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(1, this->valveid(), target);
+ }
+
+ // uint32 Inkflow = 2;
+ if (this->inkflow() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->inkflow(), target);
+ }
+
+ // bool ValveOn = 3;
+ if (this->valveon() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(3, this->valveon(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubValveRequest)
+ return target;
+}
+
+size_t StubValveRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubValveRequest)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // uint32 ValveId = 1;
+ if (this->valveid() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->valveid());
+ }
+
+ // uint32 Inkflow = 2;
+ if (this->inkflow() != 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::UInt32Size(
+ this->inkflow());
+ }
+
+ // bool ValveOn = 3;
+ if (this->valveon() != 0) {
+ 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 StubValveRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubValveRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ const StubValveRequest* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StubValveRequest>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubValveRequest)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubValveRequest)
+ MergeFrom(*source);
+ }
+}
+
+void StubValveRequest::MergeFrom(const StubValveRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubValveRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.valveid() != 0) {
+ set_valveid(from.valveid());
+ }
+ if (from.inkflow() != 0) {
+ set_inkflow(from.inkflow());
+ }
+ if (from.valveon() != 0) {
+ set_valveon(from.valveon());
+ }
+}
+
+void StubValveRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubValveRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StubValveRequest::CopyFrom(const StubValveRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubValveRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StubValveRequest::IsInitialized() const {
+ return true;
+}
+
+void StubValveRequest::Swap(StubValveRequest* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StubValveRequest::InternalSwap(StubValveRequest* other) {
+ using std::swap;
+ swap(valveid_, other->valveid_);
+ swap(inkflow_, other->inkflow_);
+ swap(valveon_, other->valveon_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StubValveRequest::GetMetadata() const {
+ protobuf_StubValveRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubValveRequest_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StubValveRequest
+
+// uint32 ValveId = 1;
+void StubValveRequest::clear_valveid() {
+ valveid_ = 0u;
+}
+::google::protobuf::uint32 StubValveRequest::valveid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubValveRequest.ValveId)
+ return valveid_;
+}
+void StubValveRequest::set_valveid(::google::protobuf::uint32 value) {
+
+ valveid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubValveRequest.ValveId)
+}
+
+// uint32 Inkflow = 2;
+void StubValveRequest::clear_inkflow() {
+ inkflow_ = 0u;
+}
+::google::protobuf::uint32 StubValveRequest::inkflow() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubValveRequest.Inkflow)
+ return inkflow_;
+}
+void StubValveRequest::set_inkflow(::google::protobuf::uint32 value) {
+
+ inkflow_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubValveRequest.Inkflow)
+}
+
+// bool ValveOn = 3;
+void StubValveRequest::clear_valveon() {
+ valveon_ = false;
+}
+bool StubValveRequest::valveon() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubValveRequest.ValveOn)
+ return valveon_;
+}
+void StubValveRequest::set_valveon(bool value) {
+
+ valveon_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubValveRequest.ValveOn)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubValveRequest.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubValveRequest.pb.h
new file mode 100644
index 000000000..42a48e773
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubValveRequest.pb.h
@@ -0,0 +1,241 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubValveRequest.proto
+
+#ifndef PROTOBUF_StubValveRequest_2eproto__INCLUDED
+#define PROTOBUF_StubValveRequest_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+class StubValveRequest;
+class StubValveRequestDefaultTypeInternal;
+extern StubValveRequestDefaultTypeInternal _StubValveRequest_default_instance_;
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+
+namespace protobuf_StubValveRequest_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_StubValveRequest_2eproto
+
+// ===================================================================
+
+class StubValveRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Stubs.StubValveRequest) */ {
+ public:
+ StubValveRequest();
+ virtual ~StubValveRequest();
+
+ StubValveRequest(const StubValveRequest& from);
+
+ inline StubValveRequest& operator=(const StubValveRequest& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ StubValveRequest(StubValveRequest&& from) noexcept
+ : StubValveRequest() {
+ *this = ::std::move(from);
+ }
+
+ inline StubValveRequest& operator=(StubValveRequest&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StubValveRequest& default_instance();
+
+ static inline const StubValveRequest* internal_default_instance() {
+ return reinterpret_cast<const StubValveRequest*>(
+ &_StubValveRequest_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(StubValveRequest* other);
+ friend void swap(StubValveRequest& a, StubValveRequest& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline StubValveRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ StubValveRequest* 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 StubValveRequest& from);
+ void MergeFrom(const StubValveRequest& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(StubValveRequest* 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 -------------------------------------------------------
+
+ // uint32 ValveId = 1;
+ void clear_valveid();
+ static const int kValveIdFieldNumber = 1;
+ ::google::protobuf::uint32 valveid() const;
+ void set_valveid(::google::protobuf::uint32 value);
+
+ // uint32 Inkflow = 2;
+ void clear_inkflow();
+ static const int kInkflowFieldNumber = 2;
+ ::google::protobuf::uint32 inkflow() const;
+ void set_inkflow(::google::protobuf::uint32 value);
+
+ // bool ValveOn = 3;
+ void clear_valveon();
+ static const int kValveOnFieldNumber = 3;
+ bool valveon() const;
+ void set_valveon(bool value);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.StubValveRequest)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::uint32 valveid_;
+ ::google::protobuf::uint32 inkflow_;
+ bool valveon_;
+ mutable int _cached_size_;
+ friend struct protobuf_StubValveRequest_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// StubValveRequest
+
+// uint32 ValveId = 1;
+inline void StubValveRequest::clear_valveid() {
+ valveid_ = 0u;
+}
+inline ::google::protobuf::uint32 StubValveRequest::valveid() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubValveRequest.ValveId)
+ return valveid_;
+}
+inline void StubValveRequest::set_valveid(::google::protobuf::uint32 value) {
+
+ valveid_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubValveRequest.ValveId)
+}
+
+// uint32 Inkflow = 2;
+inline void StubValveRequest::clear_inkflow() {
+ inkflow_ = 0u;
+}
+inline ::google::protobuf::uint32 StubValveRequest::inkflow() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubValveRequest.Inkflow)
+ return inkflow_;
+}
+inline void StubValveRequest::set_inkflow(::google::protobuf::uint32 value) {
+
+ inkflow_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubValveRequest.Inkflow)
+}
+
+// bool ValveOn = 3;
+inline void StubValveRequest::clear_valveon() {
+ valveon_ = false;
+}
+inline bool StubValveRequest::valveon() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubValveRequest.ValveOn)
+ return valveon_;
+}
+inline void StubValveRequest::set_valveon(bool value) {
+
+ valveon_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubValveRequest.ValveOn)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_StubValveRequest_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubValveResponse.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubValveResponse.pb.cc
new file mode 100644
index 000000000..ce2c3af34
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubValveResponse.pb.cc
@@ -0,0 +1,389 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubValveResponse.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "StubValveResponse.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 Tango {
+namespace PMR {
+namespace Stubs {
+class StubValveResponseDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<StubValveResponse>
+ _instance;
+} _StubValveResponse_default_instance_;
+
+namespace protobuf_StubValveResponse_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubValveResponse, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubValveResponse, status_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(StubValveResponse)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_StubValveResponse_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "StubValveResponse.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _StubValveResponse_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_StubValveResponse_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n\027StubValveResponse.proto\022\017Tango.PMR.Stu"
+ "bs\"#\n\021StubValveResponse\022\016\n\006Status\030\003 \001(\010B"
+ "\033\n\031com.twine.tango.pmr.stubsb\006proto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 116);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "StubValveResponse.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_StubValveResponse_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int StubValveResponse::kStatusFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+StubValveResponse::StubValveResponse()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_StubValveResponse_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubValveResponse)
+}
+StubValveResponse::StubValveResponse(const StubValveResponse& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ status_ = from.status_;
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubValveResponse)
+}
+
+void StubValveResponse::SharedCtor() {
+ status_ = false;
+ _cached_size_ = 0;
+}
+
+StubValveResponse::~StubValveResponse() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubValveResponse)
+ SharedDtor();
+}
+
+void StubValveResponse::SharedDtor() {
+}
+
+void StubValveResponse::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* StubValveResponse::descriptor() {
+ protobuf_StubValveResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubValveResponse_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const StubValveResponse& StubValveResponse::default_instance() {
+ protobuf_StubValveResponse_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+StubValveResponse* StubValveResponse::New(::google::protobuf::Arena* arena) const {
+ StubValveResponse* n = new StubValveResponse;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void StubValveResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubValveResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ status_ = false;
+ _internal_metadata_.Clear();
+}
+
+bool StubValveResponse::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:Tango.PMR.Stubs.StubValveResponse)
+ 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)) {
+ // bool Status = 3;
+ case 3: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(24u /* 24 & 0xFF */)) {
+
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+ bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
+ input, &status_)));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Stubs.StubValveResponse)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubValveResponse)
+ return false;
+#undef DO_
+}
+
+void StubValveResponse::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubValveResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // bool Status = 3;
+ if (this->status() != 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBool(3, this->status(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Stubs.StubValveResponse)
+}
+
+::google::protobuf::uint8* StubValveResponse::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubValveResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // bool Status = 3;
+ if (this->status() != 0) {
+ target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(3, this->status(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Stubs.StubValveResponse)
+ return target;
+}
+
+size_t StubValveResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubValveResponse)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // bool Status = 3;
+ if (this->status() != 0) {
+ 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 StubValveResponse::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubValveResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ const StubValveResponse* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const StubValveResponse>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubValveResponse)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubValveResponse)
+ MergeFrom(*source);
+ }
+}
+
+void StubValveResponse::MergeFrom(const StubValveResponse& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubValveResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.status() != 0) {
+ set_status(from.status());
+ }
+}
+
+void StubValveResponse::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubValveResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void StubValveResponse::CopyFrom(const StubValveResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubValveResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool StubValveResponse::IsInitialized() const {
+ return true;
+}
+
+void StubValveResponse::Swap(StubValveResponse* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void StubValveResponse::InternalSwap(StubValveResponse* other) {
+ using std::swap;
+ swap(status_, other->status_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata StubValveResponse::GetMetadata() const {
+ protobuf_StubValveResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_StubValveResponse_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// StubValveResponse
+
+// bool Status = 3;
+void StubValveResponse::clear_status() {
+ status_ = false;
+}
+bool StubValveResponse::status() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubValveResponse.Status)
+ return status_;
+}
+void StubValveResponse::set_status(bool value) {
+
+ status_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubValveResponse.Status)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubValveResponse.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubValveResponse.pb.h
new file mode 100644
index 000000000..a61437a3a
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/StubValveResponse.pb.h
@@ -0,0 +1,199 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: StubValveResponse.proto
+
+#ifndef PROTOBUF_StubValveResponse_2eproto__INCLUDED
+#define PROTOBUF_StubValveResponse_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+class StubValveResponse;
+class StubValveResponseDefaultTypeInternal;
+extern StubValveResponseDefaultTypeInternal _StubValveResponse_default_instance_;
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Stubs {
+
+namespace protobuf_StubValveResponse_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_StubValveResponse_2eproto
+
+// ===================================================================
+
+class StubValveResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Stubs.StubValveResponse) */ {
+ public:
+ StubValveResponse();
+ virtual ~StubValveResponse();
+
+ StubValveResponse(const StubValveResponse& from);
+
+ inline StubValveResponse& operator=(const StubValveResponse& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ StubValveResponse(StubValveResponse&& from) noexcept
+ : StubValveResponse() {
+ *this = ::std::move(from);
+ }
+
+ inline StubValveResponse& operator=(StubValveResponse&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const StubValveResponse& default_instance();
+
+ static inline const StubValveResponse* internal_default_instance() {
+ return reinterpret_cast<const StubValveResponse*>(
+ &_StubValveResponse_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(StubValveResponse* other);
+ friend void swap(StubValveResponse& a, StubValveResponse& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline StubValveResponse* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ StubValveResponse* 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 StubValveResponse& from);
+ void MergeFrom(const StubValveResponse& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(StubValveResponse* 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 -------------------------------------------------------
+
+ // bool Status = 3;
+ void clear_status();
+ static const int kStatusFieldNumber = 3;
+ bool status() const;
+ void set_status(bool value);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Stubs.StubValveResponse)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ bool status_;
+ mutable int _cached_size_;
+ friend struct protobuf_StubValveResponse_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// StubValveResponse
+
+// bool Status = 3;
+inline void StubValveResponse::clear_status() {
+ status_ = false;
+}
+inline bool StubValveResponse::status() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubValveResponse.Status)
+ return status_;
+}
+inline void StubValveResponse::set_status(bool value) {
+
+ status_ = value;
+ // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubValveResponse.Status)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Stubs
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_StubValveResponse_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/SynchronizeDBRequest.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/SynchronizeDBRequest.pb.cc
new file mode 100644
index 000000000..9ce6dcfae
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/SynchronizeDBRequest.pb.cc
@@ -0,0 +1,549 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: SynchronizeDBRequest.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "SynchronizeDBRequest.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 Tango {
+namespace PMR {
+namespace Synchronization {
+class SynchronizeDBRequestDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<SynchronizeDBRequest>
+ _instance;
+} _SynchronizeDBRequest_default_instance_;
+
+namespace protobuf_SynchronizeDBRequest_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SynchronizeDBRequest, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SynchronizeDBRequest, serialnumber_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SynchronizeDBRequest, localdb_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(SynchronizeDBRequest)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_SynchronizeDBRequest_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "SynchronizeDBRequest.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _SynchronizeDBRequest_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_SynchronizeDBRequest_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n\032SynchronizeDBRequest.proto\022\031Tango.PMR."
+ "Synchronization\"=\n\024SynchronizeDBRequest\022"
+ "\024\n\014SerialNumber\030\001 \001(\t\022\017\n\007LocalDB\030\002 \001(\014B%"
+ "\n#com.twine.tango.pmr.synchronizationb\006p"
+ "roto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 165);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "SynchronizeDBRequest.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_SynchronizeDBRequest_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int SynchronizeDBRequest::kSerialNumberFieldNumber;
+const int SynchronizeDBRequest::kLocalDBFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+SynchronizeDBRequest::SynchronizeDBRequest()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_SynchronizeDBRequest_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Synchronization.SynchronizeDBRequest)
+}
+SynchronizeDBRequest::SynchronizeDBRequest(const SynchronizeDBRequest& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ serialnumber_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (from.serialnumber().size() > 0) {
+ serialnumber_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.serialnumber_);
+ }
+ localdb_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (from.localdb().size() > 0) {
+ localdb_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.localdb_);
+ }
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Synchronization.SynchronizeDBRequest)
+}
+
+void SynchronizeDBRequest::SharedCtor() {
+ serialnumber_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ localdb_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ _cached_size_ = 0;
+}
+
+SynchronizeDBRequest::~SynchronizeDBRequest() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Synchronization.SynchronizeDBRequest)
+ SharedDtor();
+}
+
+void SynchronizeDBRequest::SharedDtor() {
+ serialnumber_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ localdb_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void SynchronizeDBRequest::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* SynchronizeDBRequest::descriptor() {
+ protobuf_SynchronizeDBRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_SynchronizeDBRequest_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const SynchronizeDBRequest& SynchronizeDBRequest::default_instance() {
+ protobuf_SynchronizeDBRequest_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+SynchronizeDBRequest* SynchronizeDBRequest::New(::google::protobuf::Arena* arena) const {
+ SynchronizeDBRequest* n = new SynchronizeDBRequest;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void SynchronizeDBRequest::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Synchronization.SynchronizeDBRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ serialnumber_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ localdb_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ _internal_metadata_.Clear();
+}
+
+bool SynchronizeDBRequest::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:Tango.PMR.Synchronization.SynchronizeDBRequest)
+ 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)) {
+ // string SerialNumber = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+ DO_(::google::protobuf::internal::WireFormatLite::ReadString(
+ input, this->mutable_serialnumber()));
+ DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->serialnumber().data(), static_cast<int>(this->serialnumber().length()),
+ ::google::protobuf::internal::WireFormatLite::PARSE,
+ "Tango.PMR.Synchronization.SynchronizeDBRequest.SerialNumber"));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ // bytes LocalDB = 2;
+ case 2: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
+ DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
+ input, this->mutable_localdb()));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Synchronization.SynchronizeDBRequest)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Synchronization.SynchronizeDBRequest)
+ return false;
+#undef DO_
+}
+
+void SynchronizeDBRequest::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Synchronization.SynchronizeDBRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // string SerialNumber = 1;
+ if (this->serialnumber().size() > 0) {
+ ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->serialnumber().data(), static_cast<int>(this->serialnumber().length()),
+ ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+ "Tango.PMR.Synchronization.SynchronizeDBRequest.SerialNumber");
+ ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
+ 1, this->serialnumber(), output);
+ }
+
+ // bytes LocalDB = 2;
+ if (this->localdb().size() > 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
+ 2, this->localdb(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Synchronization.SynchronizeDBRequest)
+}
+
+::google::protobuf::uint8* SynchronizeDBRequest::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Synchronization.SynchronizeDBRequest)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // string SerialNumber = 1;
+ if (this->serialnumber().size() > 0) {
+ ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
+ this->serialnumber().data(), static_cast<int>(this->serialnumber().length()),
+ ::google::protobuf::internal::WireFormatLite::SERIALIZE,
+ "Tango.PMR.Synchronization.SynchronizeDBRequest.SerialNumber");
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
+ 1, this->serialnumber(), target);
+ }
+
+ // bytes LocalDB = 2;
+ if (this->localdb().size() > 0) {
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
+ 2, this->localdb(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Synchronization.SynchronizeDBRequest)
+ return target;
+}
+
+size_t SynchronizeDBRequest::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Synchronization.SynchronizeDBRequest)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // string SerialNumber = 1;
+ if (this->serialnumber().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::StringSize(
+ this->serialnumber());
+ }
+
+ // bytes LocalDB = 2;
+ if (this->localdb().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::BytesSize(
+ this->localdb());
+ }
+
+ 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 SynchronizeDBRequest::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Synchronization.SynchronizeDBRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ const SynchronizeDBRequest* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const SynchronizeDBRequest>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Synchronization.SynchronizeDBRequest)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Synchronization.SynchronizeDBRequest)
+ MergeFrom(*source);
+ }
+}
+
+void SynchronizeDBRequest::MergeFrom(const SynchronizeDBRequest& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Synchronization.SynchronizeDBRequest)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.serialnumber().size() > 0) {
+
+ serialnumber_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.serialnumber_);
+ }
+ if (from.localdb().size() > 0) {
+
+ localdb_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.localdb_);
+ }
+}
+
+void SynchronizeDBRequest::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Synchronization.SynchronizeDBRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void SynchronizeDBRequest::CopyFrom(const SynchronizeDBRequest& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Synchronization.SynchronizeDBRequest)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool SynchronizeDBRequest::IsInitialized() const {
+ return true;
+}
+
+void SynchronizeDBRequest::Swap(SynchronizeDBRequest* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void SynchronizeDBRequest::InternalSwap(SynchronizeDBRequest* other) {
+ using std::swap;
+ serialnumber_.Swap(&other->serialnumber_);
+ localdb_.Swap(&other->localdb_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata SynchronizeDBRequest::GetMetadata() const {
+ protobuf_SynchronizeDBRequest_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_SynchronizeDBRequest_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// SynchronizeDBRequest
+
+// string SerialNumber = 1;
+void SynchronizeDBRequest::clear_serialnumber() {
+ serialnumber_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+const ::std::string& SynchronizeDBRequest::serialnumber() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Synchronization.SynchronizeDBRequest.SerialNumber)
+ return serialnumber_.GetNoArena();
+}
+void SynchronizeDBRequest::set_serialnumber(const ::std::string& value) {
+
+ serialnumber_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:Tango.PMR.Synchronization.SynchronizeDBRequest.SerialNumber)
+}
+#if LANG_CXX11
+void SynchronizeDBRequest::set_serialnumber(::std::string&& value) {
+
+ serialnumber_.SetNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+ // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Synchronization.SynchronizeDBRequest.SerialNumber)
+}
+#endif
+void SynchronizeDBRequest::set_serialnumber(const char* value) {
+ GOOGLE_DCHECK(value != NULL);
+
+ serialnumber_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:Tango.PMR.Synchronization.SynchronizeDBRequest.SerialNumber)
+}
+void SynchronizeDBRequest::set_serialnumber(const char* value, size_t size) {
+
+ serialnumber_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Synchronization.SynchronizeDBRequest.SerialNumber)
+}
+::std::string* SynchronizeDBRequest::mutable_serialnumber() {
+
+ // @@protoc_insertion_point(field_mutable:Tango.PMR.Synchronization.SynchronizeDBRequest.SerialNumber)
+ return serialnumber_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* SynchronizeDBRequest::release_serialnumber() {
+ // @@protoc_insertion_point(field_release:Tango.PMR.Synchronization.SynchronizeDBRequest.SerialNumber)
+
+ return serialnumber_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void SynchronizeDBRequest::set_allocated_serialnumber(::std::string* serialnumber) {
+ if (serialnumber != NULL) {
+
+ } else {
+
+ }
+ serialnumber_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), serialnumber);
+ // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Synchronization.SynchronizeDBRequest.SerialNumber)
+}
+
+// bytes LocalDB = 2;
+void SynchronizeDBRequest::clear_localdb() {
+ localdb_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+const ::std::string& SynchronizeDBRequest::localdb() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Synchronization.SynchronizeDBRequest.LocalDB)
+ return localdb_.GetNoArena();
+}
+void SynchronizeDBRequest::set_localdb(const ::std::string& value) {
+
+ localdb_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:Tango.PMR.Synchronization.SynchronizeDBRequest.LocalDB)
+}
+#if LANG_CXX11
+void SynchronizeDBRequest::set_localdb(::std::string&& value) {
+
+ localdb_.SetNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+ // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Synchronization.SynchronizeDBRequest.LocalDB)
+}
+#endif
+void SynchronizeDBRequest::set_localdb(const char* value) {
+ GOOGLE_DCHECK(value != NULL);
+
+ localdb_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:Tango.PMR.Synchronization.SynchronizeDBRequest.LocalDB)
+}
+void SynchronizeDBRequest::set_localdb(const void* value, size_t size) {
+
+ localdb_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Synchronization.SynchronizeDBRequest.LocalDB)
+}
+::std::string* SynchronizeDBRequest::mutable_localdb() {
+
+ // @@protoc_insertion_point(field_mutable:Tango.PMR.Synchronization.SynchronizeDBRequest.LocalDB)
+ return localdb_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* SynchronizeDBRequest::release_localdb() {
+ // @@protoc_insertion_point(field_release:Tango.PMR.Synchronization.SynchronizeDBRequest.LocalDB)
+
+ return localdb_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void SynchronizeDBRequest::set_allocated_localdb(::std::string* localdb) {
+ if (localdb != NULL) {
+
+ } else {
+
+ }
+ localdb_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), localdb);
+ // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Synchronization.SynchronizeDBRequest.LocalDB)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Synchronization
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/SynchronizeDBRequest.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/SynchronizeDBRequest.pb.h
new file mode 100644
index 000000000..a69950dae
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/SynchronizeDBRequest.pb.h
@@ -0,0 +1,314 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: SynchronizeDBRequest.proto
+
+#ifndef PROTOBUF_SynchronizeDBRequest_2eproto__INCLUDED
+#define PROTOBUF_SynchronizeDBRequest_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Synchronization {
+class SynchronizeDBRequest;
+class SynchronizeDBRequestDefaultTypeInternal;
+extern SynchronizeDBRequestDefaultTypeInternal _SynchronizeDBRequest_default_instance_;
+} // namespace Synchronization
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Synchronization {
+
+namespace protobuf_SynchronizeDBRequest_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_SynchronizeDBRequest_2eproto
+
+// ===================================================================
+
+class SynchronizeDBRequest : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Synchronization.SynchronizeDBRequest) */ {
+ public:
+ SynchronizeDBRequest();
+ virtual ~SynchronizeDBRequest();
+
+ SynchronizeDBRequest(const SynchronizeDBRequest& from);
+
+ inline SynchronizeDBRequest& operator=(const SynchronizeDBRequest& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ SynchronizeDBRequest(SynchronizeDBRequest&& from) noexcept
+ : SynchronizeDBRequest() {
+ *this = ::std::move(from);
+ }
+
+ inline SynchronizeDBRequest& operator=(SynchronizeDBRequest&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const SynchronizeDBRequest& default_instance();
+
+ static inline const SynchronizeDBRequest* internal_default_instance() {
+ return reinterpret_cast<const SynchronizeDBRequest*>(
+ &_SynchronizeDBRequest_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(SynchronizeDBRequest* other);
+ friend void swap(SynchronizeDBRequest& a, SynchronizeDBRequest& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline SynchronizeDBRequest* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ SynchronizeDBRequest* 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 SynchronizeDBRequest& from);
+ void MergeFrom(const SynchronizeDBRequest& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(SynchronizeDBRequest* 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 -------------------------------------------------------
+
+ // string SerialNumber = 1;
+ void clear_serialnumber();
+ static const int kSerialNumberFieldNumber = 1;
+ const ::std::string& serialnumber() const;
+ void set_serialnumber(const ::std::string& value);
+ #if LANG_CXX11
+ void set_serialnumber(::std::string&& value);
+ #endif
+ void set_serialnumber(const char* value);
+ void set_serialnumber(const char* value, size_t size);
+ ::std::string* mutable_serialnumber();
+ ::std::string* release_serialnumber();
+ void set_allocated_serialnumber(::std::string* serialnumber);
+
+ // bytes LocalDB = 2;
+ void clear_localdb();
+ static const int kLocalDBFieldNumber = 2;
+ const ::std::string& localdb() const;
+ void set_localdb(const ::std::string& value);
+ #if LANG_CXX11
+ void set_localdb(::std::string&& value);
+ #endif
+ void set_localdb(const char* value);
+ void set_localdb(const void* value, size_t size);
+ ::std::string* mutable_localdb();
+ ::std::string* release_localdb();
+ void set_allocated_localdb(::std::string* localdb);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Synchronization.SynchronizeDBRequest)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::internal::ArenaStringPtr serialnumber_;
+ ::google::protobuf::internal::ArenaStringPtr localdb_;
+ mutable int _cached_size_;
+ friend struct protobuf_SynchronizeDBRequest_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// SynchronizeDBRequest
+
+// string SerialNumber = 1;
+inline void SynchronizeDBRequest::clear_serialnumber() {
+ serialnumber_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& SynchronizeDBRequest::serialnumber() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Synchronization.SynchronizeDBRequest.SerialNumber)
+ return serialnumber_.GetNoArena();
+}
+inline void SynchronizeDBRequest::set_serialnumber(const ::std::string& value) {
+
+ serialnumber_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:Tango.PMR.Synchronization.SynchronizeDBRequest.SerialNumber)
+}
+#if LANG_CXX11
+inline void SynchronizeDBRequest::set_serialnumber(::std::string&& value) {
+
+ serialnumber_.SetNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+ // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Synchronization.SynchronizeDBRequest.SerialNumber)
+}
+#endif
+inline void SynchronizeDBRequest::set_serialnumber(const char* value) {
+ GOOGLE_DCHECK(value != NULL);
+
+ serialnumber_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:Tango.PMR.Synchronization.SynchronizeDBRequest.SerialNumber)
+}
+inline void SynchronizeDBRequest::set_serialnumber(const char* value, size_t size) {
+
+ serialnumber_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Synchronization.SynchronizeDBRequest.SerialNumber)
+}
+inline ::std::string* SynchronizeDBRequest::mutable_serialnumber() {
+
+ // @@protoc_insertion_point(field_mutable:Tango.PMR.Synchronization.SynchronizeDBRequest.SerialNumber)
+ return serialnumber_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* SynchronizeDBRequest::release_serialnumber() {
+ // @@protoc_insertion_point(field_release:Tango.PMR.Synchronization.SynchronizeDBRequest.SerialNumber)
+
+ return serialnumber_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void SynchronizeDBRequest::set_allocated_serialnumber(::std::string* serialnumber) {
+ if (serialnumber != NULL) {
+
+ } else {
+
+ }
+ serialnumber_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), serialnumber);
+ // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Synchronization.SynchronizeDBRequest.SerialNumber)
+}
+
+// bytes LocalDB = 2;
+inline void SynchronizeDBRequest::clear_localdb() {
+ localdb_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& SynchronizeDBRequest::localdb() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Synchronization.SynchronizeDBRequest.LocalDB)
+ return localdb_.GetNoArena();
+}
+inline void SynchronizeDBRequest::set_localdb(const ::std::string& value) {
+
+ localdb_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:Tango.PMR.Synchronization.SynchronizeDBRequest.LocalDB)
+}
+#if LANG_CXX11
+inline void SynchronizeDBRequest::set_localdb(::std::string&& value) {
+
+ localdb_.SetNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+ // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Synchronization.SynchronizeDBRequest.LocalDB)
+}
+#endif
+inline void SynchronizeDBRequest::set_localdb(const char* value) {
+ GOOGLE_DCHECK(value != NULL);
+
+ localdb_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:Tango.PMR.Synchronization.SynchronizeDBRequest.LocalDB)
+}
+inline void SynchronizeDBRequest::set_localdb(const void* value, size_t size) {
+
+ localdb_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Synchronization.SynchronizeDBRequest.LocalDB)
+}
+inline ::std::string* SynchronizeDBRequest::mutable_localdb() {
+
+ // @@protoc_insertion_point(field_mutable:Tango.PMR.Synchronization.SynchronizeDBRequest.LocalDB)
+ return localdb_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* SynchronizeDBRequest::release_localdb() {
+ // @@protoc_insertion_point(field_release:Tango.PMR.Synchronization.SynchronizeDBRequest.LocalDB)
+
+ return localdb_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void SynchronizeDBRequest::set_allocated_localdb(::std::string* localdb) {
+ if (localdb != NULL) {
+
+ } else {
+
+ }
+ localdb_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), localdb);
+ // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Synchronization.SynchronizeDBRequest.LocalDB)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Synchronization
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_SynchronizeDBRequest_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/SynchronizeDBResponse.pb.cc b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/SynchronizeDBResponse.pb.cc
new file mode 100644
index 000000000..3974e2601
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/SynchronizeDBResponse.pb.cc
@@ -0,0 +1,437 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: SynchronizeDBResponse.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "SynchronizeDBResponse.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 Tango {
+namespace PMR {
+namespace Synchronization {
+class SynchronizeDBResponseDefaultTypeInternal {
+public:
+ ::google::protobuf::internal::ExplicitlyConstructed<SynchronizeDBResponse>
+ _instance;
+} _SynchronizeDBResponse_default_instance_;
+
+namespace protobuf_SynchronizeDBResponse_2eproto {
+
+
+namespace {
+
+::google::protobuf::Metadata file_level_metadata[1];
+
+} // namespace
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTableField
+ const TableStruct::entries[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ {0, 0, 0, ::google::protobuf::internal::kInvalidMask, 0, 0},
+};
+
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::AuxillaryParseTableField
+ const TableStruct::aux[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ::google::protobuf::internal::AuxillaryParseTableField(),
+};
+PROTOBUF_CONSTEXPR_VAR ::google::protobuf::internal::ParseTable const
+ TableStruct::schema[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { NULL, NULL, 0, -1, -1, -1, -1, NULL, false },
+};
+
+const ::google::protobuf::uint32 TableStruct::offsets[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ ~0u, // no _has_bits_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SynchronizeDBResponse, _internal_metadata_),
+ ~0u, // no _extensions_
+ ~0u, // no _oneof_case_
+ ~0u, // no _weak_field_map_
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SynchronizeDBResponse, remotedb_),
+};
+static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ { 0, -1, sizeof(SynchronizeDBResponse)},
+};
+
+static ::google::protobuf::Message const * const file_default_instances[] = {
+ reinterpret_cast<const ::google::protobuf::Message*>(&_SynchronizeDBResponse_default_instance_),
+};
+
+namespace {
+
+void protobuf_AssignDescriptors() {
+ AddDescriptors();
+ ::google::protobuf::MessageFactory* factory = NULL;
+ AssignDescriptors(
+ "SynchronizeDBResponse.proto", schemas, file_default_instances, TableStruct::offsets, factory,
+ file_level_metadata, NULL, 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, 1);
+}
+
+} // namespace
+void TableStruct::InitDefaultsImpl() {
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::google::protobuf::internal::InitProtobufDefaults();
+ _SynchronizeDBResponse_default_instance_._instance.DefaultConstruct();
+ ::google::protobuf::internal::OnShutdownDestroyMessage(
+ &_SynchronizeDBResponse_default_instance_);}
+
+void InitDefaults() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &TableStruct::InitDefaultsImpl);
+}
+namespace {
+void AddDescriptorsImpl() {
+ InitDefaults();
+ static const char descriptor[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
+ "\n\033SynchronizeDBResponse.proto\022\031Tango.PMR"
+ ".Synchronization\")\n\025SynchronizeDBRespons"
+ "e\022\020\n\010RemoteDB\030\001 \001(\014B%\n#com.twine.tango.p"
+ "mr.synchronizationb\006proto3"
+ };
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ descriptor, 146);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "SynchronizeDBResponse.proto", &protobuf_RegisterTypes);
+}
+} // anonymous namespace
+
+void AddDescriptors() {
+ static GOOGLE_PROTOBUF_DECLARE_ONCE(once);
+ ::google::protobuf::GoogleOnceInit(&once, &AddDescriptorsImpl);
+}
+// Force AddDescriptors() to be called at dynamic initialization time.
+struct StaticDescriptorInitializer {
+ StaticDescriptorInitializer() {
+ AddDescriptors();
+ }
+} static_descriptor_initializer;
+
+} // namespace protobuf_SynchronizeDBResponse_2eproto
+
+
+// ===================================================================
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int SynchronizeDBResponse::kRemoteDBFieldNumber;
+#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+SynchronizeDBResponse::SynchronizeDBResponse()
+ : ::google::protobuf::Message(), _internal_metadata_(NULL) {
+ if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
+ protobuf_SynchronizeDBResponse_2eproto::InitDefaults();
+ }
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:Tango.PMR.Synchronization.SynchronizeDBResponse)
+}
+SynchronizeDBResponse::SynchronizeDBResponse(const SynchronizeDBResponse& from)
+ : ::google::protobuf::Message(),
+ _internal_metadata_(NULL),
+ _cached_size_(0) {
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ remotedb_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ if (from.remotedb().size() > 0) {
+ remotedb_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.remotedb_);
+ }
+ // @@protoc_insertion_point(copy_constructor:Tango.PMR.Synchronization.SynchronizeDBResponse)
+}
+
+void SynchronizeDBResponse::SharedCtor() {
+ remotedb_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ _cached_size_ = 0;
+}
+
+SynchronizeDBResponse::~SynchronizeDBResponse() {
+ // @@protoc_insertion_point(destructor:Tango.PMR.Synchronization.SynchronizeDBResponse)
+ SharedDtor();
+}
+
+void SynchronizeDBResponse::SharedDtor() {
+ remotedb_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+
+void SynchronizeDBResponse::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* SynchronizeDBResponse::descriptor() {
+ protobuf_SynchronizeDBResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_SynchronizeDBResponse_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
+}
+
+const SynchronizeDBResponse& SynchronizeDBResponse::default_instance() {
+ protobuf_SynchronizeDBResponse_2eproto::InitDefaults();
+ return *internal_default_instance();
+}
+
+SynchronizeDBResponse* SynchronizeDBResponse::New(::google::protobuf::Arena* arena) const {
+ SynchronizeDBResponse* n = new SynchronizeDBResponse;
+ if (arena != NULL) {
+ arena->Own(n);
+ }
+ return n;
+}
+
+void SynchronizeDBResponse::Clear() {
+// @@protoc_insertion_point(message_clear_start:Tango.PMR.Synchronization.SynchronizeDBResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ // Prevent compiler warnings about cached_has_bits being unused
+ (void) cached_has_bits;
+
+ remotedb_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ _internal_metadata_.Clear();
+}
+
+bool SynchronizeDBResponse::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:Tango.PMR.Synchronization.SynchronizeDBResponse)
+ 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)) {
+ // bytes RemoteDB = 1;
+ case 1: {
+ if (static_cast< ::google::protobuf::uint8>(tag) ==
+ static_cast< ::google::protobuf::uint8>(10u /* 10 & 0xFF */)) {
+ DO_(::google::protobuf::internal::WireFormatLite::ReadBytes(
+ input, this->mutable_remotedb()));
+ } else {
+ goto handle_unusual;
+ }
+ break;
+ }
+
+ default: {
+ handle_unusual:
+ if (tag == 0) {
+ goto success;
+ }
+ DO_(::google::protobuf::internal::WireFormat::SkipField(
+ input, tag, _internal_metadata_.mutable_unknown_fields()));
+ break;
+ }
+ }
+ }
+success:
+ // @@protoc_insertion_point(parse_success:Tango.PMR.Synchronization.SynchronizeDBResponse)
+ return true;
+failure:
+ // @@protoc_insertion_point(parse_failure:Tango.PMR.Synchronization.SynchronizeDBResponse)
+ return false;
+#undef DO_
+}
+
+void SynchronizeDBResponse::SerializeWithCachedSizes(
+ ::google::protobuf::io::CodedOutputStream* output) const {
+ // @@protoc_insertion_point(serialize_start:Tango.PMR.Synchronization.SynchronizeDBResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // bytes RemoteDB = 1;
+ if (this->remotedb().size() > 0) {
+ ::google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(
+ 1, this->remotedb(), output);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), output);
+ }
+ // @@protoc_insertion_point(serialize_end:Tango.PMR.Synchronization.SynchronizeDBResponse)
+}
+
+::google::protobuf::uint8* SynchronizeDBResponse::InternalSerializeWithCachedSizesToArray(
+ bool deterministic, ::google::protobuf::uint8* target) const {
+ (void)deterministic; // Unused
+ // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Synchronization.SynchronizeDBResponse)
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ // bytes RemoteDB = 1;
+ if (this->remotedb().size() > 0) {
+ target =
+ ::google::protobuf::internal::WireFormatLite::WriteBytesToArray(
+ 1, this->remotedb(), target);
+ }
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()), target);
+ }
+ // @@protoc_insertion_point(serialize_to_array_end:Tango.PMR.Synchronization.SynchronizeDBResponse)
+ return target;
+}
+
+size_t SynchronizeDBResponse::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Synchronization.SynchronizeDBResponse)
+ size_t total_size = 0;
+
+ if ((_internal_metadata_.have_unknown_fields() && ::google::protobuf::internal::GetProto3PreserveUnknownsDefault())) {
+ total_size +=
+ ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+ (::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()));
+ }
+ // bytes RemoteDB = 1;
+ if (this->remotedb().size() > 0) {
+ total_size += 1 +
+ ::google::protobuf::internal::WireFormatLite::BytesSize(
+ this->remotedb());
+ }
+
+ 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 SynchronizeDBResponse::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Synchronization.SynchronizeDBResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ const SynchronizeDBResponse* source =
+ ::google::protobuf::internal::DynamicCastToGenerated<const SynchronizeDBResponse>(
+ &from);
+ if (source == NULL) {
+ // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Synchronization.SynchronizeDBResponse)
+ ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+ } else {
+ // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Synchronization.SynchronizeDBResponse)
+ MergeFrom(*source);
+ }
+}
+
+void SynchronizeDBResponse::MergeFrom(const SynchronizeDBResponse& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Synchronization.SynchronizeDBResponse)
+ GOOGLE_DCHECK_NE(&from, this);
+ _internal_metadata_.MergeFrom(from._internal_metadata_);
+ ::google::protobuf::uint32 cached_has_bits = 0;
+ (void) cached_has_bits;
+
+ if (from.remotedb().size() > 0) {
+
+ remotedb_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.remotedb_);
+ }
+}
+
+void SynchronizeDBResponse::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Synchronization.SynchronizeDBResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+void SynchronizeDBResponse::CopyFrom(const SynchronizeDBResponse& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Synchronization.SynchronizeDBResponse)
+ if (&from == this) return;
+ Clear();
+ MergeFrom(from);
+}
+
+bool SynchronizeDBResponse::IsInitialized() const {
+ return true;
+}
+
+void SynchronizeDBResponse::Swap(SynchronizeDBResponse* other) {
+ if (other == this) return;
+ InternalSwap(other);
+}
+void SynchronizeDBResponse::InternalSwap(SynchronizeDBResponse* other) {
+ using std::swap;
+ remotedb_.Swap(&other->remotedb_);
+ _internal_metadata_.Swap(&other->_internal_metadata_);
+ swap(_cached_size_, other->_cached_size_);
+}
+
+::google::protobuf::Metadata SynchronizeDBResponse::GetMetadata() const {
+ protobuf_SynchronizeDBResponse_2eproto::protobuf_AssignDescriptorsOnce();
+ return protobuf_SynchronizeDBResponse_2eproto::file_level_metadata[kIndexInFileMessages];
+}
+
+#if PROTOBUF_INLINE_NOT_IN_HEADERS
+// SynchronizeDBResponse
+
+// bytes RemoteDB = 1;
+void SynchronizeDBResponse::clear_remotedb() {
+ remotedb_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+const ::std::string& SynchronizeDBResponse::remotedb() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Synchronization.SynchronizeDBResponse.RemoteDB)
+ return remotedb_.GetNoArena();
+}
+void SynchronizeDBResponse::set_remotedb(const ::std::string& value) {
+
+ remotedb_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:Tango.PMR.Synchronization.SynchronizeDBResponse.RemoteDB)
+}
+#if LANG_CXX11
+void SynchronizeDBResponse::set_remotedb(::std::string&& value) {
+
+ remotedb_.SetNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+ // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Synchronization.SynchronizeDBResponse.RemoteDB)
+}
+#endif
+void SynchronizeDBResponse::set_remotedb(const char* value) {
+ GOOGLE_DCHECK(value != NULL);
+
+ remotedb_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:Tango.PMR.Synchronization.SynchronizeDBResponse.RemoteDB)
+}
+void SynchronizeDBResponse::set_remotedb(const void* value, size_t size) {
+
+ remotedb_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Synchronization.SynchronizeDBResponse.RemoteDB)
+}
+::std::string* SynchronizeDBResponse::mutable_remotedb() {
+
+ // @@protoc_insertion_point(field_mutable:Tango.PMR.Synchronization.SynchronizeDBResponse.RemoteDB)
+ return remotedb_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+::std::string* SynchronizeDBResponse::release_remotedb() {
+ // @@protoc_insertion_point(field_release:Tango.PMR.Synchronization.SynchronizeDBResponse.RemoteDB)
+
+ return remotedb_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+void SynchronizeDBResponse::set_allocated_remotedb(::std::string* remotedb) {
+ if (remotedb != NULL) {
+
+ } else {
+
+ }
+ remotedb_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), remotedb);
+ // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Synchronization.SynchronizeDBResponse.RemoteDB)
+}
+
+#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace Synchronization
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/SynchronizeDBResponse.pb.h b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/SynchronizeDBResponse.pb.h
new file mode 100644
index 000000000..4efe57baa
--- /dev/null
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/PMR/SynchronizeDBResponse.pb.h
@@ -0,0 +1,246 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: SynchronizeDBResponse.proto
+
+#ifndef PROTOBUF_SynchronizeDBResponse_2eproto__INCLUDED
+#define PROTOBUF_SynchronizeDBResponse_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 3004000
+#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 3004000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/arena.h>
+#include <google/protobuf/arenastring.h>
+#include <google/protobuf/generated_message_table_driven.h>
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/metadata.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h> // IWYU pragma: export
+#include <google/protobuf/extension_set.h> // IWYU pragma: export
+#include <google/protobuf/unknown_field_set.h>
+// @@protoc_insertion_point(includes)
+namespace Tango {
+namespace PMR {
+namespace Synchronization {
+class SynchronizeDBResponse;
+class SynchronizeDBResponseDefaultTypeInternal;
+extern SynchronizeDBResponseDefaultTypeInternal _SynchronizeDBResponse_default_instance_;
+} // namespace Synchronization
+} // namespace PMR
+} // namespace Tango
+
+namespace Tango {
+namespace PMR {
+namespace Synchronization {
+
+namespace protobuf_SynchronizeDBResponse_2eproto {
+// Internal implementation detail -- do not call these.
+struct TableStruct {
+ static const ::google::protobuf::internal::ParseTableField entries[];
+ static const ::google::protobuf::internal::AuxillaryParseTableField aux[];
+ static const ::google::protobuf::internal::ParseTable schema[];
+ static const ::google::protobuf::uint32 offsets[];
+ static const ::google::protobuf::internal::FieldMetadata field_metadata[];
+ static const ::google::protobuf::internal::SerializationTable serialization_table[];
+ static void InitDefaultsImpl();
+};
+void AddDescriptors();
+void InitDefaults();
+} // namespace protobuf_SynchronizeDBResponse_2eproto
+
+// ===================================================================
+
+class SynchronizeDBResponse : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:Tango.PMR.Synchronization.SynchronizeDBResponse) */ {
+ public:
+ SynchronizeDBResponse();
+ virtual ~SynchronizeDBResponse();
+
+ SynchronizeDBResponse(const SynchronizeDBResponse& from);
+
+ inline SynchronizeDBResponse& operator=(const SynchronizeDBResponse& from) {
+ CopyFrom(from);
+ return *this;
+ }
+ #if LANG_CXX11
+ SynchronizeDBResponse(SynchronizeDBResponse&& from) noexcept
+ : SynchronizeDBResponse() {
+ *this = ::std::move(from);
+ }
+
+ inline SynchronizeDBResponse& operator=(SynchronizeDBResponse&& from) noexcept {
+ if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+ if (this != &from) InternalSwap(&from);
+ } else {
+ CopyFrom(from);
+ }
+ return *this;
+ }
+ #endif
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const SynchronizeDBResponse& default_instance();
+
+ static inline const SynchronizeDBResponse* internal_default_instance() {
+ return reinterpret_cast<const SynchronizeDBResponse*>(
+ &_SynchronizeDBResponse_default_instance_);
+ }
+ static PROTOBUF_CONSTEXPR int const kIndexInFileMessages =
+ 0;
+
+ void Swap(SynchronizeDBResponse* other);
+ friend void swap(SynchronizeDBResponse& a, SynchronizeDBResponse& b) {
+ a.Swap(&b);
+ }
+
+ // implements Message ----------------------------------------------
+
+ inline SynchronizeDBResponse* New() const PROTOBUF_FINAL { return New(NULL); }
+
+ SynchronizeDBResponse* 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 SynchronizeDBResponse& from);
+ void MergeFrom(const SynchronizeDBResponse& 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;
+ int GetCachedSize() const PROTOBUF_FINAL { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const PROTOBUF_FINAL;
+ void InternalSwap(SynchronizeDBResponse* 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 -------------------------------------------------------
+
+ // bytes RemoteDB = 1;
+ void clear_remotedb();
+ static const int kRemoteDBFieldNumber = 1;
+ const ::std::string& remotedb() const;
+ void set_remotedb(const ::std::string& value);
+ #if LANG_CXX11
+ void set_remotedb(::std::string&& value);
+ #endif
+ void set_remotedb(const char* value);
+ void set_remotedb(const void* value, size_t size);
+ ::std::string* mutable_remotedb();
+ ::std::string* release_remotedb();
+ void set_allocated_remotedb(::std::string* remotedb);
+
+ // @@protoc_insertion_point(class_scope:Tango.PMR.Synchronization.SynchronizeDBResponse)
+ private:
+
+ ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+ ::google::protobuf::internal::ArenaStringPtr remotedb_;
+ mutable int _cached_size_;
+ friend struct protobuf_SynchronizeDBResponse_2eproto::TableStruct;
+};
+// ===================================================================
+
+
+// ===================================================================
+
+#if !PROTOBUF_INLINE_NOT_IN_HEADERS
+#ifdef __GNUC__
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wstrict-aliasing"
+#endif // __GNUC__
+// SynchronizeDBResponse
+
+// bytes RemoteDB = 1;
+inline void SynchronizeDBResponse::clear_remotedb() {
+ remotedb_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline const ::std::string& SynchronizeDBResponse::remotedb() const {
+ // @@protoc_insertion_point(field_get:Tango.PMR.Synchronization.SynchronizeDBResponse.RemoteDB)
+ return remotedb_.GetNoArena();
+}
+inline void SynchronizeDBResponse::set_remotedb(const ::std::string& value) {
+
+ remotedb_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
+ // @@protoc_insertion_point(field_set:Tango.PMR.Synchronization.SynchronizeDBResponse.RemoteDB)
+}
+#if LANG_CXX11
+inline void SynchronizeDBResponse::set_remotedb(::std::string&& value) {
+
+ remotedb_.SetNoArena(
+ &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
+ // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Synchronization.SynchronizeDBResponse.RemoteDB)
+}
+#endif
+inline void SynchronizeDBResponse::set_remotedb(const char* value) {
+ GOOGLE_DCHECK(value != NULL);
+
+ remotedb_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
+ // @@protoc_insertion_point(field_set_char:Tango.PMR.Synchronization.SynchronizeDBResponse.RemoteDB)
+}
+inline void SynchronizeDBResponse::set_remotedb(const void* value, size_t size) {
+
+ remotedb_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
+ ::std::string(reinterpret_cast<const char*>(value), size));
+ // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Synchronization.SynchronizeDBResponse.RemoteDB)
+}
+inline ::std::string* SynchronizeDBResponse::mutable_remotedb() {
+
+ // @@protoc_insertion_point(field_mutable:Tango.PMR.Synchronization.SynchronizeDBResponse.RemoteDB)
+ return remotedb_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline ::std::string* SynchronizeDBResponse::release_remotedb() {
+ // @@protoc_insertion_point(field_release:Tango.PMR.Synchronization.SynchronizeDBResponse.RemoteDB)
+
+ return remotedb_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+}
+inline void SynchronizeDBResponse::set_allocated_remotedb(::std::string* remotedb) {
+ if (remotedb != NULL) {
+
+ } else {
+
+ }
+ remotedb_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), remotedb);
+ // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Synchronization.SynchronizeDBResponse.RemoteDB)
+}
+
+#ifdef __GNUC__
+ #pragma GCC diagnostic pop
+#endif // __GNUC__
+#endif // !PROTOBUF_INLINE_NOT_IN_HEADERS
+
+// @@protoc_insertion_point(namespace_scope)
+
+
+} // namespace Synchronization
+} // namespace PMR
+} // namespace Tango
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_SynchronizeDBResponse_2eproto__INCLUDED
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/Tango.ProtoTest.vcxproj b/Software/Visual_Studio/Native/Tango.ProtoTest/Tango.ProtoTest.vcxproj
index 4959792e2..e657d78b8 100644
--- a/Software/Visual_Studio/Native/Tango.ProtoTest/Tango.ProtoTest.vcxproj
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/Tango.ProtoTest.vcxproj
@@ -72,7 +72,7 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<TargetExt>.dll</TargetExt>
<OutDir>$(SolutionDir)Build\Debug</OutDir>
- <IncludePath>..\..\..\External Repositories\Protobuf\protobuf-3.4.1\src;$(IncludePath)</IncludePath>
+ <IncludePath>..\..\..\External_Repositories\Protobuf\protobuf-3.4.1\src;$(IncludePath)</IncludePath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
@@ -121,6 +121,7 @@
<ItemGroup>
<ClInclude Include="PMR\CalculateRequest.pb.h" />
<ClInclude Include="PMR\CalculateResponse.pb.h" />
+ <ClInclude Include="PMR\ErrorCode.pb.h" />
<ClInclude Include="PMR\Job.pb.h" />
<ClInclude Include="PMR\MessageContainer.pb.h" />
<ClInclude Include="PMR\MessageType.pb.h" />
@@ -133,6 +134,7 @@
<ItemGroup>
<ClCompile Include="PMR\CalculateRequest.pb.cc" />
<ClCompile Include="PMR\CalculateResponse.pb.cc" />
+ <ClCompile Include="PMR\ErrorCode.pb.cc" />
<ClCompile Include="PMR\Job.pb.cc" />
<ClCompile Include="PMR\MessageContainer.pb.cc" />
<ClCompile Include="PMR\MessageType.pb.cc" />
diff --git a/Software/Visual_Studio/Native/Tango.ProtoTest/Tango.ProtoTest.vcxproj.filters b/Software/Visual_Studio/Native/Tango.ProtoTest/Tango.ProtoTest.vcxproj.filters
index 0b835c2c4..ed9a45953 100644
--- a/Software/Visual_Studio/Native/Tango.ProtoTest/Tango.ProtoTest.vcxproj.filters
+++ b/Software/Visual_Studio/Native/Tango.ProtoTest/Tango.ProtoTest.vcxproj.filters
@@ -45,6 +45,9 @@
<ClInclude Include="PMR\Segment.pb.h">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="PMR\ErrorCode.pb.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="ProtoTester.cpp">
@@ -77,6 +80,9 @@
<ClCompile Include="PMR\Segment.pb.cc">
<Filter>Source Files</Filter>
</ClCompile>
+ <ClCompile Include="PMR\ErrorCode.pb.cc">
+ <Filter>Source Files</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<Library Include="libprotobuf.lib" />
diff --git a/Software/Visual_Studio/Tango.sln b/Software/Visual_Studio/Tango.sln
index 0a1922bd7..28c4d7b0d 100644
--- a/Software/Visual_Studio/Tango.sln
+++ b/Software/Visual_Studio/Tango.sln
@@ -97,445 +97,753 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.ColorPicker", "Tango.
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.MachineStudio.Synchronization", "MachineStudio\Modules\Tango.MachineStudio.Synchronization\Tango.MachineStudio.Synchronization.csproj", "{12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tango.ColorLib", "Native\Tango.ColorLib\Tango.ColorLib.vcxproj", "{92D97576-E154-444B-A084-D2269A5E8A15}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
+ Debug|ARM = Debug|ARM
+ Debug|ARM64 = Debug|ARM64
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
+ Release|ARM = Release|ARM
+ Release|ARM64 = Release|ARM64
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{40073806-914E-4E78-97AB-FA9639308EBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{40073806-914E-4E78-97AB-FA9639308EBE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|ARM.Build.0 = Debug|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Debug|ARM64.Build.0 = Debug|Any CPU
{40073806-914E-4E78-97AB-FA9639308EBE}.Debug|x64.ActiveCfg = Debug|Any CPU
{40073806-914E-4E78-97AB-FA9639308EBE}.Debug|x64.Build.0 = Debug|Any CPU
{40073806-914E-4E78-97AB-FA9639308EBE}.Debug|x86.ActiveCfg = Debug|Any CPU
{40073806-914E-4E78-97AB-FA9639308EBE}.Debug|x86.Build.0 = Debug|Any CPU
{40073806-914E-4E78-97AB-FA9639308EBE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{40073806-914E-4E78-97AB-FA9639308EBE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Release|ARM.ActiveCfg = Release|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Release|ARM.Build.0 = Release|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {40073806-914E-4E78-97AB-FA9639308EBE}.Release|ARM64.Build.0 = Release|Any CPU
{40073806-914E-4E78-97AB-FA9639308EBE}.Release|x64.ActiveCfg = Release|Any CPU
{40073806-914E-4E78-97AB-FA9639308EBE}.Release|x64.Build.0 = Release|Any CPU
{40073806-914E-4E78-97AB-FA9639308EBE}.Release|x86.ActiveCfg = Release|Any CPU
{40073806-914E-4E78-97AB-FA9639308EBE}.Release|x86.Build.0 = Release|Any CPU
{A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|ARM.Build.0 = Debug|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|ARM64.Build.0 = Debug|Any CPU
{A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|x64.ActiveCfg = Debug|Any CPU
{A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|x64.Build.0 = Debug|Any CPU
{A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|x86.ActiveCfg = Debug|Any CPU
{A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Debug|x86.Build.0 = Debug|Any CPU
{A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|ARM.ActiveCfg = Release|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|ARM.Build.0 = Release|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|ARM64.Build.0 = Release|Any CPU
{A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|x64.ActiveCfg = Release|Any CPU
{A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|x64.Build.0 = Release|Any CPU
{A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|x86.ActiveCfg = Release|Any CPU
{A34EE0F0-649D-41C8-8489-B6F1CC6924EE}.Release|x86.Build.0 = Release|Any CPU
{37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|ARM.Build.0 = Debug|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|ARM64.Build.0 = Debug|Any CPU
{37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|x64.ActiveCfg = Debug|Any CPU
{37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|x64.Build.0 = Debug|Any CPU
{37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|x86.ActiveCfg = Debug|Any CPU
{37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Debug|x86.Build.0 = Debug|Any CPU
{37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|ARM.ActiveCfg = Release|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|ARM.Build.0 = Release|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|ARM64.Build.0 = Release|Any CPU
{37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|x64.ActiveCfg = Release|Any CPU
{37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|x64.Build.0 = Release|Any CPU
{37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|x86.ActiveCfg = Release|Any CPU
{37E45CE1-A0F6-4ED7-9791-A1BED947602F}.Release|x86.Build.0 = Release|Any CPU
{DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|ARM.Build.0 = Debug|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|ARM64.Build.0 = Debug|Any CPU
{DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|x64.ActiveCfg = Debug|Any CPU
{DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|x64.Build.0 = Debug|Any CPU
{DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|x86.ActiveCfg = Debug|Any CPU
{DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Debug|x86.Build.0 = Debug|Any CPU
{DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|ARM.ActiveCfg = Release|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|ARM.Build.0 = Release|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|ARM64.Build.0 = Release|Any CPU
{DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|x64.ActiveCfg = Release|Any CPU
{DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|x64.Build.0 = Release|Any CPU
{DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|x86.ActiveCfg = Release|Any CPU
{DE5AB980-A9AD-4273-8272-C4E1E062E3EC}.Release|x86.Build.0 = Release|Any CPU
{BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|ARM.Build.0 = Debug|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|ARM64.Build.0 = Debug|Any CPU
{BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|x64.ActiveCfg = Debug|Any CPU
{BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|x64.Build.0 = Debug|Any CPU
{BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|x86.ActiveCfg = Debug|Any CPU
{BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Debug|x86.Build.0 = Debug|Any CPU
{BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|ARM.ActiveCfg = Release|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|ARM.Build.0 = Release|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|ARM64.Build.0 = Release|Any CPU
{BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|x64.ActiveCfg = Release|Any CPU
{BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|x64.Build.0 = Release|Any CPU
{BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|x86.ActiveCfg = Release|Any CPU
{BC932DBD-7CDB-488C-99E4-F02CF441F55E}.Release|x86.Build.0 = Release|Any CPU
{FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|ARM.Build.0 = Debug|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|ARM64.Build.0 = Debug|Any CPU
{FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|x64.ActiveCfg = Debug|Any CPU
{FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|x64.Build.0 = Debug|Any CPU
{FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|x86.ActiveCfg = Debug|Any CPU
{FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Debug|x86.Build.0 = Debug|Any CPU
{FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|ARM.ActiveCfg = Release|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|ARM.Build.0 = Release|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|ARM64.Build.0 = Release|Any CPU
{FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|x64.ActiveCfg = Release|Any CPU
{FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|x64.Build.0 = Release|Any CPU
{FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|x86.ActiveCfg = Release|Any CPU
{FB82AA6B-1652-452C-8235-4FB2E524FBC0}.Release|x86.Build.0 = Release|Any CPU
{E4927038-348D-4295-AAF4-861C58CB3943}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E4927038-348D-4295-AAF4-861C58CB3943}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|ARM.Build.0 = Debug|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Debug|ARM64.Build.0 = Debug|Any CPU
{E4927038-348D-4295-AAF4-861C58CB3943}.Debug|x64.ActiveCfg = Debug|Any CPU
{E4927038-348D-4295-AAF4-861C58CB3943}.Debug|x64.Build.0 = Debug|Any CPU
{E4927038-348D-4295-AAF4-861C58CB3943}.Debug|x86.ActiveCfg = Debug|Any CPU
{E4927038-348D-4295-AAF4-861C58CB3943}.Debug|x86.Build.0 = Debug|Any CPU
{E4927038-348D-4295-AAF4-861C58CB3943}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E4927038-348D-4295-AAF4-861C58CB3943}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Release|ARM.ActiveCfg = Release|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Release|ARM.Build.0 = Release|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {E4927038-348D-4295-AAF4-861C58CB3943}.Release|ARM64.Build.0 = Release|Any CPU
{E4927038-348D-4295-AAF4-861C58CB3943}.Release|x64.ActiveCfg = Release|Any CPU
{E4927038-348D-4295-AAF4-861C58CB3943}.Release|x64.Build.0 = Release|Any CPU
{E4927038-348D-4295-AAF4-861C58CB3943}.Release|x86.ActiveCfg = Release|Any CPU
{E4927038-348D-4295-AAF4-861C58CB3943}.Release|x86.Build.0 = Release|Any CPU
{74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|ARM.Build.0 = Debug|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|ARM64.Build.0 = Debug|Any CPU
{74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|x64.ActiveCfg = Debug|Any CPU
{74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|x64.Build.0 = Debug|Any CPU
{74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|x86.ActiveCfg = Debug|Any CPU
{74E700B0-1156-4126-BE40-EE450D3C3026}.Debug|x86.Build.0 = Debug|Any CPU
{74E700B0-1156-4126-BE40-EE450D3C3026}.Release|Any CPU.ActiveCfg = Release|Any CPU
{74E700B0-1156-4126-BE40-EE450D3C3026}.Release|Any CPU.Build.0 = Release|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Release|ARM.ActiveCfg = Release|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Release|ARM.Build.0 = Release|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {74E700B0-1156-4126-BE40-EE450D3C3026}.Release|ARM64.Build.0 = Release|Any CPU
{74E700B0-1156-4126-BE40-EE450D3C3026}.Release|x64.ActiveCfg = Release|Any CPU
{74E700B0-1156-4126-BE40-EE450D3C3026}.Release|x64.Build.0 = Release|Any CPU
{74E700B0-1156-4126-BE40-EE450D3C3026}.Release|x86.ActiveCfg = Release|Any CPU
{74E700B0-1156-4126-BE40-EE450D3C3026}.Release|x86.Build.0 = Release|Any CPU
{63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|ARM.Build.0 = Debug|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|ARM64.Build.0 = Debug|Any CPU
{63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|x64.ActiveCfg = Debug|Any CPU
{63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|x64.Build.0 = Debug|Any CPU
{63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|x86.ActiveCfg = Debug|Any CPU
{63561E19-FF5A-414B-A5EF-E30711543E1D}.Debug|x86.Build.0 = Debug|Any CPU
{63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|ARM.ActiveCfg = Release|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|ARM.Build.0 = Release|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|ARM64.Build.0 = Release|Any CPU
{63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|x64.ActiveCfg = Release|Any CPU
{63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|x64.Build.0 = Release|Any CPU
{63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|x86.ActiveCfg = Release|Any CPU
{63561E19-FF5A-414B-A5EF-E30711543E1D}.Release|x86.Build.0 = Release|Any CPU
{1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|ARM.Build.0 = Debug|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|ARM64.Build.0 = Debug|Any CPU
{1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|x64.ActiveCfg = Debug|Any CPU
{1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|x64.Build.0 = Debug|Any CPU
{1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|x86.ActiveCfg = Debug|Any CPU
{1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Debug|x86.Build.0 = Debug|Any CPU
{1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|ARM.ActiveCfg = Release|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|ARM.Build.0 = Release|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|ARM64.Build.0 = Release|Any CPU
{1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|x64.ActiveCfg = Release|Any CPU
{1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|x64.Build.0 = Release|Any CPU
{1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|x86.ActiveCfg = Release|Any CPU
{1971345A-0627-4428-88AA-1CCC4BFAEF4B}.Release|x86.Build.0 = Release|Any CPU
{372401B3-FFEB-483F-965F-261506B3FDFB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{372401B3-FFEB-483F-965F-261506B3FDFB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {372401B3-FFEB-483F-965F-261506B3FDFB}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {372401B3-FFEB-483F-965F-261506B3FDFB}.Debug|ARM.Build.0 = Debug|Any CPU
+ {372401B3-FFEB-483F-965F-261506B3FDFB}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {372401B3-FFEB-483F-965F-261506B3FDFB}.Debug|ARM64.Build.0 = Debug|Any CPU
{372401B3-FFEB-483F-965F-261506B3FDFB}.Debug|x64.ActiveCfg = Debug|Any CPU
{372401B3-FFEB-483F-965F-261506B3FDFB}.Debug|x64.Build.0 = Debug|Any CPU
{372401B3-FFEB-483F-965F-261506B3FDFB}.Debug|x86.ActiveCfg = Debug|Any CPU
{372401B3-FFEB-483F-965F-261506B3FDFB}.Debug|x86.Build.0 = Debug|Any CPU
{372401B3-FFEB-483F-965F-261506B3FDFB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{372401B3-FFEB-483F-965F-261506B3FDFB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {372401B3-FFEB-483F-965F-261506B3FDFB}.Release|ARM.ActiveCfg = Release|Any CPU
+ {372401B3-FFEB-483F-965F-261506B3FDFB}.Release|ARM.Build.0 = Release|Any CPU
+ {372401B3-FFEB-483F-965F-261506B3FDFB}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {372401B3-FFEB-483F-965F-261506B3FDFB}.Release|ARM64.Build.0 = Release|Any CPU
{372401B3-FFEB-483F-965F-261506B3FDFB}.Release|x64.ActiveCfg = Release|Any CPU
{372401B3-FFEB-483F-965F-261506B3FDFB}.Release|x64.Build.0 = Release|Any CPU
{372401B3-FFEB-483F-965F-261506B3FDFB}.Release|x86.ActiveCfg = Release|Any CPU
{372401B3-FFEB-483F-965F-261506B3FDFB}.Release|x86.Build.0 = Release|Any CPU
{1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|ARM.Build.0 = Debug|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|ARM64.Build.0 = Debug|Any CPU
{1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|x64.ActiveCfg = Debug|Any CPU
{1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|x64.Build.0 = Debug|Any CPU
{1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|x86.ActiveCfg = Debug|Any CPU
{1981B537-39E9-4E7D-8430-27466481AEEE}.Debug|x86.Build.0 = Debug|Any CPU
{1981B537-39E9-4E7D-8430-27466481AEEE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1981B537-39E9-4E7D-8430-27466481AEEE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Release|ARM.ActiveCfg = Release|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Release|ARM.Build.0 = Release|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {1981B537-39E9-4E7D-8430-27466481AEEE}.Release|ARM64.Build.0 = Release|Any CPU
{1981B537-39E9-4E7D-8430-27466481AEEE}.Release|x64.ActiveCfg = Release|Any CPU
{1981B537-39E9-4E7D-8430-27466481AEEE}.Release|x64.Build.0 = Release|Any CPU
{1981B537-39E9-4E7D-8430-27466481AEEE}.Release|x86.ActiveCfg = Release|Any CPU
{1981B537-39E9-4E7D-8430-27466481AEEE}.Release|x86.Build.0 = Release|Any CPU
{35397DDA-DDC7-46BE-A802-3B722B6858E9}.Debug|Any CPU.ActiveCfg = Debug|Win32
+ {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Debug|ARM.ActiveCfg = Debug|Win32
+ {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Debug|ARM64.ActiveCfg = Debug|Win32
{35397DDA-DDC7-46BE-A802-3B722B6858E9}.Debug|x64.ActiveCfg = Debug|x64
{35397DDA-DDC7-46BE-A802-3B722B6858E9}.Debug|x64.Build.0 = Debug|x64
{35397DDA-DDC7-46BE-A802-3B722B6858E9}.Debug|x86.ActiveCfg = Debug|Win32
{35397DDA-DDC7-46BE-A802-3B722B6858E9}.Debug|x86.Build.0 = Debug|Win32
{35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release|Any CPU.ActiveCfg = Release|Win32
+ {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release|ARM.ActiveCfg = Release|Win32
+ {35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release|ARM64.ActiveCfg = Release|Win32
{35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release|x64.ActiveCfg = Release|x64
{35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release|x64.Build.0 = Release|x64
{35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release|x86.ActiveCfg = Release|Win32
{35397DDA-DDC7-46BE-A802-3B722B6858E9}.Release|x86.Build.0 = Release|Win32
{37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|ARM.Build.0 = Debug|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|ARM64.Build.0 = Debug|Any CPU
{37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|x64.ActiveCfg = Debug|Any CPU
{37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|x64.Build.0 = Debug|Any CPU
{37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|x86.ActiveCfg = Debug|Any CPU
{37EE62DF-A988-45AF-BB30-DD3245164188}.Debug|x86.Build.0 = Debug|Any CPU
{37EE62DF-A988-45AF-BB30-DD3245164188}.Release|Any CPU.ActiveCfg = Release|Any CPU
{37EE62DF-A988-45AF-BB30-DD3245164188}.Release|Any CPU.Build.0 = Release|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Release|ARM.ActiveCfg = Release|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Release|ARM.Build.0 = Release|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {37EE62DF-A988-45AF-BB30-DD3245164188}.Release|ARM64.Build.0 = Release|Any CPU
{37EE62DF-A988-45AF-BB30-DD3245164188}.Release|x64.ActiveCfg = Release|Any CPU
{37EE62DF-A988-45AF-BB30-DD3245164188}.Release|x64.Build.0 = Release|Any CPU
{37EE62DF-A988-45AF-BB30-DD3245164188}.Release|x86.ActiveCfg = Release|Any CPU
{37EE62DF-A988-45AF-BB30-DD3245164188}.Release|x86.Build.0 = Release|Any CPU
{3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|ARM.Build.0 = Debug|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|ARM64.Build.0 = Debug|Any CPU
{3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|x64.ActiveCfg = Debug|Any CPU
{3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|x64.Build.0 = Debug|Any CPU
{3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|x86.ActiveCfg = Debug|Any CPU
{3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Debug|x86.Build.0 = Debug|Any CPU
{3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|ARM.ActiveCfg = Release|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|ARM.Build.0 = Release|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|ARM64.Build.0 = Release|Any CPU
{3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|x64.ActiveCfg = Release|Any CPU
{3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|x64.Build.0 = Release|Any CPU
{3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|x86.ActiveCfg = Release|Any CPU
{3F09B230-5AAC-4651-BA7A-19F3BDFCF701}.Release|x86.Build.0 = Release|Any CPU
{7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|ARM.Build.0 = Debug|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|ARM64.Build.0 = Debug|Any CPU
{7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|x64.ActiveCfg = Debug|Any CPU
{7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|x64.Build.0 = Debug|Any CPU
{7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|x86.ActiveCfg = Debug|Any CPU
{7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Debug|x86.Build.0 = Debug|Any CPU
{7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|ARM.ActiveCfg = Release|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|ARM.Build.0 = Release|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|ARM64.Build.0 = Release|Any CPU
{7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|x64.ActiveCfg = Release|Any CPU
{7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|x64.Build.0 = Release|Any CPU
{7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|x86.ActiveCfg = Release|Any CPU
{7ADA4E86-CAD7-4968-A210-3A8A9E5153AB}.Release|x86.Build.0 = Release|Any CPU
{80EB1A50-B587-4159-911F-2F3702376684}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{80EB1A50-B587-4159-911F-2F3702376684}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {80EB1A50-B587-4159-911F-2F3702376684}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {80EB1A50-B587-4159-911F-2F3702376684}.Debug|ARM.Build.0 = Debug|Any CPU
+ {80EB1A50-B587-4159-911F-2F3702376684}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {80EB1A50-B587-4159-911F-2F3702376684}.Debug|ARM64.Build.0 = Debug|Any CPU
{80EB1A50-B587-4159-911F-2F3702376684}.Debug|x64.ActiveCfg = Debug|Any CPU
{80EB1A50-B587-4159-911F-2F3702376684}.Debug|x64.Build.0 = Debug|Any CPU
{80EB1A50-B587-4159-911F-2F3702376684}.Debug|x86.ActiveCfg = Debug|Any CPU
{80EB1A50-B587-4159-911F-2F3702376684}.Debug|x86.Build.0 = Debug|Any CPU
{80EB1A50-B587-4159-911F-2F3702376684}.Release|Any CPU.ActiveCfg = Release|Any CPU
{80EB1A50-B587-4159-911F-2F3702376684}.Release|Any CPU.Build.0 = Release|Any CPU
+ {80EB1A50-B587-4159-911F-2F3702376684}.Release|ARM.ActiveCfg = Release|Any CPU
+ {80EB1A50-B587-4159-911F-2F3702376684}.Release|ARM.Build.0 = Release|Any CPU
+ {80EB1A50-B587-4159-911F-2F3702376684}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {80EB1A50-B587-4159-911F-2F3702376684}.Release|ARM64.Build.0 = Release|Any CPU
{80EB1A50-B587-4159-911F-2F3702376684}.Release|x64.ActiveCfg = Release|Any CPU
{80EB1A50-B587-4159-911F-2F3702376684}.Release|x64.Build.0 = Release|Any CPU
{80EB1A50-B587-4159-911F-2F3702376684}.Release|x86.ActiveCfg = Release|Any CPU
{80EB1A50-B587-4159-911F-2F3702376684}.Release|x86.Build.0 = Release|Any CPU
{ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|ARM.Build.0 = Debug|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|ARM64.Build.0 = Debug|Any CPU
{ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|x64.ActiveCfg = Debug|Any CPU
{ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|x64.Build.0 = Debug|Any CPU
{ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|x86.ActiveCfg = Debug|Any CPU
{ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Debug|x86.Build.0 = Debug|Any CPU
{ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|ARM.ActiveCfg = Release|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|ARM.Build.0 = Release|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|ARM64.Build.0 = Release|Any CPU
{ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|x64.ActiveCfg = Release|Any CPU
{ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|x64.Build.0 = Release|Any CPU
{ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|x86.ActiveCfg = Release|Any CPU
{ADDEEDAF-B45C-4681-8FB7-1C0A0DC63B4B}.Release|x86.Build.0 = Release|Any CPU
{38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|ARM.Build.0 = Debug|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|ARM64.Build.0 = Debug|Any CPU
{38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|x64.ActiveCfg = Debug|Any CPU
{38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|x64.Build.0 = Debug|Any CPU
{38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|x86.ActiveCfg = Debug|Any CPU
{38197109-8610-4D3F-92B9-16D48DF94D7C}.Debug|x86.Build.0 = Debug|Any CPU
{38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|ARM.ActiveCfg = Release|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|ARM.Build.0 = Release|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|ARM64.Build.0 = Release|Any CPU
{38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|x64.ActiveCfg = Release|Any CPU
{38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|x64.Build.0 = Release|Any CPU
{38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|x86.ActiveCfg = Release|Any CPU
{38197109-8610-4D3F-92B9-16D48DF94D7C}.Release|x86.Build.0 = Release|Any CPU
{0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|ARM.Build.0 = Debug|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|ARM64.Build.0 = Debug|Any CPU
{0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|x64.ActiveCfg = Debug|Any CPU
{0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|x64.Build.0 = Debug|Any CPU
{0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|x86.ActiveCfg = Debug|Any CPU
{0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Debug|x86.Build.0 = Debug|Any CPU
{0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|ARM.ActiveCfg = Release|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|ARM.Build.0 = Release|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|ARM64.Build.0 = Release|Any CPU
{0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|x64.ActiveCfg = Release|Any CPU
{0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|x64.Build.0 = Release|Any CPU
{0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|x86.ActiveCfg = Release|Any CPU
{0E0EEF3E-8F4E-4F23-9D19-479FD8D76C12}.Release|x86.Build.0 = Release|Any CPU
{D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|ARM.Build.0 = Debug|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|ARM64.Build.0 = Debug|Any CPU
{D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|x64.ActiveCfg = Debug|Any CPU
{D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|x64.Build.0 = Debug|Any CPU
{D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|x86.ActiveCfg = Debug|Any CPU
{D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Debug|x86.Build.0 = Debug|Any CPU
{D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|ARM.ActiveCfg = Release|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|ARM.Build.0 = Release|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|ARM64.Build.0 = Release|Any CPU
{D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|x64.ActiveCfg = Release|Any CPU
{D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|x64.Build.0 = Release|Any CPU
{D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|x86.ActiveCfg = Release|Any CPU
{D8F1AD85-526A-4F50-B6DC-D437AF63D8D8}.Release|x86.Build.0 = Release|Any CPU
{22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|ARM.Build.0 = Debug|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|ARM64.Build.0 = Debug|Any CPU
{22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|x64.ActiveCfg = Debug|Any CPU
{22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|x64.Build.0 = Debug|Any CPU
{22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|x86.ActiveCfg = Debug|Any CPU
{22F87980-E990-4686-BE81-BE63D562C4D5}.Debug|x86.Build.0 = Debug|Any CPU
{22F87980-E990-4686-BE81-BE63D562C4D5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{22F87980-E990-4686-BE81-BE63D562C4D5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Release|ARM.ActiveCfg = Release|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Release|ARM.Build.0 = Release|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {22F87980-E990-4686-BE81-BE63D562C4D5}.Release|ARM64.Build.0 = Release|Any CPU
{22F87980-E990-4686-BE81-BE63D562C4D5}.Release|x64.ActiveCfg = Release|Any CPU
{22F87980-E990-4686-BE81-BE63D562C4D5}.Release|x64.Build.0 = Release|Any CPU
{22F87980-E990-4686-BE81-BE63D562C4D5}.Release|x86.ActiveCfg = Release|Any CPU
{22F87980-E990-4686-BE81-BE63D562C4D5}.Release|x86.Build.0 = Release|Any CPU
{CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|ARM.Build.0 = Debug|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|ARM64.Build.0 = Debug|Any CPU
{CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|x64.ActiveCfg = Debug|Any CPU
{CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|x64.Build.0 = Debug|Any CPU
{CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|x86.ActiveCfg = Debug|Any CPU
{CAEDAE94-11ED-473C-888A-268A6D38CD20}.Debug|x86.Build.0 = Debug|Any CPU
{CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|ARM.ActiveCfg = Release|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|ARM.Build.0 = Release|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|ARM64.Build.0 = Release|Any CPU
{CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|x64.ActiveCfg = Release|Any CPU
{CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|x64.Build.0 = Release|Any CPU
{CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|x86.ActiveCfg = Release|Any CPU
{CAEDAE94-11ED-473C-888A-268A6D38CD20}.Release|x86.Build.0 = Release|Any CPU
{BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|ARM.Build.0 = Debug|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|ARM64.Build.0 = Debug|Any CPU
{BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|x64.ActiveCfg = Debug|Any CPU
{BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|x64.Build.0 = Debug|Any CPU
{BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|x86.ActiveCfg = Debug|Any CPU
{BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Debug|x86.Build.0 = Debug|Any CPU
{BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|ARM.ActiveCfg = Release|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|ARM.Build.0 = Release|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|ARM64.Build.0 = Release|Any CPU
{BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|x64.ActiveCfg = Release|Any CPU
{BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|x64.Build.0 = Release|Any CPU
{BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|x86.ActiveCfg = Release|Any CPU
{BCD0C108-FC90-4537-8B80-ABBD201FECA3}.Release|x86.Build.0 = Release|Any CPU
{FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|ARM.Build.0 = Debug|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|ARM64.Build.0 = Debug|Any CPU
{FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|x64.ActiveCfg = Debug|Any CPU
{FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|x64.Build.0 = Debug|Any CPU
{FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|x86.ActiveCfg = Debug|Any CPU
{FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Debug|x86.Build.0 = Debug|Any CPU
{FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|ARM.ActiveCfg = Release|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|ARM.Build.0 = Release|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|ARM64.Build.0 = Release|Any CPU
{FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|x64.ActiveCfg = Release|Any CPU
{FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|x64.Build.0 = Release|Any CPU
{FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|x86.ActiveCfg = Release|Any CPU
{FC0FB4A1-360E-42B1-8372-9208A3098B2A}.Release|x86.Build.0 = Release|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|ARM.Build.0 = Debug|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|ARM64.Build.0 = Debug|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x64.ActiveCfg = Debug|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x64.Build.0 = Debug|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x86.ActiveCfg = Debug|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x86.Build.0 = Debug|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|ARM.ActiveCfg = Release|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|ARM.Build.0 = Release|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|ARM64.Build.0 = Release|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|x64.ActiveCfg = Release|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|x64.Build.0 = Release|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|x86.ActiveCfg = Release|Any CPU
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|x86.Build.0 = Release|Any CPU
{401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|ARM.Build.0 = Debug|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|ARM64.Build.0 = Debug|Any CPU
{401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|x64.ActiveCfg = Debug|Any CPU
{401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|x64.Build.0 = Debug|Any CPU
{401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|x86.ActiveCfg = Debug|Any CPU
{401989E7-AE1E-4002-B0EE-9A9F63740B97}.Debug|x86.Build.0 = Debug|Any CPU
{401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|Any CPU.ActiveCfg = Release|Any CPU
{401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|Any CPU.Build.0 = Release|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|ARM.ActiveCfg = Release|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|ARM.Build.0 = Release|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|ARM64.Build.0 = Release|Any CPU
{401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|x64.ActiveCfg = Release|Any CPU
{401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|x64.Build.0 = Release|Any CPU
{401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|x86.ActiveCfg = Release|Any CPU
{401989E7-AE1E-4002-B0EE-9A9F63740B97}.Release|x86.Build.0 = Release|Any CPU
{8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|ARM.Build.0 = Debug|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|ARM64.Build.0 = Debug|Any CPU
{8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|x64.ActiveCfg = Debug|Any CPU
{8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|x64.Build.0 = Debug|Any CPU
{8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|x86.ActiveCfg = Debug|Any CPU
{8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Debug|x86.Build.0 = Debug|Any CPU
{8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|ARM.ActiveCfg = Release|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|ARM.Build.0 = Release|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|ARM64.Build.0 = Release|Any CPU
{8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|x64.ActiveCfg = Release|Any CPU
{8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|x64.Build.0 = Release|Any CPU
{8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|x86.ActiveCfg = Release|Any CPU
{8491D07B-C1F6-4B62-A412-41B9FD2D6538}.Release|x86.Build.0 = Release|Any CPU
{0ECD6DA8-7AA6-48D9-8B65-279D176AD9AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0ECD6DA8-7AA6-48D9-8B65-279D176AD9AF}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {0ECD6DA8-7AA6-48D9-8B65-279D176AD9AF}.Debug|ARM.Build.0 = Debug|Any CPU
+ {0ECD6DA8-7AA6-48D9-8B65-279D176AD9AF}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {0ECD6DA8-7AA6-48D9-8B65-279D176AD9AF}.Debug|ARM64.Build.0 = Debug|Any CPU
{0ECD6DA8-7AA6-48D9-8B65-279D176AD9AF}.Debug|x64.ActiveCfg = Debug|Any CPU
{0ECD6DA8-7AA6-48D9-8B65-279D176AD9AF}.Debug|x64.Build.0 = Debug|Any CPU
{0ECD6DA8-7AA6-48D9-8B65-279D176AD9AF}.Debug|x86.ActiveCfg = Debug|Any CPU
{0ECD6DA8-7AA6-48D9-8B65-279D176AD9AF}.Debug|x86.Build.0 = Debug|Any CPU
{0ECD6DA8-7AA6-48D9-8B65-279D176AD9AF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0ECD6DA8-7AA6-48D9-8B65-279D176AD9AF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0ECD6DA8-7AA6-48D9-8B65-279D176AD9AF}.Release|ARM.ActiveCfg = Release|Any CPU
+ {0ECD6DA8-7AA6-48D9-8B65-279D176AD9AF}.Release|ARM.Build.0 = Release|Any CPU
+ {0ECD6DA8-7AA6-48D9-8B65-279D176AD9AF}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {0ECD6DA8-7AA6-48D9-8B65-279D176AD9AF}.Release|ARM64.Build.0 = Release|Any CPU
{0ECD6DA8-7AA6-48D9-8B65-279D176AD9AF}.Release|x64.ActiveCfg = Release|Any CPU
{0ECD6DA8-7AA6-48D9-8B65-279D176AD9AF}.Release|x64.Build.0 = Release|Any CPU
{0ECD6DA8-7AA6-48D9-8B65-279D176AD9AF}.Release|x86.ActiveCfg = Release|Any CPU
{0ECD6DA8-7AA6-48D9-8B65-279D176AD9AF}.Release|x86.Build.0 = Release|Any CPU
{EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|ARM.Build.0 = Debug|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|ARM64.Build.0 = Debug|Any CPU
{EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|x64.ActiveCfg = Debug|Any CPU
{EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|x64.Build.0 = Debug|Any CPU
{EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|x86.ActiveCfg = Debug|Any CPU
{EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Debug|x86.Build.0 = Debug|Any CPU
{EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|ARM.ActiveCfg = Release|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|ARM.Build.0 = Release|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|ARM64.Build.0 = Release|Any CPU
{EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|x64.ActiveCfg = Release|Any CPU
{EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|x64.Build.0 = Release|Any CPU
{EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|x86.ActiveCfg = Release|Any CPU
{EBB7CB9F-6AF2-456B-A5DD-1B136B605D90}.Release|x86.Build.0 = Release|Any CPU
{116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|ARM.Build.0 = Debug|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|ARM64.Build.0 = Debug|Any CPU
{116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|x64.ActiveCfg = Debug|Any CPU
{116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|x64.Build.0 = Debug|Any CPU
{116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|x86.ActiveCfg = Debug|Any CPU
{116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Debug|x86.Build.0 = Debug|Any CPU
{116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|Any CPU.ActiveCfg = Release|Any CPU
{116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|Any CPU.Build.0 = Release|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|ARM.ActiveCfg = Release|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|ARM.Build.0 = Release|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|ARM64.Build.0 = Release|Any CPU
{116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|x64.ActiveCfg = Release|Any CPU
{116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|x64.Build.0 = Release|Any CPU
{116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|x86.ActiveCfg = Release|Any CPU
{116DFDB0-7681-46FE-8BAD-FE8AE09BB076}.Release|x86.Build.0 = Release|Any CPU
{94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|ARM.Build.0 = Debug|Any CPU
+ {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|ARM64.Build.0 = Debug|Any CPU
{94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|x64.ActiveCfg = Debug|Any CPU
{94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|x64.Build.0 = Debug|Any CPU
{94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|x86.ActiveCfg = Debug|Any CPU
{94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Debug|x86.Build.0 = Debug|Any CPU
{94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|ARM.ActiveCfg = Release|Any CPU
+ {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|ARM.Build.0 = Release|Any CPU
+ {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|ARM64.Build.0 = Release|Any CPU
{94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|x64.ActiveCfg = Release|Any CPU
{94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|x64.Build.0 = Release|Any CPU
{94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|x86.ActiveCfg = Release|Any CPU
{94F7ACF8-55E1-4A02-B9BC-A818413FDBBF}.Release|x86.Build.0 = Release|Any CPU
{CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|ARM.Build.0 = Debug|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|ARM64.Build.0 = Debug|Any CPU
{CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|x64.ActiveCfg = Debug|Any CPU
{CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|x64.Build.0 = Debug|Any CPU
{CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|x86.ActiveCfg = Debug|Any CPU
{CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Debug|x86.Build.0 = Debug|Any CPU
{CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|ARM.ActiveCfg = Release|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|ARM.Build.0 = Release|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|ARM64.Build.0 = Release|Any CPU
{CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|x64.ActiveCfg = Release|Any CPU
{CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|x64.Build.0 = Release|Any CPU
{CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|x86.ActiveCfg = Release|Any CPU
{CB0B0AA2-BB24-4BCA-A720-45E397684E12}.Release|x86.Build.0 = Release|Any CPU
{CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|ARM.Build.0 = Debug|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|ARM64.Build.0 = Debug|Any CPU
{CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|x64.ActiveCfg = Debug|Any CPU
{CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|x64.Build.0 = Debug|Any CPU
{CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|x86.ActiveCfg = Debug|Any CPU
{CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Debug|x86.Build.0 = Debug|Any CPU
{CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|ARM.ActiveCfg = Release|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|ARM.Build.0 = Release|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|ARM64.Build.0 = Release|Any CPU
{CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|x64.ActiveCfg = Release|Any CPU
{CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|x64.Build.0 = Release|Any CPU
{CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|x86.ActiveCfg = Release|Any CPU
{CE4A0D11-08A2-4CD6-9908-D6C62E80D805}.Release|x86.Build.0 = Release|Any CPU
{A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|ARM.Build.0 = Debug|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|ARM64.Build.0 = Debug|Any CPU
{A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|x64.ActiveCfg = Debug|Any CPU
{A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|x64.Build.0 = Debug|Any CPU
{A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|x86.ActiveCfg = Debug|Any CPU
{A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Debug|x86.Build.0 = Debug|Any CPU
{A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|ARM.ActiveCfg = Release|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|ARM.Build.0 = Release|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|ARM64.Build.0 = Release|Any CPU
{A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|x64.ActiveCfg = Release|Any CPU
{A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|x64.Build.0 = Release|Any CPU
{A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|x86.ActiveCfg = Release|Any CPU
{A2F5AF44-29FF-45D6-9D25-ECDA5CCE88B5}.Release|x86.Build.0 = Release|Any CPU
{12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|ARM.Build.0 = Debug|Any CPU
+ {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|ARM64.Build.0 = Debug|Any CPU
{12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|x64.ActiveCfg = Debug|Any CPU
{12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|x64.Build.0 = Debug|Any CPU
{12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|x86.ActiveCfg = Debug|Any CPU
{12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Debug|x86.Build.0 = Debug|Any CPU
{12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|ARM.ActiveCfg = Release|Any CPU
+ {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|ARM.Build.0 = Release|Any CPU
+ {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|ARM64.Build.0 = Release|Any CPU
{12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|x64.ActiveCfg = Release|Any CPU
{12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|x64.Build.0 = Release|Any CPU
{12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|x86.ActiveCfg = Release|Any CPU
{12D0C43C-391F-4C74-92AB-82E9A9BEEB9B}.Release|x86.Build.0 = Release|Any CPU
+ {92D97576-E154-444B-A084-D2269A5E8A15}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {92D97576-E154-444B-A084-D2269A5E8A15}.Debug|ARM.ActiveCfg = Debug|ARM
+ {92D97576-E154-444B-A084-D2269A5E8A15}.Debug|ARM.Build.0 = Debug|ARM
+ {92D97576-E154-444B-A084-D2269A5E8A15}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {92D97576-E154-444B-A084-D2269A5E8A15}.Debug|ARM64.Build.0 = Debug|ARM64
+ {92D97576-E154-444B-A084-D2269A5E8A15}.Debug|x64.ActiveCfg = Debug|x64
+ {92D97576-E154-444B-A084-D2269A5E8A15}.Debug|x64.Build.0 = Debug|x64
+ {92D97576-E154-444B-A084-D2269A5E8A15}.Debug|x86.ActiveCfg = Debug|x86
+ {92D97576-E154-444B-A084-D2269A5E8A15}.Debug|x86.Build.0 = Debug|x86
+ {92D97576-E154-444B-A084-D2269A5E8A15}.Release|Any CPU.ActiveCfg = Release|x86
+ {92D97576-E154-444B-A084-D2269A5E8A15}.Release|ARM.ActiveCfg = Release|ARM
+ {92D97576-E154-444B-A084-D2269A5E8A15}.Release|ARM.Build.0 = Release|ARM
+ {92D97576-E154-444B-A084-D2269A5E8A15}.Release|ARM64.ActiveCfg = Release|ARM64
+ {92D97576-E154-444B-A084-D2269A5E8A15}.Release|ARM64.Build.0 = Release|ARM64
+ {92D97576-E154-444B-A084-D2269A5E8A15}.Release|x64.ActiveCfg = Release|x64
+ {92D97576-E154-444B-A084-D2269A5E8A15}.Release|x64.Build.0 = Release|x64
+ {92D97576-E154-444B-A084-D2269A5E8A15}.Release|x86.ActiveCfg = Release|x86
+ {92D97576-E154-444B-A084-D2269A5E8A15}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -560,5 +868,6 @@ Global
{CB0B0AA2-BB24-4BCA-A720-45E397684E12} = {57DF2A95-5DDD-4830-A4AF-B484B59C7C2B}
{CE4A0D11-08A2-4CD6-9908-D6C62E80D805} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8}
{12D0C43C-391F-4C74-92AB-82E9A9BEEB9B} = {B2AF4F3F-2828-47C3-8F3E-A0EA0BD66FF8}
+ {92D97576-E154-444B-A084-D2269A5E8A15} = {4443B71C-216E-4D4C-8D19-868F50803813}
EndGlobalSection
EndGlobal
diff --git a/Software/Visual_Studio/Web/Tango.MachineService/App_Data/Tango.db b/Software/Visual_Studio/Web/Tango.MachineService/App_Data/Tango.db
index a0d317b86..00c79da9c 100644
--- a/Software/Visual_Studio/Web/Tango.MachineService/App_Data/Tango.db
+++ b/Software/Visual_Studio/Web/Tango.MachineService/App_Data/Tango.db
Binary files differ