refactor class and file name
This commit is contained in:
parent
7676cd54a2
commit
12b34cef6e
|
@ -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
|
||||
)
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
|
@ -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
|
Loading…
Reference in New Issue