mirror of https://github.com/qt/qtgrpc.git
67 lines
1.9 KiB
C++
67 lines
1.9 KiB
C++
// Copyright (C) 2022 The Qt Company Ltd.
|
|
// Copyright (C) 2019 Alexey Edelev <semlanik@gmail.com>
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
|
|
|
#ifndef GENERATOROPTIONS_H
|
|
#define GENERATOROPTIONS_H
|
|
|
|
#include <string>
|
|
|
|
namespace qtprotoccommon {
|
|
|
|
/*!
|
|
\ingroup generator
|
|
\private
|
|
\brief The GeneratorOptions class
|
|
*/
|
|
class Options
|
|
{
|
|
Options();
|
|
|
|
static Options &mutableInstance();
|
|
public:
|
|
enum class HeaderGuardType {
|
|
Pragma,
|
|
ProtoFilename,
|
|
};
|
|
enum GeneratorType {
|
|
QtProtobufGen = 0,
|
|
QtGrpcGen
|
|
};
|
|
~Options();
|
|
Options(const Options &) = delete;
|
|
Options &operator=(const Options &) = delete;
|
|
Options(Options &&) = delete;
|
|
Options &operator=(Options &&) = delete;
|
|
|
|
static const Options &instance();
|
|
static void setFromString(const std::string &options, GeneratorType type, std::string *error);
|
|
|
|
bool hasQml() const { return m_qml; }
|
|
bool generateComments() const { return m_generateComments; }
|
|
bool isFolder() const { return m_isFolder; }
|
|
bool generateFieldEnum() const { return m_generateFieldEnum; }
|
|
const std::string &extraNamespace() const { return m_extraNamespace; }
|
|
const std::string &exportMacro() const { return m_exportMacro; }
|
|
const std::string &exportMacroFilename() const { return m_exportMacroFilename; }
|
|
bool generateMacroExportFile() const { return m_generateMacroExportFile; }
|
|
HeaderGuardType headerGuard() const { return m_headerGuard; }
|
|
bool mutableGetterConflicts() const { return m_mutableGetterConflicts; }
|
|
|
|
private:
|
|
bool m_generateComments;
|
|
bool m_isFolder;
|
|
bool m_generateFieldEnum;
|
|
std::string m_extraNamespace;
|
|
std::string m_exportMacro;
|
|
std::string m_exportMacroFilename;
|
|
bool m_generateMacroExportFile;
|
|
bool m_qml;
|
|
bool m_mutableGetterConflicts;
|
|
|
|
HeaderGuardType m_headerGuard = Options::HeaderGuardType::ProtoFilename;
|
|
};
|
|
|
|
}
|
|
#endif // GENERATOROPTIONS_H
|