Initial merge-commit of the OIC code. Should successfully do discovery for single...
[platform/upstream/iotivity.git] / csdk / controller / core / include / core / Service.hpp
1 //******************************************************************
2 //
3 // Copyright 2014 Intel Corporation All Rights Reserved.
4 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
5
6 #ifndef SERVICE_H_
7 #define SERVICE_H_
8
9 // ============================================================================
10 // Includes
11 // ============================================================================
12 #include <string>
13 #include <memory>
14 #include <set>
15 #include "Characteristic.hpp"
16
17 // ============================================================================
18 // Namespace
19 // ============================================================================
20 namespace Intel {
21 namespace CCFL {
22 namespace API {
23
24 class Service {
25         // ============================================================
26         // Type Definition(s)
27         // ============================================================
28         public:
29                 typedef std::shared_ptr<Service> SharedPtr;
30                 typedef std::weak_ptr<Service> WeakPtr;
31
32         // ============================================================
33         // Destructor
34         // ============================================================
35         public:
36                 virtual ~Service() {}
37
38         // ============================================================
39         // Public Method(s)
40         // ============================================================
41         public:
42
43                 virtual const std::string& getName() const = 0;
44                 virtual const std::set<Characteristic::SharedPtr>& getCharacteristics() const = 0;
45 };
46
47 }
48 }
49 }
50
51
52 #endif /* SERVICE_H_ */