Exemplo n.º 1
0
void Tresenv::doStatusUpdate(Speedometer& speedometer)
{
    speedometer.beginNewInterval();
    
    if (opt_perfdisplay)
    {
        ::fprintf(fout, "** Event #%" LL "d   T=%s   Elapsed: %s%s\n",
                  simulation.getEventNumber(),
                  SIMTIME_STR(simulation.getSimTime()),
                  timeToStr(totalElapsed()),
                  progressPercentage()); // note: IDE launcher uses this to track progress
        ::fprintf(fout, "     Speed:     ev/sec=%g   simsec/sec=%g   ev/simsec=%g\n",
                  speedometer.getEventsPerSec(),
                  speedometer.getSimSecPerSec(),
                  speedometer.getEventsPerSimSec());
        
        ::fprintf(fout, "     Messages:  created: %ld   present: %ld   in FES: %d\n",
                  cMessage::getTotalMessageCount(),
                  cMessage::getLiveMessageCount(),
                  simulation.msgQueue.getLength());
    }
    else
    {
        ::fprintf(fout, "** Event #%" LL "d   T=%s   Elapsed: %s%s   ev/sec=%g\n",
                  simulation.getEventNumber(),
                  SIMTIME_STR(simulation.getSimTime()),
                  timeToStr(totalElapsed()),
                  progressPercentage(), // note: IDE launcher uses this to track progress
                  speedometer.getEventsPerSec());
    }
    
    // status update is always autoflushed (not only if opt_autoflush is on)
    ::fflush(fout);
}
Exemplo n.º 2
0
void MailRecv::processReadMail(Net::MessageIn &msg)
{
    const int sz = msg.readInt16("len") - 101;
    MailMessage *const mail = new MailMessage;
    mail->id = msg.readInt32("message id");
    mail->title = msg.readString(40, "title");
    mail->sender = msg.readString(24, "sender name");
    msg.readInt32("unused");
    mail->money = msg.readInt32("money");
    mail->itemAmount = msg.readInt32("item amount");
    mail->itemId = msg.readInt16("item id");
    mail->itemType = msg.readInt16("item type");
    mail->itemIdentify = msg.readUInt8("identify");
    mail->itemAttribute = msg.readUInt8("attribute");
    mail->itemRefine = msg.readUInt8("refine");
    for (int f = 0; f < maxCards; f ++)
        mail->card[f] = msg.readUInt16("card");
    const int msgLen = msg.readUInt8("msg len");
    if (msgLen != sz)
        logger->log("error: wrong message size");
    mail->text = msg.readString(sz, "message");
    msg.readUInt8("zero");
    mail->strTime = timeToStr(mail->time);
    mailWindow->showMessage(mail);
}
Exemplo n.º 3
0
void MailRecv::processMailList(Net::MessageIn &msg)
{
    const int count = (msg.readInt16("len") - 8) / 73;
    const int amount = msg.readInt32("amount");
    if (count != amount)
        logger->log("error: wrong mails count");
    mailWindow->clear();
    for (int f = 0; f < count; f ++)
    {
        MailMessage *const mail = new MailMessage;
        mail->id = msg.readInt32("message id");
        mail->title = msg.readString(40, "title");
        mail->unread = msg.readUInt8("unread flag") ? true : false;
        mail->sender = msg.readString(24, "sender name");
        mail->time = msg.readInt32("time stamp");
        mail->strTime = timeToStr(mail->time);
        mailWindow->addMail(mail);
    }
}
Exemplo n.º 4
0
void Tresenv::printEventBanner(cSimpleModule *mod)
{
    ::fprintf(fout, "** Event #%" LL "d  T=%s%s   %s (%s, id=%d)\n",
              simulation.getEventNumber(),
              SIMTIME_STR(simulation.getSimTime()),
              progressPercentage(), // note: IDE launcher uses this to track progress
              mod->getFullPath().c_str(),
              mod->getComponentType()->getName(),
              mod->getId()
              );
    if (opt_eventbanner_details)
    {
        ::fprintf(fout, "   Elapsed: %s   Messages: created: %ld  present: %ld  in FES: %d\n",
                  timeToStr(totalElapsed()),
                  cMessage::getTotalMessageCount(),
                  cMessage::getLiveMessageCount(),
                  simulation.msgQueue.getLength());
    }
}