+ DALI_ASSERT_ALWAYS( gAdaptor );
+ return *gAdaptor;
+}
+
+Adaptor::Adaptor()
+{
+}
+
+Adaptor::~Adaptor()
+{
+ gAdaptor = nullptr;
+}
+
+void Adaptor::Start( Dali::Window window )
+{
+ AddWindow( &GetImplementation( window ) );
+}
+
+Integration::Scene Adaptor::GetScene( Dali::Window window )
+{
+ return window.GetScene();
+}
+
+bool Adaptor::AddIdle( CallbackBase* callback, bool hasReturnValue )
+{
+ mCallbacks.PushBack( callback );
+ return true;
+}
+
+void Adaptor::RemoveIdle( CallbackBase* callback )
+{
+ mCallbacks.Erase( std::find_if( mCallbacks.Begin(), mCallbacks.End(),
+ [ &callback ] ( CallbackBase* current ) { return callback == current; } ) );
+}
+
+void Adaptor::RunIdles()
+{
+ for( auto& callback : mCallbacks )
+ {
+ CallbackBase::Execute( *callback );
+ }
+
+ mCallbacks.Clear();