# Io Reference

Databases / Obsidian / PMap

|  | PMap stores persistent data in a Map-like fashion and lazily loads available slots from the PDB backing store. Values stored or loaded are cached into local object slots.

at(slotName)

Tries to obtain a value for slot slotName from a local slot of that name, or tries to load it from the PDB if the local slot does not exist. When all else fails, returns nil.

If slotName begins with an underscore ("_"), returns the id of the slot from PDB instead of the value.

atPut(slotName, value)

Records value in the slot named slotName.
createIfAbsent

Creates a slot with a new PMap clone if not already present.
init

Initialize a new PMap and automatically add it as a persistent object to PDB.
objectsForKeys

Returns a list of values for each key in the list given. Keys beginning with an underscore ("_") are returned verbatim.
persist

Commits the PMap's slots to PDB.
persistSlots

Cleans up dirty slots by committing them to PDB.
removeAt

Marks a value for removal.
removeSlot

Marks a value for removal.
shouldPersistByDefault

PDB boolean flag indicating whether this object should be considered for persistence when persistence has not been specifically requested by calling ppid() or PDB addObjectToPersist. Always true by default for PMap.
slotCount

Returns the number of slots committed to PDB.