X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fevent%2Fcommon%2Fthread-local-storage.cpp;h=e56735f9e68d09027726c40e172e9add721e61a0;hb=ee5a4009727dbc5369cc17f7183205c60af795a6;hp=94cdd26b067f2f4e23f23a8bb2431ee83f61b12e;hpb=238f212373aaf06b2c4642cbfe65fc5ad671ff6e;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/event/common/thread-local-storage.cpp b/dali/internal/event/common/thread-local-storage.cpp index 94cdd26..e56735f 100644 --- a/dali/internal/event/common/thread-local-storage.cpp +++ b/dali/internal/event/common/thread-local-storage.cpp @@ -1,33 +1,26 @@ -// -// Copyright (c) 2014 Samsung Electronics Co., Ltd. -// -// Licensed under the Flora License, Version 1.0 (the License); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://floralicense.org/license/ -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an AS IS BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ // CLASS HEADER #include -// EXTERNAL INCLUDES -#include -#include - // INTERNAL INCLUDES #include -#include -#include -#include #include -#include namespace Dali { @@ -37,21 +30,16 @@ namespace Internal namespace { -#ifdef EMSCRIPTEN - std::auto_ptr threadLocal; -#else - boost::thread_specific_ptr threadLocal; -#endif +__thread ThreadLocalStorage* threadLocal = NULL; } ThreadLocalStorage::ThreadLocalStorage(Core* core) -:mCore(core) +: mCore(core) { - DALI_ASSERT_ALWAYS( threadLocal.get() == NULL && "Cannot create more than one ThreadLocalStorage object" ); + DALI_ASSERT_ALWAYS( threadLocal == NULL && "Cannot create more than one ThreadLocalStorage object" ); // reset is used to store a new value associated with this thread - threadLocal.reset(this); - + threadLocal = this; } ThreadLocalStorage::~ThreadLocalStorage() @@ -60,22 +48,25 @@ ThreadLocalStorage::~ThreadLocalStorage() void ThreadLocalStorage::Remove() { - threadLocal.reset(); + threadLocal = NULL; } ThreadLocalStorage& ThreadLocalStorage::Get() { - ThreadLocalStorage* tls = threadLocal.get(); - - DALI_ASSERT_ALWAYS(tls); + DALI_ASSERT_ALWAYS(threadLocal); - return *tls; + return *threadLocal; } bool ThreadLocalStorage::Created() { // see if the TLS has been set yet - return (threadLocal.get() != NULL); + return (threadLocal != NULL); +} + +ThreadLocalStorage* ThreadLocalStorage::GetInternal() +{ + return threadLocal; } Dali::Integration::PlatformAbstraction& ThreadLocalStorage::GetPlatformAbstraction() @@ -108,11 +99,6 @@ ImageFactory& ThreadLocalStorage::GetImageFactory() return mCore->GetImageFactory(); } -ModelFactory& ThreadLocalStorage::GetModelFactory() -{ - return mCore->GetModelFactory(); -} - FontFactory& ThreadLocalStorage::GetFontFactory() { return mCore->GetFontFactory(); @@ -138,6 +124,11 @@ GestureEventProcessor& ThreadLocalStorage::GetGestureEventProcessor() return mCore->GetGestureEventProcessor(); } +EmojiFactory& ThreadLocalStorage::GetEmojiFactory() +{ + return mCore->GetEmojiFactory(); +} + } // namespace Internal } // namespace Dali