The lib with which to make LPC1768 a simple HTTP server. This have not yet implemented. fopen() DOESN'T WORK after EthernetInterface::connect() is called as using mbed-os 5.4~. See also https://os.mbed.com/questions/80658/HardFault-occurs-when-fopen-is-called-af/ or https://github.com/ARMmbed/mbed-os/issues/6578 and https://github.com/ARMmbed/mbed-os/issues/6624

Fork of HTTP_SERVER by Akifumi Takahashi

handlers/ResponseMessenger.h

Committer:
aktk
Date:
2018-03-23
Revision:
18:ad5c461905bd
Parent:
14:a16cdcd098d7

File content as of revision 18:ad5c461905bd:

/*  ResponseMessenger.h */
#ifndef RESPONSE_MESSENGER_H
#define RESPONSE_MESSENGER_H
#include "mbed.h"
#include "string.h"
#include "EthernetInterface.h"
#include "FileHandler.h"
#include <stdlib.h>
using namespace std;

class ResponseMessenger
{
    enum {
        REASON_PHRASE_SIZE = 32,
        HEADER_FIELDS_SIZE = 2048
    };
public:
    ResponseMessenger();
    ~ResponseMessenger();
    int resetHeader();
    int setStatusLine(int,const char*);
    int setHeaderField(const char*, const char*);
    int setHeaderField(const char*, int);
    int rmHeaderField(const char*);
    int getStatusCode();
    /**
     *  Function to send response messages.
     *  just header only
     *  @return char
     *  @retval error code
     */
    char sendHTTPResponse(TCPSocket&);
    /**
     *  Function to send response messages.
     *  @return char
     *  @retval error code
     */
    char sendHTTPResponse(TCPSocket&, FileHandler&);
private:
    //  Status-Line
    static const char http_ver[9];
    int  status_code;
    char reason_phrase[REASON_PHRASE_SIZE];
    //  Header Field buffer
    //  - General Header
    //  - Response Header
    //  - Entity Header
    char header_field_buffer[HEADER_FIELDS_SIZE];
};

#endif