2#include "component.pb.h"
9#include "../Text/Utf8Sanitizer.h"
12namespace Odb::Lib::ProductModel
14 Component::Component()
18 , m_index(static_cast<unsigned>(-1))
19 , m_side(BoardSide::BsNone)
24 Component::Component(
const std::string& refDes,
const std::string& partName, std::shared_ptr<Package> pPackage,
unsigned int index, BoardSide side, std::shared_ptr<Part> pPart)
26 , m_partName(partName)
27 , m_pPackage(pPackage)
34 Component::~Component()
38 std::string Component::GetRefDes()
const
43 std::string Component::GetPartName()
const
48 std::shared_ptr<Package> Component::GetPackage()
const
53 unsigned int Component::GetIndex()
const
58 BoardSide Component::GetSide()
const
63 std::shared_ptr<Part> Component::GetPart()
const
68 std::unique_ptr<Odb::Lib::Protobuf::ProductModel::Component> Component::to_protobuf()
const
70 auto pComponentMsg = std::make_unique<Odb::Lib::Protobuf::ProductModel::Component>();
71 pComponentMsg->set_refdes(Odb::Lib::Text::ToUtf8(m_refDes));
72 pComponentMsg->set_partname(Odb::Lib::Text::ToUtf8(m_partName));
73 pComponentMsg->set_index(m_index);
74 pComponentMsg->set_side(
static_cast<Odb::Lib::Protobuf::BoardSide
>(m_side));
75 pComponentMsg->mutable_package()->CopyFrom(*m_pPackage->to_protobuf());
76 pComponentMsg->mutable_part()->CopyFrom(*m_pPart->to_protobuf());
80 void Component::from_protobuf(
const Odb::Lib::Protobuf::ProductModel::Component& message)
82 m_refDes = message.refdes();
83 m_partName = message.partname();
84 m_index = message.index();
85 m_side =
static_cast<BoardSide
>(message.side());
86 m_pPackage = std::make_shared<Package>(
"", -1);
87 m_pPackage->from_protobuf(message.package());
88 m_pPart = std::make_shared<Part>(
"");
89 m_pPart->from_protobuf(message.part());