00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef NEWKEYWORD_H
00013 #define NEWKEYWORD_H 1
00014
00015
00016 #include "KeywordCreator.h"
00017
00018 #include "KeyData.h"
00019
00020 #include "FITSUtil.h"
00021
00022
00023 namespace CCfits {
00024
00025
00026
00027 template <typename T>
00028 class NewKeyword : public KeywordCreator
00029 {
00030
00031 public:
00032
00033 NewKeyword (HDU* p, T value);
00034 virtual ~NewKeyword();
00035
00036
00037 virtual Keyword* MakeKeyword (const String& keyName, const String& keyComment = String(""));
00038 const T keyData () const;
00039 void keyData (T value);
00040
00041
00042
00043 protected:
00044
00045
00046 private:
00047 NewKeyword();
00048
00049 NewKeyword(const NewKeyword< T > &right);
00050 NewKeyword< T > & operator=(const NewKeyword< T > &right);
00051
00052
00053
00054 private:
00055
00056 T m_keyData;
00057
00058
00059
00060 };
00061
00062
00063
00064 template <typename T>
00065 inline const T NewKeyword<T>::keyData () const
00066 {
00067 return m_keyData;
00068 }
00069
00070 template <typename T>
00071 inline void NewKeyword<T>::keyData (T value)
00072 {
00073 m_keyData = value;
00074 }
00075
00076
00077
00078 template <typename T>
00079 NewKeyword<T>::NewKeyword (HDU* p, T value)
00080 : KeywordCreator(p), m_keyData(value)
00081 {
00082 }
00083
00084
00085 template <typename T>
00086 NewKeyword<T>::~NewKeyword()
00087 {
00088 }
00089
00090
00091 template <typename T>
00092 Keyword* NewKeyword<T>::MakeKeyword (const String& keyName, const String& keyComment)
00093 {
00094 FITSUtil::MatchType<T> keyType;
00095 return new KeyData<T>(keyName,keyType(),m_keyData,forHDU(),keyComment);
00096 }
00097
00098
00099
00100 }
00101
00102
00103 #endif