/** * 玩家落子 * 如果当前点可以落子则返回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(); } } }
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); }
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); } }
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; }
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 ; }