Atlassian uses cookies to improve your browsing experience, perform analytics and research, and conduct advertising. Accept all cookies to indicate that you agree to our use of cookies on your device. Atlassian cookies and tracking notice, (opens new window)

Enlighten API 3.10 Documentation
Results will update as you type.
  • class Geo GeoTriangle
  • class Geo GeoTriple
  • class Geo GeoUniqueDelegatePtr
  • class Geo GeoUniquePtr
  • class Geo GeoUniqueReleasePtr
  • class Geo GeoV128Texture
  • class Geo GeoVariant
  • class Geo GeoVirtualPageAllocator
  • class Geo GeoZLibFileStream
  • class Geo GoodRNG
  • class Geo IdentDataCompare
  • class Geo IdentVertLinkBuilder
  • class Geo IdxLink
  • class Geo IffReader
  • class Geo IffTextWriter
  • class Geo IffWriter
  • class Geo IGeoEvent
  • class Geo IGeoInputStream
  • class Geo IGeoProgressProxy
  • class Geo IGeoRayTracingContext
  • class Geo IGeoReleasable
  • class Geo IGeoSerialisable
  • class Geo IGeoStream
  • class Geo IRtMesh
  • class Geo ITerminalCmdHandler
  • class Geo ITerminalDelegate
  • class Geo ITerminalInputHandler
  • class Geo ITerminalOutputHandler
  • class Geo Matrix
  • class Geo MemoryAllocator
  • class Geo NonCopyable
  • class Geo Optional
  • class Geo PackedInteger4
  • class Geo PointLeaf
  • class Geo PointSplit
  • class Geo PointSplitBounds
  • class Geo PointSplitState
  • class Geo QuickTaskTimer
  • class Geo RayResult
  • class Geo Releasable
  • class Geo RingBuffer
    • class Geo RingBuffer ReadContext
    • class Geo RingBuffer WriteContext
  • class Geo RtMesh
  • class Geo RtMeshGroup
  • class Geo ScopedTickCounter
  • class Geo ScopedTimer
  • class Geo SHCoeff
  • class Geo SimpleRNG
  • class Geo TerminalProvider
  • class Geo TextureWriter
  • class Geo TreeNode
  • class Geo TriGroupSelection
  • class Geo TxtProgressBar
  • namespace Geo Iff
  • namespace Geo PathUtils
  • namespace Geo Version
  • struct Geo ArrayRange
  • struct Geo AtlasMeshChartingFlags
  • struct Geo AtlasMeshTriangle
  • struct Geo AtlasMeshTriangleCorner
  • struct Geo AtlasMeshVertex
  • struct Geo AtlasMeshVertexSplitResult
  • struct Geo BboxEdge
  • struct Geo BboxFace
  • struct Geo ClippedRay
  • struct Geo DebugLine
  • struct Geo eWindingOrder
  • struct Geo FixedSizeArray
  • struct Geo GeoAtomic
  • struct Geo GeoError
  • struct Geo GeoFixedPoolList
  • struct Geo GeoFixedPoolMap
  • struct Geo GeoPoint2
  • struct Geo GeoPoint2D
  • struct Geo GeoPoint3
  • struct Geo GeoPoint3D
  • struct Geo GeoRGBXTextureElement
  • struct Geo GeoVector3
  • struct Geo GeoVector4
  • struct Geo InitRayTracing
    Calendars

You‘re viewing this with anonymous access, so some content might be blocked.
/
class Geo RingBuffer

    This is the documentation for Enlighten.

    class Geo RingBuffer

    Nov 21, 2019

    class Geo::RingBuffer

    Ring Buffer class.

    Stores values of any type in a fixed length buffer. Thread safe for single writer single reader only.

    Classes

    Name Description
    Geo::RingBuffer::ReadContext

    Write context type, which allows efficient and safe reading.

    Geo::RingBuffer::WriteContext

    Write context type, which allows efficient and safe writing.

    Functions

    Name Description
    GetMaxBlockedDurationTicks()

    Return the maximum duration that the writing thread was blocked due to the buffer being full.

    GetNumBlockedWrites()

    Return the number of recorded blocked writes.

    HasData()

    Do we have any data to read?

    RecordBlockedDuration(s64)

    Record that the writing thread was blocked due to the buffer being full.

    ResetBlockedWritesCounter()

    Reset the counters which keep track of # of times buffer writes are blocked.

    RingBuffer(u32, const u32)

    Construct a new ring buffer with the given size and maximum allocation alignment.

    Write(T &&)

    Helper function to write an object to the buffer.


    Geo::s64 Geo::RingBuffer::GetMaxBlockedDurationTicks


    public: Geo::s64 GetMaxBlockedDurationTicks() const


    Return the maximum duration that the writing thread was blocked due to the buffer being full.


    Geo::s32 Geo::RingBuffer::GetNumBlockedWrites


    public: Geo::s32 GetNumBlockedWrites() const


    Return the number of recorded blocked writes.


    bool Geo::RingBuffer::HasData


    public: bool HasData() const


    Do we have any data to read?


    void Geo::RingBuffer::RecordBlockedDuration


    public: void RecordBlockedDuration
    (
        s64 durationTicks
    )


    Record that the writing thread was blocked due to the buffer being full.


    void Geo::RingBuffer::ResetBlockedWritesCounter


    public: void ResetBlockedWritesCounter()


    Reset the counters which keep track of # of times buffer writes are blocked.


    Geo::RingBuffer::RingBuffer


    public: RingBuffer
    (
        u32 size,
        const u32 maxAlignment
    )


    Construct a new ring buffer with the given size and maximum allocation alignment.

    Size must


    be a power of two.


    void Geo::RingBuffer::Write


    public: void Write
    (
        T && data
    )


    Helper function to write an object to the buffer.

    Not necessarily the most efficient way, as it uses the default alignment of the buffer.

    , multiple selections available,
    {"serverDuration": 8, "requestCorrelationId": "2b9fa1125f26431bba260193cf63ebe6"}