aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/TCC/Tango.TCC.LoadTestLib/EigenDir/test/swap.cpp
blob: f76e3624ddfd189c410f31a8527188a2462b5c4e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
// This file is part of Eigen, a lightweight C++ template library
// for linear algebra.
//
// Copyright (C) 2009 Benoit Jacob <jacob.benoit.1@gmail.com>
//
// This Source Code Form is subject to the terms of the Mozilla
// Public License v. 2.0. If a copy of the MPL was not distributed
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

#define EIGEN_NO_STATIC_ASSERT
#include "main.h"

template<typename T>
struct other_matrix_type
{
  typedef int type;
};

template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
struct other_matrix_type<Matrix<_Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols> >
{
  typedef Matrix<_Scalar, _Rows, _Cols, _Options^RowMajor, _MaxRows, _MaxCols> type;
};

template<typename MatrixType> void swap(const MatrixType& m)
{
  typedef typename other_matrix_type<MatrixType>::type OtherMatrixType;
  typedef typename MatrixType::Scalar Scalar;

  eigen_assert((!internal::is_same<MatrixType,OtherMatrixType>::value));
  typename MatrixType::Index rows = m.rows();
  typename MatrixType::Index cols = m.cols();
  
  // construct 3 matrix guaranteed to be distinct
  MatrixType m1 = MatrixType::Random(rows,cols);
  MatrixType m2 = MatrixType::Random(rows,cols) + Scalar(100) * MatrixType::Identity(rows,cols);
  OtherMatrixType m3 = OtherMatrixType::Random(rows,cols) + Scalar(200) * OtherMatrixType::Identity(rows,cols);
  
  MatrixType m1_copy = m1;
  MatrixType m2_copy = m2;
  OtherMatrixType m3_copy = m3;
  
  // test swapping 2 matrices of same type
  Scalar *d1=m1.data(), *d2=m2.data();
  m1.swap(m2);
  VERIFY_IS_APPROX(m1,m2_copy);
  VERIFY_IS_APPROX(m2,m1_copy);
  if(MatrixType::SizeAtCompileTime==Dynamic)
  {
    VERIFY(m1.data()==d2);
    VERIFY(m2.data()==d1);
  }
  m1 = m1_copy;
  m2 = m2_copy;
  
  // test swapping 2 matrices of different types
  m1.swap(m3);
  VERIFY_IS_APPROX(m1,m3_copy);
  VERIFY_IS_APPROX(m3,m1_copy);
  m1 = m1_copy;
  m3 = m3_copy;
  
  // test swapping matrix with expression
  m1.swap(m2.block(0,0,rows,cols));
  VERIFY_IS_APPROX(m1,m2_copy);
  VERIFY_IS_APPROX(m2,m1_copy);
  m1 = m1_copy;
  m2 = m2_copy;

  // test swapping two expressions of different types
  m1.transpose().swap(m3.transpose());
  VERIFY_IS_APPROX(m1,m3_copy);
  VERIFY_IS_APPROX(m3,m1_copy);
  m1 = m1_copy;
  m3 = m3_copy;
  
  if(m1.rows()>1)
  {
    // test assertion on mismatching size -- matrix case
    VERIFY_RAISES_ASSERT(m1.swap(m1.row(0)));
    // test assertion on mismatching size -- xpr case
    VERIFY_RAISES_ASSERT(m1.row(0).swap(m1));
  }
}

void test_swap()
{
  int s = internal::random<int>(1,EIGEN_TEST_MAX_SIZE);
  CALL_SUBTEST_1( swap(Matrix3f()) ); // fixed size, no vectorization 
  CALL_SUBTEST_2( swap(Matrix4d()) ); // fixed size, possible vectorization 
  CALL_SUBTEST_3( swap(MatrixXd(s,s)) ); // dyn size, no vectorization 
  CALL_SUBTEST_4( swap(MatrixXf(s,s)) ); // dyn size, possible vectorization 
  TEST_SET_BUT_UNUSED_VARIABLE(s)
}
-color: #ffdddd } /* Generic.Deleted */ .highlight .ge { font-style: italic } /* Generic.Emph */ .highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ .highlight .gr { color: #aa0000 } /* Generic.Error */ .highlight .gh { color: #333333 } /* Generic.Heading */ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: StubExtFlashReadResponse.proto

#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
#include "StubExtFlashReadResponse.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 StubExtFlashReadResponseDefaultTypeInternal {
public:
 ::google::protobuf::internal::ExplicitlyConstructed<StubExtFlashReadResponse>
     _instance;
} _StubExtFlashReadResponse_default_instance_;

namespace protobuf_StubExtFlashReadResponse_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(StubExtFlashReadResponse, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubExtFlashReadResponse, readword_1_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubExtFlashReadResponse, readword_2_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubExtFlashReadResponse, readword_3_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubExtFlashReadResponse, readword_4_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubExtFlashReadResponse, readword_5_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubExtFlashReadResponse, status_),
  GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(StubExtFlashReadResponse, statusword_),
};
static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, sizeof(StubExtFlashReadResponse)},
};

static ::google::protobuf::Message const * const file_default_instances[] = {
  reinterpret_cast<const ::google::protobuf::Message*>(&_StubExtFlashReadResponse_default_instance_),
};

namespace {

void protobuf_AssignDescriptors() {
  AddDescriptors();
  ::google::protobuf::MessageFactory* factory = NULL;
  AssignDescriptors(
      "StubExtFlashReadResponse.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();
  _StubExtFlashReadResponse_default_instance_._instance.DefaultConstruct();
  ::google::protobuf::internal::OnShutdownDestroyMessage(
      &_StubExtFlashReadResponse_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\036StubExtFlashReadResponse.proto\022\017Tango."
      "PMR.Stubs\"\242\001\n\030StubExtFlashReadResponse\022\022"
      "\n\nReadWord_1\030\001 \001(\005\022\022\n\nReadWord_2\030\002 \001(\005\022\022"
      "\n\nReadWord_3\030\003 \001(\005\022\022\n\nReadWord_4\030\004 \001(\005\022\022"
      "\n\nReadWord_5\030\005 \001(\005\022\016\n\006Status\030\006 \001(\t\022\022\n\nSt"
      "atusWord\030\007 \001(\rB\033\n\031com.twine.tango.pmr.st"
      "ubsb\006proto3"
  };
  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
      descriptor, 251);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
    "StubExtFlashReadResponse.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_StubExtFlashReadResponse_2eproto


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

#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int StubExtFlashReadResponse::kReadWord1FieldNumber;
const int StubExtFlashReadResponse::kReadWord2FieldNumber;
const int StubExtFlashReadResponse::kReadWord3FieldNumber;
const int StubExtFlashReadResponse::kReadWord4FieldNumber;
const int StubExtFlashReadResponse::kReadWord5FieldNumber;
const int StubExtFlashReadResponse::kStatusFieldNumber;
const int StubExtFlashReadResponse::kStatusWordFieldNumber;
#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900

StubExtFlashReadResponse::StubExtFlashReadResponse()
  : ::google::protobuf::Message(), _internal_metadata_(NULL) {
  if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
    protobuf_StubExtFlashReadResponse_2eproto::InitDefaults();
  }
  SharedCtor();
  // @@protoc_insertion_point(constructor:Tango.PMR.Stubs.StubExtFlashReadResponse)
}
StubExtFlashReadResponse::StubExtFlashReadResponse(const StubExtFlashReadResponse& from)
  : ::google::protobuf::Message(),
      _internal_metadata_(NULL),
      _cached_size_(0) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  status_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  if (from.status().size() > 0) {
    status_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.status_);
  }
  ::memcpy(&readword_1_, &from.readword_1_,
    static_cast<size_t>(reinterpret_cast<char*>(&statusword_) -
    reinterpret_cast<char*>(&readword_1_)) + sizeof(statusword_));
  // @@protoc_insertion_point(copy_constructor:Tango.PMR.Stubs.StubExtFlashReadResponse)
}

void StubExtFlashReadResponse::SharedCtor() {
  status_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&readword_1_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&statusword_) -
      reinterpret_cast<char*>(&readword_1_)) + sizeof(statusword_));
  _cached_size_ = 0;
}

StubExtFlashReadResponse::~StubExtFlashReadResponse() {
  // @@protoc_insertion_point(destructor:Tango.PMR.Stubs.StubExtFlashReadResponse)
  SharedDtor();
}

void StubExtFlashReadResponse::SharedDtor() {
  status_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}

void StubExtFlashReadResponse::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* StubExtFlashReadResponse::descriptor() {
  protobuf_StubExtFlashReadResponse_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_StubExtFlashReadResponse_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}

const StubExtFlashReadResponse& StubExtFlashReadResponse::default_instance() {
  protobuf_StubExtFlashReadResponse_2eproto::InitDefaults();
  return *internal_default_instance();
}

StubExtFlashReadResponse* StubExtFlashReadResponse::New(::google::protobuf::Arena* arena) const {
  StubExtFlashReadResponse* n = new StubExtFlashReadResponse;
  if (arena != NULL) {
    arena->Own(n);
  }
  return n;
}

void StubExtFlashReadResponse::Clear() {
// @@protoc_insertion_point(message_clear_start:Tango.PMR.Stubs.StubExtFlashReadResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  status_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  ::memset(&readword_1_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&statusword_) -
      reinterpret_cast<char*>(&readword_1_)) + sizeof(statusword_));
  _internal_metadata_.Clear();
}

bool StubExtFlashReadResponse::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.StubExtFlashReadResponse)
  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)) {
      // int32 ReadWord_1 = 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, &readword_1_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 ReadWord_2 = 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, &readword_2_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 ReadWord_3 = 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, &readword_3_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 ReadWord_4 = 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::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>(
                 input, &readword_4_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // int32 ReadWord_5 = 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, &readword_5_)));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // string Status = 6;
      case 6: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(50u /* 50 & 0xFF */)) {
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_status()));
          DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
            this->status().data(), static_cast<int>(this->status().length()),
            ::google::protobuf::internal::WireFormatLite::PARSE,
            "Tango.PMR.Stubs.StubExtFlashReadResponse.Status"));
        } else {
          goto handle_unusual;
        }
        break;
      }

      // uint32 StatusWord = 7;
      case 7: {
        if (static_cast< ::google::protobuf::uint8>(tag) ==
            static_cast< ::google::protobuf::uint8>(56u /* 56 & 0xFF */)) {

          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
                 input, &statusword_)));
        } 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.StubExtFlashReadResponse)
  return true;
failure:
  // @@protoc_insertion_point(parse_failure:Tango.PMR.Stubs.StubExtFlashReadResponse)
  return false;
#undef DO_
}

void StubExtFlashReadResponse::SerializeWithCachedSizes(
    ::google::protobuf::io::CodedOutputStream* output) const {
  // @@protoc_insertion_point(serialize_start:Tango.PMR.Stubs.StubExtFlashReadResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 ReadWord_1 = 1;
  if (this->readword_1() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->readword_1(), output);
  }

  // int32 ReadWord_2 = 2;
  if (this->readword_2() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->readword_2(), output);
  }

  // int32 ReadWord_3 = 3;
  if (this->readword_3() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->readword_3(), output);
  }

  // int32 ReadWord_4 = 4;
  if (this->readword_4() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->readword_4(), output);
  }

  // int32 ReadWord_5 = 5;
  if (this->readword_5() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteInt32(5, this->readword_5(), output);
  }

  // string Status = 6;
  if (this->status().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->status().data(), static_cast<int>(this->status().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "Tango.PMR.Stubs.StubExtFlashReadResponse.Status");
    ::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
      6, this->status(), output);
  }

  // uint32 StatusWord = 7;
  if (this->statusword() != 0) {
    ::google::protobuf::internal::WireFormatLite::WriteUInt32(7, this->statusword(), 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.StubExtFlashReadResponse)
}

::google::protobuf::uint8* StubExtFlashReadResponse::InternalSerializeWithCachedSizesToArray(
    bool deterministic, ::google::protobuf::uint8* target) const {
  (void)deterministic; // Unused
  // @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Stubs.StubExtFlashReadResponse)
  ::google::protobuf::uint32 cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 ReadWord_1 = 1;
  if (this->readword_1() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(1, this->readword_1(), target);
  }

  // int32 ReadWord_2 = 2;
  if (this->readword_2() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(2, this->readword_2(), target);
  }

  // int32 ReadWord_3 = 3;
  if (this->readword_3() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->readword_3(), target);
  }

  // int32 ReadWord_4 = 4;
  if (this->readword_4() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->readword_4(), target);
  }

  // int32 ReadWord_5 = 5;
  if (this->readword_5() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(5, this->readword_5(), target);
  }

  // string Status = 6;
  if (this->status().size() > 0) {
    ::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
      this->status().data(), static_cast<int>(this->status().length()),
      ::google::protobuf::internal::WireFormatLite::SERIALIZE,
      "Tango.PMR.Stubs.StubExtFlashReadResponse.Status");
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        6, this->status(), target);
  }

  // uint32 StatusWord = 7;
  if (this->statusword() != 0) {
    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(7, this->statusword(), 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.StubExtFlashReadResponse)
  return target;
}

size_t StubExtFlashReadResponse::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Stubs.StubExtFlashReadResponse)
  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 Status = 6;
  if (this->status().size() > 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::StringSize(
        this->status());
  }

  // int32 ReadWord_1 = 1;
  if (this->readword_1() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->readword_1());
  }

  // int32 ReadWord_2 = 2;
  if (this->readword_2() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->readword_2());
  }

  // int32 ReadWord_3 = 3;
  if (this->readword_3() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->readword_3());
  }

  // int32 ReadWord_4 = 4;
  if (this->readword_4() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->readword_4());
  }

  // int32 ReadWord_5 = 5;
  if (this->readword_5() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::Int32Size(
        this->readword_5());
  }

  // uint32 StatusWord = 7;
  if (this->statusword() != 0) {
    total_size += 1 +
      ::google::protobuf::internal::WireFormatLite::UInt32Size(
        this->statusword());
  }

  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 StubExtFlashReadResponse::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Stubs.StubExtFlashReadResponse)
  GOOGLE_DCHECK_NE(&from, this);
  const StubExtFlashReadResponse* source =
      ::google::protobuf::internal::DynamicCastToGenerated<const StubExtFlashReadResponse>(
          &from);
  if (source == NULL) {
  // @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Stubs.StubExtFlashReadResponse)
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
  // @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Stubs.StubExtFlashReadResponse)
    MergeFrom(*source);
  }
}

void StubExtFlashReadResponse::MergeFrom(const StubExtFlashReadResponse& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Stubs.StubExtFlashReadResponse)
  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().size() > 0) {

    status_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.status_);
  }
  if (from.readword_1() != 0) {
    set_readword_1(from.readword_1());
  }
  if (from.readword_2() != 0) {
    set_readword_2(from.readword_2());
  }
  if (from.readword_3() != 0) {
    set_readword_3(from.readword_3());
  }
  if (from.readword_4() != 0) {
    set_readword_4(from.readword_4());
  }
  if (from.readword_5() != 0) {
    set_readword_5(from.readword_5());
  }
  if (from.statusword() != 0) {
    set_statusword(from.statusword());
  }
}

void StubExtFlashReadResponse::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Stubs.StubExtFlashReadResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void StubExtFlashReadResponse::CopyFrom(const StubExtFlashReadResponse& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Stubs.StubExtFlashReadResponse)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool StubExtFlashReadResponse::IsInitialized() const {
  return true;
}

void StubExtFlashReadResponse::Swap(StubExtFlashReadResponse* other) {
  if (other == this) return;
  InternalSwap(other);
}
void StubExtFlashReadResponse::InternalSwap(StubExtFlashReadResponse* other) {
  using std::swap;
  status_.Swap(&other->status_);
  swap(readword_1_, other->readword_1_);
  swap(readword_2_, other->readword_2_);
  swap(readword_3_, other->readword_3_);
  swap(readword_4_, other->readword_4_);
  swap(readword_5_, other->readword_5_);
  swap(statusword_, other->statusword_);
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(_cached_size_, other->_cached_size_);
}

::google::protobuf::Metadata StubExtFlashReadResponse::GetMetadata() const {
  protobuf_StubExtFlashReadResponse_2eproto::protobuf_AssignDescriptorsOnce();
  return protobuf_StubExtFlashReadResponse_2eproto::file_level_metadata[kIndexInFileMessages];
}

#if PROTOBUF_INLINE_NOT_IN_HEADERS
// StubExtFlashReadResponse

// int32 ReadWord_1 = 1;
void StubExtFlashReadResponse::clear_readword_1() {
  readword_1_ = 0;
}
::google::protobuf::int32 StubExtFlashReadResponse::readword_1() const {
  // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubExtFlashReadResponse.ReadWord_1)
  return readword_1_;
}
void StubExtFlashReadResponse::set_readword_1(::google::protobuf::int32 value) {
  
  readword_1_ = value;
  // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubExtFlashReadResponse.ReadWord_1)
}

// int32 ReadWord_2 = 2;
void StubExtFlashReadResponse::clear_readword_2() {
  readword_2_ = 0;
}
::google::protobuf::int32 StubExtFlashReadResponse::readword_2() const {
  // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubExtFlashReadResponse.ReadWord_2)
  return readword_2_;
}
void StubExtFlashReadResponse::set_readword_2(::google::protobuf::int32 value) {
  
  readword_2_ = value;
  // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubExtFlashReadResponse.ReadWord_2)
}

// int32 ReadWord_3 = 3;
void StubExtFlashReadResponse::clear_readword_3() {
  readword_3_ = 0;
}
::google::protobuf::int32 StubExtFlashReadResponse::readword_3() const {
  // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubExtFlashReadResponse.ReadWord_3)
  return readword_3_;
}
void StubExtFlashReadResponse::set_readword_3(::google::protobuf::int32 value) {
  
  readword_3_ = value;
  // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubExtFlashReadResponse.ReadWord_3)
}

// int32 ReadWord_4 = 4;
void StubExtFlashReadResponse::clear_readword_4() {
  readword_4_ = 0;
}
::google::protobuf::int32 StubExtFlashReadResponse::readword_4() const {
  // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubExtFlashReadResponse.ReadWord_4)
  return readword_4_;
}
void StubExtFlashReadResponse::set_readword_4(::google::protobuf::int32 value) {
  
  readword_4_ = value;
  // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubExtFlashReadResponse.ReadWord_4)
}

// int32 ReadWord_5 = 5;
void StubExtFlashReadResponse::clear_readword_5() {
  readword_5_ = 0;
}
::google::protobuf::int32 StubExtFlashReadResponse::readword_5() const {
  // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubExtFlashReadResponse.ReadWord_5)
  return readword_5_;
}
void StubExtFlashReadResponse::set_readword_5(::google::protobuf::int32 value) {
  
  readword_5_ = value;
  // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubExtFlashReadResponse.ReadWord_5)
}

// string Status = 6;
void StubExtFlashReadResponse::clear_status() {
  status_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& StubExtFlashReadResponse::status() const {
  // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubExtFlashReadResponse.Status)
  return status_.GetNoArena();
}
void StubExtFlashReadResponse::set_status(const ::std::string& value) {
  
  status_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubExtFlashReadResponse.Status)
}
#if LANG_CXX11
void StubExtFlashReadResponse::set_status(::std::string&& value) {
  
  status_.SetNoArena(
    &::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
  // @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Stubs.StubExtFlashReadResponse.Status)
}
#endif
void StubExtFlashReadResponse::set_status(const char* value) {
  GOOGLE_DCHECK(value != NULL);
  
  status_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:Tango.PMR.Stubs.StubExtFlashReadResponse.Status)
}
void StubExtFlashReadResponse::set_status(const char* value, size_t size) {
  
  status_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:Tango.PMR.Stubs.StubExtFlashReadResponse.Status)
}
::std::string* StubExtFlashReadResponse::mutable_status() {
  
  // @@protoc_insertion_point(field_mutable:Tango.PMR.Stubs.StubExtFlashReadResponse.Status)
  return status_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* StubExtFlashReadResponse::release_status() {
  // @@protoc_insertion_point(field_release:Tango.PMR.Stubs.StubExtFlashReadResponse.Status)
  
  return status_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void StubExtFlashReadResponse::set_allocated_status(::std::string* status) {
  if (status != NULL) {
    
  } else {
    
  }
  status_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), status);
  // @@protoc_insertion_point(field_set_allocated:Tango.PMR.Stubs.StubExtFlashReadResponse.Status)
}

// uint32 StatusWord = 7;
void StubExtFlashReadResponse::clear_statusword() {
  statusword_ = 0u;
}
::google::protobuf::uint32 StubExtFlashReadResponse::statusword() const {
  // @@protoc_insertion_point(field_get:Tango.PMR.Stubs.StubExtFlashReadResponse.StatusWord)
  return statusword_;
}
void StubExtFlashReadResponse::set_statusword(::google::protobuf::uint32 value) {
  
  statusword_ = value;
  // @@protoc_insertion_point(field_set:Tango.PMR.Stubs.StubExtFlashReadResponse.StatusWord)
}

#endif  // PROTOBUF_INLINE_NOT_IN_HEADERS

// @@protoc_insertion_point(namespace_scope)

}  // namespace Stubs
}  // namespace PMR
}  // namespace Tango

// @@protoc_insertion_point(global_scope)