Commit Graph

12 Commits

Author SHA1 Message Date
Aleric Inglewood
15fb0ac3aa Allow AIStateMachine::cont() to be called from another thread for an idle statemachine. 2012-06-27 04:27:08 +02:00
Aleric Inglewood
4391614d6e AIThreadSafe* update.
Updated/added documentation.
Removed AIThreadSafeWindowsHack that annoyed me (fix your compiler).
Don't use 'static' in anonymous namespace.
Use the AIThreadSafe*DC variants for default constructed objects,
as opposed to the AITHREADSAFE* macro's.
2012-06-27 04:27:07 +02:00
Aleric Inglewood
cad0597524 Allow AIStateMachine::run() to be called from callback functions.
This was already documented as working, but turned out not to work.
Now one can call any of the run(...) functions to guarantee a restart
of the statemachine. Using run() without parameters from a callback
function re-uses the old callback information.

Introduces a new enum AIStateMachine::active_type that keeps track
of on which list the statemachine resides, if any. This was necessary
because run() calls cont() which now can be called while the
statemachine is already on the active list, so it needs to know
more than just if it's on the continued_statemachines list or
not.
2012-02-10 00:23:20 +01:00
Aleric Inglewood
a59f93266b Improved documentation regarding kill() a bit. 2011-07-12 15:59:30 +02:00
Aleric Inglewood
425e1581ae Port to boost::signals2 2011-06-09 15:25:03 +02:00
Aleric Inglewood
fed8951e00 Merge remote-tracking branch 'shyotl/V2Renderer' into V2Renderer 2011-06-03 22:48:23 +02:00
Shyotl
a1942ebc94 Bulldozed llprocessor. Make sure this doesn't explode on linux or mac. May be missing system headers on those systems. Not sure if carbon.h is needed for mac. 2011-05-30 01:35:44 -05:00
Aleric Inglewood
13560e292e Added AIFetchInventoryFolder and more.
Added a new statemachine AIFetchInventoryFolder, which can be used
to fetch the contents of a folder by name or UUID.

Also added AIEvent (and one event,
AIEvent::LLInventoryModel_mIsAgentInvUsable_true, which is needed
for AIFetchInventoryFolder).

Fixed LLInventoryModel::sBackgroundFetchActive to correctly reflect
whether or not LLInventoryModel::backgroundFetch is added to
gIdleCallbacks.

Avoid duplicated entries in sFetchQueue.

Reset sFullFetchStarted in LLInventoryModel::stopBackgroundFetch to
allow for a renewed full fetch when some single-folder fetch stops it.

Added AIStateMachine::mQueued to make calling 'cont()' more robust:
calling cont() / idle() / cont() on a row would otherwise add a
statemachine twice to the active list, which would cause a crash
when it's killed.
2011-05-22 22:01:11 +02:00
Aleric Inglewood
e1fb1fa6b7 API change of AIFilePicker.
Call AIFilePicker::create() instead of new AIFilePicker.
Renamed deleteMe() to kill() and bs_deleted to bs_killed.
Only default to auto destruct when created with create(true),
otherwise kill() has to be called explicitely.
2011-05-18 03:52:15 +02:00
Shyotl
3926d2d30a Resolved most errors under vc100 compiler 2011-05-14 22:30:30 -05:00
Aleric Inglewood
ea2cc3e0de Make FilePicker context sensitive default paths persistent over logins.
Also, make newview/statemachine a separate project.
2011-05-13 23:50:56 +02:00
Aleric Inglewood
f6b57d956d Added base class AIStateMachine.
This is the skeleton needed to implement classes that can be reused and
work together, which can perform asynchronous tasks (read: need to wait
for certain events before they can continue).

An example would be the task of waiting for a given inventory folder to
be read. This could then be used to improve the builtin AO
(automatically reading that folder when a notecard is dropped, and
continuing when the whole folder is read).

It's first use will be communication with a filepicker that runs
in a plugin.
2011-05-08 17:08:48 +02:00