Software /
code /
prosody
File
spec/scansion/vcard_temp.scs @ 10973:39991e40d1dc
util.dbuffer: dynamic string buffer
Similar to util.ringbuffer (and shares almost identical API). Differences:
- size limit is optional and dynamic
- does not allocate a fixed buffer of max_size bytes
- focus on simply storing references to existing string objects where possible,
avoiding unnecessary allocations
- references are still stored in a ring buffer to enable use as a fast FIFO
Optional second parameter to new() provides the number of ring buffer segments. On
Lua 5.2 on my laptop, a segment is ~19 bytes. If the ring buffer fills up, the next
write will compact all strings into a single item.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 26 Jun 2020 16:41:31 +0100 |
parent | 9524:1f6f3b941eb1 |
child | 12967:53b0730093d8 |
line wrap: on
line source
# XEP-0054 vCard-temp writable and readable by anyone # mod_scansion_record on host 'localhost' recording started 2018-10-20T15:00:12Z [Client] Romeo jid: romeo@localhost password: password [Client] Juliet jid: juliet@localhost password: password ----- Romeo connects # Romeo sets his vCard # FN and N are required by the schema and mod_vcard_legacy will always inject them Romeo sends: <iq id="lx3" type="set"> <vCard xmlns="vcard-temp"> <FN>Romeo Montague</FN> <N> <FAMILY>Montague</FAMILY> <GIVEN>Romeo</GIVEN> <MIDDLE/> <PREFIX/> <SUFFIX/> </N> </vCard> </iq> Romeo receives: <iq type="result" id="lx3" to="${Romeo's full JID}"/> Romeo sends: <iq id="lx4" type="get"> <vCard xmlns="vcard-temp"/> </iq> Romeo receives: <iq type="result" id="lx4" to="${Romeo's full JID}"> <vCard xmlns="vcard-temp"> <FN>Romeo Montague</FN> <N> <FAMILY>Montague</FAMILY> <GIVEN>Romeo</GIVEN> <MIDDLE/> <PREFIX/> <SUFFIX/> </N> </vCard> </iq> Romeo disconnects Juliet connects Juliet sends: <iq type="get" id="lx3" to="romeo@localhost"> <vCard xmlns="vcard-temp"/> </iq> # Juliet can see Romeo's vCard since it's public Juliet receives: <iq type="result" from="romeo@localhost" id="lx3" to="${Juliet's full JID}"> <vCard xmlns="vcard-temp"> <FN>Romeo Montague</FN> <N> <FAMILY>Montague</FAMILY> <GIVEN>Romeo</GIVEN> <MIDDLE/> <PREFIX/> <SUFFIX/> </N> </vCard> </iq> Juliet disconnects # recording ended on 2018-10-20T15:02:14Z