4#ifndef _Stroika_Frameworks_Led_SimpleTextStore_h_
5#define _Stroika_Frameworks_Led_SimpleTextStore_h_ 1
7#include "Stroika/Frameworks/StroikaPreComp.h"
16#include "Stroika/Frameworks/Led/TextStore.h"
18namespace Stroika::Frameworks::Led {
28 class SimpleTextStore :
public TextStore {
31 virtual ~SimpleTextStore ();
34 virtual TextStore* ConstructNewTextStore ()
const override;
37 virtual size_t GetLength () const noexcept override;
38 virtual
void CopyOut (
size_t from,
size_t count, Led_tChar* buffer) const noexcept override;
39 virtual
void ReplaceWithoutUpdate (
size_t from,
size_t to, const Led_tChar* withWhat,
size_t withWhatCount) override;
42 nonvirtual
void InsertAfter_ (const Led_tChar* what,
size_t howMany,
size_t after);
43 nonvirtual
void DeleteAfter_ (
size_t howMany,
size_t after);
46 virtual
void AddMarker (Marker* marker,
size_t lhs,
size_t length, MarkerOwner* owner) override;
47 virtual
void RemoveMarkers (Marker* const markerArray[],
size_t markerCount) override;
48 virtual
void PreRemoveMarker (Marker* marker) override;
49 virtual
void SetMarkerRange (Marker* m,
size_t start,
size_t end) noexcept override;
50 virtual
void CollectAllMarkersInRangeInto (
size_t from,
size_t to, const MarkerOwner* owner, MarkerSink& output) const override;
55 vector<Marker*> fMarkers;
57#if qStroika_Foundation_Debug_AssertionsChecked
59 virtual void Invariant_ ()
const override;
70#include "SimpleTextStore.inl"