1
0
Fork 0

seperate termination from ending semantics

This commit is contained in:
Kevin Matz 2021-06-20 09:35:56 -04:00
parent 619430fe50
commit 9f407da475
2 changed files with 60 additions and 9 deletions

View File

@ -25,27 +25,75 @@
namespace SACN {
/**
* @brief Source::Source
* @param cid
*/
Source::Source(UUID::uuid cid)
: Appliance(cid)
{
}
/**
* @brief Source::create
* @param num
*/
void Source::create(const uint16_t num)
{
if (!universes_.count(num))
universes_.emplace(num, new Universe());
}
void Source::terminate(const uint16_t num) {
if (universes_.count(num))
universes_.erase(num);
return;
universes_.emplace(num, new Universe());
auto source = std::shared_ptr<UniverseSource>(new UniverseSource());
source->setCID(this->cid());
source->setDescription(this->name());
source->setUniverse(num);
universes_[num]->setSource(source);
}
Universe * Source::universe(const uint16_t num) {
if (universes_.count(num))
/**
* @brief Source::terminate
* @param num
*/
void Source::terminate(const uint16_t num)
{
if (!universes_.count(num))
return;
auto source = universes_[num]->source();
source->setOptions(0 | source->isForced()
| source->isPreview()
| DATA::STREAM_TERMINATED);
}
/**
* @brief Source::end
* @param num
*/
void Source::end(const uint16_t num)
{
if (!universes_.count(num))
return;
universes_.erase(num);
}
/**
* @brief Source::universe
* @param num
* @return
*/
Universe * Source::universe(const uint16_t num)
{
if (!universes_.count(num))
return 0;
return universes_.at(num);
return 0;
}
} // SACN

View File

@ -39,6 +39,9 @@ public:
virtual void terminate(const uint16_t);
Universe * universe(const uint16_t);
protected:
virtual void end(const uint16_t);
private:
std::unordered_map <uint16_t, Universe *> universes_;
};