Imported Upstream version 0.9.2
[platform/upstream/iotivity.git] / examples / OICMiddle / RestInput.h
1 #ifndef RESTINPUT_H
2 #define RESTINPUT_H
3
4 //******************************************************************
5 //
6 // Copyright 2014 Intel Corporation.
7 //
8 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
9 //
10 // Licensed under the Apache License, Version 2.0 (the "License");
11 // you may not use this file except in compliance with the License.
12 // You may obtain a copy of the License at
13 //
14 //      http://www.apache.org/licenses/LICENSE-2.0
15 //
16 // Unless required by applicable law or agreed to in writing, software
17 // distributed under the License is distributed on an "AS IS" BASIS,
18 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19 // See the License for the specific language governing permissions and
20 // limitations under the License.
21 //
22 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
23
24 #include <netinet/in.h>
25
26 class LineInput;
27 class Connection;
28
29 class RestInput
30 {
31     static const int MAX_CONNS = 5;
32 public:
33     RestInput(LineInput *lineInput);
34     ~RestInput();
35     bool init();
36     void startAccept(int &sockfd);
37     void startThread();
38     void processClient(void);
39     void handleRead(std::string & restCmd);
40     void handleShow(stringstream &ss, observecb_t &cb);
41     void parseString(std::string &toParse);
42
43 protected:
44     LineInput *m_lineInput;
45     int m_sockfd, m_port, m_threadCount;
46     struct sockaddr_in m_serverAddr;
47     char *m_data;
48     std::thread m_thread[MAX_CONNS];
49 };
50
51 #endif // RESTINPUT_H
52