Add Web API for communication between Box and PD
[platform/framework/web/web-provider.git] / src / Core / Service / MessageManager.h
1 /*
2  * Copyright (c) 2013 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  *    Licensed under the Flora License, Version 1.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.tizenopensource.org/license
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    MessageManager.h
18  * @author  Yunchan Cho (yunchan.cho@samsung.com)
19  */
20
21 #ifndef MESSAGE_MANAGER_H
22 #define MESSAGE_MANAGER_H
23
24 #include <string>
25 #include <memory>
26 #include <Evas.h>
27
28 namespace Service {
29
30 class MessageManager;
31 typedef std::shared_ptr<MessageManager> MessageManagerPtr;
32
33 class MessageManager {
34     public:
35         enum ReceiverType {
36             TO_BOX,
37             TO_PD
38         };
39
40         static MessageManagerPtr create() {
41             return MessageManagerPtr(new MessageManager());
42         }
43         bool send(Evas_Object* webview, ReceiverType receiver, std::string& message);
44         ~MessageManager();
45
46     private:
47         static void executeScriptCallback(
48                 Evas_Object* webview, const char* result, void* data);
49         MessageManager();
50 };
51 } // Service
52
53 #endif // MESSAGE_MANAGER_H