Release version 0.5.85
[platform/core/api/notification.git] / notification-ex / ievent_info.h
1 /*
2  * Copyright (c) 2019 Samsung Electronics Co., Ltd.
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 #ifndef NOTIFICATION_EX_IEVENT_INFO_H_
18 #define NOTIFICATION_EX_IEVENT_INFO_H_
19
20 #include <bundle_cpp.h>
21
22 #include <string>
23
24 namespace notification {
25
26 #ifndef EXPORT_API
27 #define EXPORT_API __attribute__((visibility("default")))
28 #endif
29
30 class EXPORT_API IEventInfo {
31  public:
32   enum EventType {
33     Post,
34     Update,
35     Delete,
36     Get,
37     Error,
38     DeleteAll,
39     Count,
40     Register,
41     Unregister,
42     Custom = 100
43   };
44   virtual ~IEventInfo() = default;
45   virtual int GetEventType() const = 0;
46   virtual std::string GetOwner() const = 0;
47   virtual std::string GetChannel() const = 0;
48   virtual std::string GetItemId() const = 0;
49   virtual int GetRequestId() const = 0;
50   virtual tizen_base::Bundle Serialize() const = 0;
51 };
52
53 }  // namespace notification
54 #endif  // NOTIFICATION_EX_IEVENT_INFO_H_