_NAME_ getStructs _PROTOTYPE_ void *getStructs(uint32 secondsSince1996Start, uint32 secondsSince1996Stop, char *structName); _SHORT-DESCRIPTION_ Get a set of data structs between a start and a stop time _DESCRIPTION_ getStructs retrieves any data structures of type structName from the archives which was valid between the start time, secondsSince1996Start, and the stop time, secondsSince1996Stop (But see the note below for an important clarification of exactly what this means.) A pointer (void *) to an array of structs of type structName is returned. This array is always terminated by a zeroed struct of type structName. Overlap data is included in the return data as of level1 release 1.13. _ The start and stop times used in getStructs can be across an arbitrary time interval. This may cause problems if users abuse it. In other words, getStructs can be called on to allocate an arbitrary amount of memory for the struct array it will be creating. Users should be warned about this (though they will likely be accessing getStructs via a more user friendly wrapper like getGroupHiRates_s or the like.) _ Memory has been allocated in the call to getStructs for the array of structures returned, and this memory needs to be freed by the caller at some point. _ Note: A structure which is valid at the time secondsSince1996Start will always be returned by this call, but the structure valid at secondsSince1996Stop will not be returned unless it is the same structure which is valid at secondsSince1996Start. Any and all structures valid at times between secondsSince1996Start and secondsSince1996Stop will be returned (which seems too obvious to state.) The reason that the last structure (the one valid at secondsSince1996Stop) is not returned by this call is to prevent seemingly contiguous calls to getStructs from returning overlapping data. For this reason, any series of calls to getStructs for contiguous data must use the prior secondsSince1996Stop as the secondsSince1996Start for the new call. Otherwise there will be a 1 second gap in each call's time intervals. _INPUT_ * secondsSince1996Start is the start second on which to look for valid data. See note above for specifics. * secondsSince1996Stop is the stop second for the data retrieval. See note above for specifics. * structName is the full name of the structure for the data type we are requesting (e.g., "L1CrisLowPriorityRate"). _OUTPUT_ * A pointer (void *) to the array of structs of type structName. The calling routine must cast the pointer to type structName.