… | |
… | |
163 | utf8_string as_string (); // like strdup |
163 | utf8_string as_string (); // like strdup |
164 | |
164 | |
165 | operator bool () { return !!av; } |
165 | operator bool () { return !!av; } |
166 | }; |
166 | }; |
167 | |
167 | |
|
|
168 | // used as dir argument to object_thawer constructor |
|
|
169 | #define RESOURCE_DIR const_utf8_string (0) |
|
|
170 | |
168 | INTERFACE_CLASS(object_thawer) |
171 | INTERFACE_CLASS(object_thawer) |
169 | struct object_thawer |
172 | struct object_thawer |
170 | { |
173 | { |
|
|
174 | static bool errors_are_fatal; // true during server startup only |
|
|
175 | |
171 | char *line; // current beginning of line |
176 | char *line; // current beginning of line |
172 | SV *text; // text part |
177 | SV *text; // text part |
173 | AV *av; // perl part |
178 | AV *av; // perl part |
174 | int linenum; |
179 | int linenum; |
175 | keyword kw; |
180 | keyword kw; |
… | |
… | |
179 | const char *name; |
184 | const char *name; |
180 | |
185 | |
181 | operator bool () const { return !!text; } |
186 | operator bool () const { return !!text; } |
182 | |
187 | |
183 | object_thawer (const_utf8_string path = 0); |
188 | object_thawer (const_utf8_string path = 0); |
|
|
189 | object_thawer (const_utf8_string dir, const_utf8_string file); |
184 | object_thawer (const_utf8_string data, AV *perlav); |
190 | object_thawer (const_utf8_string data, AV *perlav); |
185 | ~object_thawer (); |
191 | ~object_thawer (); |
186 | |
192 | |
187 | void get (attachable *obj, int oid); |
193 | void get (attachable *obj, int oid); |
188 | |
194 | |
… | |
… | |
234 | }; |
240 | }; |
235 | std::vector<delayed_ref> delrefs; |
241 | std::vector<delayed_ref> delrefs; |
236 | |
242 | |
237 | void delayed_deref (attachable *op, object_ptr &ptr, const_utf8_string ref); |
243 | void delayed_deref (attachable *op, object_ptr &ptr, const_utf8_string ref); |
238 | MTH void resolve_delayed_derefs (bool deref = true); |
244 | MTH void resolve_delayed_derefs (bool deref = true); |
|
|
245 | private: |
|
|
246 | void new_from_path (const_utf8_string path); |
239 | }; |
247 | }; |
240 | |
248 | |
241 | #endif |
249 | #endif |
242 | |
250 | |