Adaptive Framework  0.9.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
Macros | Functions
afw_lmdb_journal.c File Reference

Implementation of afw_adaptor_journal interface for LMDB. More...

#include "afw.h"
#include "afw_lmdb.h"
#include "afw_lmdb_internal.h"
#include "generated/afw_lmdb_generated.h"
#include "afw_adaptor_impl.h"
#include "lmdb.h"
#include "afw_adaptor_journal_impl_declares.h"

Go to the source code of this file.

Macros

#define AFW_IMPLEMENTATION_ID   "lmdb"
 

Functions

afw_lmdb_journal_tafw_lmdb_journal_create (afw_lmdb_adaptor_session_t *session, afw_xctx_t *xctx)
 Internal create a LMDB adaptor journal. More...
 
const afw_utf8_timpl_afw_adaptor_journal_add_entry (const afw_adaptor_journal_t *instance, const afw_adaptor_impl_request_t *impl_request, const afw_object_t *entry, afw_xctx_t *xctx)
 
const afw_object_tafw_lmdb_adaptor_journal_get_peer_object (afw_lmdb_journal_t *self, afw_lmdb_adaptor_session_t *session, afw_lmdb_adaptor_t *adaptor, MDB_dbi dbi, MDB_txn *txn, const afw_uuid_t *uuid, afw_xctx_t *xctx)
 
void afw_lmdb_journal_update_peer (afw_lmdb_journal_t *self, afw_lmdb_adaptor_session_t *session, afw_lmdb_adaptor_t *adaptor, MDB_dbi dbi, const afw_uuid_t *uuid, const afw_object_t *updated_object, afw_xctx_t *xctx)
 
const afw_object_tafw_lmdb_adaptor_journal_get_entry_object (afw_lmdb_journal_t *self, afw_lmdb_adaptor_session_t *session, afw_lmdb_adaptor_t *adaptor, MDB_dbi dbi, MDB_txn *txn, apr_uint64_t cursor, afw_xctx_t *xctx)
 
void afw_lmdb_journal_get_first (afw_lmdb_journal_t *self, afw_lmdb_adaptor_session_t *session, afw_lmdb_adaptor_t *adaptor, MDB_dbi dbiJournal, MDB_txn *txn, const afw_object_t *response, afw_xctx_t *xctx)
 
void afw_lmdb_journal_get_by_cursor (afw_lmdb_journal_t *self, afw_lmdb_adaptor_session_t *session, afw_lmdb_adaptor_t *adaptor, MDB_dbi dbiJournal, MDB_txn *txn, const afw_utf8_t *entry_cursor, const afw_object_t *response, afw_xctx_t *xctx)
 
void afw_lmdb_journal_get_next_after_cursor (afw_lmdb_journal_t *self, afw_lmdb_adaptor_session_t *session, afw_lmdb_adaptor_t *adaptor, MDB_dbi dbiJournal, MDB_txn *txn, const afw_utf8_t *entry_cursor, afw_size_t limit, const afw_object_t *response, afw_xctx_t *xctx)
 
void afw_lmdb_journal_get_next_for_consumer_after_cursor (afw_lmdb_journal_t *self, afw_lmdb_adaptor_session_t *session, afw_lmdb_adaptor_t *adaptor, MDB_dbi dbiJournal, MDB_txn *txn, const afw_utf8_t *consumer_id, const afw_utf8_t *entry_cursor, afw_size_t limit, const afw_object_t *response, afw_xctx_t *xctx)
 
void impl_afw_adaptor_journal_get_next_for_consumer (afw_lmdb_journal_t *self, afw_lmdb_adaptor_session_t *session, afw_lmdb_adaptor_t *adaptor, MDB_dbi dbiJournal, MDB_txn *txn, const afw_utf8_t *consumer_id, afw_size_t limit, const afw_object_t *response, afw_xctx_t *xctx)
 
void afw_lmdb_journal_advance_cursor_for_consumer (afw_lmdb_journal_t *self, afw_lmdb_adaptor_session_t *session, afw_lmdb_adaptor_t *adaptor, MDB_dbi dbiJournal, MDB_txn *txn, const afw_utf8_t *consumer_id, afw_size_t limit, const afw_object_t *response, afw_xctx_t *xctx)
 
void impl_afw_adaptor_journal_get_entry (const afw_adaptor_journal_t *instance, const afw_adaptor_impl_request_t *impl_request, afw_adaptor_journal_option_t option, const afw_utf8_t *consumer_id, const afw_utf8_t *entry_cursor, afw_size_t limit, const afw_object_t *response, afw_xctx_t *xctx)
 
void impl_afw_adaptor_journal_mark_entry_consumed (const afw_adaptor_journal_t *instance, const afw_adaptor_impl_request_t *impl_request, const afw_utf8_t *consumer_id, const afw_utf8_t *entry_cursor, afw_xctx_t *xctx)
 

Detailed Description

Implementation of afw_adaptor_journal interface for LMDB.

Definition in file afw_lmdb_journal.c.

Function Documentation

◆ afw_lmdb_journal_advance_cursor_for_consumer()

void afw_lmdb_journal_advance_cursor_for_consumer ( afw_lmdb_journal_t self,
afw_lmdb_adaptor_session_t session,
afw_lmdb_adaptor_t adaptor,
MDB_dbi  dbiJournal,
MDB_txn *  txn,
const afw_utf8_t consumer_id,
afw_size_t  limit,
const afw_object_t response,
afw_xctx_t xctx 
)
Todo:
FIXME:: we'll have to consider the scenario where we get a consume_cursor (re-issue) and now it's removed from the journal
Todo:
FIXME:: is the cursor further along than our existing advanceCursor?

Definition at line 552 of file afw_lmdb_journal.c.

◆ afw_lmdb_journal_create()

afw_lmdb_journal_t* afw_lmdb_journal_create ( afw_lmdb_adaptor_session_t session,
afw_xctx_t xctx 
)

Internal create a LMDB adaptor journal.

Parameters
sessionInternal instance of adaptor session.
xctxof caller.
Returns
New instance of LMDB adaptor journal.

Definition at line 27 of file afw_lmdb_journal.c.

◆ afw_lmdb_journal_get_next_for_consumer_after_cursor()

void afw_lmdb_journal_get_next_for_consumer_after_cursor ( afw_lmdb_journal_t self,
afw_lmdb_adaptor_session_t session,
afw_lmdb_adaptor_t adaptor,
MDB_dbi  dbiJournal,
MDB_txn *  txn,
const afw_utf8_t consumer_id,
const afw_utf8_t entry_cursor,
afw_size_t  limit,
const afw_object_t response,
afw_xctx_t xctx 
)
Todo:
FIXME:: is the cursor further along than our existing advanceCursor?

Definition at line 310 of file afw_lmdb_journal.c.

◆ impl_afw_adaptor_journal_get_next_for_consumer()

void impl_afw_adaptor_journal_get_next_for_consumer ( afw_lmdb_journal_t self,
afw_lmdb_adaptor_session_t session,
afw_lmdb_adaptor_t adaptor,
MDB_dbi  dbiJournal,
MDB_txn *  txn,
const afw_utf8_t consumer_id,
afw_size_t  limit,
const afw_object_t response,
afw_xctx_t xctx 
)
Todo:
FIXME:: we'll have to consider the scenario where we get a consume_cursor (re-issue) and now it's removed from the journal
Todo:
FIXME:: is the cursor further along than our existing advanceCursor?

Definition at line 420 of file afw_lmdb_journal.c.