app_close_blocker.h

Go to the documentation of this file.
00001 
00002 
00003 class NOVTABLE app_close_blocker : public service_base
00004 {
00005 public:
00007         virtual bool query() = 0;
00008 
00010         static bool g_query();
00011 
00012         FB2K_MAKE_SERVICE_INTERFACE_ENTRYPOINT(app_close_blocker);
00013 };
00014 
00018 class NOVTABLE app_close_blocking_task {
00019 public:
00020         virtual void query_task_name(pfc::string_base & out) = 0;
00021 
00022 protected:
00023         app_close_blocking_task() {}
00024         ~app_close_blocking_task() {}
00025 
00026         PFC_CLASS_NOT_COPYABLE_EX(app_close_blocking_task);
00027 };
00028 
00032 class NOVTABLE app_close_blocking_task_manager : public service_base {
00033 public:
00034         virtual void register_task(app_close_blocking_task * task) = 0;
00035         virtual void unregister_task(app_close_blocking_task * task) = 0;
00036         
00037 
00038         FB2K_MAKE_SERVICE_INTERFACE_ENTRYPOINT(app_close_blocking_task_manager);
00039 };
00040 
00043 class app_close_blocking_task_impl : public app_close_blocking_task {
00044 public:
00045         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*/}}
00046         ~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*/}}
00047 
00048         void query_task_name(pfc::string_base & out) { out = "<unnamed task>"; }
00049 };

Generated on Thu Aug 28 21:15:31 2008 for foobar2000 SDK by  doxygen 1.5.5