// Copyright 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "ppapi/shared_impl/resource_var.h" #include "ppapi/shared_impl/ppapi_globals.h" #include "ppapi/shared_impl/var_tracker.h" namespace ppapi { ResourceVar::ResourceVar() : pp_resource_(0) {} ResourceVar::ResourceVar(PP_Resource pp_resource) : pp_resource_(pp_resource) {} ResourceVar::ResourceVar(const IPC::Message& creation_message) : pp_resource_(0), creation_message_(creation_message) {} ResourceVar::~ResourceVar() {} bool ResourceVar::IsPending() const { return pp_resource_ == 0 && creation_message_.type() != 0; } ResourceVar* ResourceVar::AsResourceVar() { return this; } PP_VarType ResourceVar::GetType() const { return PP_VARTYPE_RESOURCE; } // static ResourceVar* ResourceVar::FromPPVar(PP_Var var) { if (var.type != PP_VARTYPE_RESOURCE) return NULL; scoped_refptr var_object( PpapiGlobals::Get()->GetVarTracker()->GetVar(var)); if (!var_object.get()) return NULL; return var_object->AsResourceVar(); } } // namespace ppapi