Initialize Tizen 2.3
[framework/web/wrt-commons.git] / modules / event / include / dpl / event / abstract_event_dispatcher.h
1 /*
2  * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  *    Licensed under the Apache License, Version 2.0 (the "License");
5  *    you may not use this file except in compliance with the License.
6  *    You may obtain a copy of the License at
7  *
8  *        http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *    Unless required by applicable law or agreed to in writing, software
11  *    distributed under the License is distributed on an "AS IS" BASIS,
12  *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *    See the License for the specific language governing permissions and
14  *    limitations under the License.
15  */
16 /*
17  * @file        abstract_event_dispatcher.h
18  * @author      Przemyslaw Dobrowolski (p.dobrowolsk@samsung.com)
19  * @version     1.0
20  * @brief       This file is the implementation file of abstract event
21  * dispatcher
22  */
23 #ifndef DPL_ABSTRACT_EVENT_DISPATCHER_H
24 #define DPL_ABSTRACT_EVENT_DISPATCHER_H
25
26 #include <dpl/event/abstract_event_call.h>
27 #include <dpl/noncopyable.h>
28
29 namespace DPL {
30 namespace Event {
31 class AbstractEventDispatcher :
32     private Noncopyable
33 {
34   public:
35     /**
36      * Constructor
37      */
38     explicit AbstractEventDispatcher();
39
40     /**
41      * Destructor
42      */
43     virtual ~AbstractEventDispatcher();
44
45     /**
46      * Add abstract event call to abstract event dispatcher
47      *
48      * @param[in] abstractEventCall Pointer to abstract event call to add
49      * @return none
50      */
51     virtual void AddEventCall(AbstractEventCall *abstractEventCall) = 0;
52
53     /**
54      * Add abstract timed event call to abstract event dispatcher
55      *
56      * @param[in] abstractEventCall Pointer to abstract event call to add
57      * @param[in] dueTime Due time for timed event in seconds
58      * @return none
59      */
60     virtual void AddTimedEventCall(AbstractEventCall *abstractEventCall,
61                                    double dueTime) = 0;
62 };
63 }
64 } // namespace DPL
65
66 #endif // DPL_ABSTRACT_EVENT_DISPATCHER_H