Merge test folder of test branch
[iotivity.git] / test / src / tc / sm / gtest / include / SMHelper.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 #ifndef INCLUDE_TESTCASE_SMHELPER_H_
22 #define INCLUDE_TESTCASE_SMHELPER_H_
23
24 #include "Scene.h"
25 #include "SceneAction.h"
26 #include "SceneCollection.h"
27 #include "SceneList.h"
28 #include "SMCommon.h"
29
30 constexpr char SCENE_LIST_NAME[] { "Home" };
31
32 using namespace std;
33 using namespace OC;
34 using namespace OIC::Service;
35 namespace PH = std::placeholders;
36
37 class SMHelper {
38 private:
39     std::unique_ptr<RCSDiscoveryManager::DiscoveryTask> m_pDiscoveryTask;
40     static std::mutex s_mutex;
41     const std::string m_relativetUri;
42     const std::vector<std::string> m_resourceTypes;
43
44 public:
45     std::vector<RCSRemoteResourceObject::Ptr> g_foundResourceList;
46     static bool s_checkExecuteCallback;
47
48 private:
49     /**
50      * @brief     callback function for resource discovery
51      */
52     void onResourceDiscovered(
53                 std::shared_ptr<RCSRemoteResourceObject> foundResource);
54 public:
55     /**
56      * @brief     constructor for SMHelper class
57      */
58     SMHelper();
59
60     /**
61      * @brief     function for getting scene list instance
62      * @return  scene list instance
63      */
64     SceneList* getSceneListInstance();
65
66     /**
67      * @brief     function for discovering resource
68      */
69     void discoverResource();
70
71     /**
72      * @brief     callback function for executing scene
73      */
74     static void onExecute(int /*Code*/);
75
76     /**
77      * @brief     function for stopping the discovery
78      */
79     void stopDiscovery();
80
81 };
82 #endif