29#ifndef Pt_Http_Service_h
30#define Pt_Http_Service_h
32#include <Pt/Http/Api.h>
33#include <Pt/Http/Responder.h>
35#include <Pt/Allocator.h>
36#include <Pt/NonCopyable.h>
78 friend class ServerImpl;
133template <
typename R,
typename Alloc = Allocator>
150 void* r = _alloc.allocate(
sizeof(R) );
151 return new(r) R(*
this);
157 _alloc.deallocate( r,
sizeof(R) );
virtual Responder * onGetResponder(const Request &)
Creates a responder to handle request received by a server.
Definition Service.h:148
~BasicService()
Destructor.
Definition Service.h:144
virtual void onReleaseResponder(Responder *r)
Destroys a responder created by a server.
Definition Service.h:154
BasicService()
Default Constructor.
Definition Service.h:139
Stream of an upgraded HTTP connection.
Definition IOStream.h:53
HTTP request message.
Definition Request.h:65
Handles one HTTP request and writes the reply.
Definition Responder.h:109
virtual ~Responder()
Destructor.
void releaseResponder(Responder *)
Destroys a responder created by a server.
Service()
Default Constructor.
Responder * getResponder(const Request &)
Creates a responder to handle request received by a server.
Signal< IOStream *, const std::string & > & upgradeRequested()
Returns the signal emitted when a request upgrades to this service.
virtual ~Service()
Destructor.
virtual void onReleaseResponder(Responder *)=0
Destroys a responder created by a server.
virtual Responder * onGetResponder(const Request &)=0
Creates a responder to handle request received by a server.
NonCopyable()
Default constructor.
Definition NonCopyable.h:63
Multicast Signal to call multiple slots.
Definition Signal.h:190
HTTP clients and servers.
Core module.
Definition Allocator.h:33