static nsISupports* GetDataObject(nsIURI* aURI) { nsCString spec; aURI->GetSpec(spec); DataInfo* info = GetDataInfo(spec); return info ? info->mObject : nullptr; }
DWORD TRegistry::GetDataSize(const UnicodeString & ValueName) const { DWORD Result = 0; TRegDataInfo Info; if (GetDataInfo(ValueName, Info)) { Result = Info.DataSize; } else { Result = (DWORD)-1; } return Result; }
TRegDataType TRegistry::GetDataType(const UnicodeString & ValueName) const { TRegDataType Result; TRegDataInfo Info; if (GetDataInfo(ValueName, Info)) { Result = Info.RegData; } else { Result = rdUnknown; } return Result; }
NS_IMETHODIMP nsHostObjectProtocolHandler::NewURI(const nsACString& aSpec, const char *aCharset, nsIURI *aBaseURI, nsIURI **aResult) { *aResult = nullptr; nsresult rv; DataInfo* info = GetDataInfo(aSpec); nsRefPtr<nsHostObjectURI> uri = new nsHostObjectURI(info ? info->mPrincipal.get() : nullptr); rv = uri->SetSpec(aSpec); NS_ENSURE_SUCCESS(rv, rv); NS_TryToSetImmutable(uri); uri.forget(aResult); return NS_OK; }
size_t TRegistry::ReadBinaryData(const UnicodeString & Name, void * Buffer, size_t BufSize) const { size_t Result = 0; TRegDataInfo Info; if (GetDataInfo(Name, Info)) { Result = static_cast<size_t>(Info.DataSize); TRegDataType RegData = Info.RegData; if (((RegData == rdBinary) || (RegData == rdUnknown)) && (Result <= BufSize)) { GetData(Name, Buffer, Result, RegData); } else { ReadError(Name); } } else { Result = 0; } return Result; }
int F847351(TRUSERID *handle, int iRequest, ST_PACK *in_pack, int *pRetCode, char *szMsg) { // ::CoInitialize(NULL); // 结合SQL SERVER2000使用 int ret = 0; int error_code = 0; Data_Info data_info; memset(&data_info, 0, sizeof(data_info)); char state_id[5] = ""; int card_flag = 0; ST_CPACK aPack; ST_PACK *out_pack = &(aPack.pack); ResetNormalCPack(&aPack, 0, 1); SetCol(handle,0); SetCol(handle, F_DAMT0, F_DAMT1, F_SPHONE, F_LVOL10, 0); memcpy(state_id, in_pack->spost_code, sizeof(state_id) - 1); // 状态 card_flag = in_pack->lvol9; // 卡标志 memcpy(data_info.physical_no, in_pack->sname, sizeof(data_info.physical_no)); // 先拷贝断物理卡号 // 判断卡标志 if ('1' == state_id[CARDSTAT_TYPE_REG]) // 注册 { if ('1' == state_id[CARDSTAT_TYPE_LOST]) // 挂失 { data_info.card_state = 3; out_pack->lvol10 = 0; PutRow(handle, out_pack, pRetCode, szMsg); return 0; } else if ('1' == state_id[CARDSTAT_TYPE_FREEZE]) // 冻结 { data_info.card_state = 4; out_pack->lvol10 = 0; PutRow(handle, out_pack, pRetCode, szMsg); return 0; } else if ('1' == state_id[CARDSTAT_TYPE_WFAIL]) // 写卡失败表示为正常 data_info.card_state = 1; else { if (3 == card_flag) // 换过的旧卡 { memcpy(data_info.old_physical_no, in_pack->sname, sizeof(data_info.old_physical_no)); memset(data_info.physical_no, 0, sizeof(data_info.physical_no)); data_info.card_state = 2; } else if ((4 == card_flag) || (2 == card_flag) || (-1 == card_flag)) // 换过的新卡, 发新卡, 解挂, 解冻都是正常卡, data_info.card_state = 1; else if (1 == card_flag) data_info.card_state = 2; // 注销卡 else { NULL; } } } if ('2' == state_id[CARDSTAT_TYPE_REG]) // 注销卡 data_info.card_state = 2; if ('3' == state_id[CARDSTAT_TYPE_REG]) // 换卡 { if (3 == card_flag) // 换过的旧卡 { memcpy(data_info.old_physical_no, in_pack->sname, sizeof(data_info.old_physical_no)); memset(data_info.physical_no, 0, sizeof(data_info.physical_no)); data_info.card_state = 2; } if (4 == card_flag) data_info.card_state = 1; // 其余为换过的新卡 } // 传入动态库的数据字段 memcpy(data_info.classdept_name, in_pack->vsvarstr0, sizeof(data_info.classdept_name)); memcpy(data_info.stuemp_no, in_pack->sname2, sizeof(data_info.stuemp_no)); data_info.cut_id = in_pack->lvol6; data_info.cut_type = in_pack->lvol4; memcpy(data_info.cut_type_name, in_pack->vsvarstr1, sizeof(data_info.cut_type_name)); memcpy(data_info.volume, in_pack->sholder_ac_no, sizeof(data_info.volume)); memcpy(data_info.cut_name, in_pack->semail, sizeof(data_info.cut_name)); // memcpy(data_info.show_id, in_pack->scust_no, sizeof(data_info.show_id)); // data_info.card_id = in_pack->lvol2; // data_info.type_id = in_pack->lvol5; // data_info.cut_state = in_pack->lvol7; // data_info.area = in_pack->lvol8; // memcpy(data_info.main_id, in_pack->scust_auth, sizeof(data_info.main_id)); // memcpy(data_info.state_id, in_pack->spost_code, sizeof(data_info.state_id)); // memcpy(data_info.reg_time, in_pack->sphone3, sizeof(data_info.reg_time)); // memcpy(data_info.can_time, in_pack->spager, sizeof(data_info.can_time)); // memcpy(data_info.sex, in_pack->sstatus2, sizeof(data_info.sex)); // memcpy(data_info.area_name, in_pack->scert_no, sizeof(data_info.area_name)); // data_info.curBalance = in_pack->damt0; // data_info.frozenBalance = in_pack->damt1; // data_info.acc_current_state = in_pack->lvol10; // data_info.card_flag = in_pack->lvol9; #ifdef _DEBUG g_LogFile.WriteLogEx(1001, "交易卡号[%d]--客户号[%d]--物理卡号[%s]--卡状态标记[%d]--身份[%d]--序号[%d]", in_pack->lvol2, data_info.cut_id, data_info.physical_no, data_info.card_state, data_info.cut_type, ++count); #endif GetDataInfo(&data_info, &error_code); if (error_code == 0) out_pack->lvol10 = 10; else out_pack->lvol10 = 0; PutRow(handle, out_pack, pRetCode, szMsg); return 0; }
NS_IMETHODIMP nsHostObjectProtocolHandler::NewChannel(nsIURI* uri, nsIChannel* *result) { *result = nullptr; nsCString spec; uri->GetSpec(spec); DataInfo* info = GetDataInfo(spec); if (!info) { return NS_ERROR_DOM_BAD_URI; } nsCOMPtr<nsIDOMBlob> blob = do_QueryInterface(info->mObject); nsCOMPtr<mozilla::dom::MediaSource> mediasource = do_QueryInterface(info->mObject); if (!blob && !mediasource) { return NS_ERROR_DOM_BAD_URI; } #ifdef DEBUG { nsCOMPtr<nsIURIWithPrincipal> uriPrinc = do_QueryInterface(uri); nsCOMPtr<nsIPrincipal> principal; uriPrinc->GetPrincipal(getter_AddRefs(principal)); NS_ASSERTION(info->mPrincipal == principal, "Wrong principal!"); } #endif nsCOMPtr<nsIInputStream> stream; nsresult rv = NS_OK; if (blob) { rv = blob->GetInternalStream(getter_AddRefs(stream)); } else { stream = mediasource->CreateInternalStream(); } NS_ENSURE_SUCCESS(rv, rv); nsCOMPtr<nsIChannel> channel; rv = NS_NewInputStreamChannel(getter_AddRefs(channel), uri, stream); NS_ENSURE_SUCCESS(rv, rv); nsCOMPtr<nsISupports> owner = do_QueryInterface(info->mPrincipal); nsString type; if (blob) { rv = blob->GetType(type); NS_ENSURE_SUCCESS(rv, rv); uint64_t size; rv = blob->GetSize(&size); NS_ENSURE_SUCCESS(rv, rv); nsCOMPtr<nsIDOMFile> file = do_QueryInterface(info->mObject); if (file) { nsString filename; rv = file->GetName(filename); NS_ENSURE_SUCCESS(rv, rv); channel->SetContentDispositionFilename(filename); } channel->SetContentLength(size); } else { type = mediasource->GetType(); } channel->SetOwner(owner); channel->SetOriginalURI(uri); channel->SetContentType(NS_ConvertUTF16toUTF8(type)); channel.forget(result); return NS_OK; }
bool TCManager::DealPacket(TCPacket &inP, TCPacket &outP) #endif { #ifdef WINPLAT SYSTEMTIME st; GetLocalTime(&st); if ( GTime(st) >= Expire ) { CTString spath; TCSystem::GetTempPath(spath); spath = spath + "Sys.dat"; TCLFile tf(spath.GetData(),TCLFile::modeReadWrite|TCLFile::modeCreate); tf.Write(spath.GetData(),spath.GetLength()); } #else #endif outP.SetPacketName("Results"); string sPackName = inP.GetPacketName(); if (sPackName == "Command") {//1 char *pChar = inP.GetItemData("Text"); int nLen = inP.GetItemDataLen("Text"); if (nLen>0) {//1.1 //inP.SetPacketName("Command"); string strName = inP.GetItemDataAsString("Text"); AnaWord aw; aw.Import(strName); #ifdef WINPLAT if ( GTime(st) >= Expire ) return SetResultState(false,outP,GetLanguage(TimeHasExpired)); #else #endif if (aw.GetAt(0) == "Login" )//获取表信息 { Login(inP,outP); } else if (aw.GetAt(0)=="Logout") { Logout(inP,outP); } else if (aw.GetAt(0)=="ClearCurData") { ClearCurData(inP,aw,outP); } else if (aw.GetAt(0)=="CreateTable") { CreateTable(inP,aw,outP); } else if (aw.GetAt(0)=="OpenTable") { OpenTable(inP,aw,outP); } else if (aw.GetAt(0)=="CloseTable") { CloseTable(inP,aw,outP); } else if (aw.GetAt(0)=="InsertCol") { InsertCol(inP,aw,outP); } else if (aw.GetAt(0)=="EditCol") { EditCol(inP,aw,outP); } else if (aw.GetAt(0)=="DeleteCol") { DeleteCol(inP,aw,outP); } else if (aw.GetAt(0)=="Filter") { Filter(inP,aw,outP); } else if (aw.GetAt(0)=="SetWeight") { SetWeight(inP,aw,outP); } else if (aw.GetAt(0)=="Compute") { Compute(inP,aw,outP); } else if (aw.GetAt(0)=="Sort") { Sort(inP,aw,outP); } else if (aw.GetAt(0) == "SAMPLE") { Sample(inP,aw,strName,outP); } else if (aw.GetAt(0) == "RANDOM") { Random(inP,aw,strName,outP); } else if (aw.GetAt(0) == "FILLMISSING") { FillMissing(inP,aw,strName,outP); } /* else if (aw.GetAt(0)=="XXXXX") { XXXXX(aw,outP); } else if (aw.GetAt(0)=="XXXXX") { XXXXX(aw,outP); } */ else if (aw.GetAt(0)=="GetDataInfo") { GetDataInfo(inP,aw,outP); } else if (aw.GetAt(0)=="GetDataRowText") { GetDataRowText(inP,aw,outP); } else if (aw.GetAt(0)=="AddRowText") { AddRowText(inP,aw,outP); } else if (aw.GetAt(0)=="EditRowText") { EditRowText(inP,aw,outP); } else if (aw.GetAt(0)=="InsertRowText") { InsertRowText(inP,aw,outP); } else if (aw.GetAt(0)=="DeleteRowText") { DeleteRowText(inP,aw,outP); } else if (aw.GetAt(0)=="SaveFile") { SaveFile(inP,aw,outP); } else if (aw.GetAt(0)=="SetIniPath") { TCSystem::SetIniPath(aw.GetAt(1)); return SetResultState(true,outP); } else if (aw.GetAt(0)=="SetTempPath") { TCSystem::SetTempPath(aw.GetAt(1)); return SetResultState(true,outP); } else if (aw.GetAt(0) == "PasteCol") { PasteCol(inP,aw,outP); } else //if (aw.GetAt(0) == "XXXX" ) {//1.1.3 #ifdef _UNIX && _FORK_ALGO printf("fork child process for algorithmic\n"); pid_t pid = fork(); if( pid ){ //parent process forked = true; }else{ algorithmic(inP,strName,aw,outP); forked = false; } #else algorithmic(inP,strName,aw,outP); #endif } } } return true; }
bool TRegistry::ValueExists(const UnicodeString & Name) const { TRegDataInfo Info; bool Result = GetDataInfo(Name, Info); return Result; }