CCfits  2.4
ColumnCreator.h
00001 //      Astrophysics Science Division,
00002 //      NASA/ Goddard Space Flight Center
00003 //      HEASARC
00004 //      http://heasarc.gsfc.nasa.gov
00005 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00006 //
00007 //      Original author: Ben Dorman
00008 
00009 #ifndef COLUMNCREATOR_H
00010 #define COLUMNCREATOR_H 1
00011 #include <iostream>
00012 
00013 // ColumnVectorData
00014 #include "ColumnVectorData.h"
00015 // ColumnData
00016 #include "ColumnData.h"
00017 
00018 namespace CCfits {
00019   class Table;
00020   class Column;
00021 
00022 } // namespace CCfits
00023 #include <string>
00024 #include <vector>
00025 
00026 
00027 namespace CCfits {
00028 
00029 
00030 
00031   class ColumnCreator 
00032   {
00033 
00034     public:
00035         ColumnCreator (Table* p);
00036         virtual ~ColumnCreator();
00037 
00038         void reset ();
00039         //      getColumn is a calling function for MakeColumn, i.e.
00040         //      it specifies a column in an existing file to be  "got"
00041         Column * getColumn (int number, const String& name, const String& format, const String& unit = "");
00042         //      createColumn is for specifying input data for creating
00043         //      new columns in tables.
00044         Column * createColumn (int number, ValueType type, const String &name, const String &format, const String &unit, long repeat = 1, long width = 1, double scaleFactor = 1., double offset = 0, const String &comment = "");
00045 
00046       // Additional Public Declarations
00047 
00048     protected:
00049         //      MakeColumn is a virtual function that makes a Column
00050         //      object with appropriate data member from an existing
00051         //      column in a file.
00052         virtual Column * MakeColumn (const int index, const String &name, const String &format, const String &unit, const long repeat, const long width, const String &comment = "", const int decimals = 0);
00053 
00054       // Additional Protected Declarations
00055 
00056     private:
00057         void getScaling (int index, int& type, long& repeat, long& width, double& tscale, double& tzero);
00058         const Table* parent () const;
00059         void parent (Table* value);
00060 
00061       // Additional Private Declarations
00062 
00063     private: //## implementation
00064       // Data Members for Class Attributes
00065         Column *m_column;
00066         Table* m_parent;
00067 
00068       // Additional Implementation Declarations
00069 
00070   };
00071 
00072   // Class CCfits::ColumnCreator 
00073 
00074   inline void ColumnCreator::reset ()
00075   {
00076     m_column = 0;
00077   }
00078 
00079   inline const Table* ColumnCreator::parent () const
00080   {
00081     return m_parent;
00082   }
00083 
00084   inline void ColumnCreator::parent (Table* value)
00085   {
00086     m_parent = value;
00087   }
00088 
00089 } // namespace CCfits
00090 
00091 
00092 #endif