231 lines
5.4 KiB
C++
231 lines
5.4 KiB
C++
|
/*
|
||
|
* Copyright 2013-2020, Corvusoft Ltd, All Rights Reserved.
|
||
|
*/
|
||
|
|
||
|
//System Includes
|
||
|
|
||
|
//Project Includes
|
||
|
#include "corvusoft/restbed/settings.hpp"
|
||
|
#include "corvusoft/restbed/detail/settings_impl.hpp"
|
||
|
|
||
|
//External Includes
|
||
|
|
||
|
//System Namespaces
|
||
|
using std::map;
|
||
|
using std::string;
|
||
|
using std::multimap;
|
||
|
using std::make_pair;
|
||
|
using std::unique_ptr;
|
||
|
using std::shared_ptr;
|
||
|
using std::chrono::seconds;
|
||
|
using std::chrono::milliseconds;
|
||
|
using std::chrono::duration_cast;
|
||
|
|
||
|
//Project Namespaces
|
||
|
using restbed::detail::SettingsImpl;
|
||
|
|
||
|
//External Namespaces
|
||
|
|
||
|
namespace restbed
|
||
|
{
|
||
|
Settings::Settings( void ) : m_pimpl( new SettingsImpl )
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
Settings::~Settings( void )
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
uint16_t Settings::get_port( void ) const
|
||
|
{
|
||
|
return m_pimpl->m_port;
|
||
|
}
|
||
|
|
||
|
string Settings::get_root( void ) const
|
||
|
{
|
||
|
return m_pimpl->m_root;
|
||
|
}
|
||
|
|
||
|
bool Settings::get_reuse_address( void ) const
|
||
|
{
|
||
|
return m_pimpl->m_reuse_address;
|
||
|
}
|
||
|
|
||
|
unsigned int Settings::get_worker_limit( void ) const
|
||
|
{
|
||
|
return m_pimpl->m_worker_limit;
|
||
|
}
|
||
|
|
||
|
unsigned int Settings::get_connection_limit( void ) const
|
||
|
{
|
||
|
return m_pimpl->m_connection_limit;
|
||
|
}
|
||
|
|
||
|
string Settings::get_bind_address( void ) const
|
||
|
{
|
||
|
return m_pimpl->m_bind_address;
|
||
|
}
|
||
|
|
||
|
bool Settings::get_case_insensitive_uris( void ) const
|
||
|
{
|
||
|
return m_pimpl->m_case_insensitive_uris;
|
||
|
}
|
||
|
|
||
|
milliseconds Settings::get_connection_timeout( void ) const
|
||
|
{
|
||
|
return m_pimpl->m_connection_timeout;
|
||
|
}
|
||
|
|
||
|
bool Settings::get_keep_alive( void ) const
|
||
|
{
|
||
|
return m_pimpl->m_keep_alive;
|
||
|
}
|
||
|
|
||
|
uint32_t Settings::get_keep_alive_start( void ) const
|
||
|
{
|
||
|
return m_pimpl->m_keep_alive_start;
|
||
|
}
|
||
|
|
||
|
uint32_t Settings::get_keep_alive_interval( void ) const
|
||
|
{
|
||
|
return m_pimpl->m_keep_alive_interval;
|
||
|
}
|
||
|
|
||
|
uint32_t Settings::get_keep_alive_cnt( void ) const
|
||
|
{
|
||
|
return m_pimpl->m_keep_alive_cnt;
|
||
|
}
|
||
|
|
||
|
string Settings::get_status_message( const int code ) const
|
||
|
{
|
||
|
return ( m_pimpl->m_status_messages.count( code ) ) ? m_pimpl->m_status_messages.at( code ) : "No Appropriate Status Message Found";
|
||
|
}
|
||
|
|
||
|
map< int, string > Settings::get_status_messages( void ) const
|
||
|
{
|
||
|
return m_pimpl->m_status_messages;
|
||
|
}
|
||
|
|
||
|
string Settings::get_property( const string& name ) const
|
||
|
{
|
||
|
return ( m_pimpl->m_properties.count( name ) ) ? m_pimpl->m_properties.at( name ) : "";
|
||
|
}
|
||
|
|
||
|
map< string, string > Settings::get_properties( void ) const
|
||
|
{
|
||
|
return m_pimpl->m_properties;
|
||
|
}
|
||
|
|
||
|
shared_ptr< const SSLSettings > Settings::get_ssl_settings( void ) const
|
||
|
{
|
||
|
return m_pimpl->m_ssl_settings;
|
||
|
}
|
||
|
|
||
|
multimap< string, string > Settings::get_default_headers( void ) const
|
||
|
{
|
||
|
return m_pimpl->m_default_headers;
|
||
|
}
|
||
|
|
||
|
void Settings::set_port( const uint16_t value )
|
||
|
{
|
||
|
m_pimpl->m_port = value;
|
||
|
}
|
||
|
|
||
|
void Settings::set_root( const string& value )
|
||
|
{
|
||
|
m_pimpl->m_root = value;
|
||
|
}
|
||
|
|
||
|
void Settings::set_reuse_address( const bool value )
|
||
|
{
|
||
|
m_pimpl->m_reuse_address = value;
|
||
|
}
|
||
|
|
||
|
void Settings::set_worker_limit( const unsigned int value )
|
||
|
{
|
||
|
m_pimpl->m_worker_limit = value;
|
||
|
}
|
||
|
|
||
|
void Settings::set_connection_limit( const unsigned int value )
|
||
|
{
|
||
|
m_pimpl->m_connection_limit = value;
|
||
|
}
|
||
|
|
||
|
void Settings::set_bind_address( const string& value )
|
||
|
{
|
||
|
m_pimpl->m_bind_address = value;
|
||
|
}
|
||
|
|
||
|
void Settings::set_case_insensitive_uris( const bool value )
|
||
|
{
|
||
|
m_pimpl->m_case_insensitive_uris = value;
|
||
|
}
|
||
|
|
||
|
void Settings::set_connection_timeout( const seconds& value )
|
||
|
{
|
||
|
m_pimpl->m_connection_timeout = duration_cast< milliseconds >( value );
|
||
|
}
|
||
|
|
||
|
void Settings::set_connection_timeout( const milliseconds& value )
|
||
|
{
|
||
|
m_pimpl->m_connection_timeout = value;
|
||
|
}
|
||
|
|
||
|
void Settings::set_keep_alive( bool value )
|
||
|
{
|
||
|
m_pimpl->m_keep_alive = value;
|
||
|
}
|
||
|
|
||
|
void Settings::set_keep_alive_start( const uint32_t value )
|
||
|
{
|
||
|
m_pimpl->m_keep_alive_start = value;
|
||
|
}
|
||
|
|
||
|
void Settings::set_keep_alive_interval( const uint32_t value )
|
||
|
{
|
||
|
m_pimpl->m_keep_alive_interval = value;
|
||
|
}
|
||
|
|
||
|
void Settings::set_keep_alive_cnt( const uint32_t value )
|
||
|
{
|
||
|
m_pimpl->m_keep_alive_cnt = value;
|
||
|
}
|
||
|
|
||
|
void Settings::set_status_message( const int code, const string& message )
|
||
|
{
|
||
|
m_pimpl->m_status_messages[ code ] = message;
|
||
|
}
|
||
|
|
||
|
void Settings::set_status_messages( const map< int, string >& values )
|
||
|
{
|
||
|
m_pimpl->m_status_messages = values;
|
||
|
}
|
||
|
|
||
|
void Settings::set_property( const string& name, const string& value )
|
||
|
{
|
||
|
m_pimpl->m_properties[ name ] = value;
|
||
|
}
|
||
|
|
||
|
void Settings::set_properties( const map< string, string >& values )
|
||
|
{
|
||
|
m_pimpl->m_properties = values;
|
||
|
}
|
||
|
|
||
|
void Settings::set_ssl_settings( const shared_ptr< const SSLSettings >& values )
|
||
|
{
|
||
|
m_pimpl->m_ssl_settings = values;
|
||
|
}
|
||
|
|
||
|
void Settings::set_default_header( const string& name, const string& value )
|
||
|
{
|
||
|
m_pimpl->m_default_headers.insert( make_pair( name, value ) );
|
||
|
}
|
||
|
|
||
|
void Settings::set_default_headers( const multimap< string, string >& values )
|
||
|
{
|
||
|
m_pimpl->m_default_headers = values;
|
||
|
}
|
||
|
}
|