# pion::net::WebServer Class Reference

`#include <WebServer.hpp>`

Inherits pion::net::HTTPServer.

List of all members.

## Detailed Description

WebServer: a server that handles HTTP connections using WebService plug-ins

Definition at line 31 of file WebServer.hpp.

## Public Member Functions

virtual | ~WebServer ()
| default destructor
| WebServer (const unsigned int tcp_port=0)
| WebServer (const boost::asio::ip::tcp::endpoint &endpoint)
| WebServer (PionScheduler &scheduler, const unsigned int tcp_port=0)
| WebServer (PionScheduler &scheduler, const boost::asio::ip::tcp::endpoint &endpoint)
void | addService (const std::string &resource, WebService *service_ptr)
void | loadService (const std::string &resource, const std::string &service_name)
void | setServiceOption (const std::string &resource, const std::string &name, const std::string &value)
void | loadServiceConfig (const std::string &config_name)
virtual void | clear (void)
| clears all the web services that are currently configured

## Protected Member Functions

virtual void | beforeStarting (void)
| called before the TCP server starts listening for new connections
virtual void | afterStopping (void)
| called after the TCP server has stopped listening for new connections

## Classes

class | AuthConfigException
| exception thrown if there is an error parsing the authorization config More...
class | ConfigNotFoundException
| exception thrown if the web service configuration file cannot be found More...
class | ConfigParsingException
| exception thrown if the plug-in file cannot be opened More...
class | ServiceNotFoundException
| exception thrown if a web service cannot be found More...
class | WebServiceException
| exception used to propagate exceptions thrown by web services More...

## Constructor & Destructor Documentation

pion::net::WebServer::WebServer | ( | const unsigned int | tcp_port = `0` | ) | `[inline, explicit]`

creates a new WebServer object

Parameters:

  | tcp_port | port number used to listen for new connections (IPv4)

Definition at line 83 of file WebServer.hpp.

pion::net::WebServer::WebServer | ( | const boost::asio::ip::tcp::endpoint & | endpoint | ) | `[inline, explicit]`

creates a new WebServer object

Parameters:

  | endpoint | TCP endpoint used to listen for new connections (see ASIO docs)

Definition at line 94 of file WebServer.hpp.

pion::net::WebServer::WebServer | ( | PionScheduler & | scheduler,
|  | const unsigned int | tcp_port = `0` |
| ) |  |  | `[inline, explicit]`

creates a new WebServer object

Parameters:

  | scheduler | the PionScheduler that will be used to manage worker threads
  | tcp_port | port number used to listen for new connections (IPv4)

Definition at line 106 of file WebServer.hpp.

pion::net::WebServer::WebServer | ( | PionScheduler & | scheduler,
|  | const boost::asio::ip::tcp::endpoint & | endpoint |
| ) |  |  | `[inline]`

creates a new WebServer object

Parameters:

  | scheduler | the PionScheduler that will be used to manage worker threads
  | endpoint | TCP endpoint used to listen for new connections (see ASIO docs)

Definition at line 118 of file WebServer.hpp.

## Member Function Documentation

void pion::net::WebServer::addService | ( | const std::string & | resource,
|  | WebService * | service_ptr |
| ) |  |  |

adds a new web service to the web server

Parameters:

  | resource | the resource name or uri-stem to bind to the web service
  | service_ptr | a pointer to the web service

Definition at line 25 of file WebServer.cpp.

References pion::PluginManager< PLUGIN_TYPE >::add(), pion::net::HTTPServer::addResource(), pion::net::TCPServer::m_logger, pion::net::WebService::setResource(), and pion::net::HTTPServer::stripTrailingSlash().

void pion::net::WebServer::loadService | ( | const std::string & | resource,
|  | const std::string & | service_name |
| ) |  |  |

loads a web service from a shared object file

Parameters:

  | resource | the resource name or uri-stem to bind to the web service
  | service_name | the name of the web service to load (searches plug-in directories and appends extensions)

Definition at line 41 of file WebServer.cpp.

References pion::net::HTTPServer::addResource(), pion::PluginManager< PLUGIN_TYPE >::load(), pion::net::TCPServer::m_logger, and pion::net::HTTPServer::stripTrailingSlash().

Referenced by loadServiceConfig().

void pion::net::WebServer::loadServiceConfig | ( | const std::string & | config_name | ) |

Parses a simple web service configuration file. Each line in the file starts with one of the following commands:

path VALUE : adds a directory to the web service search path service RESOURCE FILE : loads web service bound to RESOURCE from FILE option RESOURCE NAME=VALUE : sets web service option NAME to VALUE

Blank lines or lines that begin with # are ignored as comments.

Parameters:

  | config_name | the name of the config file to parse

Definition at line 74 of file WebServer.cpp.

References pion::PionPlugin::addPluginDirectory(), pion::PionPlugin::findConfigFile(), loadService(), pion::net::TCPServer::m_logger, pion::net::HTTPServer::setAuthentication(), and setServiceOption().

void pion::net::WebServer::setServiceOption | ( | const std::string & | resource,
|  | const std::string & | name,
|  | const std::string & | value |
| ) |  |  |

sets a configuration option for the web service associated with resource

Parameters:

  | resource | the resource name or uri-stem that identifies the web service
  | name | the name of the configuration option
  | value | the value to set the option to

Definition at line 57 of file WebServer.cpp.

References pion::net::TCPServer::m_logger, pion::PluginManager< PLUGIN_TYPE >::run(), pion::net::WebService::setOption(), and pion::net::HTTPServer::stripTrailingSlash().

Referenced by loadServiceConfig().

The documentation for this class was generated from the following files:

- net/include/pion/net/WebServer.hpp
- net/src/WebServer.cpp