diff options
author | Christoph Lipka <clipka@jp.adit-jv.com> | 2015-10-26 14:57:00 +0900 |
---|---|---|
committer | Lutz Helwing <lutz_helwing@mentor.com> | 2015-11-24 09:48:42 +0100 |
commit | d73717a4f6b243d40388bb1d3bb9db7421d7b9b0 (patch) | |
tree | 091f25b5f38257f611733e4757b762a036b12d83 /src/daemon/dlt_daemon_offline_logstorage.c | |
parent | 5574d46a4083d783a915688e0e05593b9558497b (diff) | |
download | DLT-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.c | 32 |
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; +} |