// // Created by Clément Brisset on 12/14/16 // Copyright 2016 High Fidelity, Inc. // // Distributed under the Apache License, Version 2.0. // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html // #include #include #include #include #include #include #include "SteamAPIPlugin.h" class SteamAPIProvider : public QObject, public SteamClientProvider { Q_OBJECT Q_PLUGIN_METADATA(IID SteamClientProvider_iid FILE "plugin.json") Q_INTERFACES(SteamClientProvider) public: SteamAPIProvider(QObject* parent = nullptr) : QObject(parent) {} virtual ~SteamAPIProvider() {} virtual SteamClientPluginPointer getSteamClientPlugin() override { static std::once_flag once; std::call_once(once, [&] { _steamClientPlugin = std::make_shared(); }); return _steamClientPlugin; } private: SteamClientPluginPointer _steamClientPlugin; }; #include "SteamClientProvider.moc"