- Qt 5.5
- Qt3D Module
- C++ Classes
- QChangeArbiter
- Qt 5.5.1 Reference Documentation

# QChangeArbiter Class

(Qt3D::QChangeArbiter)

Acts as a message router between observables and observers. More...

Header: | #include <QChangeArbiter>
qmake: | QT += 3dcore
Since: | Qt 5.5
Inherits: | QAbstractArbiter and

- List of all members, including inherited members

## Public Functions

| QChangeArbiter(QObject * parent = 0)
| ~QChangeArbiter()
void | initialize(Qt3D::QAbstractAspectJobManager * jobManager)
void | registerObserver(QObserverInterface * observer, const QNodeId & nodeId, ChangeFlags changeFlags = AllChanges)
void | registerSceneObserver(QSceneObserverInterface * observer)
QScene * | scene() const
void | setPostman(Qt3D::QAbstractPostman * postman)
void | setScene(Qt3D::QScene * scene)
void | syncChanges()
void | unregisterObserver(QObserverInterface * observer, const QNodeId & nodeId)
void | unregisterSceneObserver(QSceneObserverInterface * observer)

## Reimplemented Public Functions

virtual QAbstractPostman * | postman() const
virtual void | sceneChangeEvent(const QSceneChangePtr & e)
virtual void | sceneChangeEventWithLock(const QSceneChangePtr & e)
virtual void | sceneChangeEventWithLock(const QSceneChangeList & e)

- 1 public function inherited from Qt3D::QAbstractArbiter
- 2 public functions inherited from Qt3D::QLockableObserverInterface
- 1 public function inherited from Qt3D::QObserverInterface

## Static Public Members

void | createThreadLocalChangeQueue(void * changeArbiter)
void | createUnmanagedThreadLocalChangeQueue(void * changeArbiter)
void | destroyThreadLocalChangeQueue(void * changeArbiter)
void | destroyUnmanagedThreadLocalChangeQueue(void * changeArbiter)

## Protected Types

typedef | QChangeQueue
typedef | QObserverList
typedef | QObserverPair

## Protected Functions

void | appendChangeQueue(QChangeQueue * queue)
void | appendLockingChangeQueue(QChangeQueue * queue)
void | distributeQueueChanges(QChangeQueue * queue)
void | removeChangeQueue(QChangeQueue * queue)
void | removeLockingChangeQueue(QChangeQueue * queue)
QThreadStorage<QChangeQueue *> * | tlsChangeQueue()

## Detailed Description

Acts as a message router between observables and observers.

Observables can be of two types: QNode observables and QObservableInterfaces. QNode notifications are sent from the frontend QNode and delivered to the backend observers. QObservableInterface notifications are sent from backend nodes to backend observers and/or to the registered QPostman, which in turn delivers the notifications to the target frontend QNode.

QNode observables are registered automatically. However, QObservableInterface object have to be registered manually by providing the QNodeId of the corresponding frontend QNode.

Observers can be registered to receive messages from a QObservableInterface/QNode observable by providing a QNode NodeUuid. When a notification from a QObservableInterface is received, it is then sent to all observers observing the QNode NodeUuid as well as the QPostman to update the frontend QNode.

## Member Type Documentation

### typedef QChangeArbiter::QChangeQueue

### typedef QChangeArbiter::QObserverList

### typedef QChangeArbiter::QObserverPair

## Member Function Documentation

### QChangeArbiter::QChangeArbiter(QObject * parent = 0)

### QChangeArbiter::~QChangeArbiter()

### `[protected]` void QChangeArbiter::appendChangeQueue(QChangeQueue * queue)

### `[protected]` void QChangeArbiter::appendLockingChangeQueue(QChangeQueue * queue)

### `[static]` void QChangeArbiter::createThreadLocalChangeQueue(void * changeArbiter)

### `[static]` void QChangeArbiter::createUnmanagedThreadLocalChangeQueue(void * changeArbiter)

### `[static]` void QChangeArbiter::destroyThreadLocalChangeQueue(void * changeArbiter)

### `[static]` void QChangeArbiter::destroyUnmanagedThreadLocalChangeQueue(void * changeArbiter)

### `[protected]` void QChangeArbiter::distributeQueueChanges(QChangeQueue * queue)

### void QChangeArbiter::initialize(Qt3D::QAbstractAspectJobManager * jobManager)

### `[virtual]` QAbstractPostman * QChangeArbiter::postman() const

See also setPostman().

### void QChangeArbiter::registerObserver(QObserverInterface * observer, const QNodeId & nodeId, ChangeFlags changeFlags = AllChanges)

### void QChangeArbiter::registerSceneObserver(QSceneObserverInterface * observer)

### `[protected]` void QChangeArbiter::removeChangeQueue(QChangeQueue * queue)

### `[protected]` void QChangeArbiter::removeLockingChangeQueue(QChangeQueue * queue)

### QScene * QChangeArbiter::scene() const

See also setScene().

### `[virtual]` void QChangeArbiter::sceneChangeEvent(const QSceneChangePtr & e)

### `[virtual]` void QChangeArbiter::sceneChangeEventWithLock(const QSceneChangePtr & e)

### `[virtual]` void QChangeArbiter::sceneChangeEventWithLock(const QSceneChangeList & e)

### void QChangeArbiter::setPostman(Qt3D::QAbstractPostman * postman)

See also postman().

### void QChangeArbiter::setScene(Qt3D::QScene * scene)

See also scene().

### void QChangeArbiter::syncChanges()

### `[protected]` QThreadStorage<QChangeQueue *> * QChangeArbiter::tlsChangeQueue()

### void QChangeArbiter::unregisterObserver(QObserverInterface * observer, const QNodeId & nodeId)

### void QChangeArbiter::unregisterSceneObserver(QSceneObserverInterface * observer)