示例#1
0
//++ ------------------------------------------------------------------------------------
// Details:	The invoker requires this function. The command prepares a MI Record Result
//			for the work carried out in the Execute().
// Type:	Overridden.
// Args:	None.
// Return:	MIstatus::success - Functional succeeded.
//			MIstatus::failure - Functional failed.
// Throws:	None.
//--
bool CMICmdCmdInterpreterExec::Acknowledge( void )
{
	if( m_lldbResult.GetOutputSize() > 0 )
	{
		CMIUtilString strMsg( m_lldbResult.GetOutput() );
		strMsg = strMsg.StripCREndOfLine();
		CMICmnStreamStdout::TextToStdout( strMsg );

		// Send the LLDB result message to console so the user can see the result of the  
		// command they typed. It is not necessary an error message.
		CMICmnStreamStderr::LLDBMsgToConsole( strMsg );
	}
	if( m_lldbResult.GetErrorSize() > 0 )
	{
		CMIUtilString strMsg( m_lldbResult.GetError() );
		strMsg = strMsg.StripCREndOfLine();
		CMICmnStreamStderr::LLDBMsgToConsole( strMsg );

		// Send LLDB's error message to the MI Driver's Log file
		CMICmnStreamStdout::TextToStdout( strMsg );
	}

	const CMICmnMIResultRecord miRecordResult( m_cmdData.strMiCmdToken, CMICmnMIResultRecord::eResultClass_Done );
	m_miResultRecord = miRecordResult;
	
	return MIstatus::success;
}
std::string CPropertySheetHelper::GetSlot(const UINT uSlot)
{
	// strMsg = ". Slot n: ";
	std::string strMsg(". Slot ");
	strMsg += '0' + uSlot;
	strMsg += ": ";

	const SS_CARDTYPE OldCardType = m_ConfigOld.m_Slot[uSlot];
	const SS_CARDTYPE NewCardType = m_ConfigNew.m_Slot[uSlot];

	if ((OldCardType == CT_Empty) || (NewCardType == CT_Empty))
	{
		if (NewCardType == CT_Empty)
		{
			strMsg += GetCardName(OldCardType);
			strMsg += " card removed\n";
		}
		else
		{
			strMsg += GetCardName(NewCardType);
			strMsg += " card added\n";
		}
	}
	else
	{
			strMsg += GetCardName(OldCardType);
			strMsg += " card removed & ";
			strMsg += GetCardName(NewCardType);
			strMsg += " card added\n";
	}

	return strMsg;
}
//void CMaintenanceMenu::OnButton7(int iEvent, unsigned char * pEventData, int iDataLen)
//{
//	string strErr = "";
//
//	DBG_PRINT(("g_globalArg->m_curInvVol->m_ieno = %u", g_globalArg->m_curInvVol->m_ieno));
//	DBG_PRINT(("g_globalArg->m_curInvVol->m_remain = %u", g_globalArg->m_curInvVol->m_remain));
//	INT32 nOldCurNo = g_globalArg->m_curInvVol->m_ieno + 1 - 
//		g_globalArg->m_curInvVol->m_remain;
//	DBG_PRINT(("g_globalArg->m_curInvVol->m_ieno = %u", nOldCurNo));
//
//	if (g_globalArg->m_initFlag == 0)
//	{
//		strErr = "机器未初始化";
//		CaMsgBox::ShowMsg(strErr);
//		return ;
//	}
//
//	string strInvNo("");
//	INT32 status;
//	INT8 tmpstr[128];
//	UINT32 curInvNo;
//	CInvVol invVol;
//
//	DBG_ENTER("CDeptEditWin::DoActive()");
//	ReFresh();
//
//	CaMsgBox msgBox("新当前号:",CaMsgBox::MB_INPUT);
//	msgBox.SetInputType(CaInput::aINT);
//	msgBox.SetMaxInputLen(8);
//	while (1)
//	{
//		msgBox.ShowBox();
//		status = msgBox.m_iStatus;
//		strInvNo = (INT8 *)msgBox.GetInputContent();
//		if (status != OK_PRESSED || strInvNo != "")
//			break;
//
//		CaMsgBox::ShowMsg("请输入有效发票号");
//	}
//
//	if (status == OK_PRESSED)
//	{
//		curInvNo  = atoi(strInvNo.c_str());
//		DBG_PRINT(("curInvNo = %u", curInvNo));
//
//		if (curInvNo <= 0)
//		{
//			CaMsgBox::ShowMsg("当前发票号必须大于0");
//			this->ReFresh();
//			return;
//		}
//
//		DBG_PRINT(("m_InvStartNo = %u", g_globalArg->m_curInvVol->m_isno));
//		DBG_PRINT(("m_InvEndNo = %u", g_globalArg->m_curInvVol->m_ieno));
////		if((curInvNo < g_globalArg->m_curInvVol->m_InvStartNo)||
////			((curInvNo - g_globalArg->m_curInvVol->m_InvStartNo) >= MAX_INV_VOL_NUM))
//		if( curInvNo < g_globalArg->m_curInvVol->m_isno || 
//			curInvNo > g_globalArg->m_curInvVol->m_ieno)
//		{
//			CaMsgBox::ShowMsg("当前发票号必须属于当前卷");
//			this->ReFresh();
//			return;
//		}
//
//		DBG_PRINT(("nOldCurNo = u%", nOldCurNo));
//    	DBG_PRINT(("curInvNo = u%", curInvNo));
//		if (curInvNo <= nOldCurNo)
//		{
//			CaMsgBox::ShowMsg("不能向前更新");
//			this->ReFresh();
//			return;
//		}
//
//		//更新INV_VOL中的当前卷信息
//		string sqlstr= "";
//		INT32 errcode;
//		UINT32 nRemain = g_globalArg->m_curInvVol->m_ieno - curInvNo + 1;
//		
//		sprintf(tmpstr,"update INV_VOL set REMAIN = %u where CODE = '%s' and IS_NO = %u",
//			nRemain, g_globalArg->m_curInvVol->m_code.c_str(), 
//			g_globalArg->m_curInvVol->m_isno);
//		sqlstr=tmpstr;
//		invVol.SetSQL(sqlstr);
//		errcode = invVol.ExecuteSQL();
//		if (invVol.ExecuteSQL() != SQLITE_OK)
//		{
//			DBG_PRINT(("更新当前发票号错误 errcode=%d", errcode));
//			CaMsgBox::ShowMsg("更新当前发票号失败");
//			return;
//		}
//		g_globalArg->m_curInvVol->m_remain = nRemain;
//		CaMsgBox::ShowMsg("更新当前发票号成功");		
//	}
//}
void CMaintenanceMenu::OnButton7(int iEvent, unsigned char * pEventData, int iDataLen)
{
	string strMsg("");
	COperator oper;
	INT8 chValue[64];
	memset((void*)chValue, 0, sizeof(chValue));
	
	sprintf(chValue, "where ROLE = %u", DIRECTOR_ROLE);
	oper.m_filter = chValue;
	oper.Requery();
	INT32 errcode = oper.LoadOneRecord();
	if (SQLITE_DONE == errcode)
	{
		strMsg = "无主管员工";
	}
	else if (SQLITE_OK == errcode)
	{
		sprintf(chValue, "密码:%s", oper.m_passwd.c_str());
		strMsg = chValue;		
	}
	else
	{
		strMsg = "查询主管员工失败";	
	}
	CaMsgBox::ShowMsg(strMsg);
	
}
示例#4
0
HRESULT GenerateError (REFCLSID rClsId, REFIID riid, LPCOLESTR pcHelpFile, HRESULT hRes) {
#endif
	CComBSTR	strMsgLine;
	DWORD dwErr = FormatMessageLine( strMsgLine, hRes, NULL );
#if defined(_DEBUG)
	USES_CONVERSION;
	if( dwErr ) {
		LPTSTR lptMsg = NULL;
		CComBSTR	strMsg(L"\n---------------------- Fehler beim Erzeugen der Fehlermeldung ----------------------\n");
		if( ::FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER, NULL, dwErr, 1024, (LPTSTR) &lptMsg, 0, NULL ) ) {
			USES_CONVERSION;
			strMsg.Append( A2W(lptMsg) );
			::LocalFree(lptMsg);
			if( 0x716 == dwErr ) {
				strMsg.Append(L"\n----------------------------------------------------------------------------------------");
				strMsg.Append( L"\nHat die Message-Ressource den Wert 1? ;-)" );
			}
			strMsg.Append(L"\n----------------------------------------------------------------------------------------");
			_CrtDbgReport(_CRT_ASSERT, strFile, line, NULL, W2A(strMsg) );
			return E_FAIL;
		}
	}
	CComBSTR	strDbgLine;
	FormatDebuggerLine( strDbgLine, hRes, strFile, line, strExpr );
	strDbgLine.Append( _T("\t") );
	strDbgLine.Append( strMsgLine );
	strDbgLine.Append( _T("\n") );
	{ ATLTRACE( W2A(strDbgLine) ); }
#endif
	DWORD	dwHelpID = hRes;
	return AtlReportError(rClsId, strMsgLine, dwHelpID, pcHelpFile, riid, hRes);
}
示例#5
0
文件: sockets.c 项目: fmccabe/l-and-o
/* acceptConnection allows a connection from a connect socket and returns
   a filePo which can read/write to the remote host
 */
retCode acceptConnection(sockPo listen, ioEncoding encoding, ioPo *inC, ioPo *outC) {
  struct sockaddr_in cli_addr;
  socklen_t clilen = sizeof(cli_addr);
  int lSock = fileNumber(O_FILE(listen));
  int cliSock;

  memset((char *) &cli_addr, 0, sizeof(cli_addr));

  cliSock = accept(lSock, (struct sockaddr *) &cli_addr, &clilen);

  if (cliSock < 0) {
    switch (errno) {
      case EWOULDBLOCK:
        return Fail;
      case EINTR:      //  Interrupted
        return Eof;
      default:
        return Error;
    }
  } else {
    char cl_name[MAXLINE];
    struct in_addr addr = *(struct in_addr *) &cli_addr;
    strMsg(cl_name, NumberOf(cl_name), "%s:%d", inet_ntoa(addr), ntohs(cli_addr.sin_port));

    *inC = O_IO(newObject(sockClass, cl_name, cliSock, encoding, ioREAD));
    *outC = O_IO(newObject(sockClass, cl_name, cliSock, encoding, ioWRITE));

    return Ok;
  }
}
//++
//------------------------------------------------------------------------------------
// Details: The invoker requires this function. The command prepares a MI Record
// Result
//          for the work carried out in the Execute().
// Type:    Overridden.
// Args:    None.
// Return:  MIstatus::success - Functional succeeded.
//          MIstatus::failure - Functional failed.
// Throws:  None.
//--
bool CMICmdCmdInterpreterExec::Acknowledge() {
  if (m_lldbResult.GetOutputSize() > 0) {
    CMIUtilString strMsg(m_lldbResult.GetOutput());
    strMsg = strMsg.StripCREndOfLine();
    CMICmnStreamStdout::TextToStdout(strMsg);
  }
  if (m_lldbResult.GetErrorSize() > 0) {
    CMIUtilString strMsg(m_lldbResult.GetError());
    strMsg = strMsg.StripCREndOfLine();
    CMICmnStreamStderr::LLDBMsgToConsole(strMsg);
  }

  const CMICmnMIResultRecord miRecordResult(
      m_cmdData.strMiCmdToken, CMICmnMIResultRecord::eResultClass_Done);
  m_miResultRecord = miRecordResult;

  return MIstatus::success;
}
void DeleteVideoToServer(LPVOID lpParam)
{
	TCHAR* pKeyBuffer = (TCHAR*)lpParam;
	TSTLSTRING strKey = TSTLSTRING(pKeyBuffer);
	delete [] pKeyBuffer;

	VideoInfo item = VideoDataManager::GetInstance().GetVideoInfo(strKey);

	string PackageDataSegment("VideoID=");
	PackageDataSegment.append(CT2A(item.VideoID.c_str()));

	vector<BYTE> vPostData(PackageDataSegment.length());
	memcpy(&vPostData.at(0), PackageDataSegment.c_str(), PackageDataSegment.length());

	try
	{
		vector<BYTE> vResponseData;
		WebClient::Download(VideoConfig::GetInstance().GetVideoProxyDeleteVideoUrl(), vResponseData, vPostData);
		vResponseData.push_back(0);

		Encoding encode;
		TSTLSTRING strRetValue = CW2T(encode.Convert((const char*)&vResponseData.at(0), CP_UTF8).c_str());
		TSTLSTRING::size_type pos = strRetValue.find(TEXT(":"));
		if(pos == TSTLSTRING::npos)
		{
			TSTLSTRING ErrMsg(TEXT("·þÎñÆ÷·µ»ØÒì³££¡£¨"));
			ErrMsg.append(strRetValue);
			ErrMsg.append(TEXT("£©"));
			VideoDataManager::GetInstance().ErrorDeleteVideoAndResume(strKey, ErrMsg);
			throw Exception(ErrMsg);
		}
		if(TEXT("OK") == strRetValue.substr(0, pos))
		{
			TSTLSTRING strMsg(item.VideoName);
			CTipsDlg::ShowTips(strMsg, false);
			VideoDataManager::GetInstance().LocalDeleteVideo(strKey);
		}
		else
		{
			TSTLSTRING ErrMsg(TEXT("ɾ³ýÊÓƵʧ°Ü£¡£¨"));
			ErrMsg.append(strRetValue.substr(pos + 1));
			ErrMsg.append(TEXT("£©"));
			VideoDataManager::GetInstance().ErrorDeleteVideoAndResume(strKey, ErrMsg);
			throw Exception(ErrMsg);
		}
	}
	catch(Exception& error)
	{
		VideoDataManager::GetInstance().VideoFail(strKey, error.GetMessage());
		MessageBox(NULL, error.GetMessage().c_str(), TEXT("´íÎó"), MB_OK|MB_ICONERROR);
	}

}
示例#8
0
bool ClientHandler::OnConsoleMessage(CefRefPtr<CefBrowser> browser,
                                     const CefString& message,
                                     const CefString& source,
                                     int line)
{
  REQUIRE_UI_THREAD();

  bool first_message;
  std::string logFile;

  {
    AutoLock lock_scope(this);
    
    first_message = m_LogFile.empty();
    if(first_message) {
      std::stringstream ss;
      ss << AppGetWorkingDirectory();
#if defined(OS_WIN)
      ss << "\\";
#else
      ss << "/";
#endif
      ss << "console.log";
      m_LogFile = ss.str();
    }
    logFile = m_LogFile;
}
  
  FILE* file = fopen(logFile.c_str(), "a");
  if(file) {
    std::stringstream ss;
    ss << "Message: " << std::string(message) << "\r\nSource: " <<
        std::string(source) << "\r\nLine: " << line <<
        "\r\n-----------------------\r\n";
    fputs(ss.str().c_str(), file);
    fclose(file);

    if(first_message)
      SendNotification(NOTIFY_CONSOLE_MESSAGE);
  }

  if( browser ) {
    //auto show console if something is Uncaught
    std::string strMsg(message);
    const char * err = "Uncaught ";
    if( 0 == strncmp(strMsg.c_str(), err, strlen(err) ) ) {
      browser->ShowDevTools();
    }
  }

  return false;
}
void CLocalSvrCommunication::GetData( )
{
    QLocalSocket* pSocket = qobject_cast< QLocalSocket* >( sender( ) );

    quint64 nDataSize = pSocket->bytesAvailable( );
    if ( 0 == nDataSize ) {
        return;
    }

    QByteArray byData = pSocket->readAll( );
    QString strMsg( byData );
    emit NotifyMsg( strMsg );
}
示例#10
0
// This is the command 'NOTIFY'
void asdkBubble()
{
	// Create the bubble notification message, and callbacks.
	int result;
	AcApDocument *pDoc=acDocManager->curDocument();
	CString strMsg((CString)_T("Document ")+pDoc->docTitle()+_T(" Notification"));
	AcTrayItemBubbleWindowControl bwControl(_T("Attention!"), strMsg, _T("HyperText Here"), _T("www.autodesk.com"));
	bwControl.SetIconType(AcTrayItemBubbleWindowControl::BUBBLE_WINDOW_ICON_INFORMATION);
	bwControl.SetCallback(BubbleWindowCallback, pDoc);
	
	// Display the notification at the first of our icons - kept as a pointer in the map.
	CTrayItem *pFirstTrayItem=NULL;
	documentTrayMap.Lookup(acDocManager->curDocument(),pFirstTrayItem);
	if(pFirstTrayItem)
		result=pFirstTrayItem->ShowBubbleWindow(&bwControl);
}
示例#11
0
void KeTunnelClient::OnRouterMessage(const std::string &peer_id,
                                     talk_base::Buffer &msg)
{
    std::string strMsg(msg.data(),msg.length());
    Json::Reader reader;
    Json::Value jmessage;
    if (!reader.parse(strMsg, jmessage)) {
        LOG(WARNING) << "Received unknown message. " << strMsg;
        return;
    }
    std::string command;
    bool ret = GetStringFromJsonObject(jmessage, kKaerMsgCommandName, &command);
    if(!ret){
        LOG(WARNING)<<"get command error"<<peer_id<<" Msg "<<strMsg;
        return;
    }

}
示例#12
0
void ClientConn::_HandleMsgData(CImPdu* pPdu)
{
    IM::Message::IMMsgData msg;
    uint32_t nSeqNo = pPdu->GetSeqNum();
    if(msg.ParseFromArray(pPdu->GetBodyData(), pPdu->GetBodyLength()))
    {
        play("message.wav");
        
        uint32_t nFromId = msg.from_user_id();
        uint32_t nToId = msg.to_session_id();
        uint32_t nMsgId = msg.msg_id();
        IM::BaseDefine::MsgType nMsgType = msg.msg_type();
        uint32_t nCreateTime = msg.create_time();
        string strMsg(msg.msg_data().c_str(), msg.msg_data().length());
        
        IM::BaseDefine::SessionType nSessionType;
        if(nMsgType == IM::BaseDefine::MSG_TYPE_SINGLE_TEXT)
        {
            nSessionType = IM::BaseDefine::SESSION_TYPE_SINGLE;
        }
        else if(nMsgType == IM::BaseDefine::MSG_TYPE_SINGLE_AUDIO)
        {
            nSessionType = IM::BaseDefine::SESSION_TYPE_SINGLE;
        }
        else if(nMsgType == IM::BaseDefine::MSG_TYPE_GROUP_TEXT)
        {
            nSessionType = IM::BaseDefine::SESSION_TYPE_GROUP;
        }
        else if(nMsgType == IM::BaseDefine::MSG_TYPE_GROUP_AUDIO)
        {
            nSessionType = IM::BaseDefine::SESSION_TYPE_GROUP;
        }
		
		if(nSessionType == IM::BaseDefine::SESSION_TYPE_SINGLE)
			sendMsgAck(nToId , nFromId , nSessionType, nMsgId);
        m_pCallback->onRecvMsg(nSeqNo, nFromId, nToId, nMsgId, nCreateTime, nMsgType, strMsg);
		sendMsgReadAck( nToId , nFromId , nSessionType, nMsgId);
    }
    else
    {
        m_pCallback->onError(nSeqNo, pPdu->GetCommandId(), "parse pb falied");
    }
}
示例#13
0
bool CPropertySheetHelper::HardwareConfigChanged(HWND hWnd)
{
	std::string strMsg("The emulator needs to restart as the hardware configuration has changed:\n");
	strMsg += "\n";

	std::string strMsgMain;
	{
		if (CONFIG_CHANGED(m_Apple2Type))
			strMsgMain += ". Emulated computer has changed\n";

		if (CONFIG_CHANGED(m_Slot[4]))
			strMsgMain += GetSlot(4);

		if (CONFIG_CHANGED(m_Slot[5]))
			strMsgMain += GetSlot(5);

		if (CONFIG_CHANGED(m_bEnhanceDisk))
			strMsgMain += ". Floppy disk speed setting has changed\n";

		if (CONFIG_CHANGED(m_bEnableHDD))
			strMsgMain += ". Harddisk(s) have been plugged/unplugged\n";

		if (CONFIG_CHANGED(m_bEnableTheFreezesF8Rom))
			strMsgMain += ". F8 ROM changed (The Freeze's F8 Rom)\n";
	}

	std::string strMsgPost("\n");
	strMsgPost += "This change will not take effect until the next time you restart the emulator.\n\n";
	strMsgPost += "Would you like to restart the emulator now?";

	strMsg += strMsgMain;
	strMsg += strMsgPost;

	if (MessageBox(hWnd,
			strMsg.c_str(),
			TEXT(REG_CONFIG),
			MB_ICONQUESTION | MB_OKCANCEL | MB_SETFOREGROUND) == IDCANCEL)
		return false;

	return true;
}
示例#14
0
void CBuzzQT::Draw(CBuzzController& c_contr) {
   /* This is the message that will be shown */
   std::string strMsg("R" + ToString(c_contr.GetBuzzVM()->robot));
   /* Append debug message */
   if(c_contr.GetDebugMsg() != "")
      strMsg += ": " + c_contr.GetDebugMsg();
   /* Disable face culling to be sure the text is visible from anywhere */
   glDisable(GL_CULL_FACE);
   /* Disable lighting, so it does not interfere with the chosen text color */
   glDisable(GL_LIGHTING);
   /* Set the text color */
   CColor cColor(CColor::BLACK);
   glColor3ub(cColor.GetRed(), cColor.GetGreen(), cColor.GetBlue());
   /* The position of the text is expressed wrt the reference point of
    * the robot */
   GetOpenGLWidget().renderText(0.0, 0.0, 0.4,   // position
                                strMsg.c_str()); // text
   /* Restore lighting */
   glEnable(GL_LIGHTING);
   /* Restore face culling */
   glEnable(GL_CULL_FACE);
}
示例#15
0
void CCropDialog::on_pushButtonCrop_clicked()
{
	/* *************************
	m_pCropThread = new CCropThread(this);
	m_pCropThread->start();
	**************************** */

	QString strTemplateFilename(tr("%1/%2")
								.arg(ui.lineEditSourceFolder->text())
								.arg(sTEMPLATE_IMAGE_FILENAME));
	if(QFile::exists(strTemplateFilename) != true)
	{
		QMessageBox::critical(this, tr("Missing the template image file"), 
							tr("%1 is necessary to crop the image stacks.")
							.arg(sTEMPLATE_IMAGE_FILENAME));
		return;
	}
	
	// make sub folders for cropped data
	QString strZoomOutFolder, strColumnFolder;
	QDir Dir;
	
	m_bStartCropping = true;
	ui.pushButtonCrop->setEnabled(false);
	ui.pushButtonPauseResume->setEnabled(true);
	ui.listWidgetOutput->clear();
	m_bProcessFinished = true;
	m_bPause = false;
	
	////////////////////////////////
	// ZO_1 is not a part of ZoomOutLevel, but needs to be made.
	for(quint32 i = 0, nZoomOutLevel = 1; 
		i < m_TissueBlock.m_nNumZoomLevel+1; i++, nZoomOutLevel *= 2)
	{
		strZoomOutFolder = ui.lineEditDestFolder->text() 
							+ "/" 
							+ QString(sZOOM_OUT_DIR_PREFIX"%1")
								.arg(nZoomOutLevel); 
		Dir.mkdir(strZoomOutFolder);
		PrintToOutput(strZoomOutFolder + " folder created.");

		for(quint32 j = 0; j < m_TissueBlock.m_nNumCol; j++)
		{
			strColumnFolder = strZoomOutFolder + "/" + QString("%1").arg(j);
			Dir.mkdir(strColumnFolder);
			PrintToOutput("\t" + strColumnFolder + " folder created.");
		}
	}

	// open list for source image files
	qint32 nOffset = (m_TissueBlock.m_nStartCol > m_TissueBlock.m_nEndCol) ?
					-1 : 1;
	//QString strSrcFile;
	QString strLine;
	quint32 nSrcStartCol = m_TissueBlock.m_nStartCol;
	
	/////////////////////
	// specify a task that processes only one column
	quint32 nColsToCrop = m_TissueBlock.m_nNumCol;
	quint32 iCol = 0;
	
	//if(m_nSrcCropCol != -1) // an image stack number is specified
	if(ui.comboBoxColumn->currentText() != "All")
	{
		int nSrcCropCol = ui.comboBoxColumn->currentText().toInt();
		iCol = qAbs((int)nSrcStartCol - nSrcCropCol);//(int)m_nSrcCropCol);
		nColsToCrop = iCol+1; // only one column
		nSrcStartCol = nSrcCropCol;//m_nSrcCropCol;
	}

	//for( i = 0; i < m_TissueBlock.m_nNumCol; i++, nSrcStartCol+=nOffset)
	for(; iCol < nColsToCrop; iCol++, nSrcStartCol+=nOffset)
	{
#if 0
		//////////////////////////////////////////////////////////////////////
		// src image crop area
		QString strCropFile(tr("%1/%2_crop_point.txt")
								.arg(ui.lineEditSourceFolder->text()) 
								.arg(nSrcStartCol));

		QFile fileCrop(strCropFile);
		if(!(fileCrop.open(QFile::ReadOnly | QFile::Text)))
		{
			PrintToOutput(tr("No %1 exists.").arg(strCropFile));
			continue; // ignore no folder exists
			//QMessageBox::critical(this, tr("File open error"), 
			//							tr("No %1 exists.").arg(strCropFile));
			//return;
		}
		QTextStream txtstrmCrop(&fileCrop);
		while(!txtstrmCrop.atEnd())
		{
			strLine = txtstrmCrop.readLine();
			if(strLine.isNull())
				break;
			m_TissueBlock.m_vCropStartX.append(strLine.toInt());
		};

		//////////////////////////////////////////////////////////////////////
		// src image crop area index
		QString strChunkPosFile(tr("%1/%2_chunk_pos.txt")
									.arg(ui.lineEditSourceFolder->text())
									.arg(nSrcStartCol));

		QFile fileChunkPos(strChunkPosFile);
		if(!fileChunkPos.open(QFile::ReadOnly | QFile::Text))
		{
			PrintToOutput(tr("No %1 exists.").arg(strChunkPosFile));
			continue; // ignore no folder exists
			//QMessageBox::critical(this, tr("File open error"), 
			//							tr("No %1 exists.").arg(strChunkPosFile));
			//return;
		}
		QTextStream txtstrmChunkPos(&fileChunkPos);
		while(!txtstrmChunkPos.atEnd())
		{
			strLine = txtstrmChunkPos.readLine();
			if(strLine.isNull())
				break;
			m_TissueBlock.m_vChunkPos.append(strLine.toDouble());
		}
#endif		

		QString strSubFolder(tr("%1/%2")
									.arg(ui.lineEditSourceFolder->text())
									.arg(nSrcStartCol));
		QDir dirDataFolder(strSubFolder);
	    
		QStringList slstFilters;
	    slstFilters << QString(tr("*%1").arg(m_Settings.m_strDestFileFormat));
	    dirDataFolder.setNameFilters(slstFilters);
		QStringList slstEntry = dirDataFolder.entryList();
		
		PrintToOutput(tr("Files: %1").arg(slstEntry.count()));
		
		if(slstEntry.count() > 0)
			ui.progressBarImage->setRange(0, slstEntry.count()-1);

		QString strDestImage, strOptions, strSrcImage, strArgs;
		//QStrinList strlstLine;
		qreal rZ;
		quint32 nImage;//, nStartImage;//, nIndexChunk = 0;
		//bool bFirst = true;
		
		//while(!txtstrmSrc.atEnd())
		for(int iImage = 0; iImage < slstEntry.count(); iImage++)
		{
			//QStringList slstImageFile = slstEntry.at(nImage).split(".");
			QString strImageFile = slstEntry.at(iImage);

			// src image filename
			//strLine = txtstrmSrc.readLine();
			//if(strLine.isNull())
			//	break;
			
			// get z coordinate value
			int nPosZ = strImageFile.indexOf('z', 0);//strLine.indexOf('z', 0);
			if(nPosZ == -1)
			{
				QMessageBox::critical(this, tr("Invalid src image filename"), 
									tr("%1 is an invalid src image filename.")
									.arg(strImageFile)); //.arg(strLine));
				m_bStartCropping = false;
				ui.pushButtonCrop->setEnabled(true);
				ui.pushButtonPauseResume->setEnabled(false);
				return;
			}
			rZ = strImageFile.mid(nPosZ+1, 6).toDouble();//strLine.mid(nPosZ+1, 6).toDouble();

			nImage = qRound((rZ - m_TissueBlock.m_rMinStartZ)\
							/m_TissueBlock.m_rThickness);
			//if(bFirst)
			//{
			//	bFirst = false;
			//	nStartImage = nImage;
			//}
#if 0			
			//if((nImage - nStartImage) == m_TissueBlock.m_vChunkPos[nIndexChunk])
			if(rZ == m_TissueBlock.m_vChunkPos[nIndexChunk])
				nIndexChunk++;
#endif
			// make src filename
			strSrcImage = QString(tr("%1/%2/%3")
									.arg(ui.lineEditSourceFolder->text())
									.arg(nSrcStartCol)
									.arg(strImageFile));//.arg(strLine));
			// make dest filename
			QString strZoomOutDir = m_Settings.m_strZoomOutDirPrefix + "1";
			//strDestImage = QString(tr("%1/%2/%3/%4%5")
			//							.arg(ui.lineEditDestFolder->text()) 
			//							.arg(strZoomOutDir)
			//							.arg(i)
			//							.arg(nImage)
			//							.arg(m_Settings.m_strDestFileFormat));
			strDestImage.sprintf("%s/%s/%d/%05d%s", 
										ui.lineEditDestFolder->text().toStdString().c_str(),
										strZoomOutDir.toStdString().c_str(),
										iCol, // jrkwon: %05d
										nImage,
										m_Settings.m_strDestFileFormat.toStdString().c_str());
#if 0			
			strOptions = QString(tr("%1x%2+%3+%4")
							.arg(m_TissueBlock.m_nWidth)
							.arg(m_TissueBlock.m_nLength)
							.arg(m_TissueBlock.m_vCropStartX[nIndexChunk])
							.arg(0));
			strArgs = QString(tr("%1 -crop %2 %3")
							.arg(strSrcImage)
							.arg(strOptions)
							.arg(strDestImage));
			PrintToOutput(strArgs);

			QStringList strlstArgs;
			strlstArgs << strSrcImage << tr("-crop") << strOptions << strDestImage;

			QString strImageMagickConvert;
			strImageMagickConvert = QString(tr("%1%2%3%4")
										 .arg(m_Settings.m_strProjectDir)
										 .arg(m_Settings.m_strToolkit)
										 .arg(m_Settings.m_strImageMagick)
										 .arg("/convert"));
#endif
			ui.progressBarColumn->setValue(iCol);
			ui.progressBarImage->setValue(iImage);
#if 0
			while(m_bProcessFinished == false || m_bPause)
			{
				QCoreApplication::processEvents();				
			}
			m_Process.start(strImageMagickConvert, strlstArgs);
			m_bProcessFinished = false;
			//PrintToOutput(strImageMagickConvert);

			QCoreApplication::processEvents();
#endif			
			// see if there already is a dest file, and do this only no dest file exists
			if(QFile::exists(strDestImage) == false)
			{
				quint32 nStartX;
				if(GetCropX(strSrcImage, nStartX))
				{
					//DoCrop(m_TissueBlock.m_vCropStartX[nIndexChunk], 0, 
					DoCrop(nStartX, 0, 
							m_TissueBlock.m_nWidth, m_TissueBlock.m_nLength,
							strSrcImage, strDestImage);
					QString strMsg(tr("CropX: %1, Src: %2, Dest: %3")
									.arg(nStartX).arg(strSrcImage).arg(strDestImage));
					PrintToOutput(strMsg);
				}
			}
			
			if(m_bStartCropping != true)
			{
				ui.pushButtonCrop->setEnabled(true);
				ui.pushButtonPauseResume->setEnabled(false);
				ui.progressBarColumn->setValue(0);
				ui.progressBarImage->setValue(0);
				return;
			}
		}
	}
	ui.pushButtonCrop->setEnabled(true);
	ui.pushButtonPauseResume->setEnabled(false);
}
//根据错误码解析成具体的错误信息
CString CUserAddDlg::GetSdkErrorInfo(int nError)
{
	CString strMsg(_CS("Error.UnkownErr"));
	switch(nError)
	{
	case H264_DVR_SDK_NOTVALID:			//非法请求
		strMsg = _CS("Error.ReqErr");
		break;
	case H264_DVR_NO_INIT:				//SDK未经初始化
		strMsg = _CS("Error.NoInit");
		break;
	case H264_DVR_ILLEGAL_PARAM:			//用户参数不合法
		strMsg = _CS("Error.ParamInvalid");
	    break;
	case H264_DVR_INVALID_HANDLE:		//句柄无效
		strMsg = _CS("Error.HandleInvalid");
	    break;
	case H264_DVR_SDK_UNINIT_ERROR:		//SDK清理出错
		strMsg = _CS("Error.ClearSDKError");
		break;
	case H264_DVR_SDK_TIMEOUT:			//等待超时
		strMsg = _CS("Error.Timeout");
		break;
	case H264_DVR_SDK_MEMORY_ERROR:		//内存错误,创建内存失败
		strMsg = _CS("Error.MallocErr");
	    break;
	case H264_DVR_SDK_NET_ERROR:			//网络错误
		strMsg = _CS("Error.NetErr");
	    break;
	case H264_DVR_DEV_VER_NOMATCH:		//收到数据不正确,可能版本不匹配
		strMsg = _CS("Error.VerUnmatch");
	    break;
	case H264_DVR_SDK_NOTSUPPORT:		//版本不支持
		strMsg = _CS("Error.Unsupport");
	    break;
	case H264_DVR_OPEN_CHANNEL_ERROR:	//打开通道失败
		strMsg = _CS("Error.OpenChnErr");
	    break;
	case H264_DVR_CLOSE_CHANNEL_ERROR:	//关闭通道失败
		strMsg = _CS("Error.CloseChnErr");
	    break;
	case H264_DVR_SUB_CONNECT_ERROR:		//建立媒体子连接失败
		strMsg = _CS("Error.SubConErr");
	    break;
	case H264_DVR_SUB_CONNECT_SEND_ERROR://媒体子连接通讯失败
		strMsg = _CS("Error.SubConSendErr");
	    break;
	case H264_DVR_NOPOWER:				//无权限
		strMsg = _CS("Error.NoPower");
	    break;
	case H264_DVR_PASSWORD_NOT_VALID:	// 账号密码不对
		strMsg = _CS("Error.PwdErr");
	    break;
	case H264_DVR_LOGIN_USER_NOEXIST:	//用户不存在
		strMsg = _CS("Error.UserNotExisted");
	    break;
	case H264_DVR_USER_LOCKED:			// 该用户被锁定
		strMsg = _CS("Error.UserLock");
	    break;
	case H264_DVR_USER_IN_BLACKLIST:		// 该用户不允许访问(在黑名单中)
		strMsg = _CS("Error.InBlackList");
	    break;
	case H264_DVR_USER_HAS_USED:			// 该用户以登陆
		strMsg = _CS("Error.HasLogined");
	    break;
	case H264_DVR_USER_NOT_LOGIN	:		// 该用户没有登陆
		strMsg = _CS("Error.NoLogin");
	    break;
	case H264_DVR_CONNECT_DEVICE_ERROR:	//可能设备不存在
		strMsg = _CS("Error.NotFound");
	    break;
	case H264_DVR_ACCOUNT_INPUT_NOT_VALID:	//用户管理输入不合法
		strMsg = _CS("Error.InputError");
	    break;
	case H264_DVR_ACCOUNT_OVERLAP:			//索引重复
		strMsg = _CS("AccountMSG.AccountUsed");
	    break;
	case H264_DVR_ACCOUNT_OBJECT_NONE:		//不存在对象, 用于查询时
		strMsg = _CS("AccountMSG.EmptyName");
	    break;
	case H264_DVR_ACCOUNT_OBJECT_NOT_VALID:	//不存在对象
		strMsg = _CS("Error.NotFound");
	    break;
	case H264_DVR_ACCOUNT_OBJECT_IN_USE:		//对象正在使用
		strMsg = _CS("Error.InUsing");
	    break;
	case H264_DVR_ACCOUNT_SUBSET_OVERLAP:	//子集超范围 (如组的权限超过权限表,用户权限超出组的权限范围等等)
		strMsg = _CS("AccountMSG.TooLargeAuthority");
	    break;
	case H264_DVR_ACCOUNT_PWD_NOT_VALID:		//密码不正确
		strMsg = _CS("Error.PwdErr");
	    break;
	case H264_DVR_ACCOUNT_PWD_NOT_MATCH:		//密码不匹配
		strMsg = _CS("AccountMSG.PasswordMismatch");
	    break;
	case H264_DVR_ACCOUNT_RESERVED:			//保留帐号
		strMsg = _CS("AccountMSG.TryModifyResvUser");
	    break;		
	case H264_DVR_OPT_FILE_ERROR:			// 写文件出错
		strMsg = _CS("Error.SetConfigFail");
	    break;	
	case H264_DVR_OPT_CAPS_ERROR:			// 配置特性不支持
		strMsg = _CS("Error.ConfigCharsetUnsupport");
	    break;
	case H264_DVR_OPT_VALIDATE_ERROR:		// 配置校验失败
		strMsg = _CS("Error.ConfigVerifyFail");
	    break;
	case H264_DVR_OPT_CONFIG_NOT_EXIST:		// 请求或者设置的配置不存在
		strMsg = _CS("Error.ConfigNotFound");
	    break;	
	case H264_DVR_CTRL_PAUSE_ERROR:			//暂停失败
		strMsg = _CS("Error.PauseFail");
	    break;
	default:
		{
			//如果没有,则返回设备端错误码
			CString strError;
			strError.Format(_T("(%d)"),  nError * ( -1 ) ); //根据原来的返回值的相反值取原来的返回值
			strMsg += strError;
		}
	    break;
	}

	return strMsg;
}
void CUserAddDlg::OnBnClickedOk()
{
	UpdateData();

	m_strName.TrimLeft();
	m_strName.TrimRight();
	m_strGroupName.TrimLeft();
	m_strGroupName.TrimRight();
	
	//验证输入的数据是否合法
	if ( "" == m_strName )
	{
		MessageBox(_CS("AccountMSG.EmptyName"), _CS("OneClick.Prompt"));
		return;
	}
	if(m_strName[0]=='&')
	{
		
		MessageBox(_CS("AccountMSG.ErrorName"), _CS("OneClick.Prompt"));
		
		return;
	}
	if(m_strName.Find('.')!=-1||m_strName.Find('[')!=-1||m_strName.Find(']')!=-1 || m_strName.Find('%') != -1)
	{
		
		MessageBox(_CS("AccountMSG.ErrorName"), _CS("OneClick.Prompt"));
		return;
	}

	//验证密码是否匹配
	if ( m_strPsw != m_strConfirm )
	{
		MessageBox(_CS("Error.PwdErr"), _CS("OneClick.Prompt"));
		return;
	}
	
	//验证用户名是否已经存在

	if ( FindUserName(m_strName.GetBuffer(0)) )
	{
		MessageBox(_CS("AccountMSG.AddUserExist"), _CS("OneClick.Prompt"));
		return;
	}

	USER_INFO userInfo;

	//获取选择的权限列表
	int nIndex = 0;
	int nSize = m_listAuthority.GetItemCount();
	for ( int i = 0; i < nSize; i ++ )
	{
		if ( m_listAuthority.GetCheck(i) )
		{
			CString strName = (char *)m_listAuthority.GetItemData(i);
			strcpy( userInfo.rights[nIndex ++], strName.GetBuffer(0) );
		}
	}
	userInfo.rigthNum = nIndex;
	if ( nIndex <= 0 )
	{
		MessageBox(_CS("AccountMSG.EmptyAuthority"), _CS("OneClick.Prompt"));

		return;
	}

	userInfo.reserved = false;
	userInfo.shareable = m_checkReuseable.GetCheck();
	strcpy ( userInfo.Groupname, m_strGroupName.GetBuffer(0) );
	strcpy ( userInfo.memo, m_strDescribe.GetBuffer(0) );
	strcpy ( userInfo.name, m_strName.GetBuffer(0) );
	strcpy ( userInfo.passWord, m_strPsw.GetBuffer(0) );
	
		//保存用户	
		int bRet = SaveuserInfo(&userInfo);
		if ( bRet <= 0 )
		{
			CString strMsg(_CS("User.AddUserFailed"));
			CString strError = GetSdkErrorInfo( bRet );
			strMsg += strError;
			MessageBox(strMsg, _CS("OneClick.Prompt"));

			return;
		}
	

	MessageBox(_CS("AccountMSG.AddUserSuccess"), _CS("OneClick.Prompt"));
	OnOK();
}
示例#18
0
bool SkeletonState::DecodeFisbone(ogg_packet* aPacket)
{
  if (aPacket->bytes < static_cast<long>(FISBONE_MSG_FIELDS_OFFSET + 4)) {
    return false;
  }
  uint32_t offsetMsgField = LittleEndian::readUint32(aPacket->packet + FISBONE_MSG_FIELDS_OFFSET);

  if (aPacket->bytes < static_cast<long>(FISBONE_SERIALNO_OFFSET + 4)) {
      return false;
  }
  uint32_t serialno = LittleEndian::readUint32(aPacket->packet + FISBONE_SERIALNO_OFFSET);

  CheckedUint32 checked_fields_pos = CheckedUint32(FISBONE_MSG_FIELDS_OFFSET) + offsetMsgField;
  if (!checked_fields_pos.isValid() ||
      aPacket->bytes < static_cast<int64_t>(checked_fields_pos.value())) {
    return false;
  }
  int64_t msgLength = aPacket->bytes - checked_fields_pos.value();
  char* msgProbe = (char*)aPacket->packet + checked_fields_pos.value();
  char* msgHead = msgProbe;
  nsAutoPtr<MessageField> field(new MessageField());

  const static FieldPatternType kFieldTypeMaps[] = {
      {"Content-Type:", eContentType},
      {"Role:", eRole},
      {"Name:", eName},
      {"Language:", eLanguage},
      {"Title:", eTitle},
      {"Display-hint:", eDisplayHint},
      {"Altitude:", eAltitude},
      {"TrackOrder:", eTrackOrder},
      {"Track dependencies:", eTrackDependencies}
  };

  bool isContentTypeParsed = false;
  while (msgLength > 1) {
    if (*msgProbe == '\r' && *(msgProbe+1) == '\n') {
      nsAutoCString strMsg(msgHead, msgProbe-msgHead);
      for (size_t i = 0; i < ArrayLength(kFieldTypeMaps); i++) {
        if (strMsg.Find(kFieldTypeMaps[i].mPatternToRecognize) != -1) {
          // The content of message header fields follows [RFC2822], and the
          // mandatory message field must be encoded in US-ASCII, others
          // must be be encoded in UTF-8. "Content-Type" must come first
          // for all of message header fields.
          // See http://svn.annodex.net/standards/draft-pfeiffer-oggskeleton-current.txt.
          if (i != 0 && !isContentTypeParsed) {
            return false;
          }

          if ((i == 0 && IsASCII(strMsg)) || (i != 0 && IsUTF8(strMsg))) {
            EMsgHeaderType eHeaderType = kFieldTypeMaps[i].mMsgHeaderType;
            if (!field->mValuesStore.Contains(eHeaderType)) {
              uint32_t nameLen = strlen(kFieldTypeMaps[i].mPatternToRecognize);
              field->mValuesStore.Put(eHeaderType, new nsCString(msgHead+nameLen,
                                                                 msgProbe-msgHead-nameLen));
            }
            isContentTypeParsed = i==0 ? true : isContentTypeParsed;
          }
          break;
        }
      }
      msgProbe += 2;
      msgLength -= 2;
      msgHead = msgProbe;
      continue;
    }
    msgLength--;
    msgProbe++;
  };

  if (!mMsgFieldStore.Contains(serialno)) {
    mMsgFieldStore.Put(serialno, field.forget());
  } else {
    return false;
  }

  return true;
}
示例#19
0
static retCode setBootPkg(char *option, logical enable, void *cl) {
  uniCpy(&bootPkge.packageName[0], NumberOf(bootPkge.packageName), option);
  strMsg(bootInit, NumberOf(bootInit), "%s@init", option);
  return Ok;
}
示例#20
0
文件: main.c 项目: fmccabe/l-and-o
/*
 * Go evaluator main program
 */
int main(int argc, char **argv) {
  int narg;

#ifdef HAVE_LOCALECONV
  setlocale(LC_ALL,"");		/* set up locale */
#endif

#ifdef LOCALEDIR
  bindtextdomain(PACKAGE,LOCALEDIR);
  textdomain(PACKAGE);
#endif

  initLogfile((char *) "-");
  initFileIo();        /* Set up special file handling */

  strMsg(entryPoint, NumberOf(entryPoint), "lo.boot@__boot"); /* standard entry point */

  if ((narg = getOptions(argc, argv)) < 0) {
    outMsg(logFile, _("usage: %s [-v] [-L log] [-g host:port] [-V] [-b boot:ver] [-m entry] [-r repo] [-d wd]"
                        " [-h sizeK] [-s sizeK] [-d rootdir] args ...\n"), argv[0]);
    exit(1);
  }

  // Set up repository directory
  if (uniIsLit(repoDir, "")) { // overridden?
    char *dir = getenv("LO_DIR"); /* pick up the installation directory */
    if (dir == NULL)
      dir = LODIR;                  /* Default installation path */
    uniCpy(repoDir, NumberOf(repoDir), dir);
  }

  // set up working directory
  if (uniIsLit(loCWD, "")) {
    char cbuff[MAXPATHLEN];
    char *cwd = getcwd(cbuff, NumberOf(cbuff)); /* compute current starting directory */
    if (cwd == NULL)
      syserr("cant determine current directory");
    else
      strMsg(loCWD, NumberOf(loCWD), "%s/", cwd);
  }

  if (loadManifest(repoDir) != Ok) {
    outMsg(logFile, "error in loading repository from %s", repoDir);
    exit(99);
  }

  /* IMPORTANT -- Keep the order of these set up calls */
  initGlobal(initHeapSize);    /* start up the global space */
  initClass();        /* Initialize the class handlers */
  initPrograms();      /* Initialize program handling */
  initDict();        /* Start up the dictionaries */
  install_escapes();      /* Initialize the escape table */
  initFiles();        /* initialize file tables */
  init_args(argv, argc, narg);    /* Initialize the argument list */
  init_time();        /* Initialize time stuff */

  setupSignals();

#ifdef EXECTRACE
  if (traceCount)
    atexit(dumpInsCount);
#endif

  bootstrap(entryPoint, bootPkg, bootVer);

  return EXIT_SUCCEED;          /* exit the lo system cleanly */
}
示例#21
0
文件: main.c 项目: fmccabe/l-and-o
int getOptions(int argc, char **argv) {
  int opt;
  extern char *optarg;
  extern int optind;

  splitFirstArg(argc, argv, &argc, &argv);

  for (; optCount < NumberOf(Options) &&
         (opt = getopt(argc, argv, GNU_GETOPT_NOPERMUTE "m:D:d:gG:vVh:s:L:r:b:R:")) >= 0; optCount++) {
    Options[optCount].option = (codePoint) opt;     /* store the option */

    if (optarg != NULL) {
      strncpy(Options[optCount].value, optarg, NumberOf(Options[optCount].value));
    } else
      Options[optCount].value[0] = '\0';

    switch (opt) {
      case 'D': {      /* turn on various debugging options */
        char *c = optarg;

        while (*c) {
          switch (*c++) {
            case 'e':    /* Escape call tracing */
#ifdef EXECTRACE
              traceCalls = True;
              continue;
#else
            logMsg(logFile,"Escape tracing not enabled\n");
            return -1;
#endif

            case 'd':    /* single step instruction tracing */
#ifdef EXECTRACE
              debugging = True;
              continue;
#else
            logMsg(logFile,"Instruction-level debugging not enabled\n");
            return -1;
#endif

            case 'v':    /* turn on verify tracing */
#ifdef VERIFYTRACE
              traceVerify = True;
              continue;
#else
            logMsg(logFile,"code verification not enabled\n");
            return -1;
#endif

            case 'm':    /* trace memory allocations  */
#ifdef MEMTRACE
              if (traceMemory)
                stressMemory = True;
              else
                traceMemory = True;
              continue;
#else
            logMsg(logFile,"memory tracing not enabled");
            return -1;
#endif

            case 'l':    /* trace synch locks */
#ifdef LOCKTRACE
              traceLock = True;
              continue;
#else
            logMsg(logFile,"sync tracing not enabled");
            return -1;
#endif

            case 'p':    /* trace put-style operations */
#ifdef EXECTRACE
              tracePut = True;
              continue;
#else
            logMsg(logFile,"put tracing not enabled");
            return -1;
#endif

            case 'G':    /* Internal symbolic tracing */
#ifdef EXECTRACE
              SymbolDebug = True;
              interactive = False;
              continue;
#else
            logMsg(logFile,"tracing not enabled");
            return -1;
#endif

            case 'g':    /* Internal symbolic debugging */
              SymbolDebug = True;
              interactive = True;
              continue;

            case 'I':
#ifdef STATSTRACE
#ifdef EXECTRACE
              traceCount = True;
              atexit(dumpInsCount);
              break;
#endif
#else
            logMsg(logFile,"instruction counting not enabled");
            return -1;
#endif

            case 'r':     /* Trace resource mgt */
#ifdef RESOURCETRACE
              traceResource = True;
#else
            logMsg(logFile,"Resource tracing not enabled\n");
            return -1;
#endif
            case '*':    /* trace everything */
#ifdef ALLTRACE
              traceCalls = True;
              debugging = True;
              interactive = True;
              traceVerify = True;
              traceCount = True;
              traceMessage = True;
              if (traceMemory)
                stressMemory = True;
              else
                traceMemory = True;
              tracePut = True;              /* term freeze */
              traceResource = True;
#else
            logMsg(logFile,"debugging not enabled\n");
            return -1;
#endif
            default:;
          }
        }
        break;
      }

      case 'g': {
        SymbolDebug = True;  /* turn on symbolic debugging */
        interactive = True;       // Initially its also interactive
        break;
      }

      case 'G': {        /* non-default debugging package */
        strMsg(debugPkg, NumberOf(debugPkg), "%s", optarg);
        break;
      }

      case 'm': {                          /* modify the entry point */
        uniCpy(entryPoint, NumberOf(entryPoint), optarg);
        break;
      }

      case 'r': {
        strMsg(repoDir, NumberOf(repoDir), "%s", optarg);
        break;
      }

      case 'd': {                      /* non-standard initial working directory */
        strMsg(loCWD, NumberOf(loCWD), "%s", optarg);
        break;
      }

      case 'b': {
        parsePkgOpt(optarg, bootPkg, NumberOf(bootPkg), bootVer, NumberOf(bootVer));
        break;
      }

      case 'R': {                          /* fix the random seed */
        srand((unsigned int) atoi(optarg));
        break;
      }

      case 'L': {
        char fn[MAX_MSG_LEN];
        strncpy((char *) fn, optarg, NumberOf(fn));

        if (initLogfile(fn) != Ok) {
          logMsg(logFile, "log file %s not found", optarg);
          return -1;
        }
        break;
      }

      case 'v':                           /* Display version ID */
        outMsg(logFile, "%s", version);
        outMsg(logFile, "%s", copyRight);
        break;

      case 'V':                      /* Turn on (will be off) code verification */
        enableVerify = (logical) !enableVerify;
        break;

      case 'h':                           /* set up heap size */
        initHeapSize = atoi(optarg) * 1024;
        break;

      case 's':                           /* set up initial size of a thread */
        initStackHeapSize = atoi(optarg) * 1024;
        break;

      default:
        break;                            /* ignore options we dont understand */
    }
  }
  return optind;
}
示例#22
0
/*----------------------------------------------------------------------------------------------
	Handle a change in a combo box.
----------------------------------------------------------------------------------------------*/
bool FmtGenDlg::OnComboChange(NMHDR * pnmh, long & lnRet)
{
	AssertPtr(pnmh);

	// Do nothing if we're not handling a change in the based on style name combo.
	if (pnmh->idFrom != kctidFgCbBasedOn)
	{
		lnRet = 0;
		return true;
	}

	achar rgchaName[1024]; // Name in the combobox.
	Vector<achar> vch;
	achar * pszT;
	bool fKeepChange = true;

	// Get the name from the combobox.
	int index = ::SendMessage(m_hwndBasedOn, CB_GETCURSEL, 0, 0);
	int cch = ::SendMessage(m_hwndBasedOn, CB_GETLBTEXTLEN, index, (LPARAM)0);
	if (cch < 1024)
		pszT = rgchaName;
	else
	{
		vch.Resize(cch + 1);
		pszT = vch.Begin();
	}

	cch = ::SendMessage(m_hwndBasedOn, CB_GETLBTEXT, index, (long)pszT);
	if (cch < 0)
		pszT = _T("");

	// Trim leading and trailing space characters.
	StrApp strNewBasedOnName;
	StrUtil::TrimWhiteSpace(pszT, strNewBasedOnName);

	// Get the name of the style whose based on style is being changed.
	StrUni stuCurrStyleName(m_pafsd->GetNameOfSelectedStyle());

	// Get the HVO of the new based on style.
	StrUni stuName;
	stuName.Assign(strNewBasedOnName);
	HVO hvoNewBasedOn = m_pafsd->GetHvoOfStyleNamed(stuName);

	// Check that the selected style will not be based on itself.
	if (stuCurrStyleName.Equals(strNewBasedOnName))
		fKeepChange = false;
	else
	{
		int hvo = m_pafsd->GetBasedOnHvoOfStyle(hvoNewBasedOn);

		// Loop through the inheritance chain to make sure none of the based on
		// styles are the same as the currently selected style.
		while (hvo && fKeepChange)
		{
			if (stuCurrStyleName.Equals(m_pafsd->GetNameOfStyle(hvo)))
				fKeepChange = false;
			else
				hvo = m_pafsd->GetBasedOnHvoOfStyle(hvo);
		}
	}

	// If keeping the new based on style, then notify the styles dialog of its change.
	if (fKeepChange)
	{
		StyleInfo styi = m_pafsd->SelectedStyle();
		m_pafsd->SetBasedOn(styi, hvoNewBasedOn);
		m_pafsd->BasedOnStyleChangeNotification(hvoNewBasedOn);
		LoadNextStyleCombobox(styi);
		SetNextStyleComboboxValue(styi);
	}
	else
	{
		StrApp strMsg(kstidAfsdSameBasedOnMsg);
		StrApp strMsgTitle(kstidStyles);
		// Raise a message alerting the user to his mistake.
		::MessageBox(m_hwnd, strMsg.Chars(), strMsgTitle.Chars(), MB_OK | MB_ICONINFORMATION);

		// Return the combobox to its original value.
		strNewBasedOnName = m_pafsd->GetNameOfStyle(m_pafsd->SelectedStyle().m_hvoBasedOn);
		int index = ::SendMessage(m_hwndBasedOn, CB_FINDSTRINGEXACT, 0,
			(LPARAM)strNewBasedOnName.Chars());

		::SendMessage(m_hwndBasedOn, CB_SETCURSEL, index, 0);
	}

	lnRet = 0;
	return true;
} //:> FmtGenDlg::OnComboChange.
示例#23
0
文件: error.c 项目: fmccabe/l-and-o
ptrI errorString(heapPo H, ptrI code) {
  if (!isvar(code)) {
    if (code == eINSUFARG)
      return allocateCString(H, "Insufficiently instantiated argument");
    else if (code == eINTNEEDD)
      return allocateCString(H, "Integer required");
    else if (code == eNUMNEEDD)
      return allocateCString(H, "Number required");
    else if (code == eVARNEEDD)
      return allocateCString(H, "Unbound variable required");
    else if (code == eSPACE)
      return allocateCString(H, "Out of heap space");
    else if (code == eUNIFY)
      return allocateCString(H, "Incomparible values in unification");
    else if (code == eDIVZERO)
      return allocateCString(H, "Division by zero");
    else if (code == eLSTNEEDD)
      return allocateCString(H, "List needed");
    else if (code == eTPLNEEDD)
      return allocateCString(H, "Tuple needed");
    else if (code == eSYMNEEDD)
      return allocateCString(H, "Symbol needed");
    else if (code == eSTRNEEDD)
      return allocateCString(H, "String required");
    else if (code == eCHRNEEDD)
      return allocateCString(H, "Character required");
    else if (code == eINVAL)
      return allocateCString(H, "invalid argument");
    else if (code == eNOPERM)
      return allocateCString(H, "permission denied");
    else if (code == eNOFILE)
      return allocateCString(H, "file not found");
    else if (code == eNOTDIR)
      return allocateCString(H, "not a directory");
    else if (code == eCFGERR)
      return allocateCString(H, "configuration problem");
    else if (code == eEOF)
      return allocateCString(H, "read past end-of-file");
    else if (code == eIOERROR)
      return allocateCString(H, "error on i/o");
    else if (code == eABORT)
      return allocateCString(H, "process aborted");
    else if (code == eNOTFND)
      return allocateCString(H, "not found");
    else if (code == eCODE)
      return allocateCString(H, "undefined program");
    else if (code == eFAIL)
      return allocateCString(H, "unexpected failure");
    else if (code == eHANDLE)
      return allocateCString(H, "not a valid handle");
    else if (code == eINVCODE)
      return allocateCString(H, "incorrect code type");
    else if (code == eASSIGN)
      return allocateCString(H, "assignment not allowed");
    else if (code == eDEAD)
      return allocateCString(H, "deadlock detected");
    else if (code == eSYSTEM)
      return allocateCString(H, "system overflow");
    else if (code == eDUPLICATE)
      return allocateCString(H, "duplicate request");
    else if (code == eNOIMPL)
      return allocateCString(H, "feature not implemented");
    else if (code == eNOTENUF)
      return allocateCString(H, "insufficient arguments given");
    else if (code == eCONNECT)
      return allocateCString(H, "cannot connect to host");
    else if (code == eINTRUPT)
      return allocateCString(H, "interrupted");
    else {
      char buf[MAX_MSG_LEN];

      strMsg(buf, NumberOf(buf), "Unknown error code: %w", &code);
      return allocateString(H, buf, uniStrLen(buf));
    }
  } else {
    char buf[MAX_MSG_LEN];

    strMsg(buf, NumberOf(buf), "Invalid error code: %w", &code);
    return allocateString(H, buf, uniStrLen(buf));
  }
}
示例#24
0
文件: CueSheet.cpp 项目: elha/CDex
void CCueSheet::CreateSheet()
{	
	LTRACE2( _T( "CCDexView::OnToolsGeneratecuesheet " ) );

	m_strCueSheet = _W( "" );

    CDInfo& cdInfo = m_pDoc->GetCDInfo();

    DWORD cdID = cdInfo.GetDiscID();

	CUString cueSheetName;
    cueSheetName.Format( _W( "%08X.cue" ), cdID );


    CUString strTmp;
	if (! cdInfo.GetGenre().IsEmpty())
    {
        strTmp.Format( _W("REM GENRE \"%s\"\n"), (LPCWSTR)cdInfo.GetGenre() );
		m_strCueSheet += strTmp;
    }

	if (! cdInfo.GetYear().IsEmpty())
    {
        strTmp.Format( _W("REM DATE %s\n"), (LPCWSTR)cdInfo.GetYear() );
		m_strCueSheet += strTmp;
    }


	strTmp.Format( _W("REM DISCID %08lx\n"), (LPCWSTR)cdInfo.GetDiscID() );
	m_strCueSheet += strTmp; 

	strTmp.Format( _W("REM VOLID %lX\n"), (LPCWSTR)cdInfo.GetVolID() );
	m_strCueSheet += strTmp; 

	strTmp.Format( _W("REM CDDBCAT %s\n"), (LPCWSTR)cdInfo.GetCDDBCat() );
	m_strCueSheet += strTmp; 

	strTmp.Format( _W("REM COMMENT \"CDex %s\"\n"), (LPCWSTR)g_config.GetVersion() );
	m_strCueSheet += strTmp; 

	m_strCueSheet += _W("REM\n");

    if ( m_addISRC.GetCheck() )
    {
        strTmp.Format(  _W("CATALOG %s\n"), (LPCWSTR)cdInfo.GetMCN() );
	    m_strCueSheet += strTmp; 
    }

	strTmp.Format( _W("PERFORMER \"%s\"\n"), (LPCWSTR)cdInfo.GetArtist());
	m_strCueSheet += strTmp; 

	strTmp.Format(  _W("TITLE \"%s\"\n"), (LPCWSTR)cdInfo.GetTitle() );
	m_strCueSheet += strTmp; 

    m_strCueSheet += _W("FILE \"range.wav\" WAVE\n" );

	int	count = 1;
	int offset = 0; // dlg.GetFirstTrack() == 0 ? cdInfo.GetStartSector(cdInfo.GetTrack( 0 )) : 0;

    for (int i = 0; i < cdInfo.GetNumTracks(); ++i, ++count)
	{
		strTmp.Format(  _W("  TRACK %02d AUDIO\n"), count );
		m_strCueSheet += strTmp; 

		strTmp.Format(  _W("    TITLE \"%s\"\n"), (LPCWSTR)cdInfo.GetTrackName( i ) );
		m_strCueSheet += strTmp; 
		
        if (g_config.GetSplitTrackName())
		{
			strTmp.Format(  _W("    PERFORMER \"%s\"\n"), (LPCWSTR)cdInfo.GetArtist());
			m_strCueSheet += strTmp; 
		}
        else
        {
			strTmp.Format(  _W("    PERFORMER \"%s\"\n"), (LPCWSTR)cdInfo.GetArtist());
			m_strCueSheet += strTmp; 
        }

        if ( m_addISRC.GetCheck() )
        {
            strTmp.Format(  _W("    ISRC %s\n"), (LPCWSTR)cdInfo.GetISRC( i ) );
		    m_strCueSheet += strTmp; 
        }

		if ( m_checkPreGaps.GetCheck() )
		{
			int dwGapSize = cdInfo.GetGap( i );

			// Calculate sectors to time
			int nF= (int)( dwGapSize % 75 );
			int nS= (int)( (dwGapSize / 75 ) %60 );
			int nM= (int)( (dwGapSize / 75 ) /60 );

			strTmp.Format(  _W("    PREGAP %02d:%02d:%02d\n"), nM, nS, nF );
			m_strCueSheet += strTmp; 
		}

		DWORD dwStart = offset + cdInfo.GetStartSector( cdInfo.GetTrack( i ) ) /*- dlg.GetFirstSector() */;

		// Calculate sectors to time
		int nF= (int)( dwStart % 75 );
		int nS= (int)( (dwStart / 75 ) %60 );
		int nM= (int)( (dwStart / 75 ) /60 );

		strTmp.Format(  _W("    INDEX 01 %02d:%02d:%02d\n"), nM, nS, nF );
		m_strCueSheet += strTmp; 
	}

    CUString strMsg( m_strCueSheet );

	strMsg.Replace( _W( "\n" ), _W( "\r\n" ) );

    CUStringConvert strCnv;
    m_editCueSheet.SetWindowText( strCnv.ToT( strMsg ) );
}
示例#25
0
/*----------------------------------------------------------------------------------------------
	Load the data needed to display this view. In this case, we need to load the class, owner
	(so we can tell whether it is a subitem), the title, and create date. If all of these are
	already in the cache, don't reload it.
	@param pvwenv Pointer to the view environment.
	@param hvo The id of the object we are displaying.
	@param frag Identifies the part of the view we are currently displaying.
	@return HRESULT indicating success (S_OK), or failure (E_FAIL).
----------------------------------------------------------------------------------------------*/
STDMETHODIMP CleRecVc::LoadDataFor(IVwEnv * pvwenv, HVO hvo, int frag)
{
	BEGIN_COM_METHOD;
	ChkComArgPtr(pvwenv);

	Assert(false);  // TODO: rework

	StrUni stuSql;
	ISilDataAccessPtr qsda;
	CheckHr(pvwenv->get_DataAccess(&qsda));
	bool fLoaded = false;
	int clid;
	CheckHr(qsda->get_IntProp(hvo, kflidCmObject_Class, &clid));
	if (clid)
	{
		HVO hvoOwn;
		CheckHr(qsda->get_ObjectProp(hvo, kflidCmObject_Owner, &hvoOwn));
		if (hvoOwn)
		{
			int64 tim;
			// REVIEW KenZ(RandyR) Whey are DN flids in this app?
			CheckHr(qsda->get_TimeProp(hvo, kflidRnGenericRec_DateCreated, &tim));
			if (tim)
			{
				ITsStringPtr qtss;
				CheckHr(qsda->get_StringProp(hvo, kflidRnGenericRec_Title, &qtss));
				if (qtss)
				{
					int cch;
					CheckHr(qtss->get_Length(&cch));
					if (cch)
						fLoaded = true;
				}
			}
		}
	}

	if (!fLoaded)
	{
		// If any field is missing from the cache, load everything.
		IDbColSpecPtr qdcs;
		IVwOleDbDaPtr qda;
		CheckHr(qsda->QueryInterface(IID_IVwOleDbDa, (void**)&qda));
		stuSql.Format(L"select id, Class$, Owner$, DateCreated, Title, Title_Fmt "
			L"from RnGenericRec_ "
			L"where id = %d", hvo);
		qdcs.CreateInstance(CLSID_DbColSpec);
		CheckHr(qdcs->Push(koctBaseId, 0, 0, 0));
		CheckHr(qdcs->Push(koctInt, 1, kflidCmObject_Class, 0));
		CheckHr(qdcs->Push(koctObj, 1, kflidCmObject_Owner, 0));
			// REVIEW KenZ(RandyR) Whey are DN flids in this app?
		CheckHr(qdcs->Push(koctTime, 1, kflidRnGenericRec_DateCreated, 0));
		CheckHr(qdcs->Push(koctString, 1, kflidRnGenericRec_Title, 0));
		CheckHr(qdcs->Push(koctFmt, 1, kflidRnGenericRec_Title, 0));

		AfMainWnd * pafw = AfApp::Papp()->GetCurMainWnd();
		AssertPtr(pafw);
		AfStatusBar * pstbr = pafw->GetStatusBarWnd();
		AssertPtr(pstbr);
		bool fProgBar = pstbr->IsProgressBarActive();
		if (!fProgBar)
		{
			StrApp strMsg(kstidStBar_LoadingData);
			pstbr->StartProgressBar(strMsg.Chars(), 0, 70, 1);
		}

		// Execute the query and store results in the cache.
		CheckHr(qda->Load(stuSql.Bstr(), qdcs, hvo, 0, pstbr, NULL));
		if (!fProgBar)
			pstbr->EndProgressBar();
	}

	return S_OK;

	END_COM_METHOD(g_fact2, IID_IVwViewConstructor)
}
示例#26
0
/*----------------------------------------------------------------------------------------------
	Check to see if the edit box has valid data.  if so return true.  If not then put up a
	message to the user, then return false.
----------------------------------------------------------------------------------------------*/
bool CleDeFeString::IsOkToClose(bool fWarn)
{
	CleMainWnd * pcmw = dynamic_cast<CleMainWnd *>(m_qadsc->MainWindow());
	Assert(pcmw);

	IVwSelectionPtr qvwsel;
	CheckHr(m_qrootb->get_Selection(&qvwsel));
	if (qvwsel)
	{
		ComBool fOk;
		CheckHr(qvwsel->Commit(&fOk));
	}

	PossListInfoPtr qpli = pcmw->GetPossListInfoPtr();
	int ipss = qpli->GetIndexFromId(m_hvoObj);
	StrUni stuNew;

	const OLECHAR * prgwch;
	int cch;
	ITsStringPtr qtss;
	CustViewDaPtr qcvd;

	GetDataAccess(&qcvd);
	AssertPtr(qcvd);
	int ws = m_qsvc->WritingSystems()[0];

	CheckHr(qcvd->get_MultiStringAlt(m_hvoObj, m_flid, ws, &qtss));
	Assert(qtss);
	qtss->LockText(&prgwch, &cch);
	qtss->UnlockText(prgwch);

	// Trim leading and trailing space characters.
	UnicodeString ust(prgwch, cch);
	ust.trim();
	stuNew.Assign(ust.getBuffer(), ust.length());

	//  Obtain pointer to IOleDbEncap interface.
	IOleDbEncapPtr qode;
	IOleDbCommandPtr qodc;
	StrUni stuSql;
	ComBool fIsNull;
	ComBool fMoreRows;
	AssertPtr(m_qadsc->MainWindow());
	AfLpInfo * plpi = m_qadsc->MainWindow()->GetLpInfo();
	AssertPtr(plpi);
	AfDbInfo * pdbi = plpi->GetDbInfo();
	AssertPtr(pdbi);
	pdbi->GetDbAccess(&qode);
	AssertPtr(qode);
	CheckHr(qode->CreateCommand(&qodc));
	int cpii = qpli->GetCount();

	if ((m_flid == kflidCmPossibility_Name) || (m_flid == kflidCmPossibility_Abbreviation))
	{
		// Make sure it does not have a ":" or a " - " in the string
		int ich = stuNew.FindStr(L":");
		StrUni stuTmp;
		bool fFixed = false;
		while (ich > 0)
		{
			stuNew.Replace(ich,ich + 1,"-");
			fFixed = true;
			ich = stuNew.FindStr(L":");
		}
		ich = stuNew.FindStr(L" - ");
		while (ich > 0)
		{
			stuNew.Replace(ich,ich + 3,"-");
			fFixed = true;
			ich = stuNew.FindStr(L" - ");
		}
		if (fFixed)
		{
			if (fWarn)
			{
				ITsStrFactoryPtr qtsf;
				qtsf.CreateInstance(CLSID_TsStrFactory);
				qtsf->MakeStringRgch(stuNew.Chars(), stuNew.Length(), pcmw->UserWs(), &qtss);
				CheckHr(qcvd->SetMultiStringAlt(m_hvoObj, m_flid, ws, qtss));
				CheckHr(qcvd->PropChanged(NULL, kpctNotifyAll, m_hvoObj, m_flid, 0, 1, 1));
				StrApp strMsg(kstidFixedStr);
				StrApp strTitle(kstidFixedStrTitle);
				::MessageBox(m_hwnd, strMsg.Chars(), strTitle.Chars(),
					MB_OK | MB_ICONINFORMATION);
			}
			return false;
		}
	}

	if (qpli->GetAllowDup())
		return true;

	ILgWritingSystemFactoryPtr qwsf;
	pdbi->GetLgWritingSystemFactory(&qwsf);
	AssertPtr(qwsf);
	switch (m_flid)
	{
		case kflidCmPossibility_Name:
		{
			for (int ipii = 0; ipii < cpii; ipii++)
			{
				if (ipii == ipss)
					continue;
				PossItemInfo * ppii = qpli->GetPssFromIndex(ipii);
				AssertPtr(ppii);
				StrUni stu;
				ppii->GetName(stu, kpntName);
				if (stu == stuNew)
				{
					stuSql.Format(L"select ws from CmPossibility_Name "
						L"where obj = %d and ws = %d",
						ppii->GetPssId(), ws);
					CheckHr(qode->CreateCommand(&qodc));
					CheckHr(qodc->ExecCommand(stuSql.Bstr(), knSqlStmtSelectWithOneRowset));
					CheckHr(qodc->GetRowset(0));
					CheckHr(qodc->NextRow(&fMoreRows));

					if (fMoreRows)
					{
						if (fWarn)
						{
							// this name already exists
							IWritingSystemPtr qws;
							CheckHr(qwsf->get_EngineOrNull(ws, &qws));
							AssertPtr(qws);
							SmartBstr sbstr;
							qws->get_Name(ws, &sbstr);

							StrUni stu(kstidDupItemName);
							StrUni stuMsg;
							stuMsg.Format(stu,sbstr.Chars());
							StrApp str(stuMsg);
							StrApp strTitle(kstidDupItemTitle);
							::MessageBox(m_hwnd, str.Chars(), strTitle.Chars(),
								MB_OK | MB_ICONINFORMATION);
						}
						return false;
					}
				}
			}
			break;
		}
		case kflidCmPossibility_Abbreviation:
		{
			for (int ipii = 0; ipii < cpii; ipii++)
			{
				if (ipii == ipss)
					continue;
				PossItemInfo * ppii = qpli->GetPssFromIndex(ipii);
				AssertPtr(ppii);
				StrUni stu;
				ppii->GetName(stu, kpntAbbreviation);
				if (stu == stuNew)
				{
					stuSql.Format(L"select ws from CmPossibility_Abbreviation "
						L"where obj = %d and ws = %d",
						ppii->GetPssId(), ws);
					CheckHr(qode->CreateCommand(&qodc));
					CheckHr(qodc->ExecCommand(stuSql.Bstr(), knSqlStmtSelectWithOneRowset));
					CheckHr(qodc->GetRowset(0));
					CheckHr(qodc->NextRow(&fMoreRows));

					if (fMoreRows)
					{
						if (fWarn)
						{
							// this abbreviation already exists
							IWritingSystemPtr qws;
							CheckHr(qwsf->get_EngineOrNull(ws, &qws));
							AssertPtr(qws);
							SmartBstr sbstr;
							qws->get_Name(ws, &sbstr);

							StrUni stu(kstidDupItemAbbr);
							StrUni stuMsg;
							stuMsg.Format(stu,sbstr.Chars());
							StrApp str(stuMsg);
							StrApp strTitle(kstidDupItemTitle);
							::MessageBox(m_hwnd, str.Chars(), strTitle.Chars(),
								MB_OK | MB_ICONINFORMATION);
						}
						return false;
					}
				}
			}
			break;
		}
	}
	return true;
}