本文整理汇总了C++中Session::Next方法的典型用法代码示例。如果您正苦于以下问题:C++ Session::Next方法的具体用法?C++ Session::Next怎么用?C++ Session::Next使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Session
的用法示例。
在下文中一共展示了Session::Next方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: opendir
static void
load_prefetch_data()
{
DIR *dir = opendir("/etc/launch_cache");
if (dir == NULL)
return;
struct dirent *dirent;
while ((dirent = readdir(dir)) != NULL) {
if (dirent->d_name[0] == '.')
continue;
Session *session = new Session(dirent->d_name);
if (session->LoadFromDirectory(dirfd(dir)) != B_OK) {
delete session;
continue;
}
if (session->IsMainSession()) {
session->Next() = sMainPrefetchSessions;
sMainPrefetchSessions = session;
} else {
hash_insert(sPrefetchHash, session);
}
}
closedir(dir);
}
示例2:
static void
uninit()
{
unregister_generic_syscall(LAUNCH_SPEEDUP_SYSCALLS, 1);
recursive_lock_lock(&sLock);
// free all sessions from the hashes
uint32 cookie = 0;
Session *session;
while ((session = (Session *)hash_remove_first(sTeamHash, &cookie)) != NULL) {
delete session;
}
cookie = 0;
while ((session = (Session *)hash_remove_first(sPrefetchHash, &cookie)) != NULL) {
delete session;
}
// free all sessions from the main prefetch list
for (session = sMainPrefetchSessions; session != NULL; ) {
sMainPrefetchSessions = session->Next();
delete session;
session = sMainPrefetchSessions;
}
hash_uninit(sTeamHash);
hash_uninit(sPrefetchHash);
recursive_lock_destroy(&sLock);
}
示例3: locker
static Session *
start_session(team_id team, dev_t device, ino_t node, const char *name,
int32 seconds = 30)
{
RecursiveLocker locker(&sLock);
Session *session = new Session(team, name, device, node, seconds);
if (session == NULL)
return NULL;
if (session->InitCheck() != B_OK || session->StartWatchingTeam() != B_OK) {
delete session;
return NULL;
}
// let's see if there is a prefetch session for this session
Session *prefetchSession;
if (session->IsMainSession()) {
// search for session by name
for (prefetchSession = sMainPrefetchSessions;
prefetchSession != NULL;
prefetchSession = prefetchSession->Next()) {
if (!strcmp(prefetchSession->Name(), name)) {
// found session!
break;
}
}
} else {
// ToDo: search for session by device/node ID
prefetchSession = NULL;
}
if (prefetchSession != NULL) {
TRACE(("found prefetch session %s\n", prefetchSession->Name()));
prefetchSession->Prefetch();
}
if (team >= B_OK)
hash_insert(sTeamHash, session);
session->Lock();
return session;
}