Esempio n. 1
0
int InsertCommand::execute( ossSocket & sock, std::vector<std::string> & argVec )
{
   int rc = EDB_OK;
   if( argVec.size() <1 )
   {
      return getError(EDB_INSERT_INVALID_ARGUMENT);
   }
   _jsonString = argVec[0];
     if( !sock.isConnected() )
   {
      return getError(EDB_SOCK_NOT_CONNECT);
   }

   rc = sendOrder( sock, msgBuildInsert );
   PD_RC_CHECK ( rc, PDERROR, "Failed to send order, rc = %d", rc ) ;

   rc = recvReply( sock );
   PD_RC_CHECK ( rc, PDERROR, "Failed to receive reply, rc = %d", rc ) ;
   rc = handleReply();
   PD_RC_CHECK ( rc, PDERROR, "Failed to receive reply, rc = %d", rc ) ;
done :
   return rc;
error :
   goto done ;
}
Esempio n. 2
0
void p3ZeroReserveRS::sendOrderBook( const std::string & uid )
{
    {
        RsStackMutex askMutex( m_asks->m_order_mutex );
        for( OrderBook::OrderIterator it = m_asks->begin(); it != m_asks->end(); it++ ){
            sendOrder( uid, *it );
        }
    }
    {
        RsStackMutex bidMutex( m_bids->m_order_mutex );
        for( OrderBook::OrderIterator it = m_bids->begin(); it != m_bids->end(); it++ ){
            sendOrder( uid, *it );
        }
    }
    sendItem( new RsZeroReserveMsgItem( RsZeroReserveMsgItem::SENT_ORDERBOOK, "" ) );
}
Esempio n. 3
0
void Reception::run(void) {
	Kitchen *to_send;

	while (!this->_orders.empty()) {
		bool taken(false);

		this->_kitchens.sort(Misc::sortByOrders);
		for (std::list<Kitchen>::iterator it = this->_kitchens.begin(); it != this->_kitchens.end(); it++) {
			if (it->canTakeOrder()) {
				it->takeOrder();
				it->push(this->_orders.front());

				to_send = &(*it);
				taken = true;
				break;
			}
		}

		if (!taken) {
			to_send = createKitchen();
			to_send->push(this->_orders.front());
		}

		sendOrder(to_send);
		this->pop();
	}

	this->_currentKitchen = NULL;
}
Esempio n. 4
0
int main(int argc, char *argv[])
{ 
    QApplication::setGraphicsSystem("raster");
    QApplication a(argc, argv);

    QTextCodec::setCodecForTr(QTextCodec::codecForLocale());

    QString privatePathQt(QApplication::applicationDirPath());
    QString path(privatePathQt);
    path = QDir::toNativeSeparators(path);

    Server server;
    if (!server.listen(QHostAddress::Any, 6177)) {
        std::cerr << "Failed to bind to port" << std::endl;
        return 1;
    }

    QDeclarativeView view;
    view.engine()->setOfflineStoragePath(path);
    QObject::connect((QObject*)view.engine(), SIGNAL(quit()), &a, SLOT(quit()));

    view.setSource(QUrl("qrc:/qml/main.qml"));
    view.show();

    QString md5;
    QString dbname="DemoDB";
    QByteArray ba;
    ba = QCryptographicHash::hash (dbname.toAscii(), QCryptographicHash::Md5);
    md5.append(ba.toHex());
    md5.append(".sqlite");

    path.append(QDir::separator()).append("Databases");
    path.append(QDir::separator()).append(md5);
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName(path);
    if (!db.open()) {
        std::cerr << "Cannot open database" << std::endl;
        return 1;
    }

    OrderManager orderManager;
    view.rootContext()->setContextProperty("server", &server);
    view.rootContext()->setContextProperty("orderManager", &orderManager);

    Client client;
    QObject::connect(&orderManager, SIGNAL(send()), &client, SLOT(sendOrder()));
    QObject::connect(&server, SIGNAL(paied(quint32)), &orderManager, SLOT(payOrder(quint32)));

    DeviceManager deviceManager;
    QObject::connect(&deviceManager, SIGNAL(registerSignal()), &client, SLOT(sendRegistration()));
    view.rootContext()->setContextProperty("deviceManager", &deviceManager);
    deviceManager.registerDevice();

    return a.exec();
}
Esempio n. 5
0
int QuitCommand::execute( ossSocket & sock, std::vector<std::string> & argVec )
{
   int ret = EDB_OK;
   if( !sock.isConnected() )
   {
      return getError(EDB_SOCK_NOT_CONNECT);
   }
   ret = sendOrder( sock, 0 );
   //sock.close();
   ret = handleReply();
   return ret;
}
Esempio n. 6
0
int SnapshotCommand::execute( ossSocket & sock, std::vector<std::string> &argVec)
{
   int rc = EDB_OK;
   if( !sock.isConnected() )
   {
      return getError(EDB_SOCK_NOT_CONNECT);
   }

   rc = sendOrder( sock, OP_SNAPSHOT );
   PD_RC_CHECK ( rc, PDERROR, "Failed to send order, rc = %d", rc);
   rc = recvReply( sock );
   PD_RC_CHECK ( rc, PDERROR, "Failed to receive reply, rc = %d", rc);
   rc = handleReply();
   PD_RC_CHECK ( rc, PDERROR, "Failed to receive reply, rc = %d", rc);
done :
   return rc;
error :
   goto done ;
}
Esempio n. 7
0
void p3ZeroReserveRS::publishOrder( OrderBook::Order * order, RsZeroReserveOrderBookItem * item )
{
    std::list< std::string > sendList;
    m_peers->getOnlineList(sendList);
    for(std::list< std::string >::const_iterator it = sendList.begin(); it != sendList.end(); it++ ){
        if( (*it) == getOwnId() ) continue;
        if( item && (*it) == item->PeerId() ) continue; // don't return to sender

        Credit c( *it, Currency::currencySymbols[ order->m_currency ] );
        c.loadPeer();
        // do not route orders we cannot at least fill to 10%
        if( order->m_orderType == OrderBook::Order::ASK && ( order->m_purpose != OrderBook::Order::CANCEL || order->m_purpose != OrderBook::Order::FILLED ) ){
            if( c.getMyAvailable() < order->m_amount * 0.1 ) continue;
        }
        else{
            if( c.getPeerAvailable() < order->m_amount * 0.1 ) continue;
        }
        sendOrder( *it, order );
    }
}
Esempio n. 8
0
void	Kitchen::run()
{
  bool	done = false;
  std::string	trame;
  std::string	cmd;

  this->throwCounter();
  while (!done)
    {
      trame = getOrder();
      std::vector<std::string>	untrame = Trame::unpack(trame);
      if (untrame.size() > 0)
	{
	  cmd = Trame::getCmd(trame);
	  if (cmd == "GetStat")
	    sendOrder(buildStat());
	  else if (cmd == "GetPizza")
	    this->chief->preparePizza(trame);
	  else if (cmd == "Destroy")
	    done = true;
	}
    }
}
Esempio n. 9
0
void Player::update()
{
    m_controller.update();
    m_gui->updateChildren(m_controller, Vec(0, 0), m_drawDim);

    if(m_controller.pressed(SELECT) && !m_gui->isInside(m_controller.mousePos()))
    {
        m_A = screenToWorld(mousePos());
        m_selecting = true;
    }
    if(m_controller.down(SELECT))
        m_B = screenToWorld(mousePos());
    else
    {
        m_A = m_B;
        m_selecting = false;
    }
    if(m_selecting)
    {
        m_selection = m_world.selectEntitiesInRect(this, m_A, m_B);
    }
    if(!m_gui->isInside(m_controller.mousePos()) && m_selection.size() > 0)
        sendOrder();
}
INT32U cbd_reciple_data::getData(INT8U type)
{
  switch(type)
  {
    ///***********************************running time******************************************
    case TYPE_RUNTIME:
    setModePid(0x01, 0x1f);
    sendOrder();
    return char_meger(m_cData[3], m_cData[4]);
    break;
    
    ///***********************************vehicle speed*****************************************
    case TYPE_VSPEED:
    setModePid(0x01, 0x0d);
    sendOrder();
    
    m_nSpeed = m_cData[3];
    AvSpeedBufSave();
    
    if(m_nSpeed<150)
    return (INT32U)m_nSpeed;
    else return m_cSpeedBuf[AVERAGENUM-1];
    break;
    
    ///***********************************average vehicle speed  *******************************
    case TYPE_AVSPEED:
    return AvSpeedCount();
    break;
    
    ///***********************************mileage***********************************************
    case TYPE_MILEAGE:
    setModePid(0x01, 0x31);
    sendOrder();
    return (char_meger(m_cData[3], m_cData[4]) - m_nMileage_init);
    break;
    
    ///***********************************InstantaneousFuelConsumption**************************
    case TYPE_FUELCON:
    setModePid(0x01, 0x10);
    sendOrder();
    return char_meger(m_cData[3], m_cData[4]);
    break;
    
    ///***********************************engine speed******************************************
    case TYPE_ENGINE_SPEED:
    setModePid(0x01, 0x0c);
    sendOrder();
    return (char_meger(m_cData[3], m_cData[4])/4);
    break;
    
    ///***********************************oil temperature***************************************
    case TYPE_OILTEMP:
    setModePid(0x01, 0x05);
    sendOrder();
    return (m_cData[3] - 40);
    break;
    ///***********************************cooltant temperature**********************************
    case TYPE_COOLTEMP:
    setModePid(0x01, 0x05);
    sendOrder();
    return (m_cData[3] - 40);
    break;
    
    ///***********************************something else ? *************************************
    default:
    
    ;
   }
}