// // TimeServer.cpp // // Copyright (c) 2006-2011, Applied Informatics Software Engineering GmbH. // and Contributors. // // SPDX-License-Identifier: BSL-1.0 // #include "Poco/Net/HTTPServer.h" #include "Poco/Net/HTTPRequestHandler.h" #include "Poco/Net/HTTPRequestHandlerFactory.h" #include "Poco/Net/HTTPServerRequest.h" #include "Poco/Net/HTTPServerResponse.h" #include "Poco/Timestamp.h" #include "Poco/DateTimeFormatter.h" #include "Poco/DateTimeFormat.h" #include "Poco/ClassLibrary.h" using Poco::Net::HTTPRequestHandler; using Poco::Net::HTTPRequestHandlerFactory; using Poco::Net::HTTPServerRequest; using Poco::Net::HTTPServerResponse; using Poco::Timestamp; using Poco::DateTimeFormatter; using Poco::DateTimeFormat; class TimeRequestHandler: public HTTPRequestHandler /// Return a HTML document with the current date and time. { public: TimeRequestHandler() { } void handleRequest(HTTPServerRequest& request, HTTPServerResponse& response) { Timestamp now; std::string dt(DateTimeFormatter::format(now, DateTimeFormat::SORTABLE_FORMAT)); response.setChunkedTransferEncoding(true); response.setContentType("text/html"); std::ostream& ostr = response.send(); ostr << "
"; ostr << dt; ostr << "
"; } }; class TimeRequestHandlerFactory: public HTTPRequestHandlerFactory { public: TimeRequestHandlerFactory() { } HTTPRequestHandler* createRequestHandler(const HTTPServerRequest& request) { return new TimeRequestHandler; } }; POCO_BEGIN_MANIFEST(HTTPRequestHandlerFactory) POCO_EXPORT_CLASS(TimeRequestHandlerFactory) POCO_END_MANIFEST