Program Listing for File factory.hpp

Return to documentation for file (rcppsw/patterns/factory/factory.hpp)

#pragma once

/*******************************************************************************
 * Includes
 ******************************************************************************/
#include "rcppsw/patterns/factory/base_factory.hpp"

/*******************************************************************************
 * Namespaces/Decls
 ******************************************************************************/
namespace rcppsw::patterns::factory {

/*******************************************************************************
 * Class Definitions
 ******************************************************************************/
template<typename TBase, typename TKeyType, typename...Args>
class releasing_factory : public detail::base_factory<detail::factory_releasing_type,
                                                      std::unique_ptr,
                                                      TBase,
                                                      TKeyType,
                                                      Args...> {
 public:
  ~releasing_factory(void) override = default;
};


template<typename TBase, typename TKeyType, typename...Args>
class sharing_factory : public detail::base_factory<detail::factory_sharing_type,
                                                    std::shared_ptr,
                                                    TBase,
                                                    TKeyType,
                                                    Args...> {
 public:
  ~sharing_factory(void) override = default;
};

} /* namespace rcppsw::patterns::factory */