summaryrefslogtreecommitdiff
path: root/src/daemon/dlt_daemon_offline_logstorage.c
diff options
context:
space:
mode:
authorChristoph Lipka <clipka@jp.adit-jv.com>2015-10-26 14:57:00 +0900
committerLutz Helwing <lutz_helwing@mentor.com>2015-11-24 09:48:42 +0100
commitd73717a4f6b243d40388bb1d3bb9db7421d7b9b0 (patch)
tree091f25b5f38257f611733e4757b762a036b12d83 /src/daemon/dlt_daemon_offline_logstorage.c
parent5574d46a4083d783a915688e0e05593b9558497b (diff)
downloadDLT-daemon-d73717a4f6b243d40388bb1d3bb9db7421d7b9b0.tar.gz
DltLogstorage: Logstorage Cache
When using DltLogstorage on internal storage device, it is needed to reduce writing to internal storage device as much as possible. This patch introduces sync strategies to Logstorage to provide that functionality. The ON_MSG strategy is the default sync strategy that flushes every written log message to the storage device (fflush). The ON_DAEMON_EXIT strategy only flushes data to disk when the daemon exits. The strategy can be defined per filter in the dlt_logstorage.conf configuration file by adding SyncBehavior=<Strategy> to a configuration. Signed-off-by: Christoph Lipka <clipka@jp.adit-jv.com>
Diffstat (limited to 'src/daemon/dlt_daemon_offline_logstorage.c')
-rw-r--r--src/daemon/dlt_daemon_offline_logstorage.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/daemon/dlt_daemon_offline_logstorage.c b/src/daemon/dlt_daemon_offline_logstorage.c
index bc8817c..66f9ec8 100644
--- a/src/daemon/dlt_daemon_offline_logstorage.c
+++ b/src/daemon/dlt_daemon_offline_logstorage.c
@@ -565,3 +565,35 @@ int dlt_daemon_logstorage_setup_internal_storage(DltDaemon *daemon, char *path,
return ret;
}
+
+void dlt_daemon_logstorage_set_logstorage_cache_size(unsigned int size)
+{
+ /* store given [KB] size in [Bytes] */
+ g_logstorage_cache_max = size * 1000;
+}
+
+int dlt_daemon_logstorage_cleanup(DltDaemon *daemon,
+ DltDaemonLocal *daemon_local,
+ int verbose)
+{
+ int i = 0;
+
+ PRINT_FUNCTION_VERBOSE(verbose);
+
+ if (daemon == NULL || daemon_local == NULL)
+ {
+ return -1;
+ }
+
+ for (i = 0; i < daemon_local->flags.offlineLogstorageMaxDevices; i++)
+ {
+ /* call disconnect on all currently connected devices */
+ if (daemon->storage_handle[i].connection_type ==
+ DLT_OFFLINE_LOGSTORAGE_DEVICE_CONNECTED)
+ {
+ dlt_logstorage_device_disconnected(&daemon->storage_handle[i]);
+ }
+ }
+
+ return 0;
+}