10 #if !defined(HTTP_SERVER_H_)
11 #define HTTP_SERVER_H_
14 #include <epicsTime.h>
15 #include <epicsThread.h>
18 #include "tools/ToolsConfig.h"
19 #include "tools/NetTools.h"
20 #include "tools/Guard.h"
21 #include "tools/AutoPtr.h"
24 #include "engine/HTMLPage.h"
43 #define MAX_NUM_CLIENTS 3
49 #define HTTPD_TIMEOUT 1
52 #define HTTPD_READ_TIMEOUT 1
55 #define HTTPD_CLIENT_TIMEOUT 10
66 const stdString &full_path,
120 {
return go ==
false; }
129 size_t total_clients;
130 double client_duration;
135 void start_client(SOCKET peer);
138 size_t client_cleanup();
140 void reject(SOCKET socket);
177 void error(
const std::string& message);
191 {
return birthtime; }
207 stdVector<stdString> input_line;
221 #endif // !defined(HTTP_SERVER_H_)
HTTPServer(short port, PathHandlerList *handlers, void *user_arg)
Create a HTTPServer.
SOCKET getSocket()
Returns socket.
Definition: HTTPServer.h:165
virtual ~HTTPClientConnection()
Destructor.
const char * path
Path for this handler.
Definition: HTTPServer.h:69
A mutex with informational name and lock order.
Definition: OrderedMutex.h:34
An auto-pointer for arrays.
Definition: AutoPtr.h:120
void start()
Start accepting connections (launch thread).
Handler for a HTTPServer's client.
Definition: HTTPServer.h:150
Helper for printing a web page to a socket.
Definition: HTMLPage.h:31
void serverinfo(SOCKET socket)
Dump HTML page with server info to socket.
HTTPServer * getServer()
Returns server.
Definition: HTTPServer.h:161
double getRuntime() const
Definition: HTTPServer.h:194
bool isShuttingDown() const
Definition: HTTPServer.h:119
An in-memory web server.
Definition: HTTPServer.h:85
const epicsTime & getBirthTime()
Definition: HTTPServer.h:190
void run()
Part of the epicsThreadRunable interface.
HTTPClientConnection(HTTPServer *server, SOCKET socket, int num)
Constructor.
void * getUserArg() const
Definition: HTTPServer.h:115
void error(const std::string &message)
Predefined PathHandler.
size_t getNum()
Definition: HTTPServer.h:169
size_t path_len
Relevant portion of path to check (if > 0)
Definition: HTTPServer.h:70
void pathError(const std::string &path)
Predefined PathHandler.
Used by HTTPClientConnection to dispatch client requests.
Definition: HTTPServer.h:62
bool isDone()
Checks if done.
Definition: HTTPServer.h:173
void start()
Start.
Definition: HTTPServer.h:183
PathHandlerList * getHandlers() const
Definition: HTTPServer.h:111
PathHandler handler
Handler to call.
Definition: HTTPServer.h:71