Changeset 104 for cpp/gdk/multiparamload.h
- Timestamp:
- 07/23/13 18:15:30 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
cpp/gdk/multiparamload.h
r74 r104 9 9 #include "param.h" 10 10 #include "virtfile.h" 11 #include "extvalue.h" 11 12 12 13 /** This is the general "framsticks-format" file parser for loading multiple objects. … … 37 38 SListTempl<VirtFILE*> filestack; 38 39 char ownfile; 39 SList params;40 PtrListTempl<ExtObject*> objects; 40 41 int status; 41 42 SString lasterror, lastcomment, lastunknown; 42 ParamInterface *lastclass;43 ExtObject lastobject; 43 44 int breakcond; 44 45 Param emptyparam; 45 46 46 47 void init(); 47 void load();48 48 49 49 int maybeBreak(int cond) … … 58 58 MultiParamLoader(const char* filename) {init(); load(filename);} 59 59 60 ~MultiParamLoader() {abort(); }60 ~MultiParamLoader() {abort();clearObjects();} 61 61 62 62 void reset(); 63 63 64 void load(); //< use previously opened file 64 65 void load(VirtFILE *f); 65 66 void load(const char* filename); … … 69 70 Note that registered classes will only work when the record name matches the class name, otherwise breakOn(BeforeUnknown) must be used and then getClassName() to check for the expected record. 70 71 */ 71 void addClass(ParamInterface *pi) {params+=pi;} 72 void removeClass(ParamInterface *pi) {params-=pi;} 73 void clearClasses() {params.clear();} 72 void addObject(ParamInterface *pi) {objects+=new ExtObject(pi);} 73 void removeObject(ParamInterface *pi) {removeObject(ExtObject(pi));} 74 void addObject(const ExtObject &o) {objects+=new ExtObject(o);} 75 void removeObject(const ExtObject &o); 76 int findObject(const ExtObject &o); 77 void clearObjects(); 74 78 75 79 /** To be used in the main loop: while(event=loader.go()) { ... } … … 107 111 108 112 /** Can be used BeforeObject and AfterObject */ 109 ParamInterface *getClass() {return lastclass;}113 ExtObject &getObject() {return lastobject;} 110 114 /** Can be used BeforeUnknown, BeforeObject, AfterObject */ 111 const SString& get ClassName() {return lastunknown;}112 const void set ClassName(SString n) {lastunknown=n;}115 const SString& getObjectName() {return lastunknown;} 116 const void setObjectName(SString n) {lastunknown=n;} 113 117 /** Unknown object will be loaded if you set its class BeforeUnknown */ 114 void setClass(ParamInterface *pi) {lastclass=pi;} 118 void setObject(ParamInterface *pi) {lastobject=ExtObject(pi);} 119 void setObject(const ExtObject& o) {lastobject=o;} 115 120 /** Can be used OnComment */ 116 121 const SString& getComment() {return lastcomment;} … … 118 123 const SString& getError() {return lasterror;} 119 124 /** Can be used BeforeObject and BeforeUnknown */ 120 int loadObjectNow(ParamInterface *pi); 125 int loadObjectNow(ParamInterface *pi) {return loadObjectNow(ExtObject(pi));} 126 int loadObjectNow(const ExtObject &o); 121 127 /** Can be used BeforeObject */ 122 int loadObjectNow() {return loadObjectNow(get Class());}128 int loadObjectNow() {return loadObjectNow(getObject());} 123 129 /** Can be used BeforeObject and BeforeUnknown. 124 130 Object data will not be loaded. */
Note: See TracChangeset
for help on using the changeset viewer.