00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef NEWKEYWORD_H
00011 #define NEWKEYWORD_H 1
00012
00013
00014 #include "KeywordCreator.h"
00015
00016 #include "KeyData.h"
00017
00018 #include "FITSUtil.h"
00019
00020
00021 namespace CCfits {
00022
00023
00024
00025 template <typename T>
00026 class NewKeyword : public KeywordCreator
00027 {
00028
00029 public:
00030
00031 NewKeyword (HDU* p, T value);
00032 virtual ~NewKeyword();
00033
00034
00035 virtual Keyword* MakeKeyword (const String& keyName, const String& keyComment = String(""));
00036 const T keyData () const;
00037 void keyData (T value);
00038
00039
00040
00041 protected:
00042
00043
00044 private:
00045 NewKeyword();
00046
00047 NewKeyword(const NewKeyword< T > &right);
00048 NewKeyword< T > & operator=(const NewKeyword< T > &right);
00049
00050
00051
00052 private:
00053
00054 T m_keyData;
00055
00056
00057
00058 };
00059
00060
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
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
00097
00098 }
00099
00100
00101 #endif