1 /******************************************************************
3 * Copyright 2015 Samsung Electronics All Rights Reserved.
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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.
19 ******************************************************************/
20 #ifndef __DIAGNOSTICS_RESOURCE_H__
21 #define __DIAGNOSTICS_RESOURCE_H__
25 #include "OCPlatform.h"
27 #include "ThingsManager.h"
33 typedef std::function<OCEntityHandlerResult(std::shared_ptr< OCResourceRequest > request)>
34 ResourceEntityHandler;
36 static std::string defaultFactoryReset = "false";
37 static std::string defaultReboot = "false";
38 static std::string defaultStartStatCollection = "false";
40 class DiagnosticsResource
43 // Diagnostics members
44 std::string m_diagnosticsUri;
45 std::string m_factoryReset;
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;
55 DiagnosticsResource();
57 void createResource(ResourceEntityHandler callback);
59 void setDiagnosticsRepresentation(OCRepresentation &rep);
61 OCRepresentation getDiagnosticsRepresentation();
65 void diagnosticsMonitor(int second);
67 std::function< void() > factoryReset;
69 void deleteResource();
72 #endif // __DIAGNOSTICS_RESOURCE_H__