DLT_CSTRING implementation non verbose mode.
[profile/ivi/dlt-daemon.git] / include / dlt / dlt_offline_trace.h
1 /**
2  * @licence app begin@
3  * Copyright (C) 2012  BMW AG
4  *
5  * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps.
6  *
7  * Contributions are licensed to the GENIVI Alliance under one or more
8  * Contribution License Agreements.
9  *
10  * \copyright
11  * This Source Code Form is subject to the terms of the
12  * Mozilla Public License, v. 2.0. If a  copy of the MPL was not distributed with
13  * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
14  *
15  *
16  * \author Alexander Wenzel <alexander.aw.wenzel@bmw.de> BMW 2011-2012
17  *
18  * \file dlt_offline_trace.h
19  * For further information see http://www.genivi.org/.
20  * @licence end@
21  */
22
23
24 /*******************************************************************************
25 **                                                                            **
26 **  SRC-MODULE: dlt_offline_trace.h                                           **
27 **                                                                            **
28 **  TARGET    : linux                                                         **
29 **                                                                            **
30 **  PROJECT   : DLT                                                           **
31 **                                                                            **
32 **  AUTHOR    : Alexander Wenzel Alexander.AW.Wenzel@bmw.de                   **
33 **                                                                            **
34 **  PURPOSE   :                                                               **
35 **                                                                            **
36 **  REMARKS   :                                                               **
37 **                                                                            **
38 **  PLATFORM DEPENDANT [yes/no]: yes                                          **
39 **                                                                            **
40 **  TO BE CHANGED BY USER [yes/no]: no                                        **
41 **                                                                            **
42 *******************************************************************************/
43
44 /*******************************************************************************
45 **                      Author Identity                                       **
46 ********************************************************************************
47 **                                                                            **
48 ** Initials     Name                       Company                            **
49 ** --------     -------------------------  ---------------------------------- **
50 **  aw          Alexander Wenzel           BMW                                **
51 *******************************************************************************/
52
53 #ifndef DLT_OFFLINE_TRACE_H
54 #define DLT_OFFLINE_TRACE_H
55
56 #include <limits.h>
57
58 typedef struct
59 {
60     char directory[NAME_MAX + 1]; /**< (String) Store DLT messages to local directory */
61     char filename[NAME_MAX + 1]; /**< (String) Filename of currently used log file */
62     int  fileSize;      /**< (int) Maximum size in bytes of one trace file (Default: 1000000) */
63     int  maxSize;       /**< (int) Maximum size of all trace files (Default: 4000000) */
64     
65     int ohandle;
66 } DltOfflineTrace;
67
68 /**
69  * Initialise the offline trace
70  * This function call opens the currently used log file.
71  * A check of the complete size of the offline trace is done during startup.
72  * Old files are deleted, if there is not enough space left to create new file.
73  * This function must be called before using further offline trace functions.
74  * @param trace pointer to offline trace structure
75  * @param directory directory where to store offline trace files
76  * @param fileSize maximum size of one offline trace file.
77  * @param maxSize maximum size of complete offline trace in bytes.
78  * @return negative value if there was an error
79  */
80 extern int dlt_offline_trace_init(DltOfflineTrace *trace,const char *directory,int fileSize,int maxSize);
81
82 /**
83  * Uninitialise the offline trace
84  * This function call closes currently used log file.
85  * This function must be called after usage of offline trace
86  * @param trace pointer to offline trace structure
87  * @return negative value if there was an error
88  */
89 extern int dlt_offline_trace_free(DltOfflineTrace *buf);
90
91 /**
92  * Write data into offline trace
93  * If the current used log file exceeds the max file size, new log file is created. 
94  * A check of the complete size of the offline trace is done before new file is created.
95  * Old files are deleted, if there is not enough space left to create new file.
96  * @param trace pointer to offline trace structure
97  * @param data1 pointer to first data block to be written, null if not used
98  * @param size1 size in bytes of first data block to be written, 0 if not used
99  * @param data2 pointer to second data block to be written, null if not used
100  * @param size2 size in bytes of second data block to be written, 0 if not used
101  * @param data3 pointer to third data block to be written, null if not used
102  * @param size3 size in bytes of third data block to be written, 0 if not used
103  * @return negative value if there was an error
104  */
105 extern int dlt_offline_trace_write(DltOfflineTrace *trace,unsigned char *data1,int size1,unsigned char *data2,int size2,unsigned char *data3,int size3);
106
107 /**
108  * Get size of currently used offline trace buffer
109  * @return size in bytes
110  */
111 extern unsigned long dlt_offline_trace_get_total_size(DltOfflineTrace *trace);
112
113 #endif /* DLT_OFFLINE_TRACE_H */