LALMetaIO  4.0.4.1-89842e6
LIGOLwXML.h
Go to the documentation of this file.
1 /*
2 * Copyright (C) 2007 Duncan Brown
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with with program; see the file COPYING. If not, write to the
16 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17 * MA 02110-1301 USA
18 */
19 
20 /*-----------------------------------------------------------------------
21  *
22  * File Name: LIGOLwXML.h
23  *
24  * Author: Brown, D. A.
25  *
26  *-----------------------------------------------------------------------
27  */
28 
29 /**
30  * \author Brown, D. A.
31  * \file
32  * \ingroup lalmetaio_general
33  * \brief Provides functions for writing the LIGO metdata database table structres to LIGO light weight XML files.
34  *
35  * ### Synopsis ###
36  *
37  * \code
38  * #include <lal/LIGOLwXML.h>
39  * \endcode
40  *
41  */
42 
43 #ifndef _LIGOLWXML_H
44 #define _LIGOLWXML_H
45 
46 #include <stdlib.h>
47 #include <lal/FileIO.h>
48 #include <lal/LALAtomicDatatypes.h>
49 #include <lal/LIGOMetadataTables.h>
50 
51 #if defined(__cplusplus)
52 extern "C" {
53 #elif 0
54 } /* so that editors will match preceding brace */
55 #endif
56 
57 /**
58  * This structure contains the file stream and current table type for
59  * writing to LIGO lightweight XML files. It should not be manipulated
60  * directly, but passed to the \c LIGOLwXML functions for their use.
61  * <dl>
62  * <dt>fp</dt><dd> The file stream pointer of the XML file.</dd>
63  * <dt>first</dt><dd> Is this the first entry in the table.</dd>
64  * <dt>rowCount</dt><dd> Counter for the number of rows in the current table.</dd>
65  * <dt>table</dt><dd> The database table currently open.</dd>
66  * </dl>
67  *
68  */
69 typedef struct
70 tagLIGOLwXMLStream
71 {
72  LALFILE *fp;
73 }
75 
76 
79  const char *path
80  );
81 
82 int
84  LIGOLwXMLStream *xml
85  );
86 
89  const ProcessTable *
90 );
91 
94  const ProcessParamsTable *
95 );
96 
99  const SearchSummaryTable *
100 );
101 
103  LIGOLwXMLStream *,
104  const SnglBurst *
105 );
106 
108  LIGOLwXMLStream *xml,
109  const SnglInspiralTable *sngl_inspiral
110 );
111 
113  LIGOLwXMLStream *,
114  const SimBurst *
115 );
116 
118  LIGOLwXMLStream *,
119  const SimInspiralTable *
120 );
121 
123  LIGOLwXMLStream *xml,
124  const SimRingdownTable *sim_ringdown
125 );
126 
128  LIGOLwXMLStream *,
129  const TimeSlide *
130 );
131 
133  LIGOLwXMLStream *xml,
134  const SegmentTable *segment_table
135 );
136 
138  char* filename,
139  size_t size,
140  const char* dataSource,
141  const char* dataDescription,
142  const LIGOTimeGPS* startTime,
143  const LIGOTimeGPS* endTime,
144  const char* extension
145 );
146 
147 
148 #if 0
149 { /* so that editors will match succeeding brace */
150 #elif defined(__cplusplus)
151 }
152 #endif
153 
154 #endif /* _LIGOLIGOLWXML_H */
int XLALWriteLIGOLwXMLSnglBurstTable(LIGOLwXMLStream *, const SnglBurst *)
Write a sngl_burst table to an XML file.
Definition: sngl_burst.c:230
int XLALWriteLIGOLwXMLProcessTable(LIGOLwXMLStream *, const ProcessTable *)
Write a process table to an XML file.
Definition: processtable.c:471
int XLALWriteLIGOLwXMLSimBurstTable(LIGOLwXMLStream *, const SimBurst *)
Write a sim_burst table to an XML file.
Definition: sim_burst.c:305
int XLALWriteLIGOLwXMLProcessParamsTable(LIGOLwXMLStream *, const ProcessParamsTable *)
Write a process_params table to an XML file.
int XLALWriteLIGOLwXMLSegmentTable(LIGOLwXMLStream *xml, const SegmentTable *segment_table)
Write a segment table to an XML file.
Definition: segment.c:93
int XLALWriteLIGOLwXMLSimRingdownTable(LIGOLwXMLStream *xml, const SimRingdownTable *sim_ringdown)
Write a sim_ringdown table to an XML file.
Definition: sim_ringdown.c:262
int XLALCloseLIGOLwXMLFile(LIGOLwXMLStream *xml)
Close an XML stream.
Definition: LIGOLwXML.c:109
int XLALCreateLIGODataFileName(char *filename, size_t size, const char *dataSource, const char *dataDescription, const LIGOTimeGPS *startTime, const LIGOTimeGPS *endTime, const char *extension)
Creates a XML filename accordingly to document T050017.
Definition: LIGOLwXML.c:132
int XLALWriteLIGOLwXMLSimInspiralTable(LIGOLwXMLStream *, const SimInspiralTable *)
Write a sim_inspiral table to an XML file.
Definition: sim_inspiral.c:365
int XLALWriteLIGOLwXMLSnglInspiralTable(LIGOLwXMLStream *xml, const SnglInspiralTable *sngl_inspiral)
Write a linked list of SnglInspiralTable structures to a the sngl_inspiral table in a LIGO Light Weig...
LIGOLwXMLStream * XLALOpenLIGOLwXMLFile(const char *path)
Open an XML file for writing.
Definition: LIGOLwXML.c:67
int XLALWriteLIGOLwXMLSearchSummaryTable(LIGOLwXMLStream *, const SearchSummaryTable *)
Write a search_summary table to an XML file.
int XLALWriteLIGOLwXMLTimeSlideTable(LIGOLwXMLStream *, const TimeSlide *)
Write a time_slide table to an XML file.
Definition: time_slide.c:222
This structure contains the file stream and current table type for writing to LIGO lightweight XML fi...
Definition: LIGOLwXML.h:71
LALFILE * fp
Definition: LIGOLwXML.h:72
The SimBurst structure describes a burst injection.
This structure contains the required information for generating a ringdown injection.
This structure corresponds to one row of a time_slide table.