int add_station ( Arr * networks, char * net, char * sta, Arr * sinfo ) { Arr * stations; Arr * sold; char * latency; if ( networks == NULL ) networks = newarr( strcmp ); if ( sold = get_station( networks, net, sta ) ) { sinfo_update( sold, sinfo ); clrarr( sinfo, pffree ); } else { if ( get_stations( networks, net ) == NULL ) add_network( networks, net ); if ( !(stations = get_stations( networks, net ) ) ) return 0; setarr( stations, sta, create_pf( sinfo, PFARR ) ); } return 1; }
TC_Error_Code TCDS_Binary_Harmonic::LoadHarmonicData(IDX_entry *pIDX) { // Find the indicated Master station if(!strlen(pIDX->IDX_reference_name)) { strncpy(pIDX->IDX_reference_name, get_station (pIDX->IDX_ref_dbIndex), MAXNAMELEN - 1 ); pIDX->IDX_reference_name[MAXNAMELEN - 1] = '\0'; // TIDE_RECORD *ptiderec = (TIDE_RECORD *)calloc(sizeof(TIDE_RECORD), 1); // read_tide_record (pIDX->IDX_ref_dbIndex, ptiderec); // free( ptiderec ); IDX_entry *pIDX_Ref = &m_IDX_array.Item(pIDX->IDX_ref_dbIndex); Station_Data *pRefSta = pIDX_Ref->pref_sta_data; pIDX->pref_sta_data = pRefSta; pIDX->station_tz_offset = -pRefSta->meridian + (pRefSta->zone_offset * 3600); } return TC_NO_ERROR; }