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.
5 #ifndef PPAPI_SHARED_IMPL_SCOPED_PP_VAR_H_
6 #define PPAPI_SHARED_IMPL_SCOPED_PP_VAR_H_
8 #include "ppapi/c/pp_var.h"
9 #include "ppapi/shared_impl/ppapi_shared_export.h"
13 class PPAPI_SHARED_EXPORT ScopedPPVar
{
19 // Takes one reference to the given var.
20 explicit ScopedPPVar(const PP_Var
& v
);
22 // Assumes responsibility for one ref that the var already has.
23 ScopedPPVar(const PassRef
&, const PP_Var
& v
);
25 // Implicit copy constructor allowed.
26 ScopedPPVar(const ScopedPPVar
& other
);
30 ScopedPPVar
& operator=(const PP_Var
& r
);
31 ScopedPPVar
& operator=(const ScopedPPVar
& other
) {
32 return operator=(other
.var_
);
35 const PP_Var
& get() const { return var_
; }
37 // Returns the PP_Var, passing the reference to the caller. This class
38 // will no longer hold the var.
47 #endif // PPAPI_SHARED_IMPL_SCOPED_PP_VAR_H_