2 * Copyright (c) 2015 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.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://www.apache.org/licenses/LICENSE-2.0
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.
17 #include "scene-graph-connection-change-propagator.h"
26 ConnectionChangePropagator::ConnectionChangePropagator()
30 ConnectionChangePropagator::~ConnectionChangePropagator()
34 void ConnectionChangePropagator::Add(Observer& observer)
36 bool foundObserver = false;
37 for( ObserversIterator iter = mObservers.Begin(); iter != mObservers.End(); ++iter )
39 if( *iter == &observer )
47 mObservers.PushBack( &observer );
51 void ConnectionChangePropagator::Remove(Observer& observer)
53 for( ObserversIterator iter = mObservers.Begin(); iter != mObservers.End(); ++iter )
55 if( *iter == &observer )
57 mObservers.Erase(iter);
63 void ConnectionChangePropagator::ConnectionsChanged(PropertyOwner& object)
65 // Inform observers that the object's children have changed
66 for( ObserversIterator iter = mObservers.Begin(); iter != mObservers.End(); ++iter )
68 Observer* observer = (*iter);
69 observer->ConnectionsChanged( object );
73 void ConnectionChangePropagator::ConnectedUniformMapChanged()
75 // Inform observers that the object's uniform map has changed
76 for( ObserversIterator iter = mObservers.Begin(); iter != mObservers.End(); ++iter )
78 Observer* observer = (*iter);
79 observer->ConnectedUniformMapChanged();
83 void ConnectionChangePropagator::Destroy( PropertyOwner& object )
85 // Inform observers that the object's children have changed
86 for( ObserversIterator iter = mObservers.Begin(); iter != mObservers.End(); ++iter )
88 Observer* observer = (*iter);
89 observer->ObservedObjectDestroyed( object );