CCoder::CCoder(bool deflate64Mode): m_Deflate64Mode(deflate64Mode), m_OnePosMatchesMemory(0), m_DistanceMemory(0), m_Created(false), m_Values(0), m_Tables(0) { { CEncProps props; SetProps(&props); } m_MatchMaxLen = deflate64Mode ? kMatchMaxLen64 : kMatchMaxLen32; m_NumLenCombinations = deflate64Mode ? kNumLenSymbols64 : kNumLenSymbols32; m_LenStart = deflate64Mode ? kLenStart64 : kLenStart32; m_LenDirectBits = deflate64Mode ? kLenDirectBits64 : kLenDirectBits32; MatchFinder_Construct(&_lzInWindow); }
void _IcalEvent2Exchange(mapi_object_t *obj_folder, icalcomponent *vevent) { struct ical2exchange ical2exchange; TALLOC_CTX *mem_ctx; enum MAPISTATUS retval; mapi_object_t obj_message; ical2exchange.obj_message = &obj_message; ical2exchange.method=ICAL_METHOD_PUBLISH; mapi_object_init(&obj_message); /*sanity check*/ if(icalcomponent_isa(vevent) != ICAL_VEVENT_COMPONENT) return; mem_ctx = talloc_named(mapi_object_get_session(obj_folder), 0, "ical2exchange"); ical2exchange.lpProps = talloc_array(mem_ctx, struct SPropValue, 2); ical2exchange_init(&ical2exchange, mem_ctx); ical2exchange_get_properties(&ical2exchange, vevent); ical2exchange_convert_event(&ical2exchange); retval = CreateMessage(obj_folder, &obj_message); if (retval != MAPI_E_SUCCESS){ mapi_errstr("CreateMessage", GetLastError()); } else { retval = SetProps(&obj_message, 0, ical2exchange.lpProps, ical2exchange.cValues); if (retval != MAPI_E_SUCCESS){ mapi_errstr("SetProps", GetLastError()); } else { retval = SaveChangesMessage(obj_folder, &obj_message, KeepOpenReadOnly); if (retval != MAPI_E_SUCCESS){ mapi_errstr("SaveChangesMessage", GetLastError()); } } } MAPIFreeBuffer(ical2exchange.lpProps); ical2exchange_reset(&ical2exchange); talloc_free(mem_ctx); }
void CFont::SetProps(const std::string &fontname, unsigned int size, const sf::Color& col) { SetProps(fontname, size); curr_col = col; }
static enum MAPISTATUS import_ocpf_file(TALLOC_CTX *mem_ctx, const struct mbox_data *mdata, mapi_object_t *obj_store, mapi_object_t *obj_folder, const char *base_path) { int ret; enum MAPISTATUS retval; mapi_object_t obj_message; uint32_t context_id; mapi_id_t folder_id; uint32_t cValues = 0; struct SPropValue *lpProps; DEBUG(4, ("[*] Importing OCPF file '%s'\n", base_path)); /* Initialize OCPF context */ ret = ocpf_init(); if (ret == -1) { DEBUG(0, ("[!] ocpf_init\n")); return MAPI_E_CALL_FAILED; } folder_id = mapi_object_get_id(obj_folder); if (folder_id == -1) { retval = MAPI_E_CALL_FAILED; DEBUG(0, ("[!] mapi_object_get_id: %s\n", mapi_get_errstr(retval))); return retval; } ret = ocpf_new_context(base_path, &context_id, OCPF_FLAGS_READ); if (ret == -1) { retval = MAPI_E_CALL_FAILED; DEBUG(0, ("[!] ocpf_new_context: %s\n", mapi_get_errstr(retval))); return retval; } ret = ocpf_parse(context_id); if (ret == -1) { retval = MAPI_E_CALL_FAILED; DEBUG(0, ("[!] ocpf_parse: %s\n", mapi_get_errstr(retval))); return retval; } /* Create the object */ mapi_object_init(&obj_message); retval = CreateMessage(obj_folder, &obj_message); if (retval != MAPI_E_SUCCESS) { DEBUG(0, ("[!] CreateMessage: %s\n", mapi_get_errstr(retval))); mapi_object_release(&obj_message); return retval; } /* Set message recipients */ //retval = ocpf_set_Recipients(mem_ctx, context_id, &obj_message); //if (retval != MAPI_E_SUCCESS && GetLastError() != MAPI_E_NOT_FOUND) return false; //errno = MAPI_E_SUCCESS; /* Set message properties */ retval = ocpf_set_SPropValue(mem_ctx, context_id, obj_folder, &obj_message); if (retval == MAPI_W_ERRORS_RETURNED) { DEBUG(0, ("[!] ocpf_set_SPropValue: %s\n", mapi_get_errstr(retval))); } else if (retval != MAPI_E_SUCCESS) { DEBUG(0, ("[!] ocpf_set_SPropValue: %s\n", mapi_get_errstr(retval))); mapi_object_release(&obj_message); return retval; } /* Set message properties */ lpProps = ocpf_get_SPropValue(context_id, &cValues); retval = SetProps(&obj_message, 0, lpProps, cValues); MAPIFreeBuffer(lpProps); if (retval != MAPI_E_SUCCESS) { DEBUG(0, ("[!] ocpf_get_SPropValue: %s\n", mapi_get_errstr(retval))); mapi_object_release(&obj_message); return retval; } retval = ocpf_server_set_folderID(context_id, folder_id); if (retval != MAPI_E_SUCCESS) { DEBUG(0, ("[!] ocpf_server_set_folderIF: %s\n", mapi_get_errstr(retval))); mapi_object_release(&obj_message); return retval; } /* Save message */ retval = SaveChangesMessage(obj_folder, &obj_message, KeepOpenReadOnly); if (retval != MAPI_E_SUCCESS) { DEBUG(0, ("[!] SaveChangesMessage: %s\n", mapi_get_errstr(retval))); return retval; } mapi_object_release(&obj_message); ocpf_del_context(context_id); ocpf_release(); return MAPI_E_SUCCESS; }
int main(int argc, char *argv[]) { int result[2][3][20] = {{{0,0}}}; int num = 0,totalNum = 90; ZS_boolean_t eviction[3] = {0,0,0}; ZS_boolean_t persistent[3] = {1,1,1}; ZS_boolean_t fifo[3] = {0,0,0}; ZS_boolean_t writethru[3]={1,1,1}; ZS_boolean_t async_write[2]={0,1}; ZS_durability_level_t durability[3] = {0,1,2/*ZS_DURABILITY_PERIODIC,ZS_DURABILITY_SW_CRASH_SAFE, ZS_DURABILITY_HW_CRASH_SAFE*/}; if((fp = fopen("ZS_OpenContainer.log", "w+")) == 0){ fprintf(stderr, " open failed!.\n"); return -1; } if( 1 != preEnvironment()) return 0; fprintf(fp, "************Begin to test ***************\n"); for(int i = 0; i < 2; i++){ p.async_writes = async_write[i]; for(int j = 0; j< 3 ; j++){ testCount = 0; SetProps(1024*1024,eviction[j],persistent[j],fifo[j],writethru[j],durability[j]); result[i][j][0] = ZSOpenContainer_basic_check1(); result[i][j][1] = ZSOpenContainer_basic_check_size(); result[i][j][2] = ZSOpenContainer_openCloseMore1(5); result[i][j][3] = ZSOpenContainer_openCloseMore2(5); result[i][j][4] = ZSOpenContainer_openCloseMore_createObj(5); result[i][j][5] = ZSOpenContainer_openMore(5); result[i][j][6] = ZSOpenContainer_createDeletedMore(5); result[i][j][7] = ZSOpenContainer_createMore(2); result[i][j][8] = ZSOpenContainer_invalid_cguid(); result[i][j][9] = ZSOpenContainer_invalid_flags(); result[i][j][10] = ZSOpenContainer_flags_check(); result[i][j][11] = ZSOpenContainer_invalid_cname1(); result[i][j][12] = ZSOpenContainer_invalid_cname2(); result[i][j][13] = ZSOpenContainer_invalid_cname3(); result[i][j][14] = ZSOpenContainer_invalid_props(); } } CleanEnvironment(); for(int j = 0; j < 2; j++){ for(int k =0; k < 3; k++){ fprintf(stderr, "when async_write = %d.\n",async_write[j]); fprintf(stderr, "test mode:eviction=%d,persistent=%d,fifo=%d,durability=%d.\n",eviction[k],persistent[k],fifo[k],k+1); for(int i = 0; i < 15; i++){ if(result[j][k][i] == 1){ fprintf(stderr, "ZSOpenContainer test %drd success.\n",i+1); num++; } else if(result[j][k][i] == -1) fprintf(stderr, "ZSOpenContainer test %drd fail to test.\n",i+1); else if(result[j][k][i] == 0) fprintf(stderr, "ZSOpenContainer test %drd failed.\n",i+1); else fprintf(stderr, "ZSOpenContainer test %drd hit wrong.\n",i+1); } } } if(totalNum == num){ fprintf(stderr,"************ test pass!******************\n"); fprintf(stderr, "#The related test script is ZS_OpenContainer.c\n"); fprintf(stderr, "#If you want, you can check test details in ZS_OpenContainer.log\n"); return 0; } else fprintf(stderr, "************%d test fail!******************\n",totalNum-num); fprintf(stderr, "#The related test script is ZS_OpenContainer.c\n"); fprintf(stderr, "#If you want, you can check test details in ZS_OpenContainer.log\n"); return -1; }
RetCode BOSS_CALL ServiceRegistry::Load(IIStream *stream) { if (!stream) return Status::InvalidArgument; std::lock_guard<std::recursive_mutex> Lock(Mtx); try { auto Registry = PropertyBagType::Create(RegistryTag); RetCode Code = Registry->Load(stream); if (Code != Status::Ok) return Code; RefObjPtr<IBase> ServiceEnumProp; if ((Code = Registry->GetProperty(ServicesTag, ServiceEnumProp.GetPPtr())) != Status::Ok) return Code; RefObjQIPtr<IEnum> ServiceEnum(ServiceEnumProp); if (!ServiceEnum.Get()) return Status::Fail; ServicePool NewServices; for (RefObjPtr<IBase> i ; ServiceEnum->Next(i.GetPPtr()) == Status::Ok ; i.Release()) { RefObjQIPtr<IPropertyBag> ServiceItem(i); if (!ServiceItem.Get()) return Status::Fail; RefObjPtr<IBase> EntId; if ((Code = ServiceItem->GetProperty(ServiceIdTag, EntId.GetPPtr())) != Status::Ok) return Code; RefObjQIPtr<IEntityId> EntSrvId(EntId); if (!EntSrvId.Get()) return Status::Fail; ServiceId SrvId = 0; if ((Code = EntSrvId->GetId(&SrvId)) != Status::Ok) return Code; RefObjPtr<IBase> ClassIdsEnumProp; if ((Code = ServiceItem->GetProperty(ClassIdsTag, ClassIdsEnumProp.GetPPtr())) != Status::Ok) return Code; RefObjQIPtr<IEnum> ClassIdsEnum(ClassIdsEnumProp); if (!ClassIdsEnum.Get()) return Status::Fail; RefObjPtr<IBase> ModulePathProp; RefObjPtr<IServiceInfo> ServiceInfo; if (ServiceItem->GetProperty(ModulePathTag, ModulePathProp.GetPPtr()) == Status::Ok) { RefObjQIPtr<IString> ModulePath(ModulePathProp); if (!ModulePath.Get()) return Status::Fail; auto LocalSrvInfo = Base<LocalServiceInfo>::Create(); LocalSrvInfo->SetServiceId(SrvId); LocalSrvInfo->AddCoClassIds(ClassIdsEnum); LocalSrvInfo->SetModulePath(ModulePath); ServiceInfo = LocalSrvInfo; } else { RefObjPtr<IBase> RemotePropertiesProp; if (ServiceItem->GetProperty(RemotePropertiesTag, RemotePropertiesProp.GetPPtr()) == Status::Ok) { RefObjQIPtr<IPropertyBag> RemoteProperties(RemotePropertiesProp); if (!RemoteProperties.Get()) return Status::Fail; auto RemoteSrvInfo = Base<RemoteServiceInfo>::Create(); RemoteSrvInfo->SetServiceId(SrvId); RemoteSrvInfo->AddCoClassIds(ClassIdsEnum); RemoteSrvInfo->SetProps(RemoteProperties); ServiceInfo = RemoteSrvInfo; } else return Status::Fail; } if ((Code = ClassIdsEnum->Reset()) != Status::Ok) return Code; for (RefObjPtr<IBase> j ; ClassIdsEnum->Next(j.GetPPtr()) == Status::Ok ; j.Release()) { RefObjQIPtr<IEntityId> ClsId(j); if (!ClsId.Get()) return Status::Fail; ClassId Id = 0; if ((Code = ClsId->GetId(&Id)) != Status::Ok) return Code; NewServices[Id] = ServiceInfo; } } std::swap(Services, NewServices); return Status::Ok; } catch (...) { return Status::Fail; } return Status::Ok; }