#include <dmprovider/SchemaRowIDJoin.h>
Inheritance diagram for BSchemaRowIDJoin:

This class provides a simple client-side join of two schema tables. It results in a new table node with an entry for each of the entries in the join table, which are then mapped back to a corresponding row id in the primary through joinIDCol. In other words, it supports a 1:N relationship between the primary:join, using Data Manager row IDs to map between them.
There are a number of limitations with the current implementation:
| Bookkeeping | |
| Creation, destruction, locking, etc. | |
| BSchemaRowIDJoin (const SContext &context, const sptr< BSchemaTableNode > &primary, const sptr< BSchemaTableNode > &join, const SString &joinIDCol, const SString &primaryColumnName=SString()) | |
| Create a new node containing a join between two BSchemaTableNode objects. | |
| SContext | Context () | 
| Disambiguate. | |
| virtual SValue | Inspect (const sptr< IBinder > &caller, const SValue &which, uint32_t flags) | 
| Make INode and IIterable accessible. | |
| virtual lock_status_t | Lock () const | 
| Disambiguate. | |
| status_t | StatusCheck () const | 
| Return initialization status -- B_OK if all is well, else an error code. | |
| virtual void | Unlock () const | 
| Disambiguate. | |
| virtual | ~BSchemaRowIDJoin () | 
| Clean up all resources. | |
| Public Member Functions | |
| Data Model Implementation | |
| Provide default implementation based on new capabilities.  | |
| virtual status_t | LookupEntry (const SString &entry, uint32_t flags, SValue *node) | 
| Implement by parsing name into primary and join row names and then calling NodeForLocked(). | |
| sptr< RowNode > | NodeForLocked (const sptr< BSchemaTableNode::RowNode > &priNode, const sptr< BSchemaTableNode::RowNode > &joinNode) | 
| Return INode object for a particular table row ID. | |
| Object Generation | |
| virtual sptr< GenericIterator > | NewGenericIterator (const SValue &args) | 
| Create and return a new iterator object. | |
| virtual sptr< RowNode > | NewRowNodeLocked (const sptr< BSchemaTableNode::RowNode > &priNode, const sptr< BSchemaTableNode::RowNode > &joinNode) | 
| Called when a new row object needs to be created. | |
| Configuration | |
| Functions for customizing how the join is exposed.  | |
| SString | RowMimeTypeLocked () const | 
| Retrieve the MIME type of entries (row nodes). | |
| virtual void | SetMimeType (const SString &value) | 
| By default, clients are not allowed to modify the MIME type. | |
| status_t | StoreRowMimeTypeLocked (const SString &mimeType) | 
| Set the MIME type that all entries (row nodes) will report. | |
| Friends | |
| class | JoinIterator | 
| class | RowNode | 
| Classes | |
| class | JoinIterator | 
| Iterator over a BSchemaTableNode.  More... | |
| struct | node_key | 
| class | RowNode | 
| Node object generated for a row in a BSchemaRowIDJoin.  More... | |
| 
 | ||||||||||||||||||||||||
| Create a new node containing a join between two BSchemaTableNode objects. 
 
 | 
| 
 | 
| Clean up all resources. 
 | 
| 
 | 
| Disambiguate. 
 | 
| 
 | ||||||||||||||||
| Make INode and IIterable accessible. 
 Reimplemented from BnIterable. | 
| 
 | 
| Disambiguate. 
 Reimplemented from BGenericIterable. | 
| 
 | ||||||||||||||||
| Implement by parsing name into primary and join row names and then calling NodeForLocked(). 
 Implements BGenericNode. | 
| 
 | 
| Create and return a new iterator object. Derived classes need to implement this to return their own GenericIterator subclass. Implements BGenericIterable. | 
| 
 | ||||||||||||
| Called when a new row object needs to be created. The default implementation instantiates and returns a new IndexedDatum object. | 
| 
 | ||||||||||||
| Return INode object for a particular table row ID. 
 | 
| 
 | 
| Retrieve the MIME type of entries (row nodes). 
 | 
| 
 | 
| By default, clients are not allowed to modify the MIME type. To use the normal BMetaDataNode implementation, override this to call directly to BGenericNode::SetMimeType(). To change the MIME type yourself, you can call SetMimeTypeLocked(). Reimplemented from BGenericNode. | 
| 
 | 
| Return initialization status -- B_OK if all is well, else an error code. 
 | 
| 
 | 
| Set the MIME type that all entries (row nodes) will report. 
 | 
| 
 | 
| Disambiguate. 
 Reimplemented from BGenericIterable. | 
| 
 | 
| 
 | 
| 
 | 
| 
 |