NewKeyword.h

00001 //      This is version 1.6 release dated Nov 2006
00002 //      Astrophysics Science Division,
00003 //      NASA/ Goddard Space Flight Center
00004 //      HEASARC
00005 //      http://heasarc.gsfc.nasa.gov
00006 //      e-mail: ccfits@legacy.gsfc.nasa.gov
00007 //
00008 //      Original author: Ben Dorman, L3-Communications EER Systems Inc.
00009 
00010 #ifndef NEWKEYWORD_H
00011 #define NEWKEYWORD_H 1
00012 
00013 // KeywordCreator
00014 #include "KeywordCreator.h"
00015 // KeyData
00016 #include "KeyData.h"
00017 // FITSUtil
00018 #include "FITSUtil.h"
00019 
00020 
00021 namespace CCfits {
00022 
00023 
00024 
00025   template <typename T>
00026   class NewKeyword : public KeywordCreator  //## Inherits: <unnamed>%39355AA90209
00027   {
00028 
00029     public:
00030         //      Parameterized Class NewKeyword
00031         NewKeyword (HDU* p, T value);
00032         virtual ~NewKeyword();
00033 
00034         //      Additional Protected Declarations
00035         virtual Keyword* MakeKeyword (const String& keyName, const String& keyComment = String(""));
00036         const T keyData () const;
00037         void keyData (T value);
00038 
00039       // Additional Public Declarations
00040 
00041     protected:
00042       // Additional Protected Declarations
00043 
00044     private:
00045         NewKeyword();
00046 
00047         NewKeyword(const NewKeyword< T > &right);
00048         NewKeyword< T > & operator=(const NewKeyword< T > &right);
00049 
00050       // Additional Private Declarations
00051 
00052     private: //## implementation
00053       // Data Members for Class Attributes
00054         T m_keyData;
00055 
00056       // Additional Implementation Declarations
00057 
00058   };
00059 
00060   // Parameterized Class CCfits::NewKeyword 
00061 
00062   template <typename T>
00063   inline const T NewKeyword<T>::keyData () const
00064   {
00065     return m_keyData;
00066   }
00067 
00068   template <typename T>
00069   inline void NewKeyword<T>::keyData (T value)
00070   {
00071     m_keyData = value;
00072   }
00073 
00074   // Parameterized Class CCfits::NewKeyword 
00075 
00076   template <typename T>
00077   NewKeyword<T>::NewKeyword (HDU* p, T value)
00078       : KeywordCreator(p), m_keyData(value)
00079   {
00080   }
00081 
00082 
00083   template <typename T>
00084   NewKeyword<T>::~NewKeyword()
00085   {
00086   }
00087 
00088 
00089   template <typename T>
00090   Keyword* NewKeyword<T>::MakeKeyword (const String& keyName, const String& keyComment)
00091   {
00092   FITSUtil::MatchType<T> keyType;
00093   return new KeyData<T>(keyName,keyType(),m_keyData,forHDU(),keyComment);
00094   }
00095 
00096   // Additional Declarations
00097 
00098 } // namespace CCfits
00099 
00100 
00101 #endif

Generated on Fri Nov 3 17:09:05 2006 for CCfits by  doxygen 1.4.7