static nsISupports*
GetDataObject(nsIURI* aURI)
{
  nsCString spec;
  aURI->GetSpec(spec);

  DataInfo* info = GetDataInfo(spec);
  return info ? info->mObject : nullptr;
}
Exemplo n.º 2
0
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;
}
Exemplo n.º 3
0
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;
}
Exemplo n.º 5
0
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;
}
Exemplo n.º 6
0
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;
}
Exemplo n.º 8
0
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;
}
Exemplo n.º 9
0
bool TRegistry::ValueExists(const UnicodeString & Name) const
{
  TRegDataInfo Info;
  bool Result = GetDataInfo(Name, Info);
  return Result;
}