2 // Copyright (c) 2014 Samsung Electronics Co., Ltd.
4 // Licensed under the Flora License, Version 1.0 (the License);
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
8 // http://floralicense.org/license/
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an AS IS BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
18 #include <dali/public-api/object/base-object.h>
21 #include <dali/public-api/object/type-registry.h>
22 #include <dali/integration-api/debug.h>
23 #include <dali/internal/event/common/object-registry-impl.h>
24 #include <dali/internal/event/common/stage-impl.h>
25 #include <dali/internal/event/common/type-registry-impl.h>
32 BaseObject::BaseObject()
36 BaseObject::~BaseObject()
40 void BaseObject::RegisterObject()
42 if( Internal::Stage::IsInstalled() )
44 Internal::Stage::GetCurrent()->GetObjectRegistry().RegisterObject( this );
48 void BaseObject::UnregisterObject()
50 // Guard to allow handle destruction after Core has been destroyed
51 if( Internal::Stage::IsInstalled() )
53 Internal::Stage::GetCurrent()->GetObjectRegistry().UnregisterObject( this );
57 bool BaseObject::DoAction(const std::string& actionName, const std::vector<Property::Value>& attributes)
59 Dali::Internal::TypeRegistry* registry = Dali::Internal::TypeRegistry::Get();
63 return registry->DoActionTo(this, actionName, attributes);
69 const std::string& BaseObject::GetTypeName() const
71 Dali::Internal::TypeRegistry* registry = Dali::Internal::TypeRegistry::Get();
75 Dali::TypeInfo typeInfo = registry->GetTypeInfo(this);
78 return typeInfo.GetName();
82 // We should not reach here
83 static const std::string INVALID_NAME;
84 DALI_LOG_ERROR( "TypeName Not Found\n" );
88 bool BaseObject::DoConnectSignal( ConnectionTrackerInterface* connectionTracker, const std::string& signalName, FunctorDelegate* functor )
90 Dali::Internal::TypeRegistry* registry = Dali::Internal::TypeRegistry::Get();
94 return registry->ConnectSignal( this, connectionTracker, signalName, functor );