History log of /haiku/headers/private/media/MediaRosterEx.h
Revision Date Author Comments
# 76889670 21-Apr-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

shutdown_media_server: Finalize rework of synchronization

* When the user isn't requesting a custom notification, it will
be a BMediaRoster job to do it.
* Reintroduce BMediaRoster::SyncToServices, this time based on local
message passing rather than a global semaphore.
* SyncToServices is used in launch_media_server to make the process
more launch_daemon safe and faster in the average case.
* It was an error to add notifications in the media_server.
* Fixes #12717.


# 67060664 28-Nov-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Allow BMediaRoster to log local nodes

* BMediaRoster is now capable to know which nodes are
instantiated in this team. This is also a first step to make
them survive after media_server crashes.
* A control at BMediaRoster::Quit can notify if all nodes
were correctly released. Ideally at this point the local nodes
list should be empty.


# 7d337b23 01-Sep-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Reintroduce the undertaker class

* This has been necessary due to the undefined call order of
of static objects. Fixes #12315.
* The bug has been caused by the linker which free unused resources,
making the BMediaRoster to run in a zombie state. In this state
anything such as a message could make the looper to crash.
* The class is reintroduced with some differences though, we are
going to protect it from another thread calling Roster() while the
BMediaRoster is quitting and implement BMediaRosterEx::Quit.
* Unregister registrar notifications before we quit our thread. Avoid
to uninitialize anything from QuitRequested as it may cause problems.


# 32afe10a 23-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Add B_MEDIA_SERVER_STARTED and B_MEDIA_SERVER_QUIT

* This is done by watching to registrar notifications
and providing a minimal service to contact the
media roster in private API. The roster use this
service to automatically reconnect to the media_server.


# e57acc3a 23-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Fix initialization and destruction

* Improve consistency by adding a BMediaRosterEx destructor
and using it for the specular functionality of ctor instead
to use the father's class destructor.
* Avoid double initialization of MediaInitializer that
becomes MediaRosterUndertaker.
* Remove superfluos call to BMediaRoster::Quit()
in media_addon_server.


# 6cd18b57 23-Mar-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRosterEx: cleanup and fix style in the header


# d25dd4b9 12-Apr-2010 Jérôme Duval <korli@users.berlios.de>

some copyright headers clean up


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36203 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6aee58a4 17-Jan-2010 Jérôme Duval <korli@users.berlios.de>

* Revert the reverse the addons iteration of r35121.
* The media_addon_server before unloading addons need to be sure the nodes are deleted.
For instance, applications could keep references on global nodes, thus preventing deletion.
To release all references, the media_addon server uses a new method BMediaRosterEx::ReleaseNodeAll().
* Quit the MediaRoster looper when quitting media_addon server before unloading addons.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35133 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f5be3001 19-May-2004 Jérôme Duval <korli@users.berlios.de>

Constructor for BMediaRosterEx


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7616 a95241bf-73f2-0310-859d-f6bbb57e9c96


# da475925 07-Sep-2003 beveloper <beveloper@nowhere.fake>

added two new functions that work with pointer to the node, instead of sending messages


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4534 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5917dd5b 01-Jun-2003 beveloper <beveloper@nowhere.fake>

various timing related bugfixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3395 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 626824ea 21-Mar-2003 beveloper <beveloper@nowhere.fake>

Added reference counting of media add-on instances.
You can't create more node instances than "possible_count".


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2990 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 54187cc6 15-Mar-2003 beveloper <beveloper@nowhere.fake>

Global nodes can mow be released by the teams which created them.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2923 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8b04ffc1 14-Mar-2003 beveloper <beveloper@nowhere.fake>

Reorganized BMediaRoster support functions.
Improved dormant node support.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2910 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7d337b23b7a962caac04e6e5b8a03a35b9591394 01-Sep-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Reintroduce the undertaker class

* This has been necessary due to the undefined call order of
of static objects. Fixes #12315.
* The bug has been caused by the linker which free unused resources,
making the BMediaRoster to run in a zombie state. In this state
anything such as a message could make the looper to crash.
* The class is reintroduced with some differences though, we are
going to protect it from another thread calling Roster() while the
BMediaRoster is quitting and implement BMediaRosterEx::Quit.
* Unregister registrar notifications before we quit our thread. Avoid
to uninitialize anything from QuitRequested as it may cause problems.


# 32afe10ab298b543622ea2089f5fa404c83788ae 23-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Add B_MEDIA_SERVER_STARTED and B_MEDIA_SERVER_QUIT

* This is done by watching to registrar notifications
and providing a minimal service to contact the
media roster in private API. The roster use this
service to automatically reconnect to the media_server.


# e57acc3a990689adc3d230f877bb98ca979aeac0 23-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRoster: Fix initialization and destruction

* Improve consistency by adding a BMediaRosterEx destructor
and using it for the specular functionality of ctor instead
to use the father's class destructor.
* Avoid double initialization of MediaInitializer that
becomes MediaRosterUndertaker.
* Remove superfluos call to BMediaRoster::Quit()
in media_addon_server.


# 6cd18b575c718ce86cfeddf9403200c5e2bab670 23-Mar-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

BMediaRosterEx: cleanup and fix style in the header


# d25dd4b92033d7ee4e7640f7f8a08d98a8e24800 12-Apr-2010 Jérôme Duval <korli@users.berlios.de>

some copyright headers clean up


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36203 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6aee58a4cb26a848cad1f4343af8597baa144df0 17-Jan-2010 Jérôme Duval <korli@users.berlios.de>

* Revert the reverse the addons iteration of r35121.
* The media_addon_server before unloading addons need to be sure the nodes are deleted.
For instance, applications could keep references on global nodes, thus preventing deletion.
To release all references, the media_addon server uses a new method BMediaRosterEx::ReleaseNodeAll().
* Quit the MediaRoster looper when quitting media_addon server before unloading addons.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35133 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f5be30013c9a15043f831cea34d15b92c4139669 19-May-2004 Jérôme Duval <korli@users.berlios.de>

Constructor for BMediaRosterEx


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7616 a95241bf-73f2-0310-859d-f6bbb57e9c96


# da47592581353850326b833e171fb7c9bc462d9f 07-Sep-2003 beveloper <beveloper@nowhere.fake>

added two new functions that work with pointer to the node, instead of sending messages


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4534 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5917dd5b85eed661e5d9297c8eb8979bf304b6dc 01-Jun-2003 beveloper <beveloper@nowhere.fake>

various timing related bugfixes


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3395 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 626824eaaf91ec35de3ca9eb737f87d98ffb6121 21-Mar-2003 beveloper <beveloper@nowhere.fake>

Added reference counting of media add-on instances.
You can't create more node instances than "possible_count".


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2990 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 54187cc6e8dab0f8502b3fed8621e13ce44a3cf8 15-Mar-2003 beveloper <beveloper@nowhere.fake>

Global nodes can mow be released by the teams which created them.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2923 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8b04ffc12da2f91c98d7b21c6cba7e87ccc76b43 14-Mar-2003 beveloper <beveloper@nowhere.fake>

Reorganized BMediaRoster support functions.
Improved dormant node support.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2910 a95241bf-73f2-0310-859d-f6bbb57e9c96