#pragma once

#include "core/HttpServer/IHttpServer.h"
#include "core/Track/ITrack.h"

#include <memory>

//--------------------------------------------------------------
class AppContext
{
  public:
  AppContext();                                                   // Default constructor
  virtual ~AppContext()                            = default;     // Default destructor
  AppContext(const AppContext &obj)                = delete;      // Copy constructor
  AppContext(AppContext &&obj) noexcept            = delete;      // Move constructor
  AppContext &operator=(const AppContext &obj)     = delete;      // Copy assignment operator
  AppContext &operator=(AppContext &&obj) noexcept = delete;      // Move assignment operator

  std::unique_ptr<ITrack>           m_hTrack;      // Track instance
  std::unique_ptr<IHttpServer> m_hServer;     // HTTP server instance
};
//--------------------------------------------------------------
