Sample implementation of ocf_light
[iotivity.git] / resource / examples / ocf_light / DimmingLightServer.h
1 /*
2  *-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
3  *
4  * Copyright 2018 Intel Corporation All Rights Reserved.
5  *
6  *-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  *-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
21  */
22
23 #ifndef EXAMPLE_OCF_LIGHT_DIMMINGLIGHTSERVER_H_
24 #define EXAMPLE_OCF_LIGHT_DIMMINGLIGHTSERVER_H_
25
26 #include "BinarySwitchResource.h"
27 #include "DimmingResource.h"
28
29 /**
30  * Enables registering the resources for the dimming light server
31  */
32 class DimmingLightServer
33 {
34     friend class DimmingLightControl;
35 public:
36     /**
37      *  constructor
38      */
39     DimmingLightServer(void);
40
41     /**
42      *  destructor
43      */
44     ~DimmingLightServer(void);
45
46     /**
47      * Register the resources with the server
48      *
49      * setting resourceProperty as OC_DISCOVERABLE will allow Discovery of this resource
50      * setting resourceProperty as OC_OBSERVABLE will allow observation
51      * setting resourceProperty as OC_DISCOVERABLE | OC_OBSERVABLE will allow both discovery and observation
52      * setting resourceProperty as OC_SECURE the resource supports access via secure endpoints
53      * setting resourceProperty as OC_NONSECURE the resource supports access via non-secure endpoints
54      * setting resourceProperty as OC_SECURE | OC_NONSECURE will allow access via secure and non-secure endpoints
55      *
56      * @param resourceProperty indicates the property of the resources. Defined in octypes.h.
57      */
58     OCStackResult registerResources(uint8_t resourceProperty = OC_DISCOVERABLE | OC_OBSERVABLE | OC_SECURE);
59
60 private:
61     // Resources that are part of this server
62     BinarySwitchResource  m_binaryswitchInstance;
63     DimmingResource  m_dimmingInstance;
64 };
65
66 #endif /* EXAMPLE_OCF_LIGHT_DIMMINGLIGHTSERVER_H_ */