das2C
das core C utilities (v3)
processor.h
Go to the documentation of this file.
1 /* Copyright (C) 2015-2017 Chris Piker <chris-piker@uiowa.edu>
2  *
3  * This file is part of libdas2, the Core Das2 C Library.
4  *
5  * Libdas2 is free software; you can redistribute it and/or modify it under
6  * the terms of the GNU Lesser General Public License version 2.1 as published
7  * by the Free Software Foundation.
8  *
9  * Libdas2 is distributed in the hope that it will be useful, but WITHOUT ANY
10  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11  * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
12  * more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public License
15  * version 2.1 along with libdas2; if not, see <http://www.gnu.org/licenses/>.
16  */
17 
24 #ifndef _das_processor_h_
25 #define _das_processor_h_
26 
27 #include <das2/stream.h>
28 #include <das2/oob.h>
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33 
34 
41 typedef DasErrCode (*StreamDescHandler)(StreamDesc* sd, void* ud);
42 
50 typedef DasErrCode (*PktDescHandler)(StreamDesc* sd, PktDesc* pd, void* ud);
51 
60 typedef DasErrCode (*PktRedefHandler)(StreamDesc* sd, PktDesc* pd, void* ud);
61 
67 typedef DasErrCode (*PktDataHandler)(PktDesc* pd, void* ud);
68 
69 
79 typedef DasErrCode (*DsDescHandler)(StreamDesc* sd, DasDs* dd, void* ud);
80 
90 typedef DasErrCode (*DsDataHandler)(StreamDesc* sd, DasDs* dd, void* ud);
91 
98 typedef DasErrCode (*CloseHandler)(StreamDesc* sd, void* ud);
99 
105 typedef DasErrCode (*ExceptionHandler)(OobExcept* se, void* ud);
106 
112 typedef DasErrCode (*CommentHandler)(OobComment* se, void* ud);
113 
114 
119 typedef struct _streamHandler {
125 
130 
134 
137 
141 
145 
146 
152 
165 
169 
173  void* userData;
174 
175 } StreamHandler;
176 
189 DAS_API void StreamHandler_init(StreamHandler* pThis, void* pUserData);
190 
203 DAS_API StreamHandler* new_StreamHandler(void* pUserData);
204 
206 DAS_API void del_StreamHandler(StreamHandler* pThis);
207 
208 #ifdef __cplusplus
209 }
210 #endif
211 
212 #endif /* _das_processor_h_ */
int DasErrCode
return code type 0 indicates success, negative integer indicates failure
Definition: defs.h:164
Defines the "Out of Band" objects in a stream.
DasErrCode(* CloseHandler)(StreamDesc *sd, void *ud)
Callback functions that are invoked on Stream Close callback function that is called at the end of th...
Definition: processor.h:98
DasErrCode(* PktRedefHandler)(StreamDesc *sd, PktDesc *pd, void *ud)
Definition of the callback function invoked when a packet header is going to be deleted.
Definition: processor.h:60
DasErrCode(* PktDataHandler)(PktDesc *pd, void *ud)
Callback function invoked when a data packet is encountered in the input.
Definition: processor.h:67
DasErrCode(* CommentHandler)(OobComment *se, void *ud)
Callback functions that handle comments.
Definition: processor.h:112
DasErrCode(* ExceptionHandler)(OobExcept *se, void *ud)
Callback functions that handle exceptions.
Definition: processor.h:105
DAS_API void del_StreamHandler(StreamHandler *pThis)
Type safe wrapper around free()
DasErrCode(* StreamDescHandler)(StreamDesc *sd, void *ud)
Definition of the callback function invoked when a stream header is encountered in the input.
Definition: processor.h:41
DasErrCode(* PktDescHandler)(StreamDesc *sd, PktDesc *pd, void *ud)
Definition of the callback function invoked when a packet header is encountered in the input.
Definition: processor.h:50
DasErrCode(* DsDescHandler)(StreamDesc *sd, DasDs *dd, void *ud)
Callback function invoked when a dataset header is encountered on the input stream.
Definition: processor.h:79
DasErrCode(* DsDataHandler)(StreamDesc *sd, DasDs *dd, void *ud)
Callback function invoked when a new data packets for a dataset are encountered on the stream.
Definition: processor.h:90
Objects representing a single das stream.
#define StreamDesc
Compatability macro For backwards compatability, all functions with the name pattern DasStream are al...
Definition: stream.h:132
Das Datasets.
Definition: dataset.h:139
describes human-consumable messages that exist on the stream.
Definition: oob.h:134
describes an exception that can live in a stream.
Definition: oob.h:80
Holds information for a single packet type in a Das2 stream.
Definition: packet.h:138
A set of callbacks used for input and output stream processing.
Definition: processor.h:119
DsDescHandler dsDescHandler
Sets the function to be called when each dataset definition is read in (das3)
Definition: processor.h:140
CloseHandler closeHandler
Sets the function to be called the reading of the stream is completed.
Definition: processor.h:168
void * userData
An optional User-data pointer that is passed along to all callbacks.
Definition: processor.h:173
DAS_API void StreamHandler_init(StreamHandler *pThis, void *pUserData)
Initialize a stream processor with default callbacks.
PktDataHandler pktDataHandler
Sets the function to be called when each data packet is read in.
Definition: processor.h:136
PktRedefHandler pktRedefHandler
Sets the function to be called when a packet ID is about to be re-defined before the old pkt descript...
Definition: processor.h:133
PktDescHandler pktDescHandler
Sets the function to be called when each <packet> element is read in.
Definition: processor.h:129
CommentHandler commentHandler
StreamCommentHandler receives stream annotations.
Definition: processor.h:164
ExceptionHandler exceptionHandler
Sets the function to be called when a stream exception is read in.
Definition: processor.h:151
StreamDescHandler streamDescHandler
The function to be called when the stream header is read in.
Definition: processor.h:124
DAS_API StreamHandler * new_StreamHandler(void *pUserData)
Create a new stream processor with default callbacks.
DsDataHandler dsDataHandler
Sets the function to be called when each dataset receives new data (das3)
Definition: processor.h:144