Program Listing for File AbstractApiServer.h
↰ Return to documentation for file (axr.sdk/net/AbstractApiServer.h
)
// Copyright (C) AcceleratXR, Inc. All rights reserved.
//
// Author: Jean-Philippe Steinmetz <info@acceleratxr.com>
#pragma once
#include "../Configuration.h"
#include "./IApiServer.h"
namespace axr {
namespace sdk {
namespace net {
class AbstractApiServer : public IApiServer
{
protected:
AbstractApiServer(std::shared_ptr<Configuration> Config);
public:
virtual ~AbstractApiServer() {}
virtual void Use(RequestHandler Handler);
virtual void Use(const utility::string_t& Method, const utility::string_t& Path, std::initializer_list<RequestHandler> Handlers);
virtual void Delete(const utility::string_t& Path, std::initializer_list<RequestHandler> Handlers);
virtual void Get(const utility::string_t& Path, std::initializer_list<RequestHandler> Handlers);
virtual void Head(const utility::string_t& Path, std::initializer_list<RequestHandler> Handlers);
virtual void Post(const utility::string_t& Path, std::initializer_list<RequestHandler> Handlers);
virtual void Put(const utility::string_t& Path, std::initializer_list<RequestHandler> Handlers);
virtual void Upgrade(const utility::string_t& Path, std::initializer_list<RequestHandler> Handlers);
protected:
void HandleRequest(IHttpRequest Request);
std::shared_ptr<Configuration> m_Config;
std::map<utility::string_t, std::vector<RequestHandler>> m_EndpointHandlers;
};
} // namespace net
} // namespace sdk
} // namespace axr