Remove DALI_ADAPTOR_COMPILATION define
[platform/core/uifw/dali-adaptor.git] / dali / internal / system / windows / trigger-event.h
1 #ifndef DALI_INTERNAL_TRIGGER_EVENT_IMPL_H
2 #define DALI_INTERNAL_TRIGGER_EVENT_IMPL_H
3
4 /*
5 * Copyright (c) 2019 Samsung Electronics Co., Ltd.
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 // EXTERNAL INCLUDES
22 #include <dali/public-api/signals/callback.h>
23
24 // INTERNAL INCLUDES
25 #include <dali/public-api/dali-adaptor-common.h>
26 #include <dali/integration-api/adaptors/trigger-event-interface.h>
27
28 namespace Dali
29 {
30
31 namespace Internal
32 {
33
34 namespace Adaptor
35 {
36
37 class TriggerEvent : public TriggerEventInterface
38 {
39 public:
40
41   /**
42    * Constructor
43    * Creates an event file descriptor and starts a GSource which reads from the file
44    * descriptor when there is data.
45    *
46    * @param[in] callback The callback to call
47    * @param[in] options Trigger event options.
48    * @note The ownership of callback is taken by this class.
49    */
50   TriggerEvent( CallbackBase* callback, TriggerEventInterface::Options options );
51
52   /**
53    * Destructor
54    */
55   ~TriggerEvent();
56
57 public:
58
59   /**
60    * Triggers the event.
61    *
62    * This can be called from one thread in order to wake up another thread.
63    */
64   void Trigger();
65
66 private:
67
68   /**
69    * @brief Called when our event file descriptor has been written to.
70    * @param[in] eventBitMask bit mask of events that occured on the file descriptor
71    */
72   void Triggered();
73
74 private:
75
76   CallbackBase* mCallback;
77   int32_t mThreadID;
78   TriggerEventInterface::Options mOptions;
79 };
80
81 } // namespace Adaptor
82
83 } // namespace Internal
84
85 } // namespace Dali
86
87 #endif // DALI_INTERNAL_TRIGGER_EVENT_IMPL_H