mirror of
https://github.com/waku-org/nwaku.git
synced 2025-01-24 05:39:21 +00:00
385daf16be
* on_chain/group_manager: use .async: (raises:[Exception]). * bump nim-dnsdisc * update nim-chronos to the latest state * chat2.nim: catch any possible exception when stopping * chat2bridge.nim: make it to compile after vendor bump * ValidIpAddress (deprecated) -> IpAddress * vendor/nim-libp2p additional bump * libwaku: adapt to vendor bump * testlib/wakunode.nim: adapt to vendor bump (ValidIpAddress -> IpAddress) * waku_node: avoid throwing any exception from stop*(node: WakuNode) * test_confutils_envvar.nim: ValidIpAddress -> IpAddress * test_jsonrpc_store: capture exception * test_rln*: handling exceptions * adaptation to make test_rln_* to work properly * signature enhancement of group_manager methods
78 lines
2.9 KiB
Nim
78 lines
2.9 KiB
Nim
when (NimMajor, NimMinor) < (1, 4):
|
|
{.push raises: [Defect].}
|
|
else:
|
|
{.push raises: [].}
|
|
|
|
import
|
|
std/options,
|
|
stew/results,
|
|
chronos
|
|
import
|
|
../waku_core,
|
|
./common
|
|
|
|
const DefaultPageSize*: uint = 25
|
|
|
|
type
|
|
ArchiveDriverResult*[T] = Result[T, string]
|
|
ArchiveDriver* = ref object of RootObj
|
|
OnErrHandler* = proc(errMsg: string) {.gcsafe, closure, raises: [].}
|
|
|
|
type ArchiveRow* = (PubsubTopic, WakuMessage, seq[byte], Timestamp)
|
|
|
|
# ArchiveDriver interface
|
|
|
|
method put*(driver: ArchiveDriver,
|
|
pubsubTopic: PubsubTopic,
|
|
message: WakuMessage,
|
|
digest: MessageDigest,
|
|
messageHash: WakuMessageHash,
|
|
receivedTime: Timestamp):
|
|
Future[ArchiveDriverResult[void]] {.base, async.} = discard
|
|
|
|
method getAllMessages*(driver: ArchiveDriver):
|
|
Future[ArchiveDriverResult[seq[ArchiveRow]]] {.base, async.} = discard
|
|
|
|
method getMessages*(driver: ArchiveDriver,
|
|
contentTopic: seq[ContentTopic] = @[],
|
|
pubsubTopic = none(PubsubTopic),
|
|
cursor = none(ArchiveCursor),
|
|
startTime = none(Timestamp),
|
|
endTime = none(Timestamp),
|
|
maxPageSize = DefaultPageSize,
|
|
ascendingOrder = true):
|
|
Future[ArchiveDriverResult[seq[ArchiveRow]]] {.base, async.} = discard
|
|
|
|
method getMessagesCount*(driver: ArchiveDriver):
|
|
Future[ArchiveDriverResult[int64]] {.base, async.} = discard
|
|
|
|
method getPagesCount*(driver: ArchiveDriver):
|
|
Future[ArchiveDriverResult[int64]] {.base, async.} = discard
|
|
|
|
method getPagesSize*(driver: ArchiveDriver):
|
|
Future[ArchiveDriverResult[int64]] {.base, async.} = discard
|
|
|
|
method getDatabaseSize*(driver: ArchiveDriver):
|
|
Future[ArchiveDriverResult[int64]] {.base, async.} = discard
|
|
|
|
method performVacuum*(driver: ArchiveDriver):
|
|
Future[ArchiveDriverResult[void]] {.base, async.} = discard
|
|
|
|
method getOldestMessageTimestamp*(driver: ArchiveDriver):
|
|
Future[ArchiveDriverResult[Timestamp]] {.base, async.} = discard
|
|
|
|
method getNewestMessageTimestamp*(driver: ArchiveDriver):
|
|
Future[ArchiveDriverResult[Timestamp]] {.base, async.} = discard
|
|
|
|
method deleteMessagesOlderThanTimestamp*(driver: ArchiveDriver,
|
|
ts: Timestamp):
|
|
Future[ArchiveDriverResult[void]] {.base, async.} = discard
|
|
|
|
method deleteOldestMessagesNotWithinLimit*(driver: ArchiveDriver,
|
|
limit: int):
|
|
Future[ArchiveDriverResult[void]] {.base, async.} = discard
|
|
|
|
method close*(driver: ArchiveDriver):
|
|
Future[ArchiveDriverResult[void]] {.base, async.} = discard
|
|
|