本文整理汇总了C++中service_ptr_t::is_valid方法的典型用法代码示例。如果您正苦于以下问题:C++ service_ptr_t::is_valid方法的具体用法?C++ service_ptr_t::is_valid怎么用?C++ service_ptr_t::is_valid使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类service_ptr_t
的用法示例。
在下文中一共展示了service_ptr_t::is_valid方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: g_seekabilize
void seekabilizer::g_seekabilize(service_ptr_t<file> & p_reader,t_size p_buffer_size,abort_callback & p_abort) {
if (p_reader.is_valid() && p_reader->is_remote() && p_buffer_size > 0) {
service_ptr_t<seekabilizer> instance = new service_impl_t<seekabilizer>();
instance->initialize(p_reader,p_buffer_size,p_abort);
p_reader = instance.get_ptr();
}
}
示例2: prepare_for_open
static void prepare_for_open(service_ptr_t<input_entry> & p_service,service_ptr_t<file> & p_file,const char * p_path,filesystem::t_open_mode p_open_mode,abort_callback & p_abort,bool p_from_redirect)
{
if (p_file.is_empty())
{
service_ptr_t<filesystem> fs;
if (filesystem::g_get_interface(fs,p_path)) {
if (fs->supports_content_types()) {
fs->open(p_file,p_path,p_open_mode,p_abort);
}
}
}
if (p_file.is_valid())
{
pfc::string8 content_type;
if (p_file->get_content_type(content_type))
{
if (input_entry::g_find_service_by_content_type(p_service,content_type))
return;
}
}
if (input_entry::g_find_service_by_path(p_service,p_path))
{
if (p_from_redirect && p_service->is_redirect()) throw exception_io_unsupported_format();
return;
}
throw exception_io_unsupported_format();
}
示例3: instantiate
bool dsp_rate_entry::instantiate(service_ptr_t<dsp>& p_out, const dsp_preset& p_preset)
{
bool ret = false;
if (p_preset.get_owner() == get_guid())
{
t_dsp_rate_params params;
params.set_data(p_preset);
p_out = reinterpret_cast<dsp*>(new service_impl_t<dsp_rate>(params));
ret = p_out.is_valid();
}
return ret;
}
示例4: process_fullbuffer
static void process_fullbuffer(service_ptr_t<file> & p_file,const char * p_path,t_filesize p_fullbuffer,abort_callback & p_abort) {
if (p_fullbuffer > 0) {
if (p_file.is_empty()) {
service_ptr_t<filesystem> fs;
if (filesystem::g_get_interface(fs,p_path)) {
fs->open(p_file,p_path,filesystem::open_mode_read,p_abort);
}
}
if (p_file.is_valid()) {
t_filesize size = p_file->get_size(p_abort);
if (size != filesize_invalid && size <= p_fullbuffer) {
service_ptr_t<file> l_file_buffered;
if (reader_membuffer_mirror::g_create(l_file_buffered,p_file,p_abort)) {
p_file = l_file_buffered;
}
}
}
}
}
示例5: on_message
//.........这里部分代码省略.........
BOOL a = true;
SystemParametersInfo(SPI_GETKEYBOARDCUES, 0, &a, 0);
if ((SendMessage(wnd_menu, WM_QUERYUISTATE, 0, 0) & UISF_HIDEACCEL) != !a)
SendMessage(wnd_menu, WM_UPDATEUISTATE, MAKEWPARAM(a ? UIS_CLEAR : UIS_SET, UISF_HIDEACCEL), 0);
}
break;
}
case MSG_SHOW_MENUACC:
{
//if (is_win2k_or_newer())
{
SendMessage(wnd_menu, WM_UPDATEUISTATE, MAKEWPARAM(UIS_CLEAR, UISF_HIDEACCEL), 0);
}
break;
}
case MSG_CREATE_MENU:
{
if (lp) SetFocus(wnd_menu);
active_item = wp;
make_menu(wp);
break;
}
case WM_MENUSELECT:
{
if (HIWORD(wp) & MF_POPUP)
{
is_submenu = true;
m_status_override.release();
}
else
{
is_submenu = false;
if (p_manager.is_valid())
{
unsigned id = LOWORD(wp);
bool set = false;
pfc::string8 blah;
set = p_manager->get_description(id - 1, blah);
service_ptr_t<ui_status_text_override> p_status_override;
if (set)
{
get_host()->override_status_text_create(p_status_override);
if (p_status_override.is_valid())
{
p_status_override->override_text(blah);
}
}
m_status_override = p_status_override;
}
}
break;
}
case WM_INITMENUPOPUP:
{
sub_menu_ref_count++;
break;
}
case WM_UNINITMENUPOPUP:
{
示例6: process_path_internal
static void process_path_internal(const char * p_path,const service_ptr_t<file> & p_reader,playlist_loader_callback_v2 & p_callback,playlist_loader_callback::t_entry_type p_type,const t_filestats & p_stats)
{
//p_path must be canonical
p_callback.check();
p_callback.on_progress(p_path);
{
if (p_reader.is_empty()) {
directory_callback_impl directory_results(true);
try {
filesystem::g_list_directory(p_path,directory_results,p_callback);
for(t_size n=0;n<directory_results.get_count();n++) {
process_path_internal(directory_results.get_item(n),0,p_callback,playlist_loader_callback::entry_directory_enumerated,directory_results.get_item_stats(n));
}
return;
} catch(exception_aborted) {throw;}
catch(...) {
//do nothing, fall thru
//fixme - catch only filesystem exceptions?
}
}
bool found = false;
{
archive_callback_impl archive_results(p_callback);
service_enum_t<filesystem> e;
service_ptr_t<filesystem> f;
while(e.next(f)) {
p_callback.check();
service_ptr_t<archive> arch;
if (f->service_query_t(arch)) {
if (p_reader.is_valid()) p_reader->reopen(p_callback);
try {
TRACK_CODE("archive::archive_list",arch->archive_list(p_path,p_reader,archive_results,true));
return;
} catch(exception_aborted) {throw;}
catch(...) {}
}
}
}
}
{
service_ptr_t<link_resolver> ptr;
if (link_resolver::g_find(ptr,p_path))
{
if (p_reader.is_valid()) p_reader->reopen(p_callback);
pfc::string8 temp;
try {
TRACK_CODE("link_resolver::resolve",ptr->resolve(p_reader,p_path,temp,p_callback));
track_indexer__g_get_tracks_wrap(temp,0,filestats_invalid,playlist_loader_callback::entry_from_playlist,p_callback);
return;//success
} catch(exception_aborted) {throw;}
catch(...) {}
}
}
if (p_callback.is_path_wanted(p_path,p_type)) {
track_indexer__g_get_tracks_wrap(p_path,p_reader,p_stats,p_type,p_callback);
}
}
示例7: g_get_global_style_titleformat_object
void playlist_view::g_get_global_style_titleformat_object(service_ptr_t<titleformat_object> & p_out)
{
if (!g_to_global_colour.is_valid())
static_api_ptr_t<titleformat_compiler>()->compile_safe(g_to_global_colour, cfg_colour);
p_out = g_to_global_colour;
}