Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(392)

Unified Diff: net/tools/flip_server/output_ordering.cc

Issue 2169503002: Remove flip_server. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/tools/flip_server/output_ordering.h ('k') | net/tools/flip_server/ring_buffer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/tools/flip_server/output_ordering.cc
diff --git a/net/tools/flip_server/output_ordering.cc b/net/tools/flip_server/output_ordering.cc
deleted file mode 100644
index 24e92c0c000154d43bebf1324c72d31c79e7a417..0000000000000000000000000000000000000000
--- a/net/tools/flip_server/output_ordering.cc
+++ /dev/null
@@ -1,180 +0,0 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "net/tools/flip_server/output_ordering.h"
-
-#include <utility>
-
-#include "net/tools/flip_server/flip_config.h"
-#include "net/tools/flip_server/sm_connection.h"
-
-namespace net {
-
-OutputOrdering::PriorityMapPointer::PriorityMapPointer()
- : ring(NULL), alarm_enabled(false) {}
-
-OutputOrdering::PriorityMapPointer::PriorityMapPointer(
- const PriorityMapPointer& other) = default;
-
-OutputOrdering::PriorityMapPointer::~PriorityMapPointer() {}
-
-// static
-double OutputOrdering::server_think_time_in_s_ = 0.0;
-
-OutputOrdering::OutputOrdering(SMConnectionInterface* connection)
- : first_data_senders_threshold_(kInitialDataSendersThreshold),
- connection_(connection) {
- if (connection)
- epoll_server_ = connection->epoll_server();
-}
-
-OutputOrdering::~OutputOrdering() { Reset(); }
-
-void OutputOrdering::Reset() {
- while (!stream_ids_.empty()) {
- StreamIdToPriorityMap::iterator sitpmi = stream_ids_.begin();
- PriorityMapPointer& pmp = sitpmi->second;
- if (pmp.alarm_enabled) {
- epoll_server_->UnregisterAlarm(pmp.alarm_token);
- }
- stream_ids_.erase(sitpmi);
- }
- priority_map_.clear();
- first_data_senders_.clear();
-}
-
-bool OutputOrdering::ExistsInPriorityMaps(uint32_t stream_id) const {
- StreamIdToPriorityMap::const_iterator sitpmi = stream_ids_.find(stream_id);
- return sitpmi != stream_ids_.end();
-}
-
-OutputOrdering::BeginOutputtingAlarm::BeginOutputtingAlarm(
- OutputOrdering* oo,
- OutputOrdering::PriorityMapPointer* pmp,
- const MemCacheIter& mci)
- : output_ordering_(oo), pmp_(pmp), mci_(mci), epoll_server_(NULL) {}
-
-OutputOrdering::BeginOutputtingAlarm::~BeginOutputtingAlarm() {
- if (epoll_server_ && pmp_->alarm_enabled)
- epoll_server_->UnregisterAlarm(pmp_->alarm_token);
-}
-
-int64_t OutputOrdering::BeginOutputtingAlarm::OnAlarm() {
- OnUnregistration();
- output_ordering_->MoveToActive(pmp_, mci_);
- VLOG(2) << "ON ALARM! Should now start to output...";
- delete this;
- return 0;
-}
-
-void OutputOrdering::BeginOutputtingAlarm::OnRegistration(
- const EpollServer::AlarmRegToken& tok,
- EpollServer* eps) {
- epoll_server_ = eps;
- pmp_->alarm_token = tok;
- pmp_->alarm_enabled = true;
-}
-
-void OutputOrdering::BeginOutputtingAlarm::OnUnregistration() {
- pmp_->alarm_enabled = false;
- delete this;
-}
-
-void OutputOrdering::BeginOutputtingAlarm::OnShutdown(EpollServer* eps) {
- OnUnregistration();
-}
-
-void OutputOrdering::MoveToActive(PriorityMapPointer* pmp, MemCacheIter mci) {
- VLOG(2) << "Moving to active!";
- first_data_senders_.push_back(mci);
- pmp->ring = &first_data_senders_;
- pmp->it = first_data_senders_.end();
- --pmp->it;
- connection_->ReadyToSend();
-}
-
-void OutputOrdering::AddToOutputOrder(const MemCacheIter& mci) {
- if (ExistsInPriorityMaps(mci.stream_id))
- LOG(ERROR) << "OOps, already was inserted here?!";
-
- double think_time_in_s = server_think_time_in_s_;
- std::string x_server_latency =
- mci.file_data->headers()->GetHeader("X-Server-Latency").as_string();
- if (!x_server_latency.empty()) {
- char* endp;
- double tmp_think_time_in_s = strtod(x_server_latency.c_str(), &endp);
- if (endp != x_server_latency.c_str() + x_server_latency.size()) {
- LOG(ERROR) << "Unable to understand X-Server-Latency of: "
- << x_server_latency
- << " for resource: " << mci.file_data->filename().c_str();
- } else {
- think_time_in_s = tmp_think_time_in_s;
- }
- }
- StreamIdToPriorityMap::iterator sitpmi;
- sitpmi = stream_ids_.insert(std::pair<uint32_t, PriorityMapPointer>(
- mci.stream_id, PriorityMapPointer()))
- .first;
- PriorityMapPointer& pmp = sitpmi->second;
-
- BeginOutputtingAlarm* boa = new BeginOutputtingAlarm(this, &pmp, mci);
- VLOG(1) << "Server think time: " << think_time_in_s;
- epoll_server_->RegisterAlarmApproximateDelta(think_time_in_s * 1000000, boa);
-}
-
-void OutputOrdering::SpliceToPriorityRing(PriorityRing::iterator pri) {
- MemCacheIter& mci = *pri;
- PriorityMap::iterator pmi = priority_map_.find(mci.priority);
- if (pmi == priority_map_.end()) {
- pmi = priority_map_.insert(std::pair<uint32_t, PriorityRing>(
- mci.priority, PriorityRing()))
- .first;
- }
-
- pmi->second.splice(pmi->second.end(), first_data_senders_, pri);
- StreamIdToPriorityMap::iterator sitpmi = stream_ids_.find(mci.stream_id);
- sitpmi->second.ring = &(pmi->second);
-}
-
-MemCacheIter* OutputOrdering::GetIter() {
- while (!first_data_senders_.empty()) {
- MemCacheIter& mci = first_data_senders_.front();
- if (mci.bytes_sent >= first_data_senders_threshold_) {
- SpliceToPriorityRing(first_data_senders_.begin());
- } else {
- first_data_senders_.splice(first_data_senders_.end(),
- first_data_senders_,
- first_data_senders_.begin());
- mci.max_segment_size = kInitialDataSendersThreshold;
- return &mci;
- }
- }
- while (!priority_map_.empty()) {
- PriorityRing& first_ring = priority_map_.begin()->second;
- if (first_ring.empty()) {
- priority_map_.erase(priority_map_.begin());
- continue;
- }
- MemCacheIter& mci = first_ring.front();
- first_ring.splice(first_ring.end(), first_ring, first_ring.begin());
- mci.max_segment_size = kSpdySegmentSize;
- return &mci;
- }
- return NULL;
-}
-
-void OutputOrdering::RemoveStreamId(uint32_t stream_id) {
- StreamIdToPriorityMap::iterator sitpmi = stream_ids_.find(stream_id);
- if (sitpmi == stream_ids_.end())
- return;
-
- PriorityMapPointer& pmp = sitpmi->second;
- if (pmp.alarm_enabled)
- epoll_server_->UnregisterAlarm(pmp.alarm_token);
- else
- pmp.ring->erase(pmp.it);
- stream_ids_.erase(sitpmi);
-}
-
-} // namespace net
« no previous file with comments | « net/tools/flip_server/output_ordering.h ('k') | net/tools/flip_server/ring_buffer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698