app_close_blocker.h

Go to the documentation of this file.
00001 
00004 class NOVTABLE app_close_blocker : public service_base
00005 {
00006 public:
00008         virtual bool query() = 0;
00009 
00011         static bool g_query();
00012 
00013         FB2K_MAKE_SERVICE_INTERFACE_ENTRYPOINT(app_close_blocker);
00014 };
00015 
00019 class NOVTABLE app_close_blocking_task {
00020 public:
00021         virtual void query_task_name(pfc::string_base & out) = 0;
00022 
00023 protected:
00024         app_close_blocking_task() {}
00025         ~app_close_blocking_task() {}
00026 
00027         PFC_CLASS_NOT_COPYABLE_EX(app_close_blocking_task);
00028 };
00029 
00033 class NOVTABLE app_close_blocking_task_manager : public service_base {
00034 public:
00035         virtual void register_task(app_close_blocking_task * task) = 0;
00036         virtual void unregister_task(app_close_blocking_task * task) = 0;
00037         
00038 
00039         FB2K_MAKE_SERVICE_INTERFACE_ENTRYPOINT(app_close_blocking_task_manager);
00040 };
00041 
00044 class app_close_blocking_task_impl : public app_close_blocking_task {
00045 public:
00046         app_close_blocking_task_impl() { try { static_api_ptr_t<app_close_blocking_task_manager>()->register_task(this); } catch(exception_service_not_found) {/*user runs pre-0.9.5.1*/}}
00047         ~app_close_blocking_task_impl() { try { static_api_ptr_t<app_close_blocking_task_manager>()->unregister_task(this); } catch(exception_service_not_found) {/*user runs pre-0.9.5.1*/}}
00048 
00049         void query_task_name(pfc::string_base & out) { out = "<unnamed task>"; }
00050 };

Generated on Fri Apr 25 18:49:34 2008 for foobar2000 SDK by  doxygen 1.5.5