nPersistServer Class Reference
[Nebula Kernel]
#include <npersistserver.h>
Inheritance diagram for nPersistServer:

Detailed Description
Interface to the file system for serializing objects.See also nPersistServer Script Interface
Nebula Persistent Object File Format
The actual format of serialized objects is not specified. Instead script server objects are used to translate nCmd objects emitted by objects into actual script statements that will be saved to files. However, since the file server needs to know which script server to use for reading serialized object files, there has to be some meta information in the file itself which names the class of the script server which understands it.
Within the first 128 Bytes of a serialized object file the following string must be embedded:
$parser:classname$
Where 'classname' is the script server's class which has to be used to read that file.
Folded and unfolded objects
- Note:
- UNFOLDED OBJECTS ARE NO LONGER SUPPORTED FOR WRITING, AND READING IS ONLY SUPPORTED FOR "FLAT" FILE HIERARCHIES (i.e. a "nKernelServer::Load("bla.n") is allowed if bla.n is a directory, and contains a _main file).
Code
The following code demonstrates how to specify nluaserver for persist server:
nPersistServer* persisitServer; persisitServer = nKernelServer::Instance()->GetPersistServer(); persisitServer->SetSaverClass("nluaserver");
(C) 2002 A.Weissflog
Definition at line 71 of file npersistserver.h.
Public Types | |
| enum | nSaveMode { SAVEMODE_FOLD, SAVEMODE_CLONE } |
| Save modes. More... | |
Public Member Functions | |
| nPersistServer () | |
| constructor | |
| virtual | ~nPersistServer () |
| destructor | |
| void | SetSaveMode (nSaveMode) |
| set the save mode | |
| nSaveMode | GetSaveMode () |
| get the save mode | |
| void | SetSaveLevel (int) |
| set the save level | |
| int | GetSaveLevel () |
| get the save level | |
| bool | SetSaverClass (const nString &saverClass) |
| set the script server class which should be used for saving | |
| nString | GetSaverClass () |
| get the script server class which is currently used for saving | |
| bool | BeginObject (nObject *obj, const char *name, bool isObjNamed) |
| begin a persistent object | |
| bool | BeginObjectWithCmd (nRoot *obj, nCmd *cmd, const char *name) |
| begin a persistent object with constructor command | |
| nCmd * | GetCmd (nObject *obj, nFourCC id) |
| create a nCmd object | |
| bool | PutCmd (nCmd *cmd) |
| put a cmd into persistency stream | |
| bool | PutCmd (int level, nCmd *cmd) |
| put a cmd into persistency stream if savelevel permits | |
| bool | EndObject (bool isObjNamed) |
| finish a persistent object | |
| nObject * | GetClone () |
| return cloned object | |
| nObject * | LoadObject (const char *fileName, const char *objName) |
| load a object from persistency stream | |
Member Enumeration Documentation
|
|
Save modes.
Definition at line 75 of file npersistserver.h. |
Constructor & Destructor Documentation
|
|
constructor
Definition at line 14 of file npersistserver_main.cc. |
|
|
destructor
Definition at line 28 of file npersistserver_main.cc. |
Member Function Documentation
|
|
set the save mode
|
|
|
get the save mode
Definition at line 301 of file npersistserver_main.cc. |
|
|
set the save level
Definition at line 37 of file npersistserver_main.cc. |
|
|
get the save level
Definition at line 46 of file npersistserver_main.cc. |
|
|
set the script server class which should be used for saving Set class of script server which should be used to save objects. Creates a local script server object if not exists.
Definition at line 60 of file npersistserver_main.cc. |
|
|
get the script server class which is currently used for saving Get name of class which is currently used to save objects. Definition at line 93 of file npersistserver_main.cc. |
|
||||||||||||||||
|
begin a persistent object
Definition at line 141 of file npersistserver_main.cc. |
|
||||||||||||||||
|
begin a persistent object with constructor command Start writing object, with constructor cmd instead of a generic "new [class] [name]". If cmd pointer is NULL, no constructor statement will be written, just the select statement.
Definition at line 166 of file npersistserver_main.cc. |
|
||||||||||||
|
create a nCmd object
Definition at line 220 of file npersistserver_main.cc. |
|
|
put a cmd into persistency stream This is the same as a PutCmd(0,cmd).
Definition at line 281 of file npersistserver_main.cc. |
|
||||||||||||
|
put a cmd into persistency stream if savelevel permits Ignore if level is less or equal the internal save level defined by 'SetSaveLevel'.
Definition at line 250 of file npersistserver_main.cc. |
|
|
finish a persistent object
Definition at line 194 of file npersistserver_main.cc. |
|
|
return cloned object Get the pointer to the cloned object.
Definition at line 260 of file npersistserver_beginend.cc. |
|
||||||||||||
|
load a object from persistency stream
Definition at line 160 of file npersistserver_load.cc. |
The documentation for this class was generated from the following files: