#pragma once ///////////////////////////////////////////////////////////////////////// // HttpServerProc.h - Provides application specific server processing // // ver 1.0 // // Jim Fawcett, CSE687 - Object Oriented Design, Spring 2018 // // Application: OOD Projects // // Platform: Visual Studio 2017, Dell XPS 8920, Windows 10 pro // ///////////////////////////////////////////////////////////////////////// /* * Processor Operations: * ----------------------- * This package implements application specific processing, e.g., * transformation of HttpMessage into HttpMessage. * * Required Files: * ----------------- * HttpServerProc.h * Message.h, Message.cpp * Utilities.h, Utilities.cpp * * Maintenance History: * ---------------------- * ver 1.0 : 07 Jan 2017 * - first release * */ #include "../Message/Message.h" #include "../Utilities/Utilities.h" namespace HttpCommunication { //----< helper function for ClientHandler operator() >--------------- /* * - This function is provided by each application to define * its server processing. */ inline HttpMessage makeReplyMessage(HttpMessage msg) { static size_t count = 0; size_t status = 200; std::string resource = msg.type().fileSpec(); if (resource == "/favicon.ico") { status = 404; --count; } HttpMessage reply = makeHttpReplyMessage(status); std::string replyStr = ""; replyStr += "

Received server message #" + Utilities::Converter::toString(++count) + "

"; replyStr += ""; reply.body() = replyStr; reply.contentLength(replyStr.size()); return reply; } }