| Index: mojo/public/environment/standalone/buffer_tls.cc
|
| diff --git a/mojo/public/environment/standalone/buffer_tls.cc b/mojo/public/environment/standalone/buffer_tls.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a26d30dcef007392f948f6088600c3645f953478
|
| --- /dev/null
|
| +++ b/mojo/public/environment/standalone/buffer_tls.cc
|
| @@ -0,0 +1,34 @@
|
| +// Copyright 2014 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 "mojo/public/environment/buffer_tls.h"
|
| +
|
| +#include "mojo/public/environment/standalone/buffer_tls_setup.h"
|
| +#include "mojo/public/utility/thread_local.h"
|
| +
|
| +namespace mojo {
|
| +namespace internal {
|
| +
|
| +static ThreadLocalPlatform::SlotType s_slot;
|
| +
|
| +void SetUpCurrentBuffer() {
|
| + ThreadLocalPlatform::AllocateSlot(&s_slot);
|
| +}
|
| +
|
| +void TearDownCurrentBuffer() {
|
| + ThreadLocalPlatform::FreeSlot(s_slot);
|
| +}
|
| +
|
| +Buffer* GetCurrentBuffer() {
|
| + return static_cast<Buffer*>(ThreadLocalPlatform::GetValueFromSlot(s_slot));
|
| +}
|
| +
|
| +Buffer* SetCurrentBuffer(Buffer* buf) {
|
| + Buffer* old_buf = GetCurrentBuffer();
|
| + ThreadLocalPlatform::SetValueInSlot(s_slot, buf);
|
| + return old_buf;
|
| +}
|
| +
|
| +} // namespace internal
|
| +} // namespace mojo
|
|
|