TrustedQSL Library API
adif.h
Go to the documentation of this file.
1 /***************************************************************************
2  adif.h - description
3  -------------------
4  begin : Wed May 15 2002
5  copyright : (C) 2002 by ARRL
6  email : MSimcik@localhost.localdomain
7  revision : $Id$
8  ***************************************************************************/
9 
10 #ifndef __ADIF_H
11 #define __ADIF_H
12 
13 #include "tqsllib.h"
14 
15 #include <stdio.h>
16 #include <stdlib.h>
17 
28 #define TQSL_ADIF_FIELD_NAME_LENGTH_MAX 64
29 #define TQSL_ADIF_FIELD_SIZE_LENGTH_MAX 10
30 #define TQSL_ADIF_FIELD_TYPE_LENGTH_MAX 1
31 
32 
35 #ifndef TQSL_ADIF_BOOLEAN
36 typedef enum
37 {
38  TQSL_FALSE,
39  TQSL_TRUE
41 #endif
42 
43 typedef void * tQSL_ADIF;
44 
46 typedef enum
47 {
48  TQSL_ADIF_RANGE_TYPE_NONE,
49  TQSL_ADIF_RANGE_TYPE_MINMAX,
50  TQSL_ADIF_RANGE_TYPE_ENUMERATION
52 
54 typedef enum
55 {
56  TQSL_ADIF_GET_FIELD_SUCCESS,
57  TQSL_ADIF_GET_FIELD_NO_NAME_MATCH,
58  TQSL_ADIF_GET_FIELD_NO_TYPE_MATCH,
59  TQSL_ADIF_GET_FIELD_NO_RANGE_MATCH,
60  TQSL_ADIF_GET_FIELD_NO_ENUMERATION_MATCH,
61  TQSL_ADIF_GET_FIELD_NO_RESULT_ALLOCATION,
62  TQSL_ADIF_GET_FIELD_NAME_LENGTH_OVERFLOW,
63  TQSL_ADIF_GET_FIELD_DATA_LENGTH_OVERFLOW,
64  TQSL_ADIF_GET_FIELD_SIZE_OVERFLOW,
65  TQSL_ADIF_GET_FIELD_TYPE_OVERFLOW,
66  TQSL_ADIF_GET_FIELD_ERRONEOUS_STATE,
67  TQSL_ADIF_GET_FIELD_EOF
69 
71 typedef struct
72 {
76  unsigned int max_length;
77  long signed min_value;
78  long signed max_value;
79  const char **enumStrings;
80  void *userPointer;
82 
84 typedef struct
85 {
89  unsigned char *data;
90  unsigned int adifNameIndex;
91  void *userPointer;
93 
94 
95 /* function prototypes */
96 
97 #ifdef __cplusplus
98 extern "C" {
99 #endif
100 
103 
105 DLLEXPORT int CALLCONVENTION tqsl_beginADIF(tQSL_ADIF *adifp, const char *filename);
106 
124  const tqsl_adifFieldDefinitions *adifFields, const char * const *typesDefined,
125  unsigned char *(*allocator)(size_t) );
126 
128 DLLEXPORT int CALLCONVENTION tqsl_getADIFLine(tQSL_ADIF adif, int *lineno);
129 
132 
138 DLLEXPORT int CALLCONVENTION tqsl_adifMakeField(const char *fieldname, char type, const unsigned char *value, int len,
139  unsigned char *buf, int buflen);
140 
141 #ifdef __cplusplus
142 }
143 #endif
144 
147 #endif /* __ADIF_H */