summaryrefslogtreecommitdiff
path: root/cleopatre/application/libspid/inc/libspid.h
diff options
context:
space:
mode:
authorBelkadi & Buret2011-06-27 18:46:45 +0200
committerBelkadi & Buret2011-06-30 15:16:39 +0200
commit578e284d4a8c55c1355566765c0457d3988c5d10 (patch)
tree0d9e9008c8032221d21d029d05000c5f4eeaa7a9 /cleopatre/application/libspid/inc/libspid.h
parent4d9ef286cd338e20868d3212b6075fc7ccd7e5a6 (diff)
cleo/app/libspid: add libspid_config_{read|write}_items(), refs #2449
If a file may be accessed concurrently by different processes, then reading or writing related items one at a time (with libspid_config_read_item() or libspid_config_write_item()) may result in incoherent results. For example: Process1 Process2 read(fileA, item1) write(fileA, item1) write(fileA, item2) read(fileA, item2) Process1 may now be working with an invalid pair (item1, item2). This commit adds two functions (libspid_config_read_items() and libspid_config_write_items()) to be able to read/write many items at once, thus avoiding incoherent results.
Diffstat (limited to 'cleopatre/application/libspid/inc/libspid.h')
-rw-r--r--cleopatre/application/libspid/inc/libspid.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/cleopatre/application/libspid/inc/libspid.h b/cleopatre/application/libspid/inc/libspid.h
index e5964e16c7..e6b91a0dfb 100644
--- a/cleopatre/application/libspid/inc/libspid.h
+++ b/cleopatre/application/libspid/inc/libspid.h
@@ -117,7 +117,9 @@ typedef enum {
typedef void (*libspid_signal_handler_t) (int);
extern libspid_error_t libspid_config_read_item (const char *filename, const char *label, char *value, int buffer_len);
+extern libspid_error_t libspid_config_read_items (const char *filename, const char * const labels[], char *values[], const int buffers_len[], unsigned int count);
extern libspid_error_t libspid_config_write_item(const char *filename, const char *label, const char *value);
+extern libspid_error_t libspid_config_write_items (const char *filename, const char * const labels[], const char * const values[], unsigned int count);
extern libspid_error_t libspid_config_read_line(const char *filename, const char* delimiters, char *key, unsigned int *elt_number, char *elt[], char *buffer, unsigned int buffer_len);
extern libspid_error_t libspid_config_write_line(const char *filename, const char delimiter, const char *key, unsigned int elt_number, char *elt[]);
extern libspid_error_t libspid_config_remove_line(const char *filename, const char *delimiters, const char *key);