Názor ke článku Optimalizace async. parseru JSON v C++20 od Ondřej Novák - Pokud myslíš parser, který ti volá callbacky s...

  • 19. 5. 2024 17:26

    Ondřej Novák

    Pokud myslíš parser, který ti volá callbacky s každým přijatým blokem dat, tak to se přece nevylučuje. První čtení si nastaví strea, a pak kdykoliv mi přijde callback s daty, tak buffer předám awaiteru a zavolám resume, provede se parsování toho bloku a na konci ho hodím zpět do suspend a vrátím se s callbacku a čekám na další callback. Jakmile se načte všechno, korutina ohlásí konec. Jako tohle řešení nepředepisuje, co se má použít jako zdroj dat. Může se použít i zero copy buffer, protože jediné co se vyžaduje je std::string_view. Kopírování dat nikde nedochází, pokud tedy nemyslíš kopírování znaků v řetězcích do datových struktur k tomu určených.