void tfrc_sender_no_feedback_timer_expired (TfrcSender *sender, guint64 now) { guint receive_rate = get_max_receive_rate (sender, FALSE); guint recover_rate = compute_initial_rate (sender->mss, sender->averaged_rtt); if (sender->averaged_rtt == 0 && sender->sent_packet) { /* We do not have X_Bps or recover_rate yet. * Halve the allowed sending rate. */ sender->rate = MAX ( sender->rate / 2, sender_get_segment_size (sender) / T_MBI); DEBUG_SENDER (sender, "no_fb: no p, initial, halve rate: %u", sender->rate); tfrc_sender_update_inst_rate (sender); } else if (((sender->last_loss_event_rate > 0 && receive_rate < recover_rate) || (sender->last_loss_event_rate == 0 && sender->rate < 2 * recover_rate)) && !sender->sent_packet) { /* Don't halve the allowed sending rate. */ /* do nothing */ DEBUG_SENDER (sender, "no_fb: idle, do nothing recv: %u recover: %u", receive_rate, recover_rate); } else if (sender->last_loss_event_rate == 0) { /* We do not have X_Bps yet. * Halve the allowed sending rate. */ sender->rate = MAX ( sender->rate / 2, sender_get_segment_size (sender) / T_MBI); DEBUG_SENDER (sender, "no_fb: no p, halve rate: %u recover: %u, sent: %u", sender->rate, recover_rate, sender->sent_packet); tfrc_sender_update_inst_rate (sender); } else if (sender->computed_rate / 2 > receive_rate) { /* 2 * X_recv was already limiting the sending rate. * Halve the allowed sending rate. */ DEBUG_SENDER (sender, "no_fb: computed rate %u > 2 * recv_rate %u", sender->computed_rate, receive_rate); update_limits(sender, receive_rate, now); } else { DEBUG_SENDER (sender, "no_fb: ELSE computed: %u", sender->computed_rate); update_limits(sender, sender->computed_rate / 2, now); } g_assert (sender->rate != 0); sender->nofeedback_timer_expiry = now + MAX (MAX ( 4 * sender->averaged_rtt, SECOND * 2 * sender_get_segment_size (sender) / sender->rate), MIN_NOFEEDBACK_TIMER); sender->sent_packet = FALSE; }
void UmlCanvas::resize(CanvasFormat f) { Q3Canvas::resize((int) (formatSize[f].w * zoom_value), (int) (formatSize[f].h * zoom_value)); width100percent = formatSize[f].w; height100percent = formatSize[f].h; update_limits(); // force redisplay else phantoms may appears setBackgroundColor(::Qt::lightGray); update(); setBackgroundColor(::Qt::white); update(); }
void UmlCanvas::set_view(DiagramView * v) { view = v; // add limits vlimit = new Q3CanvasLine(this); hlimit = new Q3CanvasLine(this); vlimit->setZ(TOP_Z); // alien hlimit->setZ(TOP_Z); // alien vlimit->setPen(::Qt::DotLine); hlimit->setPen(::Qt::DotLine); update_limits(); vlimit->show(); hlimit->show(); }
void UmlCanvas::set_view(DiagramView * v) { view = v; // add limits vlimit = new QGraphicsLineItem(/*this*/); hlimit = new QGraphicsLineItem(/*this*/); vlimit->setZValue(TOP_Z); // alien hlimit->setZValue(TOP_Z); // alien vlimit->setPen(::Qt::DotLine); hlimit->setPen(::Qt::DotLine); update_limits(); vlimit->show(); hlimit->show(); this->addItem(vlimit); this->addItem(hlimit); }
void UmlCanvas::set_zoom(double zm) { do_scale = TRUE; zoom_value = zm; float ps = (float)(NormalFont.pointSize() * zm); float ps_small = 2 * ps / 3; float ps_large = 2 * ps; the_fonts[UmlNormalFont] = NormalFont; the_fonts[UmlNormalFont].setPointSizeFloat(ps); the_fonts[UmlNormalBoldFont] = BoldFont; the_fonts[UmlNormalBoldFont].setPointSizeFloat(ps); the_fonts[UmlNormalItalicFont] = ItalicFont; the_fonts[UmlNormalItalicFont].setPointSizeFloat(ps); the_fonts[UmlNormalBoldItalicFont] = BoldItalicFont; the_fonts[UmlNormalBoldItalicFont].setPointSizeFloat(ps); the_fonts[UmlNormalUnderlinedFont] = UnderlineFont; the_fonts[UmlNormalUnderlinedFont].setPointSizeFloat(ps); the_fonts[UmlNormalStrikeOutFont] = StrikeOutFont; the_fonts[UmlNormalStrikeOutFont].setPointSizeFloat(ps); the_fonts[UmlSmallFont] = NormalFont; the_fonts[UmlSmallFont].setPointSizeFloat(ps_small); the_fonts[UmlSmallBoldFont] = BoldFont; the_fonts[UmlSmallBoldFont].setPointSizeFloat(ps_small); the_fonts[UmlSmallItalicFont] = ItalicFont; the_fonts[UmlSmallItalicFont].setPointSizeFloat(ps_small); the_fonts[UmlSmallBoldItalicFont] = BoldItalicFont; the_fonts[UmlSmallBoldItalicFont].setPointSizeFloat(ps_small); the_fonts[UmlLargeFont] = NormalFont; the_fonts[UmlLargeFont].setPointSizeFloat(ps_large); the_fonts[UmlLargeBoldFont] = BoldFont; the_fonts[UmlLargeBoldFont].setPointSizeFloat(ps_large); the_fonts[UmlLargeItalicFont] = ItalicFont; the_fonts[UmlLargeItalicFont].setPointSizeFloat(ps_large); the_fonts[UmlLargeBoldItalicFont] = BoldItalicFont; the_fonts[UmlLargeBoldItalicFont].setPointSizeFloat(ps_large); Q3Canvas::resize((int)(width100percent * zm), (int)(height100percent * zm)); update_limits(); }
void UmlCanvas::resize(CanvasFormat f) { setSceneRect(0, 0,(int)(formatSize[f].w * zoom_value), (int)(formatSize[f].h * zoom_value)); width100percent = formatSize[f].w; height100percent = formatSize[f].h; update_limits(); // force redisplay else phantoms may appears QBrush bBrush = backgroundBrush(); bBrush.setColor(::Qt::lightGray); setBackgroundBrush(bBrush); //setBackgroundColor(::Qt::lightGray); update(); bBrush.setColor(::Qt::white); //setBackgroundColor(::Qt::white); setBackgroundBrush(bBrush); update(); }