68 #define STREAMSERIESINPUTTESTC_ENORM 0
69 #define STREAMSERIESINPUTTESTC_ESUB 1
70 #define STREAMSERIESINPUTTESTC_EARG 2
71 #define STREAMSERIESINPUTTESTC_EFILE 3
75 #define STREAMSERIESINPUTTESTC_MSGENORM "Normal exit"
76 #define STREAMSERIESINPUTTESTC_MSGESUB "Subroutine failed"
77 #define STREAMSERIESINPUTTESTC_MSGEARG "Error parsing arguments"
78 #define STREAMSERIESINPUTTESTC_MSGEFILE "Could not open file"
82 #include <lal/LALStdio.h>
83 #include <lal/FileIO.h>
84 #include <lal/LALStdlib.h>
85 #include <lal/AVFactories.h>
86 #include <lal/SeqFactories.h>
87 #include <lal/StreamInput.h>
88 #include <lal/StreamOutput.h>
91 #define INFILE TEST_DATA_DIR "StreamSeriesInput.data"
94 #define USAGE "Usage: %s [-o outfile] [-d debuglevel]\n" \
95 "\t[-i infile {t | v | a | f} {i2 | i4 | i8 | u2 | u4 | u8 | s | d | c | z}]\n"
98 #define ERROR( code, msg, statement ) \
99 if ( lalDebugLevel & LALERROR ) \
101 LALPrintError( "Error[0] %d: program %s, file %s, line %d, %s\n" \
102 " %s %s\n", (code), *argv, __FILE__, \
104 statement ? statement : "", (msg) ); \
108 #define INFO( statement ) \
109 if ( lalDebugLevel & LALINFO ) \
111 LALPrintError( "Info[0]: program %s, file %s, line %d, %s\n" \
112 " %s\n", *argv, __FILE__, __LINE__, \
113 "$Id$", (statement) ); \
117 #define SUB( func, statusptr ) \
118 if ( (func), (statusptr)->statusCode ) \
120 ERROR( STREAMSERIESINPUTTESTC_ESUB, STREAMSERIESINPUTTESTC_MSGESUB,\
121 "Function call \"" #func "\" failed:" ); \
122 return STREAMSERIESINPUTTESTC_ESUB; \
127 main(
int argc,
char **argv)
131 CHAR *outfile = NULL;
132 const CHAR *infile = INFILE;
133 const CHAR *dtype =
"s";
134 const CHAR *stype =
"f";
141 while ( arg < argc ) {
143 if ( !strcmp( argv[arg],
"-o" ) ) {
144 if ( argc > arg + 1 ) {
146 outfile = argv[arg++];
149 STREAMSERIESINPUTTESTC_MSGEARG, 0 );
155 else if ( !strcmp( argv[arg],
"-i" ) ) {
156 if ( argc > arg + 3 ) {
158 infile = argv[arg++];
163 STREAMSERIESINPUTTESTC_MSGEARG, 0 );
169 else if ( !strcmp( argv[arg],
"-d" ) ) {
170 if ( argc > arg + 1 ) {
174 STREAMSERIESINPUTTESTC_MSGEARG, 0 );
182 STREAMSERIESINPUTTESTC_MSGEARG, 0 );
189 if ( strcmp( infile,
"stdin" ) ) {
190 if ( !( fpIn = fopen( infile,
"r" ) ) ) {
192 STREAMSERIESINPUTTESTC_MSGEFILE, infile );
198 if ( strcmp( outfile,
"stdout" ) ) {
199 if ( !( fpOut = fopen( outfile,
"w" ) ) ) {
201 STREAMSERIESINPUTTESTC_MSGEFILE, outfile );
209 if ( !strcmp( stype,
"t" ) ) {
210 if ( !strcmp( dtype,
"i2" ) ) {
217 }
else if ( !strcmp( dtype,
"i4" ) ) {
224 }
else if ( !strcmp( dtype,
"i8" ) ) {
231 }
else if ( !strcmp( dtype,
"u2" ) ) {
238 }
else if ( !strcmp( dtype,
"u4" ) ) {
245 }
else if ( !strcmp( dtype,
"u8" ) ) {
252 }
else if ( !strcmp( dtype,
"s" ) ) {
259 }
else if ( !strcmp( dtype,
"d" ) ) {
266 }
else if ( !strcmp( dtype,
"c" ) ) {
273 }
else if ( !strcmp( dtype,
"z" ) ) {
282 STREAMSERIESINPUTTESTC_MSGEARG, 0 );
289 else if ( !strcmp( stype,
"v" ) ) {
290 if ( !strcmp( dtype,
"i2" ) ) {
297 }
else if ( !strcmp( dtype,
"i4" ) ) {
304 }
else if ( !strcmp( dtype,
"i8" ) ) {
311 }
else if ( !strcmp( dtype,
"u2" ) ) {
318 }
else if ( !strcmp( dtype,
"u4" ) ) {
325 }
else if ( !strcmp( dtype,
"u8" ) ) {
332 }
else if ( !strcmp( dtype,
"s" ) ) {
339 }
else if ( !strcmp( dtype,
"d" ) ) {
346 }
else if ( !strcmp( dtype,
"c" ) ) {
353 }
else if ( !strcmp( dtype,
"z" ) ) {
362 STREAMSERIESINPUTTESTC_MSGEARG, 0 );
369 else if ( !strcmp( stype,
"a" ) ) {
370 if ( !strcmp( dtype,
"i2" ) ) {
377 }
else if ( !strcmp( dtype,
"i4" ) ) {
384 }
else if ( !strcmp( dtype,
"i8" ) ) {
391 }
else if ( !strcmp( dtype,
"u2" ) ) {
398 }
else if ( !strcmp( dtype,
"u4" ) ) {
405 }
else if ( !strcmp( dtype,
"u8" ) ) {
412 }
else if ( !strcmp( dtype,
"s" ) ) {
419 }
else if ( !strcmp( dtype,
"d" ) ) {
426 }
else if ( !strcmp( dtype,
"c" ) ) {
433 }
else if ( !strcmp( dtype,
"z" ) ) {
442 STREAMSERIESINPUTTESTC_MSGEARG, 0 );
449 else if ( !strcmp( stype,
"f" ) ) {
450 if ( !strcmp( dtype,
"i2" ) ) {
457 }
else if ( !strcmp( dtype,
"i4" ) ) {
464 }
else if ( !strcmp( dtype,
"i8" ) ) {
471 }
else if ( !strcmp( dtype,
"u2" ) ) {
478 }
else if ( !strcmp( dtype,
"u4" ) ) {
485 }
else if ( !strcmp( dtype,
"u8" ) ) {
492 }
else if ( !strcmp( dtype,
"s" ) ) {
499 }
else if ( !strcmp( dtype,
"d" ) ) {
506 }
else if ( !strcmp( dtype,
"c" ) ) {
513 }
else if ( !strcmp( dtype,
"z" ) ) {
522 STREAMSERIESINPUTTESTC_MSGEARG, 0 );
531 STREAMSERIESINPUTTESTC_MSGEARG, 0 );
537 if ( infile && strcmp( infile,
"stdin" ) )
539 if ( outfile && strcmp( outfile,
"stdout" ) )
542 INFO( STREAMSERIESINPUTTESTC_MSGENORM );
void LALCheckMemoryLeaks(void)
#define SUB(func, statusptr)
#define ERROR(code, msg, statement)
void LALU8WriteTVectorSeries(LALStatus *status, FILE *stream, UINT8TimeVectorSeries *series)
void LALU2WriteTSeries(LALStatus *status, FILE *stream, UINT2TimeSeries *series)
void LALI2WriteTVectorSeries(LALStatus *status, FILE *stream, INT2TimeVectorSeries *series)
void LALCWriteTArraySeries(LALStatus *status, FILE *stream, COMPLEX8TimeArraySeries *series)
void LALU2WriteFSeries(LALStatus *status, FILE *stream, UINT2FrequencySeries *series)
void LALSWriteTArraySeries(LALStatus *status, FILE *stream, REAL4TimeArraySeries *series)
void LALU4WriteTVectorSeries(LALStatus *status, FILE *stream, UINT4TimeVectorSeries *series)
void LALU8WriteFSeries(LALStatus *status, FILE *stream, UINT8FrequencySeries *series)
void LALU4WriteFSeries(LALStatus *status, FILE *stream, UINT4FrequencySeries *series)
void LALSWriteTVectorSeries(LALStatus *status, FILE *stream, REAL4TimeVectorSeries *series)
void LALZWriteTVectorSeries(LALStatus *status, FILE *stream, COMPLEX16TimeVectorSeries *series)
void LALU8WriteTArraySeries(LALStatus *status, FILE *stream, UINT8TimeArraySeries *series)
void LALU4WriteTSeries(LALStatus *status, FILE *stream, UINT4TimeSeries *series)
void LALCWriteTVectorSeries(LALStatus *status, FILE *stream, COMPLEX8TimeVectorSeries *series)
void LALI8WriteFSeries(LALStatus *status, FILE *stream, INT8FrequencySeries *series)
void LALDWriteTArraySeries(LALStatus *status, FILE *stream, REAL8TimeArraySeries *series)
void LALU2WriteTArraySeries(LALStatus *status, FILE *stream, UINT2TimeArraySeries *series)
void LALDWriteTVectorSeries(LALStatus *status, FILE *stream, REAL8TimeVectorSeries *series)
void LALI4WriteFSeries(LALStatus *status, FILE *stream, INT4FrequencySeries *series)
void LALCWriteFSeries(LALStatus *status, FILE *stream, COMPLEX8FrequencySeries *series)
void LALZWriteTSeries(LALStatus *status, FILE *stream, COMPLEX16TimeSeries *series)
void LALZWriteTArraySeries(LALStatus *status, FILE *stream, COMPLEX16TimeArraySeries *series)
void LALI4WriteTVectorSeries(LALStatus *status, FILE *stream, INT4TimeVectorSeries *series)
void LALI4WriteTSeries(LALStatus *status, FILE *stream, INT4TimeSeries *series)
void LALDWriteTSeries(LALStatus *status, FILE *stream, REAL8TimeSeries *series)
void LALI2WriteTArraySeries(LALStatus *status, FILE *stream, INT2TimeArraySeries *series)
void LALSWriteTSeries(LALStatus *status, FILE *stream, REAL4TimeSeries *series)
void LALI8WriteTSeries(LALStatus *status, FILE *stream, INT8TimeSeries *series)
void LALI8WriteTArraySeries(LALStatus *status, FILE *stream, INT8TimeArraySeries *series)
void LALU2WriteTVectorSeries(LALStatus *status, FILE *stream, UINT2TimeVectorSeries *series)
void LALI4WriteTArraySeries(LALStatus *status, FILE *stream, INT4TimeArraySeries *series)
void LALU8WriteTSeries(LALStatus *status, FILE *stream, UINT8TimeSeries *series)
void LALDWriteFSeries(LALStatus *status, FILE *stream, REAL8FrequencySeries *series)
void LALI2WriteTSeries(LALStatus *status, FILE *stream, INT2TimeSeries *series)
void LALU4WriteTArraySeries(LALStatus *status, FILE *stream, UINT4TimeArraySeries *series)
void LALI8WriteTVectorSeries(LALStatus *status, FILE *stream, INT8TimeVectorSeries *series)
void LALCWriteTSeries(LALStatus *status, FILE *stream, COMPLEX8TimeSeries *series)
void LALZWriteFSeries(LALStatus *status, FILE *stream, COMPLEX16FrequencySeries *series)
void LALI2WriteFSeries(LALStatus *status, FILE *stream, INT2FrequencySeries *series)
void LALSWriteFSeries(LALStatus *status, FILE *stream, REAL4FrequencySeries *series)
int main(int argc, char *argv[])
void LALSDestroyVectorSequence(LALStatus *status, REAL4VectorSequence **vectorSequence)
void LALU2DestroyVectorSequence(LALStatus *status, UINT2VectorSequence **vectorSequence)
void LALI8DestroyArraySequence(LALStatus *status, INT8ArraySequence **arraySeqence)
void LALI4DestroyArraySequence(LALStatus *status, INT4ArraySequence **arraySeqence)
void LALI4DestroyVectorSequence(LALStatus *status, INT4VectorSequence **vectorSequence)
void LALU4DestroyVectorSequence(LALStatus *status, UINT4VectorSequence **vectorSequence)
void LALI2DestroyArraySequence(LALStatus *status, INT2ArraySequence **arraySeqence)
void LALCDestroyArraySequence(LALStatus *status, COMPLEX8ArraySequence **arraySeqence)
void LALDDestroyVectorSequence(LALStatus *status, REAL8VectorSequence **vectorSequence)
void LALU8DestroyVectorSequence(LALStatus *status, UINT8VectorSequence **vectorSequence)
void LALI2DestroyVectorSequence(LALStatus *status, INT2VectorSequence **vectorSequence)
void LALCDestroyVectorSequence(LALStatus *status, COMPLEX8VectorSequence **vectorSequence)
void LALU8DestroyArraySequence(LALStatus *status, UINT8ArraySequence **arraySeqence)
void LALZDestroyArraySequence(LALStatus *status, COMPLEX16ArraySequence **arraySeqence)
void LALU2DestroyArraySequence(LALStatus *status, UINT2ArraySequence **arraySeqence)
void LALSDestroyArraySequence(LALStatus *status, REAL4ArraySequence **arraySeqence)
void LALU4DestroyArraySequence(LALStatus *status, UINT4ArraySequence **arraySeqence)
void LALDDestroyArraySequence(LALStatus *status, REAL8ArraySequence **arraySeqence)
void LALZDestroyVectorSequence(LALStatus *status, COMPLEX16VectorSequence **vectorSequence)
void LALI8DestroyVectorSequence(LALStatus *status, INT8VectorSequence **vectorSequence)
char CHAR
One-byte signed integer, see Headers LAL(Atomic)Datatypes.h for more details.
int32_t INT4
Four-byte signed integer.
int LALPrintError(const char *fmt,...)
void LALZDestroyVector(LALStatus *, COMPLEX16Vector **)
void LALI4DestroyVector(LALStatus *, INT4Vector **)
void LALCDestroyVector(LALStatus *, COMPLEX8Vector **)
void LALDDestroyVector(LALStatus *, REAL8Vector **)
void LALSDestroyVector(LALStatus *, REAL4Vector **)
void LALU2DestroyVector(LALStatus *, UINT2Vector **)
void LALU8DestroyVector(LALStatus *, UINT8Vector **)
void LALU4DestroyVector(LALStatus *, UINT4Vector **)
void LALI8DestroyVector(LALStatus *, INT8Vector **)
void LALI2DestroyVector(LALStatus *, INT2Vector **)
See DATATYPE-FrequencySeries types for documentation.
See DATATYPE-TimeArraySeries types for documentation.
COMPLEX16ArraySequence * data
Time series of COMPLEX16 data, see DATATYPE-TimeSeries types for more details.
COMPLEX16Sequence * data
The sequence of sampled data.
Time series of COMPLEX16 vectors, see DATATYPE-TimeVectorSeries for more details.
COMPLEX16VectorSequence * data
The sequence of sampled data vectors.
See DATATYPE-FrequencySeries types for documentation.
See DATATYPE-TimeArraySeries types for documentation.
COMPLEX8ArraySequence * data
Time series of COMPLEX8 data, see DATATYPE-TimeSeries types for more details.
COMPLEX8Sequence * data
The sequence of sampled data.
Time series of COMPLEX8 vectors, see DATATYPE-TimeVectorSeries for more details.
COMPLEX8VectorSequence * data
The sequence of sampled data vectors.
See DATATYPE-FrequencySeries types for documentation.
See DATATYPE-TimeArraySeries types for documentation.
Time series of INT2 data, see DATATYPE-TimeSeries types for more details.
INT2Sequence * data
The sequence of sampled data.
Time series of INT2 vectors, see DATATYPE-TimeVectorSeries for more details.
INT2VectorSequence * data
The sequence of sampled data vectors.
See DATATYPE-FrequencySeries types for documentation.
See DATATYPE-TimeArraySeries types for documentation.
Time series of INT4 data, see DATATYPE-TimeSeries types for more details.
INT4Sequence * data
The sequence of sampled data.
Time series of INT4 vectors, see DATATYPE-TimeVectorSeries for more details.
INT4VectorSequence * data
The sequence of sampled data vectors.
See DATATYPE-FrequencySeries types for documentation.
See DATATYPE-TimeArraySeries types for documentation.
Time series of INT8 data, see DATATYPE-TimeSeries types for more details.
INT8Sequence * data
The sequence of sampled data.
Time series of INT8 vectors, see DATATYPE-TimeVectorSeries for more details.
INT8VectorSequence * data
The sequence of sampled data vectors.
LAL status structure, see The LALStatus structure for more details.
See DATATYPE-FrequencySeries types for documentation.
See DATATYPE-TimeArraySeries types for documentation.
REAL4ArraySequence * data
Time series of REAL4 data, see DATATYPE-TimeSeries types for more details.
REAL4Sequence * data
The sequence of sampled data.
Time series of REAL4 vectors, see DATATYPE-TimeVectorSeries for more details.
REAL4VectorSequence * data
The sequence of sampled data vectors.
See DATATYPE-FrequencySeries types for documentation.
See DATATYPE-TimeArraySeries types for documentation.
REAL8ArraySequence * data
Time series of REAL8 data, see DATATYPE-TimeSeries types for more details.
REAL8Sequence * data
The sequence of sampled data.
Time series of REAL8 vectors, see DATATYPE-TimeVectorSeries for more details.
REAL8VectorSequence * data
The sequence of sampled data vectors.
See DATATYPE-FrequencySeries types for documentation.
See DATATYPE-TimeArraySeries types for documentation.
UINT2ArraySequence * data
Time series of UINT2 data, see DATATYPE-TimeSeries types for more details.
UINT2Sequence * data
The sequence of sampled data.
Time series of UINT2 vectors, see DATATYPE-TimeVectorSeries for more details.
UINT2VectorSequence * data
The sequence of sampled data vectors.
See DATATYPE-FrequencySeries types for documentation.
See DATATYPE-TimeArraySeries types for documentation.
UINT4ArraySequence * data
Time series of UINT4 data, see DATATYPE-TimeSeries types for more details.
UINT4Sequence * data
The sequence of sampled data.
Time series of UINT4 vectors, see DATATYPE-TimeVectorSeries for more details.
UINT4VectorSequence * data
The sequence of sampled data vectors.
See DATATYPE-FrequencySeries types for documentation.
See DATATYPE-TimeArraySeries types for documentation.
UINT8ArraySequence * data
Time series of UINT8 data, see DATATYPE-TimeSeries types for more details.
UINT8Sequence * data
The sequence of sampled data.
Time series of UINT8 vectors, see DATATYPE-TimeVectorSeries for more details.
UINT8VectorSequence * data
The sequence of sampled data vectors.