ThingWorx C SDK
twOfflineMsgStore.h
1 /*
2  * Copyright (C) 2015 ThingWorx Inc.
3  *
4  * Offline message Store
5  */
6 
7 #ifndef TW_OFFLINE_MSG_STORE_H
8 #define TW_OFFLINE_MSG_STORE_H
9 
10 #include "twOSPort.h"
11 #include "twDefinitions.h"
12 #include "twMessages.h"
13 #include "twErrors.h"
14 #include "twWebsocket.h"
15 #include "twList.h"
16 #include "twLogger.h"
17 #include "twApi.h"
18 #include "stringUtils.h"
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
28 /* string used to separate messages in the offline message store */
29 #define PERSISTED_MSG_SEPARATOR "!twMsg!"
30 
38 typedef struct twOfflineMsgStore {
41  char onDisk;
42  uint64_t offlineMsgSize;
44  char * offlineMsgFile;
46 
50 enum OfflineRequest {
51  OFFLINE_MSG_STORE_FLUSH,
52  OFFLINE_MSG_STORE_WRITE,
53 };
54 
64 int twOfflineMsgStore_Initialize(char enabled, const char * filePath, uint64_t size, char onDisk);
65 
73 int twOfflineMsgStore_SetDir(const char * dir);
74 
80 int twOfflineMsgStore_Delete();
81 
91 int twOfflineMsgStore_HandleRequest(struct twMessage ** msg, twWs * ws, enum OfflineRequest request_type);
92 
93 #ifdef __cplusplus
94 }
95 #endif
96 
97 #endif
Websocket client abstraction layer.
char * offlineMsgFile
Definition: twOfflineMsgStore.h:44
uint64_t offlineMsgSize
Definition: twOfflineMsgStore.h:42
ThingWorx C SDK error code definitions.
String utility function prototypes.
#define TW_MUTEX
For Linux builds a TW_MUTEX is a pthread_mutex_t.
Definition: twLinux-openssl.h:81
ThingWorx Offline Message Store structure definition.
Definition: twOfflineMsgStore.h:38
Wrappers for OS-specific functionality.
Linked list structure definition.
Definition: twList.h:59
Portable ThingWorx C SDK API layer.
Common definitions for C SDK.
char offlineMsgEnabled
Definition: twOfflineMsgStore.h:40
Definition: twMessages.h:37
Websocket entity structure definition.
Definition: twWebsocket.h:87
Structure definitions and function prototypes for the ThingWorx logging facility. ...
TW_MUTEX mtx
Definition: twOfflineMsgStore.h:39
char onDisk
Definition: twOfflineMsgStore.h:41
twList * offlineMsgList
Definition: twOfflineMsgStore.h:43