Merge "Added PixelBuffer for image loading and operations." into devel/master
[platform/core/uifw/dali-adaptor.git] / adaptors / emscripten / wrappers / signal-holder.h
1 #ifndef DALI_SIGNAL_HOLDER_H
2 #define DALI_SIGNAL_HOLDER_H
3
4 namespace Dali
5 {
6 namespace Internal
7 {
8 namespace Emscripten
9 {
10
11 struct BaseSignalSlot : public Dali::ConnectionTracker
12 {
13 };
14
15 /**
16  * A wrapper class to let JS hold Signals
17  */
18 class SignalHolder : public Dali::ConnectionTracker
19 {
20 public:
21   typedef Dali::Vector<BaseSignalSlot*> Slots;
22   Slots mSlots;
23   SignalHolder() {}
24
25   ~SignalHolder()
26   {
27     for(Slots::Iterator iter = mSlots.Begin(); iter != mSlots.End(); ++iter)
28     {
29       delete *iter;
30     }
31   }
32
33   /*
34    * Adds a base signal to the list of slots
35    */
36   void add(BaseSignalSlot* s) { mSlots.PushBack(s); }
37
38 private:
39   SignalHolder(const SignalHolder& nocopy);
40   SignalHolder& operator=(const SignalHolder& noassign);
41 };
42
43
44 }; // Emscripten
45 }; // Internal
46 }; // Dali
47
48
49 #endif // header