1 #ifndef SOCKET_HPP
2 #define SOCKET_HPP
3 
4 #include "http.h"
5 #include <memory>
6 #include "libuv/include/uv.h"
7 
8 class HttpRequest;
9 class WebApplication;
10 
11 class Socket {
12 public:
13   VariantHandle handle;
14   std::shared_ptr<WebApplication> pWebApplication;
15   CallbackQueue* background_queue;
16   std::vector<std::shared_ptr<HttpRequest> > connections;
17 
Socket(std::shared_ptr<WebApplication> pWebApplication,CallbackQueue * background_queue)18   Socket(std::shared_ptr<WebApplication> pWebApplication,
19          CallbackQueue* background_queue)
20     : pWebApplication(pWebApplication), background_queue(background_queue)
21   {
22   }
23 
24   void addConnection(std::shared_ptr<HttpRequest> request);
25   void removeConnection(std::shared_ptr<HttpRequest> request);
26   void close();
27 
28   virtual ~Socket();
29 };
30 
31 
32 #endif // SOCKET_HPP
33