#include <storage/IReferable.h>
Inheritance diagram for IReferable:
Some objects in the Binder Data Model are placed at well-known locations in the SContext namespace. These objects will implement the IReferable interface, allowing you to retrieve the official path to that object.
The main purpose of IReferable is to enable synchronization. As such, all significant objects under /content will implement the interface (especially those representing first-level synchronization entities, such as a person entry). It is not expected to be implemented by many other objects outside of that part of the namespace, though they are free to do so as desired.
For synchronization purposes, the reference path to a particular piece of data will generally include a GUID so that it is unique across all devices. For example, the reference for a particular person entry may be "/content/pim/people/{GUID}". The GUID is generated the first time that particular person is created, and the same GUID remains associated with it as it moves between devices.
Public Member Functions | |
status_t | LinkReferable (const sptr< IBinder > &to, const SValue &mappings, uint32_t flags=0) |
virtual SString | Reference () const =0 |
Official path to this object. | |
status_t | UnlinkReferable (const sptr< IBinder > &to, const SValue &mappings, uint32_t flags=0) |
Protected Member Functions | |
IReferable () | |
virtual | ~IReferable () |
|
|
|
|
|
|
|
Official path to this object. This property holds the canonical path at which you can find the object being queried. The returned path is always of the form "/some/path/to/me"; that is, SContext::Lookup() can be used to resolve the path back to the object.
Implemented in BSchemaDatabaseNode, BSchemaTableNode, and BSchemaTableNode::RowNode. |
|
|