Exemple #1
0
/**
 * 玩家落子
 * 如果当前点可以落子则返回true,否则返回false
 */
void JFPlayer::PlaceChessman(const JFPosInCB& position)
{
    _ASSERT(PLAYER_NO != m_playerType);
    _ASSERT(m_CMType == JFSysData::GetSysData()->GetCurCMTypeToPlace());

    JFChessman chessman;
   
    chessman.type = m_CMType;
    JFCBSituation situation;
    
	if (PLAYER_COMPUTER == m_playerType)
	{// 对于电脑
        chessman.position = JFEngine::GetEngine()->GetBestPosForPlaceCM(m_CMType);
	}
    else
    {// 对于人
        chessman.position = position;
    }

    if (JFSysData::GetSysData()->IsCurPosAvailable(chessman.position))
    {
        JFSysData::GetSysData()->PlaceChessman(chessman);

        // 1、设置下一个要下的棋子的类型
        JFCMType enemyType;
        GetEnemyCMType(m_CMType, enemyType);
        m_callbackChangeCMTypeToPlace(m_pGobangDlg, &enemyType);
        JFSysData::GetSysData()->SetCurCMTypeToPlace(enemyType);

        // 2、告诉界面,棋子已经落下
        m_callbackPlaceChessman(m_pGobangDlg, &m_CMType, &chessman.position);

        // 3、发出当前棋局的提醒(可能是通知对方俺胜利啦)
        JFCBSituation situation;
        JFEngine::GetEngine()->GetCurSituation(m_CMType, situation);

        if (situation.typeWin != NO_CM)
        {
            m_callbackWin(m_pGobangDlg, &m_CMType);
            
            m_uiWinGame++;
            char buf[16] = {0};
            sprintf_s(buf, "%d", m_uiWinGame);

            string strInfo(buf);
            JFPlayerInfoIndex index;
            if (BLACK_CM == m_CMType)
            {
                index = BLACK_SCORE;
            } 
            else
            {
                index = WHITE_SCORE;
            }

            m_callbackChangePlayerInfo(m_pGobangDlg, &index, &strInfo);
            JFSysData::GetSysData()->EndGame();
        }
    }
}
Exemple #2
0
void Handler ( int sig, siginfo_t * extra, void *cruft )
{
    static int last_i=0;
       unsigned int i, j;
       rdtsc(i,j);
       QString strInfo( "time:%1, %2, [%3] %4HZ ");
       strInfo.arg( "%1", j ).arg( "%2", i ).arg( "%3", i - last_i ).arg( "%4", ( i - last_i ) * 10 / 1000000 );
       qDebug( ) <<  strInfo;
       last_i = i;
}
void OTSubcredential::UpdatePublicContentsToString(OTString & strAppendTo) // Used in UpdateContents.
{
    if (m_mapPublicInfo.size() > 0)
    {
        strAppendTo.Concatenate("<publicContents count=\"%d\">\n\n", m_mapPublicInfo.size());
        
        FOR_EACH(mapOfStrings, m_mapPublicInfo)
        {
            OTString     strInfo((*it).second);
            OTASCIIArmor ascInfo(strInfo);
            strAppendTo.Concatenate("<publicInfo key=\"%s\">\n%s</publicInfo>\n\n",
                                      (*it).first.c_str(), ascInfo.Get());
        }
void StyleHelper::drawListViewItemThumb(QPainter* p, const QRect& rc, int nBadgeType,
                                        const QString& title, const QString& lead, const QString& abs,
                                        bool bFocused, bool bSelected, bool bContainsAttach)
{
    QRect rcd(rc);

    QFont fontTitle = p->font();
    int nFontHeight = Utils::StyleHelper::fontHead(fontTitle);

    if (!title.isEmpty()) {
        QRect rcTitle = Utils::StyleHelper::drawBadgeIcon(p, rcd, nFontHeight, nBadgeType, bFocused, bSelected);

        int nSpace4AttachIcon = 20;
        rcTitle.setCoords(rcTitle.right(), rcTitle.y(), rcd.right() - nSpace4AttachIcon, rcd.bottom());
        QString strTitle(title);
        QColor colorTitle = Utils::StyleHelper::listViewItemTitle(bSelected, bFocused);
        QRect rcAttach = Utils::StyleHelper::drawText(p, rcTitle, strTitle, 1, Qt::AlignVCenter, colorTitle, fontTitle);

        if (bContainsAttach) {
            rcAttach.setCoords(rcAttach.right(), rcd.top(), rcd.right(), rcTitle.bottom());
            rcAttach.setHeight(nFontHeight);
            Utils::StyleHelper::drawAttachIcon(p, rcAttach, bFocused, bSelected);
        }

        rcd.adjust(0, rcAttach.height() + margin(), 0, 0);
    }

    QFont fontThumb;
    nFontHeight = Utils::StyleHelper::fontNormal(fontThumb);

    QRect rcLead;   //排序类型或标签等
    if (!lead.isEmpty()) {
        QString strInfo(lead);
        QColor colorDate = Utils::StyleHelper::listViewItemLead(bSelected, bFocused);
        rcLead = Utils::StyleHelper::drawText(p, rcd, strInfo, 1, Qt::AlignVCenter, colorDate, fontThumb);
    }

    if (!abs.isEmpty()) {          //  笔记内容
        QString strText(abs);
        QRect rcLine1(rcd.adjusted(rcLead.width(), 0, 0, 0));
        QColor colorSummary = Utils::StyleHelper::listViewItemSummary(bSelected, bFocused);
        rcLine1 = Utils::StyleHelper::drawText(p, rcLine1, strText, 1, Qt::AlignVCenter, colorSummary, fontThumb, false);

        if (!strText.isEmpty()) {
            QRect rcLine2(rcd.adjusted(0, rcLine1.height(), 0, 0));
            rcLine2 = Utils::StyleHelper::drawText(p, rcLine2, strText, 2, Qt::AlignVCenter, colorSummary, fontThumb);
        }
    }
}
LRESULT CMainFrame::OnStreamIn(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
	if (m_spStream)
	{
		m_spStream.Release();
	}

	HRESULT hr = E_FAIL;
	if (m_view.GetSelection().size() > 0)
	{
#ifndef DRAW_TOOL_TEST
		CTextObject* pTextObject = dynamic_cast<CTextObject*>(m_view.GetSelection().front());
		if (pTextObject)
		{
			COM_VERIFY(pTextObject->GetRichEditPanel()->GetTextStream(0, 0, &m_spStream));
			if (m_spStream)
			{
				ULARGE_INTEGER nLength;
				nLength.QuadPart = 0L;

				LARGE_INTEGER nStart;
				nStart.LowPart = 0;
				nStart.HighPart = 0;
				COM_VERIFY(m_spStream->Seek(nStart, STREAM_SEEK_END, &nLength));
				COM_VERIFY(m_spStream->Seek(nStart, STREAM_SEEK_SET, NULL));

				std::vector<CHAR> vStreamInfo(nLength.QuadPart);
				COM_VERIFY(m_spStream->Read(&vStreamInfo[0], nLength.QuadPart, NULL));
				CStringA strInfo(&vStreamInfo[0]);

				ATLTRACE(TEXT("Read: %s\n"), CA2T(strInfo));
			}
		}
#endif
	}

	return 0;
}
AboutDialog::AboutDialog(CWizExplorerApp& app, QWidget *parent)
    : QDialog(parent)
    , m_app(app)
    , ui(new Ui::AboutDialog)
{
    ui->setupUi(this);
    setFixedSize(size());

    QPixmap pixmap(::WizGetSkinResourceFileName(m_app.userSettings().skin(), "about_logo"));
    ui->labelIcon->setPixmap(pixmap);

#if defined Q_OS_MAC
    QString strProduct(tr("WizNote for Mac"));
#elif defined Q_OS_LINUX
    QString strProduct(tr("WizNote for Linux"));
#else
    QString strProduct(tr("WizNote for Windows"));
#endif

    QFileInfo fi(::WizGetAppFileName());
    QDateTime t = fi.lastModified();
    QString strBuildNumber("build %1.%2.%3 %4:%5");
    strBuildNumber = strBuildNumber.\
            arg(t.date().year()).\
            arg(t.date().month()).\
            arg(t.date().day()).\
            arg(t.time().hour()).\
            arg(t.time().minute());

    QString strInfo("<span style=\"font-weight:bold;font-size:16pt\">%1</span><br /><span>%2%3 %4</span>");
    strInfo = strInfo.arg(strProduct, WIZ_CLIENT_VERSION, WIZ_LOCAL_VERSION, strBuildNumber);

    ui->labelAbout->setTextFormat(Qt::AutoText);
    ui->labelAbout->setText(strInfo);
    ui->labelLink->setOpenExternalLinks(true);
}
Exemple #7
0
void MainImageWidget::setImageFile(const QString & imagePath,
								   t_image_info_struct * pinfo )
{
	// "NavImageWidget::%s:%d ('%s')\n",
	//		__func__, __LINE__,
	//		imagePath);

	m_fullImage.load(imagePath);
	m_mouse_has_moved = false;
	m_lastClick	= QPoint(-1, -1);

	zoomOn(0,0, 0);

	if(!m_fullImage.isNull()) {
		char info[512];
		if(!pinfo) {
			sprintf(info, "%s\n%d x %d x %d\n",
					imagePath.toUtf8().data(),
					m_fullImage.width(),
					m_fullImage.height(),
					m_fullImage.depth()/8);
		} else {
			sprintf(info, "%s\n%d x %d x %d\n%d ISO\n%s",
					imagePath.toUtf8().data(),
					m_fullImage.width(),
					m_fullImage.height(),
					m_fullImage.depth()/8,
					pinfo->ISO,
					pinfo->datetime
					);

		}
		QString strInfo(info);
		m_ui->globalImageLabel->setToolTip(strInfo);
	}
}
Exemple #8
0
bool Program::link()
{
    if(mHandle > 0)
        return true;

    mHandle = glCreateProgram();
    GLenum glError = glGetError();

    if (glError != GL_NO_ERROR)
    {
        std::cerr << "Error creating program" << getErrorString(glError).c_str() << std::endl;
    }

    for(size_t i = 0; i < mShaders.size(); ++i)
    {
        glAttachShader(mHandle, dynamic_cast<Shader *>(mShaders[i])->getHandle());
        glError = glGetError();

        if (glError != GL_NO_ERROR)
        {
            std::cerr << "Error attaching shader " << getErrorString(glError).c_str() << std::endl;
        }

        dynamic_cast<Shader *>(mShaders[i])->attach();
    }

    glLinkProgram(mHandle);
    glError = glGetError();

    if (glError != GL_NO_ERROR)
    {
        std::cerr << "Error linking program" << getErrorString(glError).c_str() << std::endl;
    }

    int result = 1;
    glGetProgramiv(mHandle, GL_LINK_STATUS, & result);

    if (!result)
    {
        int length = 0;

        glGetProgramiv(mHandle, GL_INFO_LOG_LENGTH, & length);

        char * info = new char[length];
        int written = 0;

        glGetProgramInfoLog(mHandle, length, &written, info);
        std::string strInfo(info);
        delete[] info;

        std::cerr << "Error linking program" << std::endl;
        std::cerr << strInfo.c_str() << std::endl;
    }

    int numUniforms = 0;
    const int numChars = 100;
    char tempName[numChars];

    glGetProgramiv(mHandle, GL_ACTIVE_UNIFORMS, & numUniforms);

    for(int i = 0; i < numUniforms; ++i)
    {
        int length = 0;
        int paramsize = 0;
        GLenum paramtype = 0;
        glGetActiveUniform(mHandle, i, numChars, & length, & paramsize, & paramtype, tempName);

        std::string paramName(tempName);
        paramName = paramName.substr(0, length);

        uint32_t mParamHandle = glGetUniformLocation(mHandle, paramName.c_str());
        switch(paramtype)
        {
            case GL_FLOAT:
                mParameters[paramName] = new Parameter<float>(mParamHandle, paramName);
                break;
            case GL_FLOAT_VEC2:
                std::cerr << "GL_FLOAT_VEC2 uniforms Not supported" << std::endl;
                break;
            case GL_FLOAT_VEC3:
                mParameters[paramName] = new Parameter<Vector3>(mParamHandle, paramName);
                break;
            case GL_FLOAT_VEC4:
                mParameters[paramName] = new Parameter<Vector4>(mParamHandle, paramName);
                break;
            case GL_FLOAT_MAT2:
                std::cerr << "GL_FLOAT_MAT2 uniforms Not supported" << std::endl;
                break;
            case GL_FLOAT_MAT3:
                mParameters[paramName] = new Parameter<Matrix3x3>(mParamHandle, paramName);
                break;
            case GL_FLOAT_MAT4:
                mParameters[paramName] = new Parameter<Matrix4x4>(mParamHandle, paramName);
                break;
            default:
                mParameters[paramName] = new Parameter<int>(mParamHandle, paramName);
                break;

        }
        std::cout << "Found Uniform " << paramName.c_str() << std::endl;
    }

    int numAttributes = 0;
    glGetProgramiv(mHandle, GL_ACTIVE_ATTRIBUTES, & numAttributes);

    for(int i = 0; i < numAttributes; ++i)
    {
        int length = 0;
        int paramsize = 0;
        GLenum paramtype = 0;
        glGetActiveAttrib(mHandle, i, numChars, & length, & paramsize, & paramtype, tempName);

        std::string paramName(tempName);
        paramName = paramName.substr(0, length);

        uint32_t mAttribHandle = glGetAttribLocation(mHandle, paramName.c_str());
        switch(paramtype)
        {
            case GL_FLOAT:
                mAttributes[paramName] = new Parameter<std::vector<float> >(mAttribHandle, paramName);
                break;
            case GL_FLOAT_VEC2:
                std::cerr << "GL_FLOAT_VEC2 attributes Not supported" << std::endl;
                break;
            case GL_FLOAT_VEC3:
                mAttributes[paramName] = new Parameter<std::vector<Vector3> >(mAttribHandle, paramName);
                break;
            case GL_FLOAT_VEC4:
                mAttributes[paramName] = new Parameter<std::vector<Vector4> >(mAttribHandle, paramName);
                break;
            case GL_FLOAT_MAT2:
                std::cerr << "GL_FLOAT_MAT2 Vertex attributes not supported" << std::endl;
                break;
            case GL_FLOAT_MAT3:
                std::cerr << "GL_FLOAT_MAT3 Vertex attributes not supported" << std::endl;
                break;
            case GL_FLOAT_MAT4:
                std::cerr << "GL_FLOAT_MAT4 Vertex attributes not supported" << std::endl;
                break;
            default:
                mAttributes[paramName] = new Parameter<std::vector<int> >(mAttribHandle, paramName);
                break;

        }

        std::cout << "Found Attribute " << paramName.c_str() << std::endl;
    }

    return (bool)result;
}
Exemple #9
0
UINT CHFServerService::Run()
{
	CoInitializeEx(NULL, COINIT_MULTITHREADED);
	bool bTerminate = false;
	DWORD lNoUpdates = 0;
	unsigned long lTotalReceived = 0;
	unsigned long lTotalProcessed = 0;
	bool bEnableChecking = false;

	while(!bTerminate)
	{
		HANDLE hEvents[] = 
		{
			m_pServer->m_hHasSubscriptions,
			CHFServerService::GetStopEventHandle()
		};
		DWORD dwWaitResult = WaitForMultipleObjects(2, hEvents, FALSE, 15000)  ;

		switch(dwWaitResult)
		{
		case WAIT_TIMEOUT:
			{
				//			if(m_pServer->IsTerminate())
				//				break;

				long lCompositeUpdates   = ::InterlockedExchange(&m_pServer->m_lCompositeUpdates,	0L);
				long lRegionalUpdates    = ::InterlockedExchange(&m_pServer->m_lRegionalUpdates,	0L);
				long lProcessed          = ::InterlockedExchange(&m_pServer->m_lProcessedQuotes,	0L);
				long lHeartbeat          = ::InterlockedExchange(&m_pServer->m_lHeartbeat,			0L); 
				long lPeriodic           = ::InterlockedExchange(&m_pServer->m_lPeriodic,			0L); 
				long lPriceUpdates =  lCompositeUpdates + lRegionalUpdates;

				lTotalReceived  +=  lPriceUpdates;
				lTotalProcessed +=  lProcessed;
				DWORD lQueuesize = lTotalReceived -lTotalProcessed;

				CString strInfo("{");
				try
				{
					CStrategyPoolStatistics stat; 
					m_pServer->m_Pool.GetPoolStatistics(stat);
					for(CStrategyPoolStatistics::iterator itr = stat.begin(); itr != stat.end(); ++itr)
					{
						CString strForm;;
						strForm.Format(" %-6d ",*itr);
						strInfo+=strForm;
					}

//					for(std::vector<DWORD>::iterator itr = m_pServer->m_vecThreadPoolStatistics.begin();itr != m_pServer->m_vecThreadPoolStatistics.end();++itr)
//					{
//						CString strForm;;
//						strForm.Format(" %-6d ",*itr);
//						*itr = 0;
//						strInfo+=strForm;
//					}
				}catch(...){}
				strInfo+="}";

				EgLib::CEgLibTraceManager::Trace(LogInfoExt, _T("") , _T("ETI Realtime\t T% -6d [C% -6d] Pr% -6d(% -6d) HB % -3d\t Per %-3d %s"), lRegionalUpdates+lCompositeUpdates, lCompositeUpdates,  lProcessed, lQueuesize, lHeartbeat, lPeriodic, strInfo.GetString());	

				if(bEnableChecking && _Module.IsAutorestartEnabled())
				{
					vt_date dtNow(vt_date::GetCurrentDate());
					if(dtNow.get_day_of_week() != 0 && dtNow.get_day_of_week()!=6)
					{
						if(_Module.GetAutorestartBeginTime() && _Module.GetAutorestartEndTime() &&  _Module.GetAutorestartBeginTime() < _Module.GetAutorestartEndTime())
						{
							long lBeginHour = (long)_Module.GetAutorestartBeginTime()/100;
							long lEndHour   = (long)_Module.GetAutorestartEndTime()/100;
							long lBeginMinute = _Module.GetAutorestartBeginTime() - lBeginHour*100;
							long lEndMinute   = _Module.GetAutorestartEndTime() - lEndHour*100;

							if((dtNow.get_hour()>lBeginHour || (dtNow.get_hour() == lBeginHour && dtNow.get_minute() >= lBeginMinute)) && 
								(dtNow.get_hour()<lEndHour   || (dtNow.get_hour() == lEndHour   && dtNow.get_minute() <= lEndMinute) ))
							{
								if(lProcessed == 0 && lPriceUpdates != 0)
								{
									EgLib::CEgLibTraceManager::Trace(LogFaults, __FUNCTION__ , _T("No HF activity was processed in 15 seconds interval."));	
									m_pServer->OnIdle(true);
									//m_pServer->m_Pool.QueueRequest(reinterpret_cast<CHFServerThreadPool::RequestType>(new CEngineNoActivityMessage(m_pServer, false)));

								}
								else
									if(0==(lPriceUpdates+lHeartbeat+lPeriodic))
									{
										// No updates found in 15 seconds interval
										EgLib::CEgLibTraceManager::Trace(LogFaults, __FUNCTION__ , _T("No HF activity found in 15 seconds interval."));
										m_pServer->OnIdle(true);
									}
									else
										if(lPriceUpdates == 0)
										{
											if(++lNoUpdates > (_Module.AutorestartInterval()-1))
											{
												EgLib::CEgLibTraceManager::Trace(LogFaults, __FUNCTION__ , _T("No price updates found in %d seconds interval."),_Module.AutorestartInterval()*15 );	
												m_pServer->OnIdle(false);
												lNoUpdates = 0;
											}
										}
										else
										{
											if(lQueuesize > _Module.GetMaxQueueSize())
											{
												EgLib::CEgLibTraceManager::Trace(LogFaults, __FUNCTION__ , _T("The Processing queue exides maximum allowed qieie limit %d"), _Module.GetMaxQueueSize());
												m_pServer->OnIdle(true);
											}
											lNoUpdates = 0;
										}
							}
							else
								if(lPriceUpdates == 0 )
									EgLib::CEgLibTraceManager::Trace(LogWarning, __FUNCTION__ , _T("No price updates found in %d seconds interval but not working hours."),_Module.AutorestartInterval()*20 );	

						}
						else
							if(lPriceUpdates == 0 )
								EgLib::CEgLibTraceManager::Trace(LogWarning, __FUNCTION__ , _T("No price updates found in %d seconds interval but no autorestart enabled."),_Module.AutorestartInterval()*20 );	
					}
					else
						if(lPriceUpdates == 0 )
							EgLib::CEgLibTraceManager::Trace(LogWarning, __FUNCTION__ , _T("No price updates found in %d seconds interval but weekend."),_Module.AutorestartInterval()*20 );	
				}
				else
					if(bEnableChecking)
					{
						if(lPriceUpdates == 0 )
							EgLib::CEgLibTraceManager::Trace(LogWarning, __FUNCTION__ , _T("No price updates found in %d seconds interval but autorestart is disabled."),_Module.AutorestartInterval()*20 );	
					}
			}break;
		case WAIT_OBJECT_0:
			{
				EgLib::CEgLibTraceManager::Trace(LogInfoExt, __FUNCTION__ , _T("First subscription is detected. Do Reset Checking timer."));	
				bEnableChecking = true;
			}break;
		default:
			bTerminate = true;
			break;
		}
	}
	CoUninitialize();
	try
	{
		EgLib::CEgLibTraceManager::Trace(LogWarning, __FUNCTION__ , _T("Checking Thread Exit "));	
	}catch(...){}
	return 0 ;
}