diff options
author | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-01 16:16:50 +0000 |
---|---|---|
committer | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-01 16:16:50 +0000 |
commit | 1758e88fd909ea0ffd49621e8066ffad5627ffdf (patch) | |
tree | c304a5eed047cae5665f5af1739d84655fb5815d /ppapi/cpp/core.h | |
parent | e7d8b51953b7d3b2b8a0aba46132305b32f3efce (diff) | |
download | chromium_src-1758e88fd909ea0ffd49621e8066ffad5627ffdf.zip chromium_src-1758e88fd909ea0ffd49621e8066ffad5627ffdf.tar.gz chromium_src-1758e88fd909ea0ffd49621e8066ffad5627ffdf.tar.bz2 |
Move PPAPI into the Chrome repo. The old repo was
http://ppapi.googlecode.com/
TEST=none
BUG=none
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64613 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/cpp/core.h')
-rw-r--r-- | ppapi/cpp/core.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/ppapi/cpp/core.h b/ppapi/cpp/core.h new file mode 100644 index 0000000..50c89d5 --- /dev/null +++ b/ppapi/cpp/core.h @@ -0,0 +1,67 @@ +// Copyright (c) 2010 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. + +#ifndef PPAPI_CPP_CORE_H_ +#define PPAPI_CPP_CORE_H_ + +#include "ppapi/c/ppb_core.h" + +namespace pp { + +class CompletionCallback; +class Module; + +// Simple wrapper around the PPB_Core interface. Some of these wrappers add +// nothing over the C interface, but some allow the use of C++ arguments. +class Core { + public: + // Note that we explicitly don't expose Resource& versions of this function + // since Resource will normally manage the refcount properly. These should + // be called only when doing manual management on raw PP_Resource handles, + // which should be fairly rare. + void AddRefResource(PP_Resource resource) { + interface_->AddRefResource(resource); + } + void ReleaseResource(PP_Resource resource) { + interface_->ReleaseResource(resource); + } + + void* MemAlloc(size_t num_bytes) { + return interface_->MemAlloc(num_bytes); + } + void MemFree(void* ptr) { + interface_->MemFree(ptr); + } + + PP_Time GetTime() { + return interface_->GetTime(); + } + + PP_TimeTicks GetTimeTicks() { + return interface_->GetTimeTicks(); + } + + void CallOnMainThread(int32_t delay_in_milliseconds, + const CompletionCallback& callback, + int32_t result = 0); + + bool IsMainThread(); + + private: + // Allow Module to construct. + friend class Module; + + // Only module should make this class so this constructor is private. + Core(const PPB_Core* inter) : interface_(inter) {} + + // Copy and assignment are disallowed. + Core(const Core& other); + Core& operator=(const Core& other); + + const PPB_Core* interface_; +}; + +} // namespace pp + +#endif // PPAPI_CPP_CORE_H_ |