#include <support/Catalog.h>
Inheritance diagram for BIndexedCatalog:
Public Member Functions | |
BIndexedCatalog (const SContext &context) | |
BIndexedCatalog () | |
const SContext & | Context () const |
virtual sptr< IDatum > | CreateDatum (SString *name, uint32_t flags, status_t *err) |
Create a new IDatum object inside of this catalog. | |
virtual sptr< INode > | CreateNode (SString *name, status_t *err) |
Create a new INode in this catalog. | |
virtual status_t | EntryAtLocked (size_t index, uint32_t flags, SValue *key, SValue *entry)=0 |
Old BIndexedCatalog API. | |
virtual status_t | EntryAtLocked (const sptr< IndexedIterator > &it, size_t index, uint32_t flags, SValue *key, SValue *entry) |
Implement for compatibility. | |
virtual SValue | Inspect (const sptr< IBinder > &caller, const SValue &which, uint32_t flags) |
Probe binder for interface information. | |
virtual lock_status_t | Lock () const |
Tie together the locks. | |
virtual void | Unlock () const |
Unlock the node's state. | |
Protected Member Functions | |
void | EntryAddedAt (uint32_t index) |
XXX do not use these! Use BIndexedIterable::UpdateIteratorIndicesLocked() instead!! | |
void | EntryRemovedAt (uint32_t index) |
virtual | ~BIndexedCatalog () |
|
|
|
|
|
|
|
Reimplemented from BBinder. |
|
Create a new IDatum object inside of this catalog.
Note that the returned object may very well support other interfaces (including INode), however its main purpose is to hold data for you. Implements ICatalog. Reimplemented in BCatalog. |
|
Create a new INode in this catalog.
This, along with CreateDatum(), is the mechanism you should normally use when entries in a particular catalog, because they allow the catalog to ensure that objects with the correct implementation are created. For example, if the catalog is on a filesystem, it will need to modify the filesystem data to hold the new structure and create and return a proxy object for the new entry it just created. Even in a generic catalog the use of this function is important, since it ensures objects are created in the same process as the parent directory. Consider, for example, an application that wishes to create a node with some data that will stay around after the application itself exits. Contrast this with AddEntry(), which if called with an IBinder object will place a reference to that object in the catalog. Implements ICatalog. Reimplemented in BCatalog. |
|
XXX do not use these! Use BIndexedIterable::UpdateIteratorIndicesLocked() instead!!
|
|
Old BIndexedCatalog API.
Implemented in BCatalog. |
|
Implement for compatibility.
Implements BIndexedIterable. |
|
|
|
Probe binder for interface information. Return interfaces implemented by this binder object that are requested by which. This is a composition of all interfaces, expressed as { descriptor -> binder } mappings, which are selected through which. Much more information on Inspect() can be found at Binder Inspect() Details. Reimplemented from BnCatalog. |
|
Tie together the locks.
Reimplemented from BGenericIterable. Reimplemented in BCatalog. |
|
Unlock the node's state.
Reimplemented from BGenericIterable. Reimplemented in BCatalog. |