aboutsummaryrefslogtreecommitdiff
path: root/src/portal.hh
blob: faa787b729df0471bf977f80ba6a3c2e45938a20 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#ifndef FORMALINE_PORTAL_HH
#define FORMALINE_PORTAL_HH

#include <sstream>
#include <string>

#include "storage.hh"



namespace Formaline
{
  
  class portal : public storage
  {
    std::ostringstream msgbuf;
    std::string const path;
    portal * const parent;
    
  public:
    
    portal (char const * id,
            enum state st,
            char const * p = "",
            portal * const par = 0);
    
    virtual
    ~ portal ();
    
    virtual portal *
    open_group (char const * name);
    
    virtual void
    store (char const * key,
           bool value);
    
    virtual void
    store (char const * key,
           CCTK_INT value);
    
    virtual void
    store (char const * key,
           CCTK_REAL value);
    
    virtual void
    store (char const * key,
           char const * value);
    
  private:
    
    std::string
    clean (std::string const & txt)
      const;
  };
  
  
  
} // namespace Formaline



#endif // ifndef FORMALINE_PORTAL_HH