/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2019 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.
}
ActorObserver::ActorObserver()
-: mActor ( NULL ),
- mActorDisconnected( false ),
- mRemoveCallback( NULL )
+: ActorObserver( nullptr )
{
- DALI_LOG_TRACE_METHOD( gLogFilter );
}
ActorObserver::ActorObserver( CallbackBase* callback )
-: mActor ( NULL ),
+: mActor ( nullptr ),
mActorDisconnected( false ),
mRemoveCallback( callback )
{
+ DALI_LOG_TRACE_METHOD( gLogFilter );
}
ActorObserver::~ActorObserver()
{
DALI_LOG_TRACE_METHOD( gLogFilter );
- SetActor( NULL );
+ SetActor( nullptr );
delete mRemoveCallback;
}
-Actor* ActorObserver::GetActor()
+ActorObserver::ActorObserver( ActorObserver&& other )
+: ActorObserver( nullptr )
+{
+ operator=( std::move( other ) );
+}
+
+ActorObserver& ActorObserver::operator=( ActorObserver&& other )
+{
+ if( this != &other )
+ {
+ SetActor( other.mActor );
+ mActorDisconnected = other.mActorDisconnected;
+ mRemoveCallback = other.mRemoveCallback;
+ other.ResetActor();
+ other.mRemoveCallback = nullptr;
+ }
+ return *this;
+}
+
+Actor* ActorObserver::GetActor() const
{
- return mActorDisconnected ? NULL : mActor;
+ return mActorDisconnected ? nullptr : mActor;
}
void ActorObserver::SetActor( Actor* actor )
{
DALI_LOG_INFO(gLogFilter, Debug::Verbose, "Stop Observing: %p\n", mActor);
mActor->RemoveObserver( *this );
- mActor = NULL;
+ mActor = nullptr;
+ mActorDisconnected = false;
+ }
+}
+
+void ActorObserver::SceneObjectAdded( Object& object )
+{
+ DALI_LOG_TRACE_METHOD( gLogFilter );
+
+ if ( mActor == &object )
+ {
mActorDisconnected = false;
}
}
if ( mActor == &object )
{
DALI_LOG_INFO(gLogFilter, Debug::Verbose, "Stop Observing: %p\n", mActor);
- mActor = NULL;
+ mActor = nullptr;
}
}