1 // Copyright 2014 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 #include "mojo/public/environment/buffer_tls.h"
7 #include "mojo/public/environment/standalone/buffer_tls_setup.h"
8 #include "mojo/public/utility/thread_local.h"
13 static ThreadLocalPlatform::SlotType s_slot;
15 void SetUpCurrentBuffer() {
16 ThreadLocalPlatform::AllocateSlot(&s_slot);
19 void TearDownCurrentBuffer() {
20 ThreadLocalPlatform::FreeSlot(s_slot);
23 Buffer* GetCurrentBuffer() {
24 return static_cast<Buffer*>(ThreadLocalPlatform::GetValueFromSlot(s_slot));
27 Buffer* SetCurrentBuffer(Buffer* buf) {
28 Buffer* old_buf = GetCurrentBuffer();
29 ThreadLocalPlatform::SetValueInSlot(s_slot, buf);
33 } // namespace internal