History log of /haiku/src/kits/storage/AddOnMonitorHandler.cpp
Revision Date Author Comments
# 3aeed660 07-Aug-2014 Jérôme Duval <jerome.duval@gmail.com>

include strings.h where appriopriate...

instead or additionally to string.h, in preparation for functions move.
* moves str[n]casecmp() functions and others to strings.h.
* strings.h doesn't include string.h anymore.
* this solves #10949


# 916be2df 16-Oct-2013 John Scipione <jscipione@gmail.com>

Consolidate adding add-on directories

This builds off of hrev46243 adding add-on directories all in one place
in AddOnMonitorHandler instead of repeating the code 3 times in
IndexServer, AddOnManager, and MediaAddOnServer.

The safe mode checking in InputServer is now redundant since it all
gets funneled into AddOnMonitorHandler::AddAddOnDirectories()
and the safe mode flags are checked there.

We should probably remove the InputServer::SafeMode() method, but,
I didn't want to break anything that depended on it so I left it.


# e1b526b9 18-Apr-2011 Jonas Sundström <jonas@kirilla.com>

Code style correction by Barret, ticket #7453. Thanks!

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


# d4f0eca6 22-Feb-2011 Jonas Sundström <jonas@kirilla.com>

Unsafe use of strncpy replaced by strlcpy. CID 2264, 2265.

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


# d01ea8ec 20-Oct-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Add stat fields to StatChanged hook.



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


# e4644818 20-Oct-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Fix coding style, thanks Axel.



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


# 9a986950 20-Oct-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Update NodeMonitorHandler to use all haiku specific fields.



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


# 588b796b 29-Aug-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Add the possibility to load all add-ons in a directory immediately.
Rename _HandlePulse to _HandlePendingEntries.



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


# 1f50b439 19-Aug-2010 Rene Gollent <anevilyak@gmail.com>

Make gcc2 happy.



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


# 2faa1532 19-Aug-2010 Stephan Aßmus <superstippi@gmx.de>

* Refactored a lot of repetitive code and made
everything more readible.
* Once I understood better how everthing is supposed
to work, I've fixed some bugs.
* The most important problem was that AddDirectory()
placed the wrong entry (resolved symlinks) into the
entry list it keeps for each directory. This resulted
in the mechanisms not working at all when an add-on
was a symlink.
* There was a hidden TODO, which would mean that moving
an add-on from one watched directory into another,
like from home/config/add-ons/... into common/add-ons/...
would drop the client application (media_server,
input_server, ...) into the debugger.
* The fFormerEntries list did not seem to serve any
purpose. Basically it would not disable add-ons
removed from a watched directory unless it changed
it's name at the same time. I've removed it completely,
since it didn't seem to be an optimization
(entry cache) either.
* Each actual add-on file is now node-monitored for
stat changes. So if you have a link in the add-on
folder, and the linked to add-on changes, it triggers
a reload of the add-on now. This will make it much
more pleasant to develop add-ons and have them affective
immediately.

I tested with a fresh image, but there are no immediate
regressions I am aware of. I could imagine that messing
with certain add-ons can have a bad effect now, like
removing the keyboard input_server add-on may trigger the
keyboard to stop working immediately without an input_server
restart, but Tracker should warn before it happens.


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


# 3c3dac1a 18-Aug-2010 Stephan Aßmus <superstippi@gmx.de>

Fixed the build.


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


# 3f918dc3 18-Aug-2010 Stephan Aßmus <superstippi@gmx.de>

Fixed a race condition that could corrupt memory: Usually, clients of this
API will call AddDirectory() in whatever random thread, not in the AddOnMonitor
looper thread however. The looper thread will try to process pending node
monitor events every second which may happen concurrently to the thread
adding to the fPendingEntries list for initial processing of new directories.
Could have affected any of the AddOnMonitor clients, like media_server and
input_server.


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


# 125a95f1 05-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Reduced default stable time.


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


# fb3e35fc 22-Jan-2009 Michael Lotz <mmlr@mlotz.ch>

Fixing all headers/namespaces/name lookup problems that hinder a GCC 4.3.2
build. I sure hope that this doesn't break the build for anyone else.


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


# 8f2be9ef 18-Oct-2008 Axel Dörfler <axeld@pinc-software.de>

* Cleanup, no functional change.


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


# fc1ca2da 25-Apr-2008 Jérôme Duval <korli@users.berlios.de>

style cleanup


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


# 34eedb98 04-Oct-2004 Jérôme Duval <korli@users.berlios.de>

Added a #ifndef around #define ADD_ON_STABLE_SECONDS to be able to define it on demand


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


# fa8dbc01 01-Feb-2004 shatty <shatty@nowhere.fake>

new MediaFormats. node monitoring codec plugin loading. codec mods to support new codec api to retrieve supported formats.


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


# 341ea251 31-Jan-2004 shatty <shatty@nowhere.fake>

semi-tested semi-implemented with horrific big methods


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


# 3aeed6607cd07762c0e709633c012b3a632dbad9 07-Aug-2014 Jérôme Duval <jerome.duval@gmail.com>

include strings.h where appriopriate...

instead or additionally to string.h, in preparation for functions move.
* moves str[n]casecmp() functions and others to strings.h.
* strings.h doesn't include string.h anymore.
* this solves #10949


# 916be2df3c26f589bd422d22230f921e51e69bae 16-Oct-2013 John Scipione <jscipione@gmail.com>

Consolidate adding add-on directories

This builds off of hrev46243 adding add-on directories all in one place
in AddOnMonitorHandler instead of repeating the code 3 times in
IndexServer, AddOnManager, and MediaAddOnServer.

The safe mode checking in InputServer is now redundant since it all
gets funneled into AddOnMonitorHandler::AddAddOnDirectories()
and the safe mode flags are checked there.

We should probably remove the InputServer::SafeMode() method, but,
I didn't want to break anything that depended on it so I left it.


# e1b526b95a2dc473c254bc332454c53ca892ac5e 18-Apr-2011 Jonas Sundström <jonas@kirilla.com>

Code style correction by Barret, ticket #7453. Thanks!

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


# d4f0eca6345adc5923c99a3f4069328593f76fc5 22-Feb-2011 Jonas Sundström <jonas@kirilla.com>

Unsafe use of strncpy replaced by strlcpy. CID 2264, 2265.

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


# d01ea8ec63a34e5c78977457f0affc7e27135b74 20-Oct-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Add stat fields to StatChanged hook.



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


# e4644818886984abac907f3d04c9af0f10f6ee01 20-Oct-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Fix coding style, thanks Axel.



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


# 9a98695072d7707188e5c6a2ecac39f0a50f3659 20-Oct-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Update NodeMonitorHandler to use all haiku specific fields.



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


# 588b796bcbff06f2e29e98fc54070518aee62c0c 29-Aug-2010 Clemens Zeidler <clemens.zeidler@googlemail.com>

Add the possibility to load all add-ons in a directory immediately.
Rename _HandlePulse to _HandlePendingEntries.



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


# 1f50b439bb894b5d75451ac4049187eabe55f1e6 19-Aug-2010 Rene Gollent <anevilyak@gmail.com>

Make gcc2 happy.



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


# 2faa1532f8de1520d3f5a33ecc607fce8b1d5a41 19-Aug-2010 Stephan Aßmus <superstippi@gmx.de>

* Refactored a lot of repetitive code and made
everything more readible.
* Once I understood better how everthing is supposed
to work, I've fixed some bugs.
* The most important problem was that AddDirectory()
placed the wrong entry (resolved symlinks) into the
entry list it keeps for each directory. This resulted
in the mechanisms not working at all when an add-on
was a symlink.
* There was a hidden TODO, which would mean that moving
an add-on from one watched directory into another,
like from home/config/add-ons/... into common/add-ons/...
would drop the client application (media_server,
input_server, ...) into the debugger.
* The fFormerEntries list did not seem to serve any
purpose. Basically it would not disable add-ons
removed from a watched directory unless it changed
it's name at the same time. I've removed it completely,
since it didn't seem to be an optimization
(entry cache) either.
* Each actual add-on file is now node-monitored for
stat changes. So if you have a link in the add-on
folder, and the linked to add-on changes, it triggers
a reload of the add-on now. This will make it much
more pleasant to develop add-ons and have them affective
immediately.

I tested with a fresh image, but there are no immediate
regressions I am aware of. I could imagine that messing
with certain add-ons can have a bad effect now, like
removing the keyboard input_server add-on may trigger the
keyboard to stop working immediately without an input_server
restart, but Tracker should warn before it happens.


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


# 3c3dac1aa0ec8eacc88a4baad56b0d468f07ed39 18-Aug-2010 Stephan Aßmus <superstippi@gmx.de>

Fixed the build.


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


# 3f918dc3faf43bf24a55de36338da8d4da8c7b66 18-Aug-2010 Stephan Aßmus <superstippi@gmx.de>

Fixed a race condition that could corrupt memory: Usually, clients of this
API will call AddDirectory() in whatever random thread, not in the AddOnMonitor
looper thread however. The looper thread will try to process pending node
monitor events every second which may happen concurrently to the thread
adding to the fPendingEntries list for initial processing of new directories.
Could have affected any of the AddOnMonitor clients, like media_server and
input_server.


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


# 125a95f1eff80ea8a9e18a2d7044352ac5ece7bb 05-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Reduced default stable time.


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


# fb3e35fcec1ef41b413b3b121764509f436dee4d 22-Jan-2009 Michael Lotz <mmlr@mlotz.ch>

Fixing all headers/namespaces/name lookup problems that hinder a GCC 4.3.2
build. I sure hope that this doesn't break the build for anyone else.


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


# 8f2be9ef82ab0bab66b8e686a2ef379374d3ee7f 18-Oct-2008 Axel Dörfler <axeld@pinc-software.de>

* Cleanup, no functional change.


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


# fc1ca2da5cfcb00ffdf791606d5ae97fdd58a638 25-Apr-2008 Jérôme Duval <korli@users.berlios.de>

style cleanup


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


# 34eedb9823f0d8a1a807c35d307c9aeedd711934 04-Oct-2004 Jérôme Duval <korli@users.berlios.de>

Added a #ifndef around #define ADD_ON_STABLE_SECONDS to be able to define it on demand


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


# fa8dbc019dd3bd72a121c30ff5838f71f5185a7b 01-Feb-2004 shatty <shatty@nowhere.fake>

new MediaFormats. node monitoring codec plugin loading. codec mods to support new codec api to retrieve supported formats.


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


# 341ea251171719417e33cdf8ec99227715f8182c 31-Jan-2004 shatty <shatty@nowhere.fake>

semi-tested semi-implemented with horrific big methods


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