/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* vim: set ts=8 sts=2 et sw=2 tw=80: */ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
// returns true if no more segments remain: bool DeleteFirstSegment(); // pops from beginning
// returns true if no more segments remain: bool DeleteLastSegment(); // pops from beginning
// Call Realloc() on last segment. This is used to reduce memory // consumption when data is not an exact multiple of segment size. bool ReallocLastSegment(size_t aNewSize);
// Adds a task to the array. Returns the size of the array.
size_t AddTask(std::function<void()>&& aTask) { auto tasks = mTasks.Lock();
tasks->AppendElement(std::move(aTask)); return tasks->Length();
}
// This object is created the first time we need to dispatch to another thread // to free segments. It is only freed when the nsSegmentedBufer is destroyed // or when the runnable is finally handled and its refcount goes to 0.
RefPtr<FreeOMTPointers> mFreeOMT;
};
// NS_SEGMENTARRAY_INITIAL_SIZE: This number needs to start out as a // power of 2 given how it gets used. We double the segment array // when we overflow it, and use that fact that it's a power of 2 // to compute a fast modulus operation in IsFull. // // 32 segment array entries can accommodate 128k of data if segments // are 4k in size. That seems like a reasonable amount that will avoid // needing to grow the segment array. #define NS_SEGMENTARRAY_INITIAL_COUNT 32
#endif// nsSegmentedBuffer_h__
¤ Dauer der Verarbeitung: 0.20 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.