aboutsummaryrefslogtreecommitdiffstats
path: root/meowpp/oo/ObjProperties.h
blob: 1d1ac643b861891dcf845504ef037dad6d808603 (plain) (blame)
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
#ifndef   oo_ObjProperties_H__
#define   oo_ObjProperties_H__

#include "ObjBase.h"

#include <cstdlib>

namespace meow {

template<size_t SID>

//! 目前擺爛中
class ObjProperties: public ObjBase {
private:
public:
  ObjProperties();
  
  ObjProperties(ObjProperties const& p);
  
  virtual ~ObjProperties();

  size_t propertySize() const;

  bool propertyEmpty() const;

  void propertyClear();

  ObjBase const* property(std::string name) const;
  
  ObjBase* property(std::string name);

  bool propertyAdd(std::string name, ObjBase* obj, bool autoRemove);
  
  bool propertyDel(std::string name);
  
  ObjProperties& properties() const;
  
  ObjProperties& properties(ObjProperties const& p);
  
  bool write(FILE* f, bool bin, unsigned int fg) const;
  
  bool read(FILE* f, bool bin, unsigned int fg);
  
  ObjBase* create() const;
  
  ObjBase* copyFrom(ObjBase const* b);
  
  char const* ctype() const;
  
  std::string type() const;
};

}

#endif // oo_ObjProperties_H__