Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / ppapi / proxy / ppp_content_decryptor_private_proxy.h
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef PPAPI_PROXY_PPP_CONTENT_DECRYPTOR_PRIVATE_PROXY_H_
6 #define PPAPI_PROXY_PPP_CONTENT_DECRYPTOR_PRIVATE_PROXY_H_
7
8 #include <string>
9 #include <vector>
10
11 #include "ppapi/c/pp_instance.h"
12 #include "ppapi/c/private/ppp_content_decryptor_private.h"
13 #include "ppapi/proxy/interface_proxy.h"
14 #include "ppapi/proxy/serialized_structs.h"
15 #include "ppapi/shared_impl/host_resource.h"
16
17 namespace ppapi {
18 namespace proxy {
19
20 class SerializedVarReceiveInput;
21
22 class PPP_ContentDecryptor_Private_Proxy : public InterfaceProxy {
23  public:
24   explicit PPP_ContentDecryptor_Private_Proxy(Dispatcher* dispatcher);
25   virtual ~PPP_ContentDecryptor_Private_Proxy();
26
27   static const PPP_ContentDecryptor_Private* GetProxyInterface();
28
29  private:
30   // InterfaceProxy implementation.
31   virtual bool OnMessageReceived(const IPC::Message& msg);
32
33   // Message handlers.
34   void OnMsgInitialize(PP_Instance instance,
35                        SerializedVarReceiveInput key_system);
36   void OnMsgSetServerCertificate(PP_Instance instance,
37                                  uint32_t promise_id,
38                                  std::vector<uint8_t> server_certificate);
39   void OnMsgCreateSession(PP_Instance instance,
40                           uint32_t promise_id,
41                           SerializedVarReceiveInput init_data_type,
42                           SerializedVarReceiveInput init_data,
43                           PP_SessionType session_type);
44   void OnMsgLoadSession(PP_Instance instance,
45                         uint32_t promise_id,
46                         SerializedVarReceiveInput web_session_id);
47   void OnMsgUpdateSession(PP_Instance instance,
48                           uint32_t promise_id,
49                           SerializedVarReceiveInput web_session_id,
50                           SerializedVarReceiveInput response);
51   void OnMsgCloseSession(PP_Instance instance,
52                          uint32_t promise_id,
53                          const std::string& web_session_id);
54   void OnMsgRemoveSession(PP_Instance instance,
55                           uint32_t promise_id,
56                           const std::string& web_session_id);
57   void OnMsgGetUsableKeyIds(PP_Instance instance,
58                             uint32_t promise_id,
59                             const std::string& web_session_id);
60   void OnMsgDecrypt(PP_Instance instance,
61                     const PPPDecryptor_Buffer& encrypted_buffer,
62                     const std::string& serialized_encrypted_block_info);
63   void OnMsgInitializeAudioDecoder(
64       PP_Instance instance,
65       const std::string& decoder_config,
66       const PPPDecryptor_Buffer& extra_data_buffer);
67   void OnMsgInitializeVideoDecoder(
68       PP_Instance instance,
69       const std::string& decoder_config,
70       const PPPDecryptor_Buffer& extra_data_buffer);
71   void OnMsgDeinitializeDecoder(PP_Instance instance,
72                                 PP_DecryptorStreamType decoder_type,
73                                 uint32_t request_id);
74   void OnMsgResetDecoder(PP_Instance instance,
75                          PP_DecryptorStreamType decoder_type,
76                          uint32_t request_id);
77   void OnMsgDecryptAndDecode(
78       PP_Instance instance,
79       PP_DecryptorStreamType decoder_type,
80       const PPPDecryptor_Buffer& encrypted_buffer,
81       const std::string& serialized_encrypted_block_info);
82
83   const PPP_ContentDecryptor_Private* ppp_decryptor_impl_;
84
85   DISALLOW_COPY_AND_ASSIGN(PPP_ContentDecryptor_Private_Proxy);
86 };
87
88 }  // namespace proxy
89 }  // namespace ppapi
90
91 #endif  // PPAPI_PROXY_PPP_CONTENT_DECRYPTOR_PRIVATE_PROXY_H_