| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- /*
- This file is part of Telegram Desktop,
- the official desktop application for the Telegram messaging service.
- For license and copyright information please follow this link:
- https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
- */
- #pragma once
- #include <QtCore/QString>
- namespace Export {
- namespace Data {
- struct PersonalInfo;
- struct UserpicsInfo;
- struct UserpicsSlice;
- struct StoriesInfo;
- struct StoriesSlice;
- struct ContactsList;
- struct SessionsList;
- struct DialogsInfo;
- struct DialogInfo;
- struct MessagesSlice;
- struct File;
- } // namespace Data
- struct Settings;
- struct Environment;
- namespace Output {
- QString NormalizePath(const Settings &settings);
- struct Result;
- class Stats;
- enum class Format {
- Html,
- Json,
- HtmlAndJson,
- };
- class AbstractWriter {
- public:
- [[nodiscard]] virtual Format format() = 0;
- [[nodiscard]] virtual Result start(
- const Settings &settings,
- const Environment &environment,
- Stats *stats) = 0;
- [[nodiscard]] virtual Result writePersonal(
- const Data::PersonalInfo &data) = 0;
- [[nodiscard]] virtual Result writeUserpicsStart(
- const Data::UserpicsInfo &data) = 0;
- [[nodiscard]] virtual Result writeUserpicsSlice(
- const Data::UserpicsSlice &data) = 0;
- [[nodiscard]] virtual Result writeUserpicsEnd() = 0;
- [[nodiscard]] virtual Result writeStoriesStart(
- const Data::StoriesInfo &data) = 0;
- [[nodiscard]] virtual Result writeStoriesSlice(
- const Data::StoriesSlice &data) = 0;
- [[nodiscard]] virtual Result writeStoriesEnd() = 0;
- [[nodiscard]] virtual Result writeContactsList(
- const Data::ContactsList &data) = 0;
- [[nodiscard]] virtual Result writeSessionsList(
- const Data::SessionsList &data) = 0;
- [[nodiscard]] virtual Result writeOtherData(
- const Data::File &data) = 0;
- [[nodiscard]] virtual Result writeDialogsStart(
- const Data::DialogsInfo &data) = 0;
- [[nodiscard]] virtual Result writeDialogStart(
- const Data::DialogInfo &data) = 0;
- [[nodiscard]] virtual Result writeDialogSlice(
- const Data::MessagesSlice &data) = 0;
- [[nodiscard]] virtual Result writeDialogEnd() = 0;
- [[nodiscard]] virtual Result writeDialogsEnd() = 0;
- [[nodiscard]] virtual Result finish() = 0;
- [[nodiscard]] virtual QString mainFilePath() = 0;
- virtual ~AbstractWriter() = default;
- Stats produceTestExample(
- const QString &path,
- const Environment &environment);
- };
- std::unique_ptr<AbstractWriter> CreateWriter(Format format);
- } // namespace Output
- } // namespace Export
|