Use unique_ptr for increased ownership clarity of communication components

This commit is contained in:
Paul Hollinsky
2018-10-04 13:13:44 -04:00
parent 214acf4c8f
commit 21f5badb0c
4 changed files with 18 additions and 18 deletions
+4 -4
View File
@@ -12,11 +12,11 @@ class NeoVIFIRE2ETH : public NeoVIFIRE2 {
public:
static constexpr const uint16_t PRODUCT_ID = 0x0004;
NeoVIFIRE2ETH(neodevice_t neodevice) : NeoVIFIRE2(neodevice) {
auto transport = std::make_shared<PCAP>(getWritableNeoDevice());
auto transport = std::unique_ptr<ICommunication>(new PCAP(getWritableNeoDevice()));
auto packetizer = std::make_shared<Packetizer>();
auto encoder = std::make_shared<Encoder>(packetizer);
auto decoder = std::make_shared<Decoder>();
com = std::make_shared<Communication>(transport, packetizer, encoder, decoder);
auto encoder = std::unique_ptr<Encoder>(new Encoder(packetizer));
auto decoder = std::unique_ptr<Decoder>(new Decoder());
com = std::make_shared<Communication>(std::move(transport), packetizer, std::move(encoder), std::move(decoder));
settings = std::make_shared<NeoVIFIRE2Settings>(com);
productId = PRODUCT_ID;
}
+4 -4
View File
@@ -11,11 +11,11 @@ class NeoVIFIRE2USB : public NeoVIFIRE2 {
public:
static constexpr const uint16_t PRODUCT_ID = 0x1000;
NeoVIFIRE2USB(neodevice_t neodevice) : NeoVIFIRE2(neodevice) {
auto transport = std::make_shared<FTDI>(getWritableNeoDevice());
auto transport = std::unique_ptr<ICommunication>(new FTDI(getWritableNeoDevice()));
auto packetizer = std::make_shared<Packetizer>();
auto encoder = std::make_shared<Encoder>(packetizer);
auto decoder = std::make_shared<Decoder>();
com = std::make_shared<Communication>(transport, packetizer, encoder, decoder);
auto encoder = std::unique_ptr<Encoder>(new Encoder(packetizer));
auto decoder = std::unique_ptr<Decoder>(new Decoder());
com = std::make_shared<Communication>(std::move(transport), packetizer, std::move(encoder), std::move(decoder));
settings = std::make_shared<NeoVIFIRE2Settings>(com);
productId = PRODUCT_ID;
}