Files
qt5-legatus-legacy/Lts/Services/AudioVideoManagement/AvsCommands/query_timeline.h
T
2026-08-13 18:33:10 +02:00

62 lines
1.4 KiB
C++
Executable File

/**
* @RDE_HEADER@
* QueryTimeline
* $Id$
* $HeadURL$
* $Author$
* Created by Christian Fröbel, SLSE, 2017-07-10
*/
#pragma once
#include "icommand.h"
#include <boost/optional.hpp>
#include <AudioVideoManagement/ava_types.h>
#include <AudioVideoManagement/list_response_collector.h>
#include <QString>
namespace AudioVideoManagement
{
class IAvaComm;
class IAvaCommandDoneObserver;
namespace AvaCommands
{
/**
* @author Christian Fröbel
*/
class QueryTimeline final : public ICommand
{
Q_OBJECT
public:
QueryTimeline(IAvaComm *comm, IAvaCommandDoneObserver *observer, const QString &streamName,
const boost::optional<AvaTimePoint> &start, const boost::optional<AvaTimePoint> &end);
void send() override;
QString debug() const override { return QLatin1String("QueryTimeline"); }
const AvaTimeline &timeline() const { return m_timeline; }
private slots:
void onOk();
private:
void done();
void onTimelineReceived(AvaTimeline &&timeline);
const QString m_streamName;
bool m_ok{false};
AvaTimeline m_timeline;
TimelineListCollector m_collector;
IAvaComm *m_comm;
IAvaCommandDoneObserver *m_observer;
boost::optional<AvaTimePoint> m_start;
boost::optional<AvaTimePoint> m_end;
};
} // namespace AvaCommands
} // namespace AudioVideoManagement