00001 00002 // -*- mode: c++; c-basic-offset:4 -*- 00003 00004 // This file is part of libdap, A C++ implementation of the OPeNDAP Data 00005 // Access Protocol. 00006 00007 // Copyright (c) 2003 OPeNDAP, Inc. 00008 // Author: James Gallagher <jgallagher@opendap.org> 00009 // Dan Holloway <dan@hollywood.gso.uri.edu> 00010 // Reza Nekovei <reza@intcomm.net> 00011 // 00012 // This library is free software; you can redistribute it and/or 00013 // modify it under the terms of the GNU Lesser General Public 00014 // License as published by the Free Software Foundation; either 00015 // version 2.1 of the License, or (at your option) any later version. 00016 // 00017 // This library is distributed in the hope that it will be useful, 00018 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00019 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00020 // Lesser General Public License for more details. 00021 // 00022 // You should have received a copy of the GNU Lesser General Public 00023 // License along with this library; if not, write to the Free Software 00024 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00025 // 00026 // You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112. 00027 00028 #ifndef ais_merge_h 00029 #define ais_merge_h 00030 00031 #include <string> 00032 00033 #ifndef _das_h 00034 #include "DAS.h" 00035 #endif 00036 00037 #ifndef _httpconnect_h 00038 #include "HTTPConnect.h" 00039 #endif 00040 00041 #ifndef ais_resources_h 00042 #include "AISResources.h" 00043 #endif 00044 00045 #ifndef ais_exceptions_h 00046 #include "AISExceptions.h" 00047 #endif 00048 00049 #ifndef response_h 00050 #include "Response.h" 00051 #endif 00052 00061 class AISMerge 00062 { 00063 private: 00064 AISResources d_ais_db; 00065 HTTPConnect d_http; // used to access remote resources 00066 00067 friend class AISMergeTest; 00068 public: 00073 AISMerge(const string &database) throw(AISDatabaseReadFailed) : 00074 d_ais_db(database), d_http(RCReader::instance()) 00075 { } 00076 00079 virtual ~AISMerge() 00080 {} 00081 00082 // Change this when HTTPConnect/HTTPCache are changed. 00083 virtual Response *get_ais_resource(const string &res); 00084 00085 virtual void merge(const string &primary, DAS &das); 00086 }; 00087 00088 #endif // ais_merge_h