#ifndef __HTTPSessions_h__
#define __HTTPSessions_h__

#include "HTTPRequest.h"
#include "Command.h"
#include "TCPSession.h"

namespace http {

   class HTTPSession;
   
   class HTTPSessions : public core::Command {
   
    public:
      HTTPSession * findSessionByHeader(HTTPRequest *httpRequest);  
      HTTPSession * findSessionById(std::string sessionId, HTTPRequest *httpRequest);  

      int processCommand(std::string request, core::TCPSession *session, std::stringstream &data);
      
    private:
      HTTPSession * createHTTPSession();
      std::string generateSessionId();
      
      std::map<std::string, HTTPSession*> sessions;
   
   };
   
}

#endif
