bes  Updated for version 3.20.6
CmrContainer.h
1 // CmrContainer.h
2 
3 // -*- mode: c++; c-basic-offset:4 -*-
4 
5 // This file is part of cnr_module, A C++ module that can be loaded in to
6 // the OPeNDAP Back-End Server (BES) and is able to handle remote requests.
7 
8 // Copyright (c) 2018 OPeNDAP, Inc.
9 // Author: Nathan Potter <ndp@opendap.org>
10 //
11 // This library is free software; you can redistribute it and/or
12 // modify it under the terms of the GNU Lesser General Public
13 // License as published by the Free Software Foundation; either
14 // version 2.1 of the License, or (at your option) any later version.
15 //
16 // This library is distributed in the hope that it will be useful,
17 // but WITHOUT ANY WARRANTY; without even the implied warranty of
18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 // Lesser General Public License for more details.
20 //
21 // You should have received a copy of the GNU Lesser General Public
22 // License along with this library; if not, write to the Free Software
23 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
24 //
25 // You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
26 
27 // Authors:
28 // ndp Nathan Potter <ndp@opendap.org>
29 
30 #ifndef CmrContainer_h_
31 #define CmrContainer_h_ 1
32 
33 #include <string>
34 #include <ostream>
35 
36 #include "BESContainer.h"
37 
38 namespace cmr {
39 
40 class RemoteHttpResource;
41 
51 class CmrContainer: public BESContainer {
52 private:
53  cmr::RemoteHttpResource *d_remoteResource;
54 
55  CmrContainer() :
56  BESContainer(), d_remoteResource(0)
57  {
58  }
59 
60 protected:
61  void _duplicate(CmrContainer &copy_to);
62 
63 public:
64  CmrContainer(const std::string &sym_name, const std::string &real_name, const std::string &type);
65 
66  CmrContainer(const CmrContainer &copy_from);
67 
68  virtual ~CmrContainer();
69 
70  virtual BESContainer * ptr_duplicate();
71 
72  virtual std::string access();
73 
74  virtual bool release();
75 
76  virtual void dump(std::ostream &strm) const;
77 };
78 
79 } // namespace cmr
80 
81 #endif // CmrContainer_h_
cmr::RemoteHttpResource
Definition: cmr_module/RemoteHttpResource.h:49
cmr::CmrContainer::dump
virtual void dump(std::ostream &strm) const
dumps information about this object
Definition: CmrContainer.cc:220
cmr::CmrContainer::access
virtual std::string access()
access the remote target response by making the remote request
Definition: CmrContainer.cc:151
cmr::CmrContainer
Container representing a remote request.
Definition: CmrContainer.h:51
cmr::CmrContainer::ptr_duplicate
virtual BESContainer * ptr_duplicate()
pure abstract method to duplicate this instances of BESContainer
Definition: CmrContainer.cc:134
BESContainer
A container is something that holds data. E.G., a netcdf file or a database entry.
Definition: BESContainer.h:65
cmr::CmrContainer::release
virtual bool release()
release the resources
Definition: CmrContainer.cc:202