Home | History | Annotate | Download | only in libbroadcastring

Lines Matching refs:record_count

68 //   uint32_t record_count = kMyDesiredCount;
69 // uint32_t ring_size = Ring::MemorySize(record_count);
83 // Ring ring = Ring::Create(mmap_base, mmap_size, record_count);
173 // Creates a new ring at |mmap| with |record_count| records.
175 // There must be at least |MemorySize(record_count)| bytes of space already
180 uint32_t record_count) {
182 CHECK(ring.ValidateGeometry(mmap_size, sizeof(Record), record_count));
183 ring.InitializeHeader(sizeof(Record), record_count);
206 uint32_t record_count = 0;
210 record_count = std::atomic_load_explicit(
211 &ring.header_mmap()->record_count, std::memory_order_relaxed);
213 bool ok = ring.ValidateGeometry(mmap_size, record_size, record_count);
219 // Calculates the space necessary for a ring of size |record_count|.
222 static constexpr size_t MemorySize(uint32_t record_count) {
223 return sizeof(Header) + sizeof(Record) * record_count;
300 if (tail - head > record_count())
309 CalculateGeometry(record_count(), record_size(), *sequence, tail);
326 // 0 <= final_head - head <= sequence - head < tail - head <= record_count
329 // head <=* final_head <=* sequence <* tail <=* head + record_count
351 uint32_t record_count() const { return record_count_internal(); }
362 std::atomic<uint32_t> record_count;
364 // Readable region is [head % record_count, tail % record_count).
366 // The region in [tail % record_count, head % record_count) was either never
404 uint32_t record_count;
446 void InitializeHeader(uint32_t record_size, uint32_t record_count) {
450 std::atomic_store_explicit(&header_mmap()->record_count, record_count,
469 if (record_count() != header_record_count) return false;
470 if (record_count() < Traits::kMinRecordCount) return false;
473 if (!IsPowerOfTwo(record_count())) return false;
475 size_t memory_size = record_count() * record_size();
476 if (memory_size / record_size() != record_count()) return false;
510 static uint32_t SequenceToIndex(uint32_t sequence, uint32_t record_count) {
511 return sequence & (record_count - 1);
515 static Geometry CalculateGeometry(uint32_t record_count, uint32_t record_size,
518 geometry.record_count = record_count;
523 geometry.head_index = SequenceToIndex(head, record_count);
524 geometry.tail_index = SequenceToIndex(tail, record_count);
526 DCHECK_LE(geometry.count, record_count);
527 geometry.space = geometry.record_count - geometry.count;
537 record_count(), record_size(),
630 return data_.record_count;
635 set_record_count(uint32_t /*record_count*/) const {}
639 set_record_count(uint32_t record_count) {
640 data_.record_count = record_count;
655 uint32_t record_count = 0;