Imported Upstream version 1.1.0
[platform/upstream/iotivity.git] / service / simulator / src / server / oc_interface_details.h
1 /******************************************************************
2  *
3  * Copyright 2016 Samsung Electronics All Rights Reserved.
4  *
5  *
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  ******************************************************************/
20
21 /**
22  * @file oc_interface_details.h
23  *
24  * @brief This file provides OIC definded interfaces and thier supported method types.
25  */
26
27 #ifndef SIMULATOR_INTERFACE_DETAILS_H__
28 #define SIMULATOR_INTERFACE_DETAILS_H__
29
30 #include <iostream>
31 #include <unordered_map>
32 #include <vector>
33
34 #include "OCApi.h"
35
36 namespace OC
37 {
38     // Read-Only interface
39     const std::string READ_INTERFACE = "oic.if.r";
40
41     // Read-Write Interface
42     const std::string READWRITE_INTERFACE = "oic.if.rw";
43
44     // Actuator Interface
45     const std::string ACTUATOR_INTERFACE = "oic.if.a";
46
47     // Sensor Interface
48     const std::string SENSOR_INTERFACE = "oic.if.s";
49 }
50
51 class OCInterfaceDetails
52 {
53     public:
54         static OCInterfaceDetails *getInstance();
55         bool isInterface(const std::string &interfaceType);
56         bool isRequestSupported(const std::string &interfaceType, const std::string &requestType);
57
58     private:
59         OCInterfaceDetails();
60         ~OCInterfaceDetails() = default;
61
62         std::unordered_map<std::string, std::vector<std::string>> m_interfaces;
63 };
64
65 #endif