7181e75effa98810db35771b043a5bd0ab02c7a0
[platform/upstream/iotivity.git] / service / resource-encapsulation / src / common / primitiveResource / include / ResponseStatement.h
1 //******************************************************************
2 //
3 // Copyright 2015 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 #ifndef COMMON_RESPONSESTATEMENT_H
22 #define COMMON_RESPONSESTATEMENT_H
23
24 #include <string>
25 #include <vector>
26
27 #include <RCSResourceAttributes.h>
28
29 namespace OC
30 {
31     class OCRepresentation;
32 }
33
34 namespace OIC
35 {
36     namespace Service
37     {
38         class RCSResourceAttributes;
39
40         class ResponseStatement
41         {
42         public:
43             static ResponseStatement create(const OC::OCRepresentation&);
44             static ResponseStatement create(RCSResourceAttributes&&);
45
46             explicit ResponseStatement(const RCSResourceAttributes&);
47             explicit ResponseStatement(RCSResourceAttributes&&);
48
49             ResponseStatement(RCSResourceAttributes&&, std::string&& uri,
50                     std::vector< std::string >&& resourceTypes,
51                     std::vector< std::string >&& resourceInterfaces);
52
53             ResponseStatement(ResponseStatement&&) = default;
54
55             ResponseStatement& operator=(ResponseStatement&&) = default;
56
57             std::string getUri() const;
58             std::vector< std::string > getResourceTypes() const;
59             std::vector< std::string > getResourceInterfaces() const;
60
61             const RCSResourceAttributes& getAttributes() const;
62
63         private:
64             RCSResourceAttributes m_attrs;
65
66             std::string m_uri;
67             std::vector< std::string > m_resourceTypes;
68             std::vector< std::string > m_resourceInterfaces;
69         };
70
71     }
72 }
73
74 #endif // COMMON_RESPONSESTATEMENT_H