本文整理汇总了C++中HList::get方法的典型用法代码示例。如果您正苦于以下问题:C++ HList::get方法的具体用法?C++ HList::get怎么用?C++ HList::get使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HList
的用法示例。
在下文中一共展示了HList::get方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: __mlibc_filelist_get
FILE* __mlibc_filelist_get(void *p, int n)
{
HList<FILE*>* list;
if( p == NULL ) p = __mlibc_filelist_initializer(p);
list = (HList<FILE*>*)p;
if( list->size() <= n ) return NULL;
return list->get(n);
}
示例2: service
/** メインスレッド */
void ImeServer::service()
{
uintptr_t targetID = MonAPI::Message::lookupMainThread("MONITOR.BIN");
if (targetID == THREAD_UNKNOWN) {
printf("IME: Monitor server not found\n");
exit(1);
}
if (MonAPI::Message::send(targetID, MSG_STARTED, 0, 0, 0, NULL)) {
printf("IME: Server start failed\n");
exit(1);
}
// 辞書が読めなかったときはかな漢字変換はすべて失敗を返す
bool dicLoaded = loadDictionary();
MessageInfo info;
while (1) {
if (!MonAPI::Message::receive(&info)) {
switch(info.header) {
case MSG_IMESERVER_GETKANJI:
{
HList<MonAPI::CString> result;
int hit = getKanji(info.str, &result);
// MSG_IMESERVER_GETKANJI
// arg2: ヒット数
if (dicLoaded == true) {
MonAPI::Message::reply(&info, hit, 0, NULL);
} else {
MonAPI::Message::reply(&info, 0, 0, NULL);
}
if (dicLoaded == true && hit > 0) {
// MSG_IMESERVER_STARTKANJI
// arg1: ヒット数
MonAPI::Message::sendReceive(&info, info.from, MSG_IMESERVER_STARTKANJI, hit, 0, 0, NULL);
for (int i = 0; i < hit; i++) {
// MSG_IMESERVER_KANJI
// arg1: ヒット数
// arg2: カウンタ
// str : よみ→漢字
MonAPI::Message::sendReceive(&info, info.from, MSG_IMESERVER_KANJI, hit, i, 0, (const char*)result.get(i));
//printf("%d: %s\n", i, (const char*)result.get(i));
}
// MSG_IMESERVER_ENDKANJI
// arg1: ヒット数
MonAPI::Message::sendReceive(&info, info.from, MSG_IMESERVER_ENDKANJI, hit, 0, 0, NULL);
}
}
break;
case MSG_IMESERVER_GETYOMI:
{
// MSG_IMESERVER_GETYOMI
// arg2: 0-失敗 1-成功
// str : 漢字→よみ
char result[MAX_TEXT_LEN];
if (dicLoaded == true && getYomi(info.str, result) == true) {
strncpy(info.str, result, MAX_TEXT_LEN);
MonAPI::Message::reply(&info, 1, 0, result);
} else {
strncpy(info.str, "", MAX_TEXT_LEN);
MonAPI::Message::reply(&info, 0, 0, "");
}
}
break;
case MSG_IMESERVER_GETKANA:
{
// MSG_IMESERVER_GETKANA
// arg2: 0-失敗 1-成功
// str : 入力文字→かな
char result[MAX_TEXT_LEN];
if (getKana(info.str, result) == true) {
strncpy(info.str, result, MAX_TEXT_LEN);
MonAPI::Message::reply(&info, 1, 0, result);
} else {
strncpy(info.str, "", MAX_TEXT_LEN);
MonAPI::Message::reply(&info, 0, 0, "");
}
}
break;
case MSG_IMESERVER_GETROMAN:
{
// MSG_IMESERVER_GETROMAN
// arg2: 0-失敗 1-成功
// str : かな→入力文字
char result[MAX_TEXT_LEN];
if (getRoman(info.str, result) == true) {
strncpy(info.str, result, MAX_TEXT_LEN);
MonAPI::Message::reply(&info, 1, 0, result);
} else {
strncpy(info.str, "", MAX_TEXT_LEN);
MonAPI::Message::reply(&info, 0, 0, "");
}
}
break;
}
//.........这里部分代码省略.........
示例3: CheckServers
void Monitor::CheckServers()
{
//char buf[256];
PsInfo info;
for (int i = 0; i < servers.size(); i++)
{
alive[i] = false;
}
syscall_set_ps_dump();
while (syscall_read_ps_dump(&info) == 0)
{
CString name = info.name;
for (int i = 0; i < servers.size(); i++)
{
if (servers.get(i) == name)
{
alive[i] = true;
continue;
}
}
}
for (int i = 0; i < servers.size(); i++)
{
if (alive[i]) continue;
if (!firstLoad && servers[i] == "OLDSHELL.EX5") continue;
// sorry we can not use printf before process server starts.
syscall_print("loading ");
syscall_print((const char*)paths.get(i));
syscall_print("....");
// We need OutStream
MessageInfo msg;
if (servers[i] == "SCHEME.EX5")
{
uint32_t tid;
uint32_t targetID = Message::lookupMainThread("SCREEN.EX5");
if (targetID == THREAD_UNKNOWN || Message::sendReceive(&msg, targetID, MSG_SCREEN_GET_STREAM_HANDLE)) {
syscall_print("SCREEN.EX5 not found\n");
continue;
}
syscall_print(monapi_call_process_execute_file_get_tid((const char*)paths.get(i), MONAPI_FALSE, &tid, msg.arg2, msg.arg2) == 0? "OK\n" : "NG\n");
}
else
{
syscall_print(monapi_call_process_execute_file((const char*)paths.get(i), MONAPI_FALSE) == 0? "OK\n" : "NG\n");
}
for (;;)
{
if (Message::receive(&msg)) continue;
if (msg.header == MSG_STARTED) break;
}
}
if (firstLoad) firstLoad = false;
}