9fea49e0b782775db4d3bb7307c7291aa46f06aa
[platform/core/uifw/dali-adaptor.git] / adaptors / tizen / internal / common / file-descriptor-monitor.h
1 #ifndef __DALI_INTERNAL_FILE_DESCRIPTOR_MONITOR_H__
2 #define __DALI_INTERNAL_FILE_DESCRIPTOR_MONITOR_H__
3
4 //
5 // Copyright (c) 2014 Samsung Electronics Co., Ltd.
6 //
7 // Licensed under the Flora License, Version 1.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://floralicense.org/license/
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 // EXTERNAL INCLUDES
21 #include <boost/function.hpp>
22
23 namespace Dali
24 {
25
26 namespace Integration
27 {
28 class Core;
29 }
30
31 namespace Internal
32 {
33
34 namespace Adaptor
35 {
36
37 /**
38  * Monitors the given file descriptor and whenever anything is written to it, it calls
39  * the given boost function.
40  */
41 class FileDescriptorMonitor
42 {
43 public:
44
45   /**
46    * Constructor
47    * @param[in]  fileDescriptor  The file descriptor to monitor
48    * @param[in]  functor         The function to call when anything is written to the file descriptor
49    */
50   FileDescriptorMonitor(int fileDescriptor, boost::function<void()> functor);
51
52   /**
53    * Destructor
54    */
55   ~FileDescriptorMonitor();
56
57 private:
58   struct Impl;
59   Impl* mImpl;
60 };
61
62 } // namespace Adaptor
63
64 } // namespace Internal
65
66 } // namespace Dali
67
68 #endif // __DALI_INTERNAL_FILE_DESCRIPTOR_MONITOR_H__