Skip to content.
Sections
Personal tools
You are here: Home » Frame Store » Store Objects

Store Objects

Document Actions

Root object ID could be retrieved from all stores. Internal store uses 0x27, package stores 0x00. Version number for OS 2.0 is 4, for previous OS versions 3. Everything I describe here is based on version 4 of store.

Frame maps and symbols indirect block locations are based on some form of hash function. In package store, minimal size of both indirect blocks is 256 bytes. Unused slots are filled with zeros.

Store

Store Entry

Store entry is similar to normal entry, except that instead of entry UniqueID and modification time 0xFFFFFFFF is stored.

Sample store entry:

    {
        signature: 0x1234,
        ephemerals: nil,
        name: "Untitled",
        nameIndex: 1, // Object ID of soup index
    }

Symbols and Framemaps

Symbols and Framemaps are also stored outside of entry. As it's assumed, that lots of entries will store data with similar structure, both symbols and framemaps are stored just once in two separate directories pointed at by store root object.

simple

Soup Entry

Soup entry is similar to store entry.

Sample Soup entry:

    {
        indexesModTime: 0x1234,
        lastUID: nil,
        infoModTime: 0x1234,
        class: 'DiskSoup,
        indexes: [ {
                type: 'int,
                path: _uniqueID,
                index: 8, // Object id of index
                structure: 'slot
        }],
        signature: 0x1234,
        flags: 3
    }

Created by philz
Last modified 2003-07-28 04:17 PM
 

Powered by Plone