diff options
author | James Cook <james@lindenlab.com> | 2007-01-02 08:33:20 +0000 |
---|---|---|
committer | James Cook <james@lindenlab.com> | 2007-01-02 08:33:20 +0000 |
commit | 420b91db29485df39fd6e724e782c449158811cb (patch) | |
tree | b471a94563af914d3ed3edd3e856d21cb1b69945 /indra/newview/llcallbacklist.h |
Print done when done.
Diffstat (limited to 'indra/newview/llcallbacklist.h')
-rw-r--r-- | indra/newview/llcallbacklist.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/indra/newview/llcallbacklist.h b/indra/newview/llcallbacklist.h new file mode 100644 index 0000000000..e647f50644 --- /dev/null +++ b/indra/newview/llcallbacklist.h @@ -0,0 +1,39 @@ +/** + * @file llcallbacklist.h + * @brief A simple list of callback functions to call. + * + * Copyright (c) 2001-$CurrentYear$, Linden Research, Inc. + * $License$ + */ + +#ifndef LL_LLCALLBACKLIST_H +#define LL_LLCALLBACKLIST_H + +#include "llstl.h" + +class LLCallbackList +{ +public: + typedef void (*callback_t)(void*); + + LLCallbackList(); + ~LLCallbackList(); + + void addFunction( callback_t func, void *data = NULL ); // register a callback, which will be called as func(data) + BOOL containsFunction( callback_t func, void *data = NULL ); // true if list already contains the function/data pair + BOOL deleteFunction( callback_t func, void *data = NULL ); // removes the first instance of this function/data pair from the list, false if not found + void callFunctions(); // calls all functions + void deleteAllFunctions(); + + static void test(); + +protected: + // Use a list so that the callbacks are ordered in case that matters + typedef std::pair<callback_t,void*> callback_pair_t; + typedef std::list<callback_pair_t > callback_list_t; + callback_list_t mCallbackList; +}; + +extern LLCallbackList gIdleCallbacks; + +#endif |