1
0
Fork 0

refactor class and file name

This commit is contained in:
Kevin Matz 2022-12-11 15:58:28 -05:00
parent 7676cd54a2
commit 12b34cef6e
4 changed files with 35 additions and 23 deletions

View File

@ -16,13 +16,13 @@ target_sources(${PROJECT_NAME}
extended.h
arbitratinguniverse.cpp
arbitratinguniverse.h
merginguniverse.h
merginguniverse.cpp
node.cpp
receiver.cpp
sacn.h
source.cpp
universe.cpp
universemerger.h
universemerger.cpp
universesender.h
universesender.cpp
)

View File

@ -23,6 +23,7 @@
*/
#include "arbitratinguniverse.h"
#include "universemerger.h"
#include <map>
#include "config.h"
@ -146,8 +147,6 @@ void ArbitratingUniverse::deleteSourceUniverse(const DATA::data_header& src)
doListChangeCallbacks();
doStatusCallbacks(); // if the deleted universe was dominant, the status has changed
// if (sources_.empty())
// doDataCallbacks();
}
@ -277,15 +276,15 @@ uint16_t ArbitratingUniverse::activeSlots() const
/**
* @brief ArbitratingUniverse::slot
* @param s
* @param address
* @return
*/
uint8_t ArbitratingUniverse::slot(const uint16_t s) const
uint8_t ArbitratingUniverse::slot(const uint16_t address) const
{
auto universe = dominant_();
if (!universe)
return 0;
return universe->slot(s);
return universe->slot(address);
}
@ -347,8 +346,17 @@ std::shared_ptr<Universe> ArbitratingUniverse::dominant_() const
}
}
// freshest universe at the hightest priority
return by_priority.rbegin()->second.begin()->second;
if (getMergeMode() == MERGE_LTP ||
by_priority.crbegin()->second.size() == 1)
// freshest universe at the hightest priority
return by_priority.crbegin()->second.cbegin()->second;
auto merged = std::make_shared<UniverseMerger>();
merged->expectedUniverse = expectedUniverse;
merged->expectedPriority = by_priority.crbegin()->first;
for (const auto & [_, universe] : by_priority.crbegin()->second)
merged->addSource(universe);
return merged;
}

View File

@ -1,5 +1,5 @@
/*
merginguniverse.cpp
sacn/universemerger.cpp
Copyright (c) 2022 Kevin Matz (kevin.matz@gmail.com)
@ -22,12 +22,12 @@
SOFTWARE.
*/
#include "merginguniverse.h"
#include "universemerger.h"
namespace sACN {
MergingUniverse::MergingUniverse()
UniverseMerger::UniverseMerger()
: Universe()
{
}
@ -37,7 +37,7 @@ MergingUniverse::MergingUniverse()
* @brief MergingUniverse::age
* @return The minimum age of the souce universes.
*/
long MergingUniverse::age() const
long UniverseMerger::age() const
{
if (sources_.empty())
return 0;
@ -55,7 +55,7 @@ long MergingUniverse::age() const
* @brief MergingUniverse::rxRate
* @return The maximum rxRate of the source universes.
*/
double MergingUniverse::rxRate()
double UniverseMerger::rxRate()
{
if (sources_.empty())
return -1;
@ -69,7 +69,7 @@ double MergingUniverse::rxRate()
}
uint8_t MergingUniverse::status() const
uint8_t UniverseMerger::status() const
{
if (sources_.empty())
return DMX_NULL;
@ -101,7 +101,7 @@ uint8_t MergingUniverse::status() const
* @param address
* @return An HTP merge of the source slot values.
*/
uint8_t MergingUniverse::slot(const uint16_t address) const
uint8_t UniverseMerger::slot(const uint16_t address) const
{
if (sources_.empty())
return 0;
@ -119,7 +119,7 @@ uint8_t MergingUniverse::slot(const uint16_t address) const
* @brief MergingUniverse::activeSlots
* @return The largest activeSlots values of the sources.
*/
uint16_t MergingUniverse::activeSlots() const
uint16_t UniverseMerger::activeSlots() const
{
if (sources_.empty())
return 0;
@ -133,13 +133,13 @@ uint16_t MergingUniverse::activeSlots() const
}
std::shared_ptr<DATA::data_header> MergingUniverse::metadata() const
std::shared_ptr<DATA::data_header> UniverseMerger::metadata() const
{
if (sources_.size() == 1)
return sources_.front()->metadata();
auto metadata = std::make_shared<DATA::data_header>();
metadata->source_name = "HTTP Merged Universe";
metadata->source_name = "HTP Merged Universe";
metadata->universe = expectedUniverse;
metadata->priority = expectedPriority;
return metadata;
@ -150,7 +150,7 @@ std::shared_ptr<DATA::data_header> MergingUniverse::metadata() const
* @brief MergingUniverse::addSource
* @param universe
*/
void MergingUniverse::addSource(std::shared_ptr<Universe> universe)
void UniverseMerger::addSource(std::shared_ptr<Universe> universe)
{
sources_.push_back(universe);
}

View File

@ -1,5 +1,5 @@
/*
merginguniverse.h
sacn/universemerger.h
Copyright (c) 2022 Kevin Matz (kevin.matz@gmail.com)
@ -29,12 +29,16 @@ namespace sACN {
/**
* @brief The MergingUniverse class
*
* A short lived HTP universe data merger.
*
* Synchronization is not supported.
*/
class MergingUniverse
class UniverseMerger
: public Universe
{
public:
explicit MergingUniverse();
explicit UniverseMerger();
uint16_t expectedUniverse; //!< Expected universe number
uint8_t expectedPriority; //!< Expected universe priority