bes  Updated for version 3.20.6
BESCatalogDirectory.h
1 // BESCatalogDirectory.h
2 
3 // This file is part of bes, A C++ back-end server implementation framework
4 // for the OPeNDAP Data Access Protocol.
5 
6 // Copyright (c) 2004-2009 University Corporation for Atmospheric Research
7 // Author: Patrick West <pwest@ucar.edu> and Jose Garcia <jgarcia@ucar.edu>
8 //
9 // This library is free software; you can redistribute it and/or
10 // modify it under the terms of the GNU Lesser General Public
11 // License as published by the Free Software Foundation; either
12 // version 2.1 of the License, or (at your option) any later version.
13 //
14 // This library is distributed in the hope that it will be useful,
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 // Lesser General Public License for more details.
18 //
19 // You should have received a copy of the GNU Lesser General Public
20 // License along with this library; if not, write to the Free Software
21 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 //
23 // You can contact University Corporation for Atmospheric Research at
24 // 3080 Center Green Drive, Boulder, CO 80301
25 
26 // (c) COPYRIGHT University Corporation for Atmospheric Research 2004-2005
27 // Please read the full copyright statement in the file COPYRIGHT_UCAR.
28 //
29 // Authors:
30 // pwest Patrick West <pwest@ucar.edu>
31 // jgarcia Jose Garcia <jgarcia@ucar.edu>
32 
33 #ifndef I_BESCatalogDirectory_h
34 #define I_BESCatalogDirectory_h 1
35 
36 #include <list>
37 #include <string>
38 #include <ostream>
39 
40 #include "BESCatalog.h"
41 #include "CatalogItem.h"
42 
43 class BESCatalogEntry;
44 
45 namespace bes {
46  class CatalogNode;
47 }
48 
53 private:
54  bes::CatalogItem *make_item(std::string item, std::string fullpath) const;
55  bes::CatalogItem *make_item(std::string item) const;
56 
57 
58 public:
59  BESCatalogDirectory(const std::string &name);
60  virtual ~BESCatalogDirectory();
61 
62  virtual BESCatalogEntry * show_catalog(const std::string &container, BESCatalogEntry *entry);
63 
64  virtual std::string get_root() const;
65 
66  virtual bes::CatalogNode *get_node(const std::string &path) const;
67 
68  virtual void get_site_map(const std::string &prefix, const std::string &node_suffix, const std::string &leaf_suffix, std::ostream &out,
69  const std::string &path = "/") const;
70 
71  virtual void dump(std::ostream &strm) const;
72 };
73 
74 #endif // I_BESCatalogDirectory_h
75 
BESCatalogDirectory::show_catalog
virtual BESCatalogEntry * show_catalog(const std::string &container, BESCatalogEntry *entry)
Get the CatalogEntry for the given node.
Definition: BESCatalogDirectory.cc:108
BESCatalogDirectory
Catalogs from a directory structure.
Definition: BESCatalogDirectory.h:52
BESCatalogDirectory::get_node
virtual bes::CatalogNode * get_node(const std::string &path) const
Get a CatalogNode for the given path in the current catalog.
Definition: BESCatalogDirectory.cc:388
BESCatalogDirectory::get_site_map
virtual void get_site_map(const std::string &prefix, const std::string &node_suffix, const std::string &leaf_suffix, std::ostream &out, const std::string &path="/") const
Write the site map for this catalog to the stream.
Definition: BESCatalogDirectory.cc:624
BESCatalogDirectory::BESCatalogDirectory
BESCatalogDirectory(const std::string &name)
A catalog for POSIX file systems.
Definition: BESCatalogDirectory.cc:85
bes::CatalogNode
Definition: CatalogNode.h:45
bes::CatalogItem
Definition: CatalogItem.h:72
BESCatalogEntry
Definition: BESCatalogEntry.h:46
BESCatalog
Catalogs provide a hierarchical organization for data.
Definition: BESCatalog.h:51
BESCatalogDirectory::get_root
virtual std::string get_root() const
Get the root directory for the catalog.
Definition: BESCatalogDirectory.cc:262
BESCatalogDirectory::dump
virtual void dump(std::ostream &strm) const
dumps information about this object
Definition: BESCatalogDirectory.cc:664