FFmpegKit Linux API 5.1
AbstractSession.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2022 Taner Sener
3 *
4 * This file is part of FFmpegKit.
5 *
6 * FFmpegKit is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU Lesser General License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * FFmpegKit is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU Lesser General License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General License
17 * along with FFmpegKit. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20#ifndef FFMPEG_KIT_ABSTRACT_SESSION_H
21#define FFMPEG_KIT_ABSTRACT_SESSION_H
22
23#include "Session.h"
24
25namespace ffmpegkit {
26
31 class AbstractSession : public Session, std::enable_shared_from_this<AbstractSession> {
32 public:
33
38
46 AbstractSession(const std::list<std::string>& arguments, const ffmpegkit::LogCallback logCallback, const LogRedirectionStrategy logRedirectionStrategy);
47
53 void waitForAsynchronousMessagesInTransmit(const int timeout) const;
54
61
67 long getSessionId() const override;
68
74 std::chrono::time_point<std::chrono::system_clock> getCreateTime() const override;
75
81 std::chrono::time_point<std::chrono::system_clock> getStartTime() const override;
82
88 std::chrono::time_point<std::chrono::system_clock> getEndTime() const override;
89
96 long getDuration() const override;
97
103 std::shared_ptr<std::list<std::string>> getArguments() const override;
104
110 std::string getCommand() const override;
111
119 std::shared_ptr<std::list<std::shared_ptr<ffmpegkit::Log>>> getAllLogsWithTimeout(const int waitTimeout) const override;
120
127 std::shared_ptr<std::list<std::shared_ptr<ffmpegkit::Log>>> getAllLogs() const override;
128
136 std::shared_ptr<std::list<std::shared_ptr<ffmpegkit::Log>>> getLogs() const override;
137
146 std::string getAllLogsAsStringWithTimeout(const int waitTimeout) const override;
147
154 std::string getAllLogsAsString() const override;
155
163 std::string getLogsAsString() const override;
164
170 std::string getOutput() const override;
171
177 ffmpegkit::SessionState getState() const override;
178
187 std::shared_ptr<ffmpegkit::ReturnCode> getReturnCode() const override;
188
198 std::string getFailStackTrace() const override;
199
206
214 bool thereAreAsynchronousMessagesInTransmit() const override;
215
224 void addLog(const std::shared_ptr<ffmpegkit::Log> log) override;
225
229 void startRunning() override;
230
236 void complete(const std::shared_ptr<ffmpegkit::ReturnCode> returnCode) override;
237
243 void fail(const char* error) override;
244
250 virtual bool isFFmpeg() const override;
251
257 virtual bool isFFprobe() const override;
258
264 virtual bool isMediaInformation() const override;
265
269 void cancel() override;
270
271 private:
272 const long _sessionId;
274 std::chrono::time_point<std::chrono::system_clock> _createTime;
275 std::chrono::time_point<std::chrono::system_clock> _startTime;
276 std::chrono::time_point<std::chrono::system_clock> _endTime;
277 std::shared_ptr<std::list<std::string>> _arguments;
278 std::shared_ptr<std::list<std::shared_ptr<ffmpegkit::Log>>> _logs;
280 std::shared_ptr<ffmpegkit::ReturnCode> _returnCode;
281 std::string _failStackTrace;
283 };
284
285}
286
287#endif // FFMPEG_KIT_ABSTRACT_SESSION_H
static ffmpegkit::LogCallback logCallback
void fail(const char *error) override
virtual bool isFFmpeg() const override
LogRedirectionStrategy _logRedirectionStrategy
void addLog(const std::shared_ptr< ffmpegkit::Log > log) override
std::string getLogsAsString() const override
long getDuration() const override
long getSessionId() const override
std::chrono::time_point< std::chrono::system_clock > getEndTime() const override
std::chrono::time_point< std::chrono::system_clock > _endTime
std::string getAllLogsAsString() const override
std::shared_ptr< std::list< std::string > > _arguments
std::string getOutput() const override
std::chrono::time_point< std::chrono::system_clock > _createTime
std::shared_ptr< ffmpegkit::ReturnCode > _returnCode
ffmpegkit::LogCallback getLogCallback() const override
std::chrono::time_point< std::chrono::system_clock > getCreateTime() const override
AbstractSession(const std::list< std::string > &arguments, const ffmpegkit::LogCallback logCallback, const LogRedirectionStrategy logRedirectionStrategy)
std::shared_ptr< ffmpegkit::ReturnCode > getReturnCode() const override
void waitForAsynchronousMessagesInTransmit(const int timeout) const
std::shared_ptr< std::list< std::shared_ptr< ffmpegkit::Log > > > getAllLogsWithTimeout(const int waitTimeout) const override
void complete(const std::shared_ptr< ffmpegkit::ReturnCode > returnCode) override
std::shared_ptr< std::list< std::shared_ptr< ffmpegkit::Log > > > getAllLogs() const override
std::chrono::time_point< std::chrono::system_clock > getStartTime() const override
std::string getFailStackTrace() const override
ffmpegkit::LogCallback _logCallback
std::string getCommand() const override
ffmpegkit::SessionState getState() const override
bool thereAreAsynchronousMessagesInTransmit() const override
std::shared_ptr< std::list< std::string > > getArguments() const override
std::shared_ptr< std::list< std::shared_ptr< ffmpegkit::Log > > > getLogs() const override
std::string getAllLogsAsStringWithTimeout(const int waitTimeout) const override
ffmpegkit::LogRedirectionStrategy getLogRedirectionStrategy() const override
std::chrono::time_point< std::chrono::system_clock > _startTime
virtual bool isMediaInformation() const override
static constexpr int DefaultTimeoutForAsynchronousMessagesInTransmit
std::shared_ptr< std::list< std::shared_ptr< ffmpegkit::Log > > > _logs
virtual bool isFFprobe() const override
std::function< void(const std::shared_ptr< ffmpegkit::Log > log)> LogCallback
Definition: LogCallback.h:35