// *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* // ** Copyright UCAR (c) 1990 - 2016 // ** University Corporation for Atmospheric Research (UCAR) // ** National Center for Atmospheric Research (NCAR) // ** Boulder, Colorado, USA // ** BSD licence applies - redistribution and use in source and binary // ** forms, with or without modification, are permitted provided that // ** the following conditions are met: // ** 1) If the software is modified to produce derivative works, // ** such modified software should be clearly marked, so as not // ** to confuse it with the version available from UCAR. // ** 2) Redistributions of source code must retain the above copyright // ** notice, this list of conditions and the following disclaimer. // ** 3) Redistributions in binary form must reproduce the above copyright // ** notice, this list of conditions and the following disclaimer in the // ** documentation and/or other materials provided with the distribution. // ** 4) Neither the name of UCAR nor the names of its contributors, // ** if any, may be used to endorse or promote products derived from // ** this software without specific prior written permission. // ** DISCLAIMER: THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS // ** OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED // ** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. // *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* /////////////////////////////////////////////////////////////// // DsMdvxMsg.cc // // DsMdvxMsg object // // Mike Dixon, RAP, NCAR, P.O.Box 3000, Boulder, CO, 80307-3000, USA // // October 1999 // /////////////////////////////////////////////////////////////// // // The DsMdvxMsg object provides the message protocol for // the DsMdvx service. // /////////////////////////////////////////////////////////////// #include <dataport/bigend.h> #include <Mdv/DsMdvxMsg.hh> #include <didss/DsMsgPart.hh> #include <toolsa/mem.h> using namespace std; // constructor DsMdvxMsg::DsMdvxMsg(memModel_t mem_model /* = CopyMem */) : DsServerMsg(mem_model) { } // destructor DsMdvxMsg::~DsMdvxMsg() { } ////////////////////////////////////////// // print out main header and parts headers // void DsMdvxMsg::print(ostream &out, const char *spacer) const { // print header printHeader(out, spacer); // create map of ids and labels PartHeaderLabelMap labels; labels.insert(PartHeaderLabel(MDVP_READ_URL_PART, "MDVP_READ_URL_PART")); labels.insert(PartHeaderLabel(MDVP_ERR_STRING_PART, "MDVP_ERR_STRING_PART")); labels.insert(PartHeaderLabel(MDVP_CLIENT_USER_PART, "MDVP_CLIENT_USER_PART")); labels.insert(PartHeaderLabel(MDVP_CLIENT_HOST_PART, "MDVP_CLIENT_HOST_PART")); labels.insert(PartHeaderLabel(MDVP_CLIENT_IPADDR_PART, "MDVP_CLIENT_IPADDR_PART")); labels.insert(PartHeaderLabel(MDVP_FILE_SEARCH_PART, "MDVP_FILE_SEARCH_PART")); labels.insert(PartHeaderLabel(MDVP_APP_NAME_PART, "MDVP_APP_NAME_PART")); labels.insert(PartHeaderLabel(MDVP_READ_FORMAT_PART, "MDVP_READ_FORMAT_PART")); labels.insert(PartHeaderLabel(MDVP_WRITE_FORMAT_PART, "MDVP_WRITE_FORMAT_PART")); labels.insert(PartHeaderLabel(MDVP_CURRENT_FORMAT_PART, "MDVP_CURRENT_FORMAT_PART")); labels.insert(PartHeaderLabel(MDVP_READ_FIELD_NUM_PART, "MDVP_READ_FIELD_NUM_PART")); labels.insert(PartHeaderLabel(MDVP_READ_FIELD_NAME_PART, "MDVP_READ_FIELD_NAME_PART")); labels.insert(PartHeaderLabel(MDVP_READ_CHUNK_NUM_PART, "MDVP_READ_CHUNK_NUM_PART")); labels.insert(PartHeaderLabel(MDVP_READ_HORIZ_LIMITS_PART, "MDVP_READ_HORIZ_LIMITS_PART")); labels.insert(PartHeaderLabel(MDVP_READ_VLEVEL_LIMITS_PART, "MDVP_READ_VLEVEL_LIMITS_PART")); labels.insert(PartHeaderLabel(MDVP_READ_PLANE_NUM_LIMITS_PART, "MDVP_READ_PLANE_NUM_LIMITS_PART")); labels.insert(PartHeaderLabel(MDVP_READ_COMPOSITE_PART, "MDVP_READ_COMPOSITE_PART")); labels.insert(PartHeaderLabel(MDVP_READ_FILL_MISSING_PART, "MDVP_READ_FILL_MISSING_PART")); labels.insert(PartHeaderLabel(MDVP_READ_ENCODING_PART, "MDVP_READ_ENCODING_PART")); labels.insert(PartHeaderLabel(MDVP_READ_REMAP_PART, "MDVP_READ_REMAP_PART")); labels.insert(PartHeaderLabel(MDVP_READ_AUTO_REMAP_TO_LATLON_PART, "MDVP_READ_AUTO_REMAP_TO_LATLON_PART")); labels.insert(PartHeaderLabel(MDVP_READ_FIELD_FILE_HEADERS_PART, "MDVP_READ_FIELD_FILE_HEADERS_PART")); labels.insert(PartHeaderLabel(MDVP_READ_VSECT_WAYPTS_PART, "MDVP_READ_VSECT_WAYPTS_PART")); labels.insert(PartHeaderLabel(MDVP_READ_VSECT_NSAMPLES_PART, "MDVP_READ_VSECT_NSAMPLES_PART")); labels.insert(PartHeaderLabel(MDVP_READ_VSECT_MAXSAMPLES_PART, "MDVP_READ_VSECT_MAXSAMPLES_PART")); labels.insert(PartHeaderLabel(MDVP_READ_VSECT_DISABLE_INTERP_PART, "MDVP_READ_VSECT_DISABLE_INTERP_PART")); labels.insert(PartHeaderLabel(MDVP_READ_VSECT_AS_RHI_PART, "MDVP_READ_VSECT_AS_RHI_PART")); labels.insert(PartHeaderLabel(MDVP_READ_AS_SINGLE_BUFFER_PART, "MDVP_READ_AS_SINGLE_BUFFER_PART")); labels.insert(PartHeaderLabel(MDVP_WRITE_OPTIONS_PART, "MDVP_WRITE_OPTIONS_PART")); labels.insert(PartHeaderLabel(MDVP_TIME_LIST_OPTIONS_PART, "MDVP_TIME_LIST_OPTIONS_PART")); labels.insert(PartHeaderLabel(MDVP_MASTER_HEADER_PART, "MDVP_MASTER_HEADER_PART")); labels.insert(PartHeaderLabel(MDVP_MASTER_HEADER_FILE_PART, "MDVP_MASTER_HEADER_FILE_PART")); labels.insert(PartHeaderLabel(MDVP_FIELD_HEADER_PART, "MDVP_FIELD_HEADER_PART")); labels.insert(PartHeaderLabel(MDVP_FIELD_HEADER_FILE_PART, "MDVP_FIELD_HEADER_FILE_PART")); labels.insert(PartHeaderLabel(MDVP_FIELD_HEADER_FILE_FIELD_PART, "MDVP_FIELD_HEADER_FILE_FIELD_PART")); labels.insert(PartHeaderLabel(MDVP_VLEVEL_HEADER_PART, "MDVP_VLEVEL_HEADER_PART")); labels.insert(PartHeaderLabel(MDVP_VLEVEL_HEADER_FILE_PART, "MDVP_VLEVEL_HEADER_FILE_PART")); labels.insert(PartHeaderLabel(MDVP_VLEVEL_HEADER_FILE_FIELD_PART, "MDVP_VLEVEL_HEADER_FILE_FIELD_PART")); labels.insert(PartHeaderLabel(MDVP_CHUNK_HEADER_PART, "MDVP_CHUNK_HEADER_PART")); labels.insert(PartHeaderLabel(MDVP_CHUNK_HEADER_FILE_PART, "MDVP_CHUNK_HEADER_FILE_PART")); labels.insert(PartHeaderLabel(MDVP_FIELD_DATA_PART, "MDVP_FIELD_DATA_PART")); labels.insert(PartHeaderLabel(MDVP_CHUNK_DATA_PART, "MDVP_CHUNK_DATA_PART")); labels.insert(PartHeaderLabel(MDVP_VSECT_SAMPLE_PTS_PART, "MDVP_VSECT_SAMPLE_PTS_PART")); labels.insert(PartHeaderLabel(MDVP_VSECT_SEGMENTS_PART, "MDVP_VSECT_SEGMENTS_PART")); labels.insert(PartHeaderLabel(MDVP_VALID_TIMES_PART, "MDVP_VALID_TIMES_PART")); labels.insert(PartHeaderLabel(MDVP_GEN_TIMES_PART, "MDVP_GEN_TIMES_PART")); labels.insert(PartHeaderLabel(MDVP_FORECAST_TIMES_PART, "MDVP_FORECAST_TIMES_PART")); labels.insert(PartHeaderLabel(MDVP_PATH_IN_USE_PART, "MDVP_PATH_IN_USE_PART")); labels.insert(PartHeaderLabel(MDVP_SINGLE_BUFFER_PART, "MDVP_SINGLE_BUFFER_PART")); labels.insert(PartHeaderLabel(MDVP_XML_HEADER_PART, "MDVP_XML_HEADER_PART")); labels.insert(PartHeaderLabel(MDVP_XML_BUFFER_PART, "MDVP_XML_BUFFER_PART")); labels.insert(PartHeaderLabel(MDVP_NO_FILES_FOUND_ON_READ_PART, "MDVP_NO_FILES_FOUND_ON_READ_PART")); labels.insert(PartHeaderLabel(MDVP_READ_DECIMATE_PART, "MDVP_READ_DECIMATE_PART")); labels.insert(PartHeaderLabel(MDVP_READ_VLEVEL_TYPE_PART, "MDVP_READ_VLEVEL_TYPE_PART")); labels.insert(PartHeaderLabel(MDVP_READ_TIME_LIST_ALSO_PART, "MDVP_READ_TIME_LIST_ALSO_PART")); labels.insert(PartHeaderLabel(MDVP_READ_LATEST_VALID_MOD_TIME_PART, "MDVP_READ_LATEST_VALID_MOD_TIME_PART")); labels.insert(PartHeaderLabel(MDVP_CONSTRAIN_LEAD_TIMES_PART, "MDVP_CONSTRAIN_LEAD_TIMES_PART")); labels.insert(PartHeaderLabel(MDVP_NCF_HEADER_PART, "MDVP_NCF_HEADER_PART")); labels.insert(PartHeaderLabel(MDVP_NCF_BUFFER_PART, "MDVP_NCF_BUFFER_PART")); labels.insert(PartHeaderLabel(MDVP_CONVERT_MDV_TO_NCF_PART, "MDVP_CONVERT_MDV_TO_NCF_PART")); labels.insert(PartHeaderLabel(MDVP_CLIMO_STATISTIC_TYPE_PART, "MDVP_CLIMO_STATISTIC_TYPE_PART")); labels.insert(PartHeaderLabel(MDVP_CLIMO_DATA_RANGE_PART, "MDVP_CLIMO_DATA_RANGE_PART")); labels.insert(PartHeaderLabel(MDVP_CLIMO_TIME_RANGE_PART, "MDVP_CLIMO_TIME_RANGE_PART")); // print parts using the labels printPartHeaders(out, spacer, labels); } ///////////////////// // print header only void DsMdvxMsg::printHeader(ostream &out, const char *spacer) const { DsServerMsg::printHeader(out, spacer); }