Commit 5a1f12b8e426d5efaa9c7e33493c60945ba2779f

Authored by Josh Klontz
1 parent 4c19358f

removed post format

Showing 1 changed file with 0 additions and 106 deletions
openbr/plugins/format/post.cpp deleted
1   -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2   - * Copyright 2012 The MITRE Corporation *
3   - * *
4   - * Licensed under the Apache License, Version 2.0 (the "License"); *
5   - * you may not use this file except in compliance with the License. *
6   - * You may obtain a copy of the License at *
7   - * *
8   - * http://www.apache.org/licenses/LICENSE-2.0 *
9   - * *
10   - * Unless required by applicable law or agreed to in writing, software *
11   - * distributed under the License is distributed on an "AS IS" BASIS, *
12   - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
13   - * See the License for the specific language governing permissions and *
14   - * limitations under the License. *
15   - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
16   -
17   -#include <QTcpSocket>
18   -#include <opencv2/highgui/highgui.hpp>
19   -
20   -#include <openbr/plugins/openbr_internal.h>
21   -#include <http_parser.h>
22   -
23   -using namespace cv;
24   -
25   -namespace br
26   -{
27   -
28   -/*!
29   - * \ingroup formats
30   - * \brief Handle POST requests
31   - * \author Josh Klontz \cite jklontz
32   - */
33   -class postFormat : public Format
34   -{
35   - Q_OBJECT
36   -
37   - Template read() const
38   - {
39   - Template t(file);
40   -
41   - // Read from socket
42   - QTcpSocket *socket = new QTcpSocket();
43   - socket->setSocketDescriptor(file.get<qintptr>("socketDescriptor"));
44   - socket->write("HTTP/1.1 200 OK\r\n"
45   - "Content-Type: text/html; charset=UTF-8\r\n\r\n"
46   - "Hello World!\r\n");
47   - socket->waitForBytesWritten();
48   - socket->waitForReadyRead();
49   - QByteArray data = socket->readAll();
50   - socket->close();
51   - delete socket;
52   -
53   - qDebug() << data;
54   -
55   - // Parse data
56   - http_parser_settings settings;
57   - settings.on_body = bodyCallback;
58   - settings.on_headers_complete = NULL;
59   - settings.on_header_field = NULL;
60   - settings.on_header_value = NULL;
61   - settings.on_message_begin = NULL;
62   - settings.on_message_complete = NULL;
63   - settings.on_status_complete = NULL;
64   - settings.on_url = NULL;
65   -
66   - {
67   - QByteArray body;
68   - http_parser parser;
69   - http_parser_init(&parser, HTTP_REQUEST);
70   - parser.data = &body;
71   - http_parser_execute(&parser, &settings, data.data(), data.size());
72   - data = body;
73   - }
74   -
75   - data.prepend("HTTP/1.1 200 OK");
76   - QByteArray body;
77   - { // Image data is two layers deep
78   - http_parser parser;
79   - http_parser_init(&parser, HTTP_BOTH);
80   - parser.data = &body;
81   - http_parser_execute(&parser, &settings, data.data(), data.size());
82   - }
83   -
84   - t.append(imdecode(Mat(1, body.size(), CV_8UC1, body.data()), 1));
85   - return t;
86   - }
87   -
88   - void write(const Template &t) const
89   - {
90   - (void) t;
91   - qFatal("Not supported!");
92   - }
93   -
94   - static int bodyCallback(http_parser *parser, const char *at, size_t length)
95   - {
96   - QByteArray *byteArray = (QByteArray*)parser->data;
97   - *byteArray = QByteArray(at, length);
98   - return 0;
99   - }
100   -};
101   -
102   -BR_REGISTER(Format, postFormat)
103   -
104   -} // namespace br
105   -
106   -#include "format/post.moc"