OLD | NEW |
| (Empty) |
1 // Copyright (c) 2011 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 #include "ppapi/proxy/ppb_var_proxy.h" | |
6 | |
7 #include "ppapi/c/pp_var.h" | |
8 #include "ppapi/c/ppb_var.h" | |
9 #include "ppapi/shared_impl/ppapi_globals.h" | |
10 #include "ppapi/shared_impl/proxy_lock.h" | |
11 #include "ppapi/shared_impl/var.h" | |
12 #include "ppapi/shared_impl/var_tracker.h" | |
13 | |
14 namespace ppapi { | |
15 namespace proxy { | |
16 | |
17 namespace { | |
18 | |
19 // PPP_Var plugin -------------------------------------------------------------- | |
20 | |
21 void AddRefVar(PP_Var var) { | |
22 ppapi::ProxyAutoLock lock; | |
23 PpapiGlobals::Get()->GetVarTracker()->AddRefVar(var); | |
24 } | |
25 | |
26 void ReleaseVar(PP_Var var) { | |
27 ppapi::ProxyAutoLock lock; | |
28 PpapiGlobals::Get()->GetVarTracker()->ReleaseVar(var); | |
29 } | |
30 | |
31 PP_Var VarFromUtf8(PP_Module module, const char* data, uint32_t len) { | |
32 ppapi::ProxyAutoLock lock; | |
33 return StringVar::StringToPPVar(module, data, len); | |
34 } | |
35 | |
36 const char* VarToUtf8(PP_Var var, uint32_t* len) { | |
37 ppapi::ProxyAutoLock lock; | |
38 StringVar* str = StringVar::FromPPVar(var); | |
39 if (str) { | |
40 *len = static_cast<uint32_t>(str->value().size()); | |
41 return str->value().c_str(); | |
42 } | |
43 *len = 0; | |
44 return NULL; | |
45 } | |
46 | |
47 const PPB_Var var_interface = { | |
48 &AddRefVar, | |
49 &ReleaseVar, | |
50 &VarFromUtf8, | |
51 &VarToUtf8 | |
52 }; | |
53 | |
54 } // namespace | |
55 | |
56 const PPB_Var* GetPPB_Var_Interface() { | |
57 return &var_interface; | |
58 } | |
59 | |
60 } // namespace proxy | |
61 } // namespace ppapi | |
OLD | NEW |