Program Listing for File ServiceFactory.h

Return to documentation for file (axr.sdk/ServiceFactory.h)

// Copyright (C) AcceleratXR, Inc. All rights reserved.
//
// Author: Jean-Philippe Steinmetz <info@acceleratxr.com>
//
// NOTE: This file was auto generated by the AcceleratXR code generator.
// https://gitlab.com/AcceleratXR/Core/code_generator.git
#pragma once

#include "net/IApiClient.h"
#include "ServiceBase.h"

#include <cpprest/details/basic_types.h>
#include <map>

namespace axr {
namespace sdk {

class ServiceFactory {
public:
    ServiceFactory(std::shared_ptr<Configuration> config, std::shared_ptr<net::IApiClient> apiClient);

    ~ServiceFactory();

    template<class T>
    std::shared_ptr<T> GetService() const;

private:
    ServiceFactory();

    std::map<utility::string_t, std::shared_ptr<IServiceBase>> services;
};

} // namespace axr
} // namespace sdk