TrustedQSL Library API
adif.h
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 
26 #define TQSL_ADIF_FIELD_NAME_LENGTH_MAX 64
27 #define TQSL_ADIF_FIELD_SIZE_LENGTH_MAX 10
28 #define TQSL_ADIF_FIELD_TYPE_LENGTH_MAX 1
29 
30 #ifndef TQSL_ADIF_BOOLEAN
31 typedef enum { TQSL_FALSE, TQSL_TRUE } TQSL_ADIF_BOOLEAN;
32 #endif
33 
34 typedef void * tQSL_ADIF;
35 
37 typedef enum
38 {
39  TQSL_ADIF_RANGE_TYPE_NONE,
40  TQSL_ADIF_RANGE_TYPE_MINMAX,
41  TQSL_ADIF_RANGE_TYPE_ENUMERATION
43 
45 typedef enum
46 {
47  TQSL_ADIF_GET_FIELD_SUCCESS,
48  TQSL_ADIF_GET_FIELD_NO_NAME_MATCH,
49  TQSL_ADIF_GET_FIELD_NO_TYPE_MATCH,
50  TQSL_ADIF_GET_FIELD_NO_RANGE_MATCH,
51  TQSL_ADIF_GET_FIELD_NO_ENUMERATION_MATCH,
52  TQSL_ADIF_GET_FIELD_NO_RESULT_ALLOCATION,
53  TQSL_ADIF_GET_FIELD_NAME_LENGTH_OVERFLOW,
54  TQSL_ADIF_GET_FIELD_DATA_LENGTH_OVERFLOW,
55  TQSL_ADIF_GET_FIELD_SIZE_OVERFLOW,
56  TQSL_ADIF_GET_FIELD_TYPE_OVERFLOW,
57  TQSL_ADIF_GET_FIELD_ERRONEOUS_STATE,
58  TQSL_ADIF_GET_FIELD_EOF
60 
62 typedef struct
63 {
64  char name[TQSL_ADIF_FIELD_NAME_LENGTH_MAX + 1];
65  char type[TQSL_ADIF_FIELD_TYPE_LENGTH_MAX + 1];
66  TQSL_ADIF_RANGE_TYPE rangeType;
67  unsigned int max_length;
68  long signed min_value;
69  long signed max_value;
70  const char **enumStrings;
71  void *userPointer;
73 
75 typedef struct
76 {
77  char name[TQSL_ADIF_FIELD_NAME_LENGTH_MAX + 1];
78  char size[TQSL_ADIF_FIELD_SIZE_LENGTH_MAX + 1];
79  char type[TQSL_ADIF_FIELD_TYPE_LENGTH_MAX + 1];
80  unsigned char *data;
81  unsigned int adifNameIndex;
82  void *userPointer;
84 
85 
86 /* function prototypes */
87 
88 #ifdef __cplusplus
89 extern "C" {
90 #endif
91 
93 DLLEXPORT const char* CALLCONVENTION tqsl_adifGetError( TQSL_ADIF_GET_FIELD_ERROR status );
94 
96 DLLEXPORT int CALLCONVENTION tqsl_beginADIF(tQSL_ADIF *adifp, const char *filename);
97 
114 DLLEXPORT int CALLCONVENTION tqsl_getADIFField(tQSL_ADIF adif, tqsl_adifFieldResults *field, TQSL_ADIF_GET_FIELD_ERROR *status,
115  const tqsl_adifFieldDefinitions *adifFields, const char * const *typesDefined,
116  unsigned char *(*allocator)(size_t) );
117 
119 DLLEXPORT int CALLCONVENTION tqsl_getADIFLine(tQSL_ADIF adif, int *lineno);
120 
122 DLLEXPORT int CALLCONVENTION tqsl_endADIF(tQSL_ADIF *adifp);
123 
129 DLLEXPORT int CALLCONVENTION tqsl_adifMakeField(const char *fieldname, char type, const unsigned char *value, int len,
130  unsigned char *buf, int buflen);
131 
132 #ifdef __cplusplus
133 }
134 #endif
135 
138 #endif /* __ADIF_H */