void Run(std::string fname) { if (!m_reader.Read(fname)) { std::cerr << "Can not read input data\n"; assert(0); } { LogEx("Read field\n" << m_reader); } int needTasks = m_reader.GetGridSize() * m_reader.GetGridSize() + 1; if (m_env.m_procCnt < needTasks) { std::stringstream ss; ss << "not enough tasks: need " << needTasks << " got " << m_env.m_procCnt; throw ss.str(); } else if (needTasks < m_env.m_procCnt) { for (int i = needTasks; i < m_env.m_procCnt; ++i) { SendCmd(CMD_DIE, i); } } SendTasks(); SendGo(); if (WaitFinish()) { NotifyAllTasks(CMD_FIN_FOUND); std::string way; GetWay(way); LogEx("Way found: " << way); std::cerr << "Way found: " << way << "\n"; } else { std::cerr << "Can not find way\n"; } NotifyAllTasks(CMD_DIE); }
QVariantMap LxDialogBase::print(QString printerName, QString content, int isPreview) { LogEx("void LomoX::print( QString printerName, QString content )"); LogEx(("Printer name:" + printerName).toLocal8Bit().data()); LogEx(("Printer content:" + content).toLocal8Bit().data()); contentForPrint = content; QList <QPrinterInfo> plist = QPrinterInfo::availablePrinters(); LogEx("All available printers:"); bool printerAvailable = false; for (QPrinterInfo info : plist) { LogEx(info.printerName().toLocal8Bit().data()); if (printerName == info.printerName()) { printerAvailable = true; break; } } int resultCode = 0; QString resultInfo = "success"; if (printerAvailable) { QPrinter printer(QPrinter::HighResolution); QPrintPreviewDialog preview(&printer); printer.setPrinterName(printerName); printer.setFullPage(true); if (isPreview) { connect(&preview, SIGNAL(paintRequested(QPrinter*)), this, SLOT(print(QPrinter*))); preview.exec(); } else { printContent(printer, content); } } else {
void RecieveField() { CMpiConnections conn; GetData(conn, 0); CMatrix matr; GetData(matr, 0); { LogEx("Got matr\n" << matr); } m_field.SetCommunicator(new CMpiCommunicator(conn, *this, *this)); m_field.GetType() = matr; m_field.Resize(matr.m_dim); { LogEx("Created field\n" << m_field); } }
void LxDialogBase::reload() { LogEx("void LomoX::reload()"); VERIFY_IN_POINTER(m_ptrWebView); AppIsRunning(1000); m_ptrWebView->stop(); m_ptrWebView->reload(); }
void LxDialogBase::showMaximized() { LogEx("void LomoX::showMaximized()"); VERIFY_IN_POINTER(m_ptrWebView); if (m_ptrWebView->isMaximized()) return; else m_ptrWebView->showMaximized(); }
void LxDialogBase::move() { LogEx("void LomoX::move()"); VERIFY_IN_POINTER(m_ptrWebView); # ifdef Q_OS_WIN32 WId id = m_ptrWebView->winId(); ReleaseCapture(); SendMessage(HWND(id), WM_SYSCOMMAND, SC_MOVE|HTCAPTION, 0); #endif }
int _tmain( int argc, _TCHAR* argv[] ) { LogEx( FOREGROUND_GREEN|FOREGROUND_INTENSITY, false, "*******************************************************************************" ); LogEx( FOREGROUND_GREEN|FOREGROUND_INTENSITY, false, "** ~~ DerpCraft ~~ **" ); LogEx( FOREGROUND_GREEN|FOREGROUND_INTENSITY, false, "** %s %s **", __DATE__, __TIME__ ); LogEx( FOREGROUND_GREEN|FOREGROUND_INTENSITY, false, "*******************************************************************************\n" ); #ifdef _DEBUG _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_CHECK_CRT_DF | _CRTDBG_LEAK_CHECK_DF ); #endif SetConsoleCtrlHandler( ConsoleMessageHandler, TRUE ); SetXSeed( GetTickCount() ); g_conf.ReadConfig( "test.txt" ); //if( !g_DBManager.CreateWorker( 2 ) ) //{ // Log( Error, "Create DB Worker Failed." ); // goto FAILED; //} g_world.CreateWorld( WorldDimension::Overworld, 10, WorldType::Flat ); g_world.CreateWorld( WorldDimension::Nether, 10, WorldType::Default ); g_srv.StartNetwork( g_conf.GetServerPort() ); g_srv.UpdateServerInformation(); LogEx( FOREGROUND_GREEN|FOREGROUND_INTENSITY, false, "\n*******************************************************************************\n" ); MSG msg; while(GetMessage (&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } FAILED: Log( Error, "Failed!!" ); system( "pause" ); return 0; }
//add by KeoJam 增加打印接口 void LxDialogBase::printPreview() { LogEx("void LomoX::printPreview()"); if (!m_ptrWebView) return; QPrintPreviewDialog *dialog = new QPrintPreviewDialog(m_ptrWebView); dialog->setAttribute(Qt::WA_DeleteOnClose); connect(dialog, SIGNAL(paintRequested(QPrinter*)), m_ptrWebView, SLOT(print(QPrinter*))); dialog->exec(); }
virtual bool Go(uint value, CSideCoord coord) { LogEx("Comm Go " << coord); int rank = m_fields[coord.m_side]; if (0 == rank) return false; SendCmd(CMD_ENTER, 0); SendCmd(CMD_GO, rank); SendData(value, rank); SendData(coord.Flip(), rank); return false; }
virtual bool GetWay(uint value, CSideCoord coord, std::string& way) { LogEx("Comm GetWay value " << value << " " << coord); int rank = m_fields[coord.m_side]; if (0 == rank) return false; SendCmd(CMD_FIND_WAY, rank); SendData(value, rank); SendData(coord.Flip(), rank); SendData(way, rank); return false; }
bool WaitFinish() { Log("WaitFinish"); int delta = 1; bool finFound = false; ECommands cmd; while (delta > 0) { cmd = RecieveCmd(MPI_ANY_SOURCE); switch (cmd) { case CMD_ENTER: { ++delta; } break; case CMD_FIN_FOUND: { finFound = true; }; // fall throw case CMD_EXIT: { --delta; } break; default: assert(0); } { LogEx("Now delta is " << delta); } } { LogEx("Work finished " << finFound); } return finFound; }
void LxDialogBase::showNormal() { LogEx("void LomoX::normal()"); VERIFY_IN_POINTER(m_ptrWebView); // m_ptrWebView->showNormal(); WId id = m_ptrWebView->winId(); ShowWindow((HWND)id, SW_RESTORE); if (m_nWidth == 0 && m_nHeight == 0) { qDebug() << m_ptrWebView->minimumWidth(); SetWindowPos((HWND)id, HWND_TOP, 0, 0, m_ptrWebView->minimumWidth(), m_ptrWebView->minimumHeight(), SWP_NOMOVE); } else SetWindowPos((HWND)id, HWND_TOP, 0, 0, m_nWidth, m_nHeight, SWP_NOMOVE); }
void SendTasks() { Log("SendTasks"); uint s = m_reader.GetGridSize(); for (uint y = 0; y < s; ++y) { for (uint x = 0; x < s; ++x) { CMpiConnections conn = CMpiConnections( s, CPointCoord(x, y-1), CPointCoord(x+1, y ), CPointCoord(x, y+1), CPointCoord(x-1, y ) ); int task = conn.GridCoordToRank(s, CPointCoord(x, y)); SendCmd(CMD_SEND_INPUT_DATA, task); SendData(conn, task); SendData(m_reader.Get(x, y)->GetType(), task); LogEx("to " << task << "\n" << *m_reader.Get(x, y)); } } }
void LxDialogBase::setDialogWH( QVariant Width, QVariant Hight) { LogEx("voikd LomoX::setDialogWH()"); VERIFY_IN_POINTER(m_ptrWebView); if (Width.isNull()|| Hight.isNull()) return; int nWidth = 0, nHeight = 0; if (QVariant::Double == Width.type() && QVariant::Double == Hight.type()) { nWidth = (int) Width.toDouble() + 1; nHeight = (int) Hight.toDouble() + 1; QSize size(nWidth, nHeight); m_ptrWebView->resize(size); } else { //榛樿 } }
void LxDialogBase::openUrl(QVariant url) { LogEx("void LomoX::openUrl()"); QString strUrl = url.toString(); QDesktopServices::openUrl(QUrl(strUrl)); }
bool LxDialogBase::isFullScreen() { LogEx("isFullScreen()"); Q_CHECK_PTR(m_ptrWebView); return m_ptrWebView->isFullScreen(); }
bool LxDialogBase::isMinimized() { LogEx("isMinimized"); Q_CHECK_PTR(m_ptrWebView); return m_ptrWebView->isMinimized(); }
void Run() { bool ok = true; bool finFound = false; bool gotField = false; { ECommands cmd = RecieveCmd(0); switch (cmd) { case CMD_SEND_INPUT_DATA: { RecieveField(); gotField = true; } break; case CMD_DIE: { ok = false; } break; default: assert(0); } } while (ok && !finFound) { MPI_Status r; switch(RecieveCmd(MPI_ANY_SOURCE, &r)) { case CMD_DIE: { ok = false; } break; case CMD_SEND_TASK: { CPointCoord p; GetData(p, 0); bool res = m_field.Go(0, p); if (res) { SendCmd(CMD_FIN_FOUND); } else { SendCmd(CMD_EXIT); } } break; case CMD_GO: { uint dist; CSideCoord coord; GetData(dist, r.MPI_SOURCE); GetData(coord, r.MPI_SOURCE); bool res = m_field.Go(dist, m_field.GetSize().FromSideCoord(coord)); if (res) { SendCmd(CMD_FIN_FOUND); } else { SendCmd(CMD_EXIT); } } break; case CMD_FIN_FOUND: { finFound = true; } break; case CMD_NONE: case CMD_SEND_ANS: case CMD_SEND_INPUT_DATA: case CMD_NO_FIN: case CMD_FIND_WAY: case CMD_SEND_WAY: case CMD_NO_WAY: default: assert(0); } } if (!ok || !finFound) return; while (ok) { MPI_Status r; switch(RecieveCmd(MPI_ANY_SOURCE, &r)) { case CMD_START_FIND_WAY: { CPointCoord p; GetData(p, r.MPI_SOURCE); std::string way; { LogEx("CMD_START_FIND_WAY\n" << m_field); } bool found = m_field.GetWay(-1, p, way); if (found) { SendCmd(CMD_SEND_WAY, 0); SendData(way, 0); } { LogEx(m_field); } } break; case CMD_FIND_WAY: { uint dist; CSideCoord c; std::string way; GetData(dist, r.MPI_SOURCE); GetData(c, r.MPI_SOURCE); GetData(way, r.MPI_SOURCE); bool found = m_field.GetWay(dist, m_field.GetSize().FromSideCoord(c), way); if (found) { SendCmd(CMD_SEND_WAY, 0); SendData(way, 0); } { LogEx(m_field); } } break; case CMD_DIE: { ok = false; } break; case CMD_GO: { //skip uint dist; CSideCoord coord; GetData(dist, r.MPI_SOURCE); GetData(coord, r.MPI_SOURCE); } break; case CMD_NONE: case CMD_SEND_TASK: case CMD_SEND_ANS: case CMD_SEND_INPUT_DATA: case CMD_FIN_FOUND: case CMD_NO_FIN: case CMD_SEND_WAY: case CMD_NO_WAY: default: assert(0); } } if (gotField) { LogEx(m_field); } }
int LxDialogBase::minimumWidth() { LogEx("LMDialogBase::minimumWidth()"); Q_CHECK_PTR(m_ptrWebView); return m_ptrWebView->minimumWidth(); }
void LxDialogBase::showMinimized() { LogEx("void LomoX::showMinimized()"); VERIFY_IN_POINTER(m_ptrWebView); m_ptrWebView->showMinimized(); }
void LxDialogBase::setUrl( QString strUrl ) { LogEx("setUrl"); Q_CHECK_PTR(m_ptrWebView); m_ptrWebView->setUrl(QUrl(strUrl)); }
LxDialogBase::~LxDialogBase() { LogEx("LomoX::~LMDialogBase()"); LxDialogs *plxDialogs = lxCoreApp->getDialogs(); plxDialogs->remove(m_url.toString()); }
void LxDialogBase::setMaximumSize( int maxw, int maxh ) { LogEx("LMDialogBase::setMaximumSize( int minw, int minh )"); Q_CHECK_PTR(m_ptrWebView); m_ptrWebView->setMaximumSize(maxw, maxh); }
void LxDialogBase::setMinimumHeight( int minh ) { LogEx("LMDialogBase::setMinimumHeight( int minh )"); Q_CHECK_PTR(m_ptrWebView); m_ptrWebView->setMinimumHeight(minh); }
void LxDialogBase::setVisible( bool visible ) { LogEx("LxDialogBase::setVisible( bool visible )"); Q_CHECK_PTR(m_ptrWebView); m_ptrWebView->setVisible(visible); }
void LxDialogBase::setHidden( bool hidden ) { LogEx("LxDialogBase::setHidden( bool hidden )"); Q_CHECK_PTR(m_ptrWebView); m_ptrWebView->setHidden(hidden); }
void LxDialogBase::setMaximumWidth( int maxw ) { LogEx("LMDialogBase::setMaximumWidth( int maxw )"); Q_CHECK_PTR(m_ptrWebView); m_ptrWebView->setMaximumWidth(maxw); }
int LxDialogBase::maximumHeight() { LogEx("LMDialogBase::maximumHeight()"); Q_CHECK_PTR(m_ptrWebView); return m_ptrWebView->maximumHeight(); }
QObject* LxDialogBase::getCoreDialog() { LogEx("LxDialogBase::getCoreDialog()"); Q_CHECK_PTR(m_ptrWebView); return m_ptrWebView; }
void LxDialogBase::setMaximumHeight( int maxh ) { LogEx("LMDialogBase::setMaximumHeight( )"); Q_CHECK_PTR(m_ptrWebView); m_ptrWebView->setMaximumHeight(maxh); }