Imported Upstream version 0.9.1
[platform/upstream/iotivity.git] / service / things-manager / sampleapp / tizen / ConServerApp / inc / configurationresource.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 #ifndef __CONFIGURATION_RESOURCE_H__
21 #define __CONFIGURATION_RESOURCE_H__
22
23 #include <functional>
24
25 #include "OCPlatform.h"
26 #include "OCApi.h"
27 #include "ThingsManager.h"
28
29 #pragma once
30
31 using namespace OC;
32
33 typedef std::function<OCEntityHandlerResult(std::shared_ptr< OCResourceRequest > request)>
34 ResourceEntityHandler;
35
36 static std::string defaultURIPrefix = "/oic/con";
37 static std::string defaultResourceTypePrefix = "oic.con";
38
39 extern std::string defaultLocation;
40 extern std::string defaultSystemTime;
41 extern std::string defaultCurrency;
42 extern std::string defaultRegion;
43
44 class ConfigurationResource
45 {
46     public:
47         // Configuration members
48         std::string m_configurationUri;
49         std::string m_location;
50         std::string m_systemTime;
51         std::string m_currency;
52         std::string m_region;
53         std::vector< std::string > m_configurationTypes;
54         std::vector< std::string > m_configurationInterfaces;
55         OCResourceHandle m_configurationHandle;
56         OCRepresentation m_configurationRep;
57
58     public:
59
60         ConfigurationResource();
61
62         void createResource(ResourceEntityHandler callback);
63
64         void setConfigurationRepresentation(OCRepresentation &rep);
65
66         OCRepresentation getConfigurationRepresentation();
67
68         std::string getUri();
69
70         void factoryReset();
71
72         void deleteResource();
73 };
74
75 #endif // __CONFIGURATION_RESOURCE_H__