def _initialize(p)
      @store = p.store
      @_id = p.id
      @store._register_in_memory(self, @_id)
      ObjectSpace.define_finalizer(
        self, ObjectBase._finalize(@store, @_id, object_id))
      @_stash_map = nil
      # Allocate a proxy object for this object. User code should only operate
      # on this proxy, never on self.
      @myself = POXReference.new(@store, @_id)
    end
def _initialize(p)
      @store = p.store
      @_id = p.id
      @store._register_in_memory(self, @_id)
      ObjectSpace.define_finalizer(
        self, ObjectBase._finalize(@store, @_id, object_id))
      @_stash_map = nil
      # Allocate a proxy object for this object. User code should only operate
      # on this proxy, never on self.
      @myself = POXReference.new(@store, @_id)
    end
New PEROBS objects must always be created by calling # Store.new().
 PEROBS users should never call this method or equivalents of derived
 methods directly.
 @param p [PEROBS::Handle] PEROBS handle
 This is the real code for initialize. It is called from initialize() but
 also when we restore objects from the database. In the later case, we
 don't call the regular constructors. But this code must be exercised on
 object creation with new() and on restore from DB.
 param p [PEROBS::Handle] PEROBS handle