void start(const BlockIndex& index, handler handle_fetch) { // Keep the class in scope until this handler completes. const auto self = shared_from_this(); const auto handle_fetch_header = [self](const code ec, const chain::header block_header) { if (self->stop_on_error(ec)) return; self->block_.header = block_header; //self->fetch_hashes(); }; handler_ = handle_fetch; blockchain_.fetch_block_header(index, handle_fetch_header); }
void read_file(const char * fileName ) { uint32_t len; int fd; fd = open(fileName, O_RDONLY); if (fd < 0) { stop_on_error("File %s not found\n",fileName); } while (nbCmd < MAX_CMD) { len = readln (fd, msg.buffer,sizeof(msg.buffer)); if (len == (uint32_t)-1) break; add_cmd_in_list(msg.buffer, len); } close(fd); }
static void test_ACLMulti(void) { const char *strings1[] = {"a", "c", "e"}; const char *strings2[] = {"a", "b", "d"}; WCHAR exp[] = {'A','B','C',0}; IEnumString *obj; TestACL *acl1, *acl2; IACList *acl; IObjMgr *mgr; LPWSTR wstr; LPWSTR wstrtab[15]; LPVOID tmp; UINT i; stop_on_error(CoCreateInstance(&CLSID_ACLMulti, NULL, CLSCTX_INPROC, &IID_IEnumString, (LPVOID *)&obj)); stop_on_error(obj->lpVtbl->QueryInterface(obj, &IID_IACList, (LPVOID *)&acl)); ok(obj->lpVtbl->QueryInterface(obj, &IID_IACList2, &tmp) == E_NOINTERFACE, "Unexpected interface IACList2 in ACLMulti\n"); stop_on_error(obj->lpVtbl->QueryInterface(obj, &IID_IObjMgr, (LPVOID *)&mgr)); #if 0 /* IID_IEnumACString not defined yet in wine */ ole_ok(obj->lpVtbl->QueryInterface(obj, &IID_IEnumACString, &unk)); if (unk != NULL) unk->lpVtbl->Release(unk); #endif ok(obj->lpVtbl->Next(obj, 1, (LPOLESTR *)&tmp, &i) == S_FALSE, "Unexpected return from Next\n"); ok(i == 0, "Unexpected fetched value %d\n", i); ok(obj->lpVtbl->Next(obj, 44, (LPOLESTR *)&tmp, &i) == S_FALSE, "Unexpected return from Next\n"); ok(obj->lpVtbl->Skip(obj, 1) == E_NOTIMPL, "Unexpected return from Skip\n"); ok(obj->lpVtbl->Clone(obj, (IEnumString **)&tmp) == E_OUTOFMEMORY, "Unexpected return from Clone\n"); ole_ok(acl->lpVtbl->Expand(acl, exp)); acl1 = TestACL_Constructor(3, strings1); acl2 = TestACL_Constructor(3, strings2); stop_on_error(mgr->lpVtbl->Append(mgr, (IUnknown *)&acl1->IACList_iface)); stop_on_error(mgr->lpVtbl->Append(mgr, (IUnknown *)&acl2->IACList_iface)); ok(mgr->lpVtbl->Append(mgr, NULL) == E_FAIL, "Unexpected return from Append\n"); expect_str(obj, "a"); expect_str(obj, "c"); expect_str(obj, "e"); expect_str(obj, "a"); expect_str(obj, "b"); expect_str(obj, "d"); expect_end(obj); ole_ok(obj->lpVtbl->Reset(obj)); ok(acl1->pos == 0, "acl1 not reset\n"); ok(acl2->pos == 0, "acl2 not reset\n"); ole_ok(acl->lpVtbl->Expand(acl, exp)); ok(acl1->expcount == 1, "expcount - expected 1, got %d\n", acl1->expcount); ok(acl2->expcount == 0 /* XP */ || acl2->expcount == 1 /* Vista */, "expcount - expected 0 or 1, got %d\n", acl2->expcount); ole_ok(obj->lpVtbl->Next(obj, 15, wstrtab, &i)); ok(i == 1, "Expected i == 1, got %d\n", i); CoTaskMemFree(wstrtab[0]); ole_ok(obj->lpVtbl->Next(obj, 15, wstrtab, &i)); CoTaskMemFree(wstrtab[0]); ole_ok(obj->lpVtbl->Next(obj, 15, wstrtab, &i)); CoTaskMemFree(wstrtab[0]); ole_ok(obj->lpVtbl->Next(obj, 15, wstrtab, &i)); CoTaskMemFree(wstrtab[0]); ole_ok(acl->lpVtbl->Expand(acl, exp)); ok(acl1->expcount == 2, "expcount - expected 1, got %d\n", acl1->expcount); ok(acl2->expcount == 0 /* XP */ || acl2->expcount == 2 /* Vista */, "expcount - expected 0 or 2, got %d\n", acl2->expcount); acl1->expret = S_FALSE; ole_ok(acl->lpVtbl->Expand(acl, exp)); ok(acl1->expcount == 3, "expcount - expected 1, got %d\n", acl1->expcount); ok(acl2->expcount == 1 /* XP */ || acl2->expcount == 3 /* Vista */, "expcount - expected 0 or 3, got %d\n", acl2->expcount); acl1->expret = E_NOTIMPL; ole_ok(acl->lpVtbl->Expand(acl, exp)); ok(acl1->expcount == 4, "expcount - expected 1, got %d\n", acl1->expcount); ok(acl2->expcount == 2 /* XP */ || acl2->expcount == 4 /* Vista */, "expcount - expected 0 or 4, got %d\n", acl2->expcount); acl2->expret = E_OUTOFMEMORY; ok(acl->lpVtbl->Expand(acl, exp) == E_OUTOFMEMORY, "Unexpected Expand return\n"); acl2->expret = E_FAIL; ok(acl->lpVtbl->Expand(acl, exp) == E_FAIL, "Unexpected Expand return\n"); stop_on_error(mgr->lpVtbl->Remove(mgr, (IUnknown *)&acl1->IACList_iface)); ok(acl1->ref == 1, "acl1 not released\n"); expect_end(obj); obj->lpVtbl->Reset(obj); expect_str(obj, "a"); expect_str(obj, "b"); expect_str(obj, "d"); expect_end(obj); obj->lpVtbl->Release(obj); acl->lpVtbl->Release(acl); ok(mgr->lpVtbl->Release(mgr) == 0, "Unexpected references\n"); ok(acl1->ref == 1, "acl1 not released\n"); ok(acl2->ref == 1, "acl2 not released\n"); CoTaskMemFree(acl1); CoTaskMemFree(acl2); }