
#include "util/helper.h"Include dependency graph for QueueInterface.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Data Structures | |
| struct | QueueProperties |
| The QueueProperty struct holds all configuration parameters of the queue to create. More... | |
| struct | QueueEntry |
| A struct holding the necessary queue entry informations used by I_Queue. More... | |
| struct | QueueEntryStructArr |
| Holds an array of Messages. More... | |
| struct | I_QueueStruct |
| Interface for a queue implementation. More... | |
Defines | |
| #define | QUEUE_ENTRY_EMBEDDEDTYPE_LEN 28 |
| #define | QUEUE_PREFIX_MAX 20 |
| #define | QUEUE_DBNAME_MAX 256 |
| #define | QUEUE_ID_MAX 256 |
Typedefs | |
| typedef QueueEntryStructArr | QueueEntryArr |
| Holds an array of Messages. | |
| typedef I_QueueStruct | I_Queue |
| typedef int(*) | I_QueueInitialize (I_Queue *queueP, const QueueProperties *queueProperties, ExceptionStruct *exception) |
| Declare function pointers to use in struct to simulate object oriented access. | |
| typedef void(*) | I_QueueShutdown (I_Queue **queuePP, ExceptionStruct *exception) |
| typedef int(*) | I_QueueDestroy (I_Queue **queuePP, ExceptionStruct *exception) |
| typedef const QueueProperties *(*) | I_QueueGetProperties (I_Queue *queueP) |
| typedef void(*) | I_QueuePut (I_Queue *queueP, const QueueEntry *queueEntry, ExceptionStruct *exception) |
| typedef QueueEntryArr *(*) | I_QueuePeekWithSamePriority (I_Queue *queueP, int32_t maxNumOfEntries, int64_t maxNumOfBytes, ExceptionStruct *exception) |
| typedef int32_t(*) | I_QueueRandomRemove (I_Queue *queueP, const QueueEntryArr *queueEntryArr, ExceptionStruct *exception) |
| typedef int(*) | I_QueueClear (I_Queue *queueP, ExceptionStruct *exception) |
| typedef int(*) | I_QueueEmpty (I_Queue *queueP) |
| typedef int32_t(*) | I_QueueNumOfEntries (I_Queue *queueP) |
| typedef int32_t(*) | I_QueueMaxNumOfEntries (I_Queue *queueP) |
| typedef int64_t(*) | I_QueueNumOfBytes (I_Queue *queueP) |
| typedef int64_t(*) | I_QueueMaxNumOfBytes (I_Queue *queueP) |
Functions | |
| I_Queue * | createQueue (const QueueProperties *queueProperties, ExceptionStruct *exception) |
| Get an instance of a persistent queue and initialize it. | |
| void | freeQueueEntryArr (QueueEntryArr *queueEntryArr) |
| Frees everything inside QueueEntryArr and the struct QueueEntryArr itself. | |
| void | freeQueueEntryArrInternal (QueueEntryArr *queueEntryArr) |
| Frees everything inside QueueEntryArr but NOT the struct QueueEntryArr itself. | |
| void | freeQueueEntry (QueueEntry *queueEntry) |
| Frees the internal blob and the queueEntry itself. | |
| char * | queueEntryToXml (QueueEntry *queueEntry, int maxContentDumpLen) |
| NOTE: You need to free the returned pointer with freeEntryDump() (which calls free())! | |
| void | freeEntryDump (char *queueDump) |
| Free the memory allocated by queueEntryToXml(). | |
| #define QUEUE_DBNAME_MAX 256 |
Definition at line 27 of file QueueInterface.h.
Referenced by destroy(), persistentQueueInitialize(), test_illegal(), test_overflow(), test_queue(), and xmlBlasterInitQueue().
| #define QUEUE_ENTRY_EMBEDDEDTYPE_LEN 28 |
Definition at line 24 of file QueueInterface.h.
Referenced by parseQueueEntryArr(), persistentQueuePut(), queueEntryToXml(), test_overflow(), and test_queue().
| #define QUEUE_ID_MAX 256 |
Definition at line 28 of file QueueInterface.h.
Referenced by destroy(), persistentQueueInitialize(), test_illegal(), test_overflow(), test_queue(), and xmlBlasterInitQueue().
| #define QUEUE_PREFIX_MAX 20 |
Definition at line 26 of file QueueInterface.h.
Referenced by destroy(), persistentQueueInitialize(), test_illegal(), test_overflow(), test_queue(), and xmlBlasterInitQueue().
| typedef struct I_QueueStruct I_Queue |
Definition at line 65 of file QueueInterface.h.
| typedef int( * ) I_QueueClear(I_Queue *queueP, ExceptionStruct *exception) |
Definition at line 75 of file QueueInterface.h.
| typedef int( * ) I_QueueDestroy(I_Queue **queuePP, ExceptionStruct *exception) |
Definition at line 70 of file QueueInterface.h.
| typedef int( * ) I_QueueEmpty(I_Queue *queueP) |
Definition at line 76 of file QueueInterface.h.
| typedef const QueueProperties*( * ) I_QueueGetProperties(I_Queue *queueP) |
Definition at line 71 of file QueueInterface.h.
| typedef int( * ) I_QueueInitialize(I_Queue *queueP, const QueueProperties *queueProperties, ExceptionStruct *exception) |
Declare function pointers to use in struct to simulate object oriented access.
Definition at line 68 of file QueueInterface.h.
| typedef int64_t( * ) I_QueueMaxNumOfBytes(I_Queue *queueP) |
Definition at line 80 of file QueueInterface.h.
| typedef int32_t( * ) I_QueueMaxNumOfEntries(I_Queue *queueP) |
Definition at line 78 of file QueueInterface.h.
| typedef int64_t( * ) I_QueueNumOfBytes(I_Queue *queueP) |
Definition at line 79 of file QueueInterface.h.
| typedef int32_t( * ) I_QueueNumOfEntries(I_Queue *queueP) |
Definition at line 77 of file QueueInterface.h.
| typedef QueueEntryArr*( * ) I_QueuePeekWithSamePriority(I_Queue *queueP, int32_t maxNumOfEntries, int64_t maxNumOfBytes, ExceptionStruct *exception) |
Definition at line 73 of file QueueInterface.h.
| typedef void( * ) I_QueuePut(I_Queue *queueP, const QueueEntry *queueEntry, ExceptionStruct *exception) |
Definition at line 72 of file QueueInterface.h.
| typedef int32_t( * ) I_QueueRandomRemove(I_Queue *queueP, const QueueEntryArr *queueEntryArr, ExceptionStruct *exception) |
Definition at line 74 of file QueueInterface.h.
| typedef void( * ) I_QueueShutdown(I_Queue **queuePP, ExceptionStruct *exception) |
Definition at line 69 of file QueueInterface.h.
| typedef struct QueueEntryStructArr QueueEntryArr |
Holds an array of Messages.
| I_Queue* createQueue | ( | const QueueProperties * | queueProperties, | |
| ExceptionStruct * | exception | |||
| ) |
Get an instance of a persistent queue and initialize it.
Every call creates a new and independent instance which shall be destroyed by a call to freeQueue() when you are done
| queueProperties | Configuration properties of the queue, always do a first memset(&queueProperties, 0, sizeof(QueueProperties)); to initialize new, future members.
dbName The database name, for SQLite it is the file name on HD, "xmlBlasterClient.db"
queueName The name of the queue, "connection_clientJoe"
maxNumOfEntries The max. accepted entries, 10000000l
maxNumOfBytes The max. accepted bytes, 1000000000ll
logFp Your logging implementation or NULL if no logging callbacks are desired
logLevel Set to LOG_TRACE to receive any logging
userObject A pointer of your choice, is passed back when calling logFp in queueP->userObject
| |
| exception |
Referenced by destroy(), test_illegal(), test_overflow(), test_queue(), and xmlBlasterInitQueue().
| void freeEntryDump | ( | char * | queueDump | ) |
Free the memory allocated by queueEntryToXml().
| queueDump | NULL is OK |
Definition at line 1224 of file SQLiteQueue.c.
Referenced by test_queue().
| void freeQueueEntry | ( | QueueEntry * | queueEntry | ) |
Frees the internal blob and the queueEntry itself.
| queueEntry | Its memory is freed, it is not usable anymore after this call |
Definition at line 1179 of file SQLiteQueue.c.
References freeQueueEntryData().
Here is the call graph for this function:

| void freeQueueEntryArr | ( | QueueEntryArr * | queueEntryArr | ) |
Frees everything inside QueueEntryArr and the struct QueueEntryArr itself.
| queueEntryArr | The struct to free, passing NULL is OK |
Definition at line 1140 of file SQLiteQueue.c.
References freeQueueEntryArrInternal().
Referenced by test_illegal(), and test_queue().
Here is the call graph for this function:

| void freeQueueEntryArrInternal | ( | QueueEntryArr * | queueEntryArr | ) |
Frees everything inside QueueEntryArr but NOT the struct QueueEntryArr itself.
| queueEntryArr | The struct internals to free, passing NULL is OK |
Definition at line 1151 of file SQLiteQueue.c.
References freeQueueEntryData(), QueueEntryStructArr::len, and QueueEntryStructArr::queueEntryArr.
Referenced by freeQueueEntryArr().
Here is the call graph for this function:

| char* queueEntryToXml | ( | QueueEntry * | queueEntry, | |
| int | maxContentDumpLen | |||
| ) |
NOTE: You need to free the returned pointer with freeEntryDump() (which calls free())!
| queueEntry | The data to put to the queue | |
| maxContentDumpLen | for -1 get the complete content, else limit the content to the given number of bytes |
Definition at line 1194 of file SQLiteQueue.c.
References BlobHolder::data, BlobHolder::dataLen, QueueEntry::embeddedBlob, QueueEntry::embeddedType, int64Str, int64ToStr(), QueueEntry::isPersistent, QueueEntry::priority, QUEUE_ENTRY_EMBEDDEDTYPE_LEN, SNPRINTF, strFromBlobAlloc(), and QueueEntry::uniqueId.
Referenced by test_queue().
Here is the call graph for this function:
