NASA Logo
Ocean Color Science Software

ocssw V2022
FileWriter.hpp
Go to the documentation of this file.
1 #ifndef FOCS_FILEWRITER
2 #define FOCS_FILEWRITER
3 
4 #include <array>
5 #include <cstdio>
6 #include <string>
7 #include <unordered_map>
8 
9 #include <boost/filesystem.hpp>
10 
11 #include "DataProvider.hpp"
12 #include "DataRecord.hpp"
13 
14 namespace focs {
15 
16 class FileWriter : public DataProvider {
17  public:
20 
21  virtual ~FileWriter() override {}
22 
23  virtual std::vector<Product>& provides() override; // returns empty
24  // virtual std::vector<Product>& needs() override;
25 
26 
27  virtual std::unique_ptr<FileWriter> initialize_writer(DataProviderConfiguration& configuration, const std::string& group) = 0;
28  virtual void set_global_attributes(const std::set<focs::Attribute> &) {};
29  virtual void set_product_attributes(const std::string&, const std::set<focs::Attribute> &) {};
30  enum validity {
32  };
34  (void)configuration; (void)group;
35  return invalid;
36  }
37 
38 };
39 
40 
41 } // namespace focs
42 
43 #endif // FOCS_FILEWRITER
44 
virtual void set_product_attributes(const std::string &, const std::set< focs::Attribute > &)
Definition: FileWriter.hpp:29
virtual validity can_process_output_group(focs::DataProviderConfiguration &configuration, const std::string &group)
Definition: FileWriter.hpp:33
const std::string & name() const
@ string
virtual std::vector< Product > & provides() override
FileWriter(const std::string &name, const std::string &description)
Definition: FileWriter.hpp:18
virtual std::unique_ptr< FileWriter > initialize_writer(DataProviderConfiguration &configuration, const std::string &group)=0
virtual ~FileWriter() override
Definition: FileWriter.hpp:21
virtual void set_global_attributes(const std::set< focs::Attribute > &)
Definition: FileWriter.hpp:28
FileWriter(const std::string &name)
Definition: FileWriter.hpp:19
const std::string & description() const