当前位置: 首页>>代码示例>>C++>>正文


C++ clPtr::ptr方法代码示例

本文整理汇总了C++中clPtr::ptr方法的典型用法代码示例。如果您正苦于以下问题:C++ clPtr::ptr方法的具体用法?C++ clPtr::ptr怎么用?C++ clPtr::ptr使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在clPtr的用法示例。


在下文中一共展示了clPtr::ptr方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: Append

void FSList::Append( clPtr<FSNode> p )
{
	p->next = 0;

	if ( last )
	{
		last->next = p.ptr();
	}
	else
	{
		first = p.ptr();
	}

	last = p.ptr();
	p.drop();
	count++;
}
开发者ID:KonstantinKuklin,项目名称:WalCommander,代码行数:17,代码来源:vfs.cpp

示例2: ExeFileExist

//определяет наличие исполняемого файла в каталогах в PATH
//списки кэшируются
bool ExeFileExist( const char* name )
{
	if ( name[0] == '/' ) //абсолютный путь
	{
		struct stat sb;

		if ( stat( name, &sb ) ) { return false; }

		return true;

		return  ( ( sb.st_mode & S_IFMT ) == S_IFREG && ( sb.st_mode & 0111 ) != 0 );
	}

	if ( !pathExeList.ptr() )
	{
		pathExeList = new cstrhash<bool>;
		const char* pl = getenv( "PATH" );

		if ( !pl ) { return false; }

		std::vector<char> paths = new_char_str( pl );
		char* s = paths.data();

		while ( *s )
		{
			char* t = s;

			while ( *t && *t != ':' ) { t++; }

			if ( *t )
			{
				*t = 0;
				t++;
			}

			SearchExe( s, *( pathExeList.ptr() ) );
			s = t;
		}
	}

	return pathExeList->exist( name ) != 0;
}
开发者ID:kamtec1,项目名称:WalCommander,代码行数:44,代码来源:ext-app-ux.cpp

示例3: _GetAppList

static int _GetAppList( const unicode_t* fileName, ccollect<AppNode*>& list )
{
	if ( !mimeDb.ptr() )
	{
		if ( FileIsExist( "/usr/share/mime/globs" ) )
		{
			mimeDb = new MimeDB( "/usr/share/mime/" );
		}
		else
		{
			mimeDb = new MimeDB( "/usr/local/share/mime/" );
		}
	}

	if ( !appDb.ptr() )
	{
		if ( DirIsExist( "/usr/share/applications" ) )
		{
			appDb = new AppDB( "/usr/share/applications/" );
		}
		else
		{
			appDb = new AppDB( "/usr/local/share/applications/" );
		}
	}

	if ( !userDefApp.ptr() )
	{
		const char* home = getenv( "HOME" );

		if ( home )
		{
			userDefApp = new AppDefListFile( carray_cat<char>( home, "/.local/share/applications/mimeapps.list" ).data() );
		}
	}

	mimeDb->Refresh();
	appDb->Refresh();

	if ( userDefApp.ptr() )
	{
		userDefApp->Refresh();
	}

	ccollect<int> mimeList;

	if ( mimeDb->GetMimeList( fileName, mimeList ) )
	{
		int i;
		std::unordered_map<int, bool> hash;

		for ( i = 0; i < mimeList.count(); i++ )
		{
			ccollect<int> appList;

			if ( userDefApp.ptr() )
			{
				userDefApp->GetAppList( mimeList[i], appList );
			}

			appDb->GetAppList( mimeList[i], appList );

			for ( int j = 0; j < appList.count(); j++ )
			{
				bool Exists = hash.find( appList[j] ) != hash.end();
				if ( !Exists )
				{
					hash[appList[j]] = true;

					AppNode* p = appDb->GetApp( appList[j] );

					if ( p && p->exec.data() )
					{
						list.append( p );
					}
				}
			}
		}
	}

	return list.count();
}
开发者ID:kamtec1,项目名称:WalCommander,代码行数:82,代码来源:ext-app-ux.cpp


注:本文中的clPtr::ptr方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。