using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Tango.Core.Helpers;
using Tango.MachineStudio.Common.StudioApplication;
using Tango.MachineStudio.Common.Navigation;
using System.Reflection;
using System.Collections;
using Tango.Core;
using Tango.Logging;
using Tango.MachineStudio.Common.Modules;
using Tango.MachineStudio.Common;
using Tango.Settings;
using System.Windows;
using Tango.Integration.ExternalBridge;
using Tango.MachineStudio.Common.EventLogging;
using Tango.BL.Enumerations;
using Tango.Core.DI;
using Tango.BL.Entities;
using Tango.BL;
using Tango.MachineStudio.UI.ViewModels;
using Tango.MachineStudio.Common.Notifications;
using Tango.MachineStudio.UI.Views;
using Tango.Integration.Operation;
using Tango.MachineStudio.UI.Windows;
using Tango.BL.Builders;
namespace Tango.MachineStudio.UI.StudioApplication
{
/// <summary>
/// Represents the default Machine Studio <see cref="IStudioApplicationManager">Application Manager</see>.
/// </summary>
/// <seealso cref="Tango.Core.ExtendedObject" />
/// <seealso cref="Tango.MachineStudio.Common.StudioApplication.IStudioApplicationManager" />
public class DefaultStudioApplicationManager : ExtendedObject, IStudioApplicationManager
{
private INavigationManager _navigationManager;
private IStudioModuleLoader _moduleLoader;
private INotificationProvider _notification;
private List<Window> _openedWindows;
private List<IStudioViewModel> _notified_view_models;
private bool _isDialogShown;
/// <summary>
/// Occurs when the application is ready.
/// </summary>
public event EventHandler ApplicationReady;
/// <summary>
/// Occurs when the connected machine session has been lost and an automatic reconnection with the last machine is required.
/// </summary>
public event EventHandler ReconnectionRequired;
/// <summary>
/// Initializes a new instance of the <see cref="DefaultStudioApplicationManager" /> class.
/// </summary>
/// <param name="navigationManager">The navigation manager.</param>
public DefaultStudioApplicationManager(INavigationManager navigationManager, IStudioModuleLoader moduleLoader, INotificationProvider notification)
{
_moduleLoader = moduleLoader;
_navigationManager = navigationManager;
_notification = notification;
_openedWindows = new List<Window>();
_notified_view_models = new List<IStudioViewModel>();
Application.Current.MainWindow.ContentRendered += (_, __) =>
{
TangoIOC.Default.GetAllInstancesByBase<IStudioViewModel>().ToList().ForEach(x => x.OnApplicationStarted());
};
}
/// <summary>
/// Gets a value indicating whether Machine Studio is shutting down.
/// </summary>
public pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-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: EmbroideryFile.proto
#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
#include "EmbroideryFile.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 Embroidery {
class EmbroideryFileDefaultTypeInternal {
public:
::google::protobuf::internal::ExplicitlyConstructed<EmbroideryFile>
_instance;
} _EmbroideryFile_default_instance_;
namespace protobuf_EmbroideryFile_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(EmbroideryFile, _internal_metadata_),
~0u, // no _extensions_
~0u, // no _oneof_case_
~0u, // no _weak_field_map_
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EmbroideryFile, designname_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EmbroideryFile, filename_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EmbroideryFile, stitchcount_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EmbroideryFile, colorcount_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EmbroideryFile, extents_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EmbroideryFile, colors_),
GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(EmbroideryFile, stitches_),
};
static const ::google::protobuf::internal::MigrationSchema schemas[] GOOGLE_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
{ 0, -1, sizeof(EmbroideryFile)},
};
static ::google::protobuf::Message const * const file_default_instances[] = {
reinterpret_cast<const ::google::protobuf::Message*>(&_EmbroideryFile_default_instance_),
};
namespace {
void protobuf_AssignDescriptors() {
AddDescriptors();
::google::protobuf::MessageFactory* factory = NULL;
AssignDescriptors(
"EmbroideryFile.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();
::Tango::PMR::Embroidery::protobuf_Extents_2eproto::InitDefaults();
::Tango::PMR::Embroidery::protobuf_Stitch_2eproto::InitDefaults();
::Tango::PMR::Embroidery::protobuf_StitchColor_2eproto::InitDefaults();
_EmbroideryFile_default_instance_._instance.DefaultConstruct();
::google::protobuf::internal::OnShutdownDestroyMessage(
&_EmbroideryFile_default_instance_);_EmbroideryFile_default_instance_._instance.get_mutable()->extents_ = const_cast< ::Tango::PMR::Embroidery::Extents*>(
::Tango::PMR::Embroidery::Extents::internal_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\024EmbroideryFile.proto\022\024Tango.PMR.Embroi"
"dery\032\rExtents.proto\032\014Stitch.proto\032\021Stitc"
"hColor.proto\"\362\001\n\016EmbroideryFile\022\022\n\nDesig"
"nName\030\001 \001(\t\022\020\n\010FileName\030\002 \001(\t\022\023\n\013StitchC"
"ount\030\003 \001(\005\022\022\n\nColorCount\030\004 \001(\005\022.\n\007Extent"
"s\030\005 \001(\0132\035.Tango.PMR.Embroidery.Extents\0221"
"\n\006Colors\030\006 \003(\0132!.Tango.PMR.Embroidery.St"
"itchColor\022.\n\010Stitches\030\007 \003(\0132\034.Tango.PMR."
"Embroidery.StitchB \n\036com.twine.tango.pmr"
".embroideryb\006proto3"
};
::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
descriptor, 379);
::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
"EmbroideryFile.proto", &protobuf_RegisterTypes);
::Tango::PMR::Embroidery::protobuf_Extents_2eproto::AddDescriptors();
::Tango::PMR::Embroidery::protobuf_Stitch_2eproto::AddDescriptors();
::Tango::PMR::Embroidery::protobuf_StitchColor_2eproto::AddDescriptors();
}
} // 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_EmbroideryFile_2eproto
// ===================================================================
#if !defined(_MSC_VER) || _MSC_VER >= 1900
const int EmbroideryFile::kDesignNameFieldNumber;
const int EmbroideryFile::kFileNameFieldNumber;
const int EmbroideryFile::kStitchCountFieldNumber;
const int EmbroideryFile::kColorCountFieldNumber;
const int EmbroideryFile::kExtentsFieldNumber;
const int EmbroideryFile::kColorsFieldNumber;
const int EmbroideryFile::kStitchesFieldNumber;
#endif // !defined(_MSC_VER) || _MSC_VER >= 1900
EmbroideryFile::EmbroideryFile()
: ::google::protobuf::Message(), _internal_metadata_(NULL) {
if (GOOGLE_PREDICT_TRUE(this != internal_default_instance())) {
protobuf_EmbroideryFile_2eproto::InitDefaults();
}
SharedCtor();
// @@protoc_insertion_point(constructor:Tango.PMR.Embroidery.EmbroideryFile)
}
EmbroideryFile::EmbroideryFile(const EmbroideryFile& from)
: ::google::protobuf::Message(),
_internal_metadata_(NULL),
colors_(from.colors_),
stitches_(from.stitches_),
_cached_size_(0) {
_internal_metadata_.MergeFrom(from._internal_metadata_);
designname_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
if (from.designname().size() > 0) {
designname_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.designname_);
}
filename_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
if (from.filename().size() > 0) {
filename_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.filename_);
}
if (from.has_extents()) {
extents_ = new ::Tango::PMR::Embroidery::Extents(*from.extents_);
} else {
extents_ = NULL;
}
::memcpy(&stitchcount_, &from.stitchcount_,
static_cast<size_t>(reinterpret_cast<char*>(&colorcount_) -
reinterpret_cast<char*>(&stitchcount_)) + sizeof(colorcount_));
// @@protoc_insertion_point(copy_constructor:Tango.PMR.Embroidery.EmbroideryFile)
}
void EmbroideryFile::SharedCtor() {
designname_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
filename_.UnsafeSetDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
::memset(&extents_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&colorcount_) -
reinterpret_cast<char*>(&extents_)) + sizeof(colorcount_));
_cached_size_ = 0;
}
EmbroideryFile::~EmbroideryFile() {
// @@protoc_insertion_point(destructor:Tango.PMR.Embroidery.EmbroideryFile)
SharedDtor();
}
void EmbroideryFile::SharedDtor() {
designname_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
filename_.DestroyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
if (this != internal_default_instance()) delete extents_;
}
void EmbroideryFile::SetCachedSize(int size) const {
GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
_cached_size_ = size;
GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* EmbroideryFile::descriptor() {
protobuf_EmbroideryFile_2eproto::protobuf_AssignDescriptorsOnce();
return protobuf_EmbroideryFile_2eproto::file_level_metadata[kIndexInFileMessages].descriptor;
}
const EmbroideryFile& EmbroideryFile::default_instance() {
protobuf_EmbroideryFile_2eproto::InitDefaults();
return *internal_default_instance();
}
EmbroideryFile* EmbroideryFile::New(::google::protobuf::Arena* arena) const {
EmbroideryFile* n = new EmbroideryFile;
if (arena != NULL) {
arena->Own(n);
}
return n;
}
void EmbroideryFile::Clear() {
// @@protoc_insertion_point(message_clear_start:Tango.PMR.Embroidery.EmbroideryFile)
::google::protobuf::uint32 cached_has_bits = 0;
// Prevent compiler warnings about cached_has_bits being unused
(void) cached_has_bits;
colors_.Clear();
stitches_.Clear();
designname_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
filename_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
if (GetArenaNoVirtual() == NULL && extents_ != NULL) {
delete extents_;
}
extents_ = NULL;
::memset(&stitchcount_, 0, static_cast<size_t>(
reinterpret_cast<char*>(&colorcount_) -
reinterpret_cast<char*>(&stitchcount_)) + sizeof(colorcount_));
_internal_metadata_.Clear();
}
bool EmbroideryFile::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.Embroidery.EmbroideryFile)
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 DesignName = 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_designname()));
DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->designname().data(), static_cast<int>(this->designname().length()),
::google::protobuf::internal::WireFormatLite::PARSE,
"Tango.PMR.Embroidery.EmbroideryFile.DesignName"));
} else {
goto handle_unusual;
}
break;
}
// string FileName = 2;
case 2: {
if (static_cast< ::google::protobuf::uint8>(tag) ==
static_cast< ::google::protobuf::uint8>(18u /* 18 & 0xFF */)) {
DO_(::google::protobuf::internal::WireFormatLite::ReadString(
input, this->mutable_filename()));
DO_(::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->filename().data(), static_cast<int>(this->filename().length()),
::google::protobuf::internal::WireFormatLite::PARSE,
"Tango.PMR.Embroidery.EmbroideryFile.FileName"));
} else {
goto handle_unusual;
}
break;
}
// int32 StitchCount = 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, &stitchcount_)));
} else {
goto handle_unusual;
}
break;
}
// int32 ColorCount = 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, &colorcount_)));
} else {
goto handle_unusual;
}
break;
}
// .Tango.PMR.Embroidery.Extents Extents = 5;
case 5: {
if (static_cast< ::google::protobuf::uint8>(tag) ==
static_cast< ::google::protobuf::uint8>(42u /* 42 & 0xFF */)) {
DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
input, mutable_extents()));
} else {
goto handle_unusual;
}
break;
}
// repeated .Tango.PMR.Embroidery.StitchColor Colors = 6;
case 6: {
if (static_cast< ::google::protobuf::uint8>(tag) ==
static_cast< ::google::protobuf::uint8>(50u /* 50 & 0xFF */)) {
DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
input, add_colors()));
} else {
goto handle_unusual;
}
break;
}
// repeated .Tango.PMR.Embroidery.Stitch Stitches = 7;
case 7: {
if (static_cast< ::google::protobuf::uint8>(tag) ==
static_cast< ::google::protobuf::uint8>(58u /* 58 & 0xFF */)) {
DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
input, add_stitches()));
} 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.Embroidery.EmbroideryFile)
return true;
failure:
// @@protoc_insertion_point(parse_failure:Tango.PMR.Embroidery.EmbroideryFile)
return false;
#undef DO_
}
void EmbroideryFile::SerializeWithCachedSizes(
::google::protobuf::io::CodedOutputStream* output) const {
// @@protoc_insertion_point(serialize_start:Tango.PMR.Embroidery.EmbroideryFile)
::google::protobuf::uint32 cached_has_bits = 0;
(void) cached_has_bits;
// string DesignName = 1;
if (this->designname().size() > 0) {
::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->designname().data(), static_cast<int>(this->designname().length()),
::google::protobuf::internal::WireFormatLite::SERIALIZE,
"Tango.PMR.Embroidery.EmbroideryFile.DesignName");
::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
1, this->designname(), output);
}
// string FileName = 2;
if (this->filename().size() > 0) {
::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->filename().data(), static_cast<int>(this->filename().length()),
::google::protobuf::internal::WireFormatLite::SERIALIZE,
"Tango.PMR.Embroidery.EmbroideryFile.FileName");
::google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(
2, this->filename(), output);
}
// int32 StitchCount = 3;
if (this->stitchcount() != 0) {
::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->stitchcount(), output);
}
// int32 ColorCount = 4;
if (this->colorcount() != 0) {
::google::protobuf::internal::WireFormatLite::WriteInt32(4, this->colorcount(), output);
}
// .Tango.PMR.Embroidery.Extents Extents = 5;
if (this->has_extents()) {
::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
5, *this->extents_, output);
}
// repeated .Tango.PMR.Embroidery.StitchColor Colors = 6;
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->colors_size()); i < n; i++) {
::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
6, this->colors(static_cast<int>(i)), output);
}
// repeated .Tango.PMR.Embroidery.Stitch Stitches = 7;
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->stitches_size()); i < n; i++) {
::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
7, this->stitches(static_cast<int>(i)), 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.Embroidery.EmbroideryFile)
}
::google::protobuf::uint8* EmbroideryFile::InternalSerializeWithCachedSizesToArray(
bool deterministic, ::google::protobuf::uint8* target) const {
(void)deterministic; // Unused
// @@protoc_insertion_point(serialize_to_array_start:Tango.PMR.Embroidery.EmbroideryFile)
::google::protobuf::uint32 cached_has_bits = 0;
(void) cached_has_bits;
// string DesignName = 1;
if (this->designname().size() > 0) {
::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->designname().data(), static_cast<int>(this->designname().length()),
::google::protobuf::internal::WireFormatLite::SERIALIZE,
"Tango.PMR.Embroidery.EmbroideryFile.DesignName");
target =
::google::protobuf::internal::WireFormatLite::WriteStringToArray(
1, this->designname(), target);
}
// string FileName = 2;
if (this->filename().size() > 0) {
::google::protobuf::internal::WireFormatLite::VerifyUtf8String(
this->filename().data(), static_cast<int>(this->filename().length()),
::google::protobuf::internal::WireFormatLite::SERIALIZE,
"Tango.PMR.Embroidery.EmbroideryFile.FileName");
target =
::google::protobuf::internal::WireFormatLite::WriteStringToArray(
2, this->filename(), target);
}
// int32 StitchCount = 3;
if (this->stitchcount() != 0) {
target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(3, this->stitchcount(), target);
}
// int32 ColorCount = 4;
if (this->colorcount() != 0) {
target = ::google::protobuf::internal::WireFormatLite::WriteInt32ToArray(4, this->colorcount(), target);
}
// .Tango.PMR.Embroidery.Extents Extents = 5;
if (this->has_extents()) {
target = ::google::protobuf::internal::WireFormatLite::
InternalWriteMessageNoVirtualToArray(
5, *this->extents_, deterministic, target);
}
// repeated .Tango.PMR.Embroidery.StitchColor Colors = 6;
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->colors_size()); i < n; i++) {
target = ::google::protobuf::internal::WireFormatLite::
InternalWriteMessageNoVirtualToArray(
6, this->colors(static_cast<int>(i)), deterministic, target);
}
// repeated .Tango.PMR.Embroidery.Stitch Stitches = 7;
for (unsigned int i = 0,
n = static_cast<unsigned int>(this->stitches_size()); i < n; i++) {
target = ::google::protobuf::internal::WireFormatLite::
InternalWriteMessageNoVirtualToArray(
7, this->stitches(static_cast<int>(i)), deterministic, 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.Embroidery.EmbroideryFile)
return target;
}
size_t EmbroideryFile::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:Tango.PMR.Embroidery.EmbroideryFile)
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()));
}
// repeated .Tango.PMR.Embroidery.StitchColor Colors = 6;
{
unsigned int count = static_cast<unsigned int>(this->colors_size());
total_size += 1UL * count;
for (unsigned int i = 0; i < count; i++) {
total_size +=
::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
this->colors(static_cast<int>(i)));
}
}
// repeated .Tango.PMR.Embroidery.Stitch Stitches = 7;
{
unsigned int count = static_cast<unsigned int>(this->stitches_size());
total_size += 1UL * count;
for (unsigned int i = 0; i < count; i++) {
total_size +=
::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
this->stitches(static_cast<int>(i)));
}
}
// string DesignName = 1;
if (this->designname().size() > 0) {
total_size += 1 +
::google::protobuf::internal::WireFormatLite::StringSize(
this->designname());
}
// string FileName = 2;
if (this->filename().size() > 0) {
total_size += 1 +
::google::protobuf::internal::WireFormatLite::StringSize(
this->filename());
}
// .Tango.PMR.Embroidery.Extents Extents = 5;
if (this->has_extents()) {
total_size += 1 +
::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
*this->extents_);
}
// int32 StitchCount = 3;
if (this->stitchcount() != 0) {
total_size += 1 +
::google::protobuf::internal::WireFormatLite::Int32Size(
this->stitchcount());
}
// int32 ColorCount = 4;
if (this->colorcount() != 0) {
total_size += 1 +
::google::protobuf::internal::WireFormatLite::Int32Size(
this->colorcount());
}
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 EmbroideryFile::MergeFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_merge_from_start:Tango.PMR.Embroidery.EmbroideryFile)
GOOGLE_DCHECK_NE(&from, this);
const EmbroideryFile* source =
::google::protobuf::internal::DynamicCastToGenerated<const EmbroideryFile>(
&from);
if (source == NULL) {
// @@protoc_insertion_point(generalized_merge_from_cast_fail:Tango.PMR.Embroidery.EmbroideryFile)
::google::protobuf::internal::ReflectionOps::Merge(from, this);
} else {
// @@protoc_insertion_point(generalized_merge_from_cast_success:Tango.PMR.Embroidery.EmbroideryFile)
MergeFrom(*source);
}
}
void EmbroideryFile::MergeFrom(const EmbroideryFile& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:Tango.PMR.Embroidery.EmbroideryFile)
GOOGLE_DCHECK_NE(&from, this);
_internal_metadata_.MergeFrom(from._internal_metadata_);
::google::protobuf::uint32 cached_has_bits = 0;
(void) cached_has_bits;
colors_.MergeFrom(from.colors_);
stitches_.MergeFrom(from.stitches_);
if (from.designname().size() > 0) {
designname_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.designname_);
}
if (from.filename().size() > 0) {
filename_.AssignWithDefault(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), from.filename_);
}
if (from.has_extents()) {
mutable_extents()->::Tango::PMR::Embroidery::Extents::MergeFrom(from.extents());
}
if (from.stitchcount() != 0) {
set_stitchcount(from.stitchcount());
}
if (from.colorcount() != 0) {
set_colorcount(from.colorcount());
}
}
void EmbroideryFile::CopyFrom(const ::google::protobuf::Message& from) {
// @@protoc_insertion_point(generalized_copy_from_start:Tango.PMR.Embroidery.EmbroideryFile)
if (&from == this) return;
Clear();
MergeFrom(from);
}
void EmbroideryFile::CopyFrom(const EmbroideryFile& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:Tango.PMR.Embroidery.EmbroideryFile)
if (&from == this) return;
Clear();
MergeFrom(from);
}
bool EmbroideryFile::IsInitialized() const {
return true;
}
void EmbroideryFile::Swap(EmbroideryFile* other) {
if (other == this) return;
InternalSwap(other);
}
void EmbroideryFile::InternalSwap(EmbroideryFile* other) {
using std::swap;
colors_.InternalSwap(&other->colors_);
stitches_.InternalSwap(&other->stitches_);
designname_.Swap(&other->designname_);
filename_.Swap(&other->filename_);
swap(extents_, other->extents_);
swap(stitchcount_, other->stitchcount_);
swap(colorcount_, other->colorcount_);
_internal_metadata_.Swap(&other->_internal_metadata_);
swap(_cached_size_, other->_cached_size_);
}
::google::protobuf::Metadata EmbroideryFile::GetMetadata() const {
protobuf_EmbroideryFile_2eproto::protobuf_AssignDescriptorsOnce();
return protobuf_EmbroideryFile_2eproto::file_level_metadata[kIndexInFileMessages];
}
#if PROTOBUF_INLINE_NOT_IN_HEADERS
// EmbroideryFile
// string DesignName = 1;
void EmbroideryFile::clear_designname() {
designname_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& EmbroideryFile::designname() const {
// @@protoc_insertion_point(field_get:Tango.PMR.Embroidery.EmbroideryFile.DesignName)
return designname_.GetNoArena();
}
void EmbroideryFile::set_designname(const ::std::string& value) {
designname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
// @@protoc_insertion_point(field_set:Tango.PMR.Embroidery.EmbroideryFile.DesignName)
}
#if LANG_CXX11
void EmbroideryFile::set_designname(::std::string&& value) {
designname_.SetNoArena(
&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
// @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Embroidery.EmbroideryFile.DesignName)
}
#endif
void EmbroideryFile::set_designname(const char* value) {
GOOGLE_DCHECK(value != NULL);
designname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
// @@protoc_insertion_point(field_set_char:Tango.PMR.Embroidery.EmbroideryFile.DesignName)
}
void EmbroideryFile::set_designname(const char* value, size_t size) {
designname_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
::std::string(reinterpret_cast<const char*>(value), size));
// @@protoc_insertion_point(field_set_pointer:Tango.PMR.Embroidery.EmbroideryFile.DesignName)
}
::std::string* EmbroideryFile::mutable_designname() {
// @@protoc_insertion_point(field_mutable:Tango.PMR.Embroidery.EmbroideryFile.DesignName)
return designname_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* EmbroideryFile::release_designname() {
// @@protoc_insertion_point(field_release:Tango.PMR.Embroidery.EmbroideryFile.DesignName)
return designname_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void EmbroideryFile::set_allocated_designname(::std::string* designname) {
if (designname != NULL) {
} else {
}
designname_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), designname);
// @@protoc_insertion_point(field_set_allocated:Tango.PMR.Embroidery.EmbroideryFile.DesignName)
}
// string FileName = 2;
void EmbroideryFile::clear_filename() {
filename_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
const ::std::string& EmbroideryFile::filename() const {
// @@protoc_insertion_point(field_get:Tango.PMR.Embroidery.EmbroideryFile.FileName)
return filename_.GetNoArena();
}
void EmbroideryFile::set_filename(const ::std::string& value) {
filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
// @@protoc_insertion_point(field_set:Tango.PMR.Embroidery.EmbroideryFile.FileName)
}
#if LANG_CXX11
void EmbroideryFile::set_filename(::std::string&& value) {
filename_.SetNoArena(
&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::move(value));
// @@protoc_insertion_point(field_set_rvalue:Tango.PMR.Embroidery.EmbroideryFile.FileName)
}
#endif
void EmbroideryFile::set_filename(const char* value) {
GOOGLE_DCHECK(value != NULL);
filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
// @@protoc_insertion_point(field_set_char:Tango.PMR.Embroidery.EmbroideryFile.FileName)
}
void EmbroideryFile::set_filename(const char* value, size_t size) {
filename_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
::std::string(reinterpret_cast<const char*>(value), size));
// @@protoc_insertion_point(field_set_pointer:Tango.PMR.Embroidery.EmbroideryFile.FileName)
}
::std::string* EmbroideryFile::mutable_filename() {
// @@protoc_insertion_point(field_mutable:Tango.PMR.Embroidery.EmbroideryFile.FileName)
return filename_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
::std::string* EmbroideryFile::release_filename() {
// @@protoc_insertion_point(field_release:Tango.PMR.Embroidery.EmbroideryFile.FileName)
return filename_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
void EmbroideryFile::set_allocated_filename(::std::string* filename) {
if (filename != NULL) {
} else {
}
filename_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), filename);
// @@protoc_insertion_point(field_set_allocated:Tango.PMR.Embroidery.EmbroideryFile.FileName)
}
// int32 StitchCount = 3;
void EmbroideryFile::clear_stitchcount() {
stitchcount_ = 0;
}
::google::protobuf::int32 EmbroideryFile::stitchcount() const {
// @@protoc_insertion_point(field_get:Tango.PMR.Embroidery.EmbroideryFile.StitchCount)
return stitchcount_;
}
void EmbroideryFile::set_stitchcount(::google::protobuf::int32 value) {
stitchcount_ = value;
// @@protoc_insertion_point(field_set:Tango.PMR.Embroidery.EmbroideryFile.StitchCount)
}
// int32 ColorCount = 4;
void EmbroideryFile::clear_colorcount() {
colorcount_ = 0;
}
::google::protobuf::int32 EmbroideryFile::colorcount() const {
// @@protoc_insertion_point(field_get:Tango.PMR.Embroidery.EmbroideryFile.ColorCount)
return colorcount_;
}
void EmbroideryFile::set_colorcount(::google::protobuf::int32 value) {
colorcount_ = value;
// @@protoc_insertion_point(field_set:Tango.PMR.Embroidery.EmbroideryFile.ColorCount)
}
// .Tango.PMR.Embroidery.Extents Extents = 5;
bool EmbroideryFile::has_extents() const {
return this != internal_default_instance() && extents_ != NULL;
}
void EmbroideryFile::clear_extents() {
if (GetArenaNoVirtual() == NULL && extents_ != NULL) delete extents_;
extents_ = NULL;
}
const ::Tango::PMR::Embroidery::Extents& EmbroideryFile::extents() const {
const ::Tango::PMR::Embroidery::Extents* p = extents_;
// @@protoc_insertion_point(field_get:Tango.PMR.Embroidery.EmbroideryFile.Extents)
return p != NULL ? *p : *reinterpret_cast<const ::Tango::PMR::Embroidery::Extents*>(
&::Tango::PMR::Embroidery::_Extents_default_instance_);
}
::Tango::PMR::Embroidery::Extents* EmbroideryFile::mutable_extents() {
if (extents_ == NULL) {
extents_ = new ::Tango::PMR::Embroidery::Extents;
}
// @@protoc_insertion_point(field_mutable:Tango.PMR.Embroidery.EmbroideryFile.Extents)
return extents_;
}
::Tango::PMR::Embroidery::Extents* EmbroideryFile::release_extents() {
// @@protoc_insertion_point(field_release:Tango.PMR.Embroidery.EmbroideryFile.Extents)
::Tango::PMR::Embroidery::Extents* temp = extents_;
extents_ = NULL;
return temp;
}
void EmbroideryFile::set_allocated_extents(::Tango::PMR::Embroidery::Extents* extents) {
delete extents_;
extents_ = extents;
if (extents) {
} else {
}
// @@protoc_insertion_point(field_set_allocated:Tango.PMR.Embroidery.EmbroideryFile.Extents)
}
// repeated .Tango.PMR.Embroidery.StitchColor Colors = 6;
int EmbroideryFile::colors_size() const {
return colors_.size();
}
void EmbroideryFile::clear_colors() {
colors_.Clear();
}
const ::Tango::PMR::Embroidery::StitchColor& EmbroideryFile::colors(int index) const {
// @@protoc_insertion_point(field_get:Tango.PMR.Embroidery.EmbroideryFile.Colors)
return colors_.Get(index);
}
::Tango::PMR::Embroidery::StitchColor* EmbroideryFile::mutable_colors(int index) {
// @@protoc_insertion_point(field_mutable:Tango.PMR.Embroidery.EmbroideryFile.Colors)
return colors_.Mutable(index);
}
::Tango::PMR::Embroidery::StitchColor* EmbroideryFile::add_colors() {
// @@protoc_insertion_point(field_add:Tango.PMR.Embroidery.EmbroideryFile.Colors)
return colors_.Add();
}
::google::protobuf::RepeatedPtrField< ::Tango::PMR::Embroidery::StitchColor >*
EmbroideryFile::mutable_colors() {
// @@protoc_insertion_point(field_mutable_list:Tango.PMR.Embroidery.EmbroideryFile.Colors)
return &colors_;
}
const ::google::protobuf::RepeatedPtrField< ::Tango::PMR::Embroidery::StitchColor >&
EmbroideryFile::colors() const {
// @@protoc_insertion_point(field_list:Tango.PMR.Embroidery.EmbroideryFile.Colors)
return colors_;
}
// repeated .Tango.PMR.Embroidery.Stitch Stitches = 7;
int EmbroideryFile::stitches_size() const {
return stitches_.size();
}
void EmbroideryFile::clear_stitches() {
stitches_.Clear();
}
const ::Tango::PMR::Embroidery::Stitch& EmbroideryFile::stitches(int index) const {
// @@protoc_insertion_point(field_get:Tango.PMR.Embroidery.EmbroideryFile.Stitches)
return stitches_.Get(index);
}
::Tango::PMR::Embroidery::Stitch* EmbroideryFile::mutable_stitches(int index) {
// @@protoc_insertion_point(field_mutable:Tango.PMR.Embroidery.EmbroideryFile.Stitches)
return stitches_.Mutable(index);
}
::Tango::PMR::Embroidery::Stitch* EmbroideryFile::add_stitches() {
// @@protoc_insertion_point(field_add:Tango.PMR.Embroidery.EmbroideryFile.Stitches)
return stitches_.Add();
}
::google::protobuf::RepeatedPtrField< ::Tango::PMR::Embroidery::Stitch >*
EmbroideryFile::mutable_stitches() {
// @@protoc_insertion_point(field_mutable_list:Tango.PMR.Embroidery.EmbroideryFile.Stitches)
return &stitches_;
}
const ::google::protobuf::RepeatedPtrField< ::Tango::PMR::Embroidery::Stitch >&
EmbroideryFile::stitches() const {
// @@protoc_insertion_point(field_list:Tango.PMR.Embroidery.EmbroideryFile.Stitches)
return stitches_;
}
#endif // PROTOBUF_INLINE_NOT_IN_HEADERS
// @@protoc_insertion_point(namespace_scope)
} // namespace Embroidery
} // namespace PMR
} // namespace Tango
// @@protoc_insertion_point(global_scope)