00001
#ifndef __Brains2_HEADERBASE_H__
00002
#define __Brains2_HEADERBASE_H__
00003
00004
#ifdef WIN32
00005
#pragma warning(disable:4786)
00006
#endif
00007
00008
#include <string>
00009
#include <list>
00010
#include <fstream>
00011
00012
namespace itk {
00017
class Brains2HeaderBase:
public std::
list< std::pair<std::string, std::string> >
00018 {
00019
public:
00021
typedef Brains2HeaderBase
Self;
00022
typedef std::list< std::pair<std::string, std::string> >
Superclass;
00023
typedef Self *
Pointer;
00024
typedef const Self *
ConstPointer;
00029 Brains2HeaderBase();
00034
virtual ~Brains2HeaderBase();
00040
virtual void ReadBrains2Header(std::string filename);
00046
virtual void WriteBrains2Header(std::string filename)
const;
00055
virtual std::ifstream & ReadBrains2Header(std::ifstream & inputstream);
00064
virtual std::ofstream & WriteBrains2Header(std::ofstream & outputstream)
const;
00065
00071
virtual void PrintSelf(std::ostream &os)
const;
00078
bool DoesKeyExist(
const std::string &KeyID)
const;
00085
float getFloat(
const std::string &KeyID)
const;
00092
int getInt(
const std::string &KeyID)
const;
00099 std::string getString(
const std::string &KeyID)
const;
00105
void ClearHeader(
void);
00106
protected:
00107
virtual std::string GetHeaderBeginTag(
void) const= 0;
00108 virtual std::string GetHeaderEndTag(
void) const = 0;
00109 std::
list<Brains2HeaderBase *> m_child;
00110 private:
00111 };
00112 }
00113 #endif