33 main_thread_callback_release_object(
service_ptr obj) : m_object(obj) {}
35 try { m_object.release(); }
catch(...) {}
52 throw exception_service_not_found();
57 throw exception_service_duplicated();
Template implementing reference-counting features of service_base. Intended for dynamic instantiation...
virtual service_class_ref service_enum_find_class(const GUID &p_guid)=0
foobar2000_api * g_foobar2000_api
static service_factory_base * __internal__list
FOR INTERNAL USE ONLY.
const void * service_class_ref
static t_size enum_get_count(service_class_ref p_class)
void _standard_api_create_internal(service_ptr &out, const GUID &classID)
static service_class_ref enum_find_class(const GUID &p_guid)
virtual t_size service_enum_get_count(service_class_ref p_class)=0
static bool enum_create(service_ptr_t< service_base > &p_out, service_class_ref p_class, t_size p_index)
Autopointer class to be used with all services. Manages reference counter calls behind-the-scenes.
Helper template used to easily access core services. Usage: static_api_ptr_t<myclass> api; api->doso...
bool are_services_available()
Tests whether services are available at this time. They are not available only during DLL startup or ...
Callback object class for main_thread_callback_manager service.
virtual bool service_enum_create(service_ptr_t< service_base > &p_out, service_class_ref p_class, t_size p_index)=0
void release_object_delayed(service_ptr obj)