ab5f9815c11c4c83446cad79ee5977110eaaa5ec
[iot2.git] / benchmarks / drivers / Cpp / LifxLightBulb / LightBulb_Skeleton.hpp
1 #ifndef _LIGHTBULB_SKELETON_HPP__
2 #define _LIGHTBULB_SKELETON_HPP__
3 #include <iostream>
4 #include "LightBulb.hpp"
5
6 #include <vector>
7 #include <set>
8 #include "IoTRMIComm.hpp"
9 #include "IoTRMICommClient.hpp"
10 #include "IoTRMICommServer.hpp"
11
12 using namespace std;
13
14 class LightBulb_Skeleton : public LightBulb
15 {
16         private:
17
18         LightBulb *mainObj;
19         IoTRMIComm *rmiComm;
20         char* methodBytes;
21         int methodLen;
22         int objectId = 1;
23         static set<int> set0Allowed;
24         // Synchronization variables
25         bool methodReceived = false;
26         bool didAlreadyInitWaitInvoke = false;
27         
28
29         public:
30
31         LightBulb_Skeleton();
32         LightBulb_Skeleton(LightBulb*_mainObj, int _portSend, int _portRecv);
33         LightBulb_Skeleton(LightBulb*_mainObj, IoTRMIComm *rmiComm, int _objectId);
34         ~LightBulb_Skeleton();
35         bool didInitWaitInvoke();
36         void init();
37         void turnOff();
38         void turnOn();
39         bool getState();
40         void setColor(double _hue, double _saturation, double _brightness);
41         void setTemperature(int _temperature);
42         double getBrightness();
43         double getHue();
44         double getSaturation();
45         int getTemperature();
46         double getBrightnessRangeLowerBound();
47         double getBrightnessRangeUpperBound();
48         double getHueRangeLowerBound();
49         double getHueRangeUpperBound();
50         double getSaturationRangeLowerBound();
51         double getSaturationRangeUpperBound();
52         int getTemperatureRangeLowerBound();
53         int getTemperatureRangeUpperBound();
54         void ___init(LightBulb_Skeleton* skel);
55         void ___turnOff(LightBulb_Skeleton* skel);
56         void ___turnOn(LightBulb_Skeleton* skel);
57         void ___getState(LightBulb_Skeleton* skel);
58         void ___setColor(LightBulb_Skeleton* skel);
59         void ___setTemperature(LightBulb_Skeleton* skel);
60         void ___getBrightness(LightBulb_Skeleton* skel);
61         void ___getHue(LightBulb_Skeleton* skel);
62         void ___getSaturation(LightBulb_Skeleton* skel);
63         void ___getTemperature(LightBulb_Skeleton* skel);
64         void ___getBrightnessRangeLowerBound(LightBulb_Skeleton* skel);
65         void ___getBrightnessRangeUpperBound(LightBulb_Skeleton* skel);
66         void ___getHueRangeLowerBound(LightBulb_Skeleton* skel);
67         void ___getHueRangeUpperBound(LightBulb_Skeleton* skel);
68         void ___getSaturationRangeLowerBound(LightBulb_Skeleton* skel);
69         void ___getSaturationRangeUpperBound(LightBulb_Skeleton* skel);
70         void ___getTemperatureRangeLowerBound(LightBulb_Skeleton* skel);
71         void ___getTemperatureRangeUpperBound(LightBulb_Skeleton* skel);
72         void ___waitRequestInvokeMethod(LightBulb_Skeleton* skel);
73 };
74 set<int> LightBulb_Skeleton::set0Allowed { 2, 6, 1, 3, 4, 8, 0, 5, 7, 9 };
75 #endif