configuration server tizen sample application for testing configuration
[platform/upstream/iotivity.git] / service / things-manager / sampleapp / tizen / ConServerApp / inc / diagnosticsresource.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 __DIAGNOSTICS_RESOURCE_H__
21 #define __DIAGNOSTICS_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 defaultFactoryReset = "false";
37 static std::string defaultReboot = "false";
38 static std::string defaultStartStatCollection = "false";
39
40 class DiagnosticsResource
41 {
42     public:
43         // Diagnostics members
44         std::string m_diagnosticsUri;
45         std::string m_factoryReset;
46         std::string m_reboot;
47         std::string m_startStatCollection;
48         std::vector< std::string > m_diagnosticsTypes;
49         std::vector< std::string > m_diagnosticsInterfaces;
50         OCResourceHandle m_diagnosticsHandle;
51         OCRepresentation m_diagnosticsRep;
52
53     public:
54
55         DiagnosticsResource();
56
57         void createResource(ResourceEntityHandler callback);
58
59         void setDiagnosticsRepresentation(OCRepresentation &rep);
60
61         OCRepresentation getDiagnosticsRepresentation();
62
63         std::string getUri();
64
65         void diagnosticsMonitor(int second);
66
67         std::function< void() > factoryReset;
68
69         void deleteResource();
70 };
71
72 #endif // __DIAGNOSTICS_RESOURCE_H__