Wireshark  4.3.0
The Wireshark network protocol analyzer
uat-int.h
Go to the documentation of this file.
1 
16 #ifndef __UAT_INT_H__
17 #define __UAT_INT_H__
18 
19 #include <glib.h>
20 
21 #include "uat.h"
22 #include "ws_symbol_export.h"
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif /* __cplusplus */
27 
28 typedef struct _uat_fld_rep_t uat_fld_rep_t;
29 typedef struct _uat_rep_t uat_rep_t;
30 
31 typedef void (*uat_rep_fld_free_cb_t)(uat_fld_rep_t*);
32 typedef void (*uat_rep_free_cb_t)(uat_rep_t*);
33 
34 typedef struct _fld_data_t {
35  unsigned colnum;
36  uat_fld_rep_t* rep;
37  uat_rep_fld_free_cb_t free_rep;
38 } fld_data_t;
39 
40 struct epan_uat {
41  char* name;
42  size_t record_size;
43  char* filename;
44  bool from_profile;
45  char* help;
46  unsigned flags;
47  void** user_ptr;
48  unsigned* nrows_p;
49  uat_copy_cb_t copy_cb;
50  uat_update_cb_t update_cb;
51  uat_free_cb_t free_cb;
52  uat_post_update_cb_t post_update_cb;
53  uat_reset_cb_t reset_cb;
54 
55  uat_field_t* fields;
56  const char** default_values;
57  unsigned ncols;
58  GArray* user_data;
59  GArray* raw_data;
60  GArray* valid_data;
61  bool changed;
62  uat_rep_t* rep;
63  uat_rep_free_cb_t free_rep;
64  bool loaded;
65 };
66 
67 WS_DLL_PUBLIC
68 char* uat_get_actual_filename(uat_t* uat, bool for_writing);
69 
75 WS_DLL_PUBLIC
76 void* uat_add_record(uat_t *uat, const void *orig_rec_ptr, bool valid_rec);
77 
82 WS_DLL_PUBLIC
83 void uat_update_record(uat_t *uat, const void *record, bool valid_rec);
84 
88 WS_DLL_PUBLIC
89 void uat_swap(uat_t *uat, unsigned idx_a, unsigned idx_b);
90 
94 WS_DLL_PUBLIC
95 void uat_insert_record_idx(uat_t *uat, unsigned rec_idx, const void *src_record);
96 
101 WS_DLL_PUBLIC
102 void uat_remove_record_idx(uat_t *uat, unsigned rec_idx);
103 
109 WS_DLL_PUBLIC
110 void uat_remove_record_range(uat_t *uat, unsigned rec_idx, unsigned count);
111 
115 WS_DLL_PUBLIC
116 void uat_move_index(uat_t *uat, unsigned old_idx, unsigned new_idx);
117 
121 WS_DLL_PUBLIC
122 void uat_clear(uat_t *uat);
123 
129 WS_DLL_PUBLIC
130 bool uat_save(uat_t *uat, char **error);
131 
135 void uat_load_all(void);
136 
144 WS_DLL_PUBLIC
145 char *uat_fld_tostr(void *rec, uat_field_t *f);
146 
151 #define UAT_UPDATE(uat) do { *((uat)->user_ptr) = (void*)((uat)->user_data->data); *((uat)->nrows_p) = (uat)->user_data->len; } while(0)
157 #define UAT_INDEX_PTR(uat,idx) (uat->raw_data->data + (uat->record_size * (idx)))
162 #define UAT_USER_INDEX_PTR(uat,idx) (uat->user_data->data + (uat->record_size * (idx)))
163 
164 #ifdef __cplusplus
165 }
166 #endif /* __cplusplus */
167 
168 #endif /* __UAT_INT_H__ */
169 
170 /*
171  * Editor modelines - https://www.wireshark.org/tools/modelines.html
172  *
173  * Local variables:
174  * c-basic-offset: 4
175  * tab-width: 8
176  * indent-tabs-mode: nil
177  * End:
178  *
179  * vi: set shiftwidth=4 tabstop=8 expandtab:
180  * :indentSize=4:tabSize=8:noTabs=true:
181  */
Definition: uat-int.h:34
Definition: uat.h:234
Definition: uat-int.h:40
void ** user_ptr
Definition: uat-int.h:47
GArray * raw_data
Definition: uat-int.h:59
unsigned * nrows_p
Definition: uat-int.h:48
GArray * valid_data
Definition: uat-int.h:60
GArray * user_data
Definition: uat-int.h:58
WS_DLL_PUBLIC bool uat_save(uat_t *uat, char **error)
Definition: uat.c:381
WS_DLL_PUBLIC void uat_update_record(uat_t *uat, const void *record, bool valid_rec)
Definition: uat.c:145
WS_DLL_PUBLIC void uat_remove_record_range(uat_t *uat, unsigned rec_idx, unsigned count)
Definition: uat.c:217
WS_DLL_PUBLIC void uat_move_index(uat_t *uat, unsigned old_idx, unsigned new_idx)
Definition: uat.c:235
WS_DLL_PUBLIC void uat_clear(uat_t *uat)
Definition: uat.c:475
WS_DLL_PUBLIC void uat_swap(uat_t *uat, unsigned idx_a, unsigned idx_b)
Definition: uat.c:164
void uat_load_all(void)
Definition: uat.c:557
WS_DLL_PUBLIC void uat_remove_record_idx(uat_t *uat, unsigned rec_idx)
Definition: uat.c:205
WS_DLL_PUBLIC void * uat_add_record(uat_t *uat, const void *orig_rec_ptr, bool valid_rec)
Definition: uat.c:117
WS_DLL_PUBLIC char * uat_fld_tostr(void *rec, uat_field_t *f)
Definition: uat.c:288
WS_DLL_PUBLIC void uat_insert_record_idx(uat_t *uat, unsigned rec_idx, const void *src_record)
Definition: uat.c:186
void *(* uat_copy_cb_t)(void *dest, const void *source, size_t len)
Definition: uat.h:87
void(* uat_free_cb_t)(void *record)
Definition: uat.h:97
bool(* uat_update_cb_t)(void *record, char **error)
Definition: uat.h:125
void(* uat_reset_cb_t)(void)
Definition: uat.h:105