Apple OS X manual Getting Information About a Record’s Attribute, Working with Records

Page 35

C H A P T E R 3

Working with Records

dirStatus = dsGetRecordList( nodeRef, dataBuffer, &recNames, eDSExact, &recTypes, &attrTypes, false, &recCount, &context );

for ( i = 1; i <= recCount; i++ )

{

dirStatus

= dsGetRecordEntry( nodeRef, dataBuffer,

i,

&attrListRef, &pRecEntry

);

 

for ( j =

1; j <= pRecEntry->fRecordAttributeCount;

j++ )

{

 

 

dirStatus = dsGetAttributeEntry( nodeRef, dataBuffer, attrListRef, j, &valueRef, &pAttrEntry );

for ( k = 1; k <= pAttrEntry->fAttributeValueCount; k++ )

{

dirStatus = dsGetAttributeValue( nodeRef, dataBuffer, k, valueRef, &pValueEntry );

printf( "%s\t- %lu\n", pValueEntry->fAttributeValueData.fBufferData, pValueEntry->fAttributeValueID );

dirStatus = dsDeallocAttributeValueEntry( gDirRef,

pValueEntry );

pValueEntry = NULL;

//Deallocate pAttrEntry, pValueEntry, and pRecEntry

//by calling dsDeallocAttributeEntry,

//dsDeallocAttributeValueEntry, and

//dsDeallocRecordEntry, respectively.

}

dirStatus = dsCloseAttributeValueList( valueRef ); valueRef = NULL;

dirStatus = dsDeallocAttributeEntry( gDirRef, pAttrEntry); pAttrEntry = NULL;

}

dirStatus = dsCloseAttributeList( attrListRef ); attrListRef = NULL;

dirStatus = dsDeallocRecordEntry( gDirRef, pRecEntry ); pRecEntry = NULL;

}

}while (context != NULL); // Loop until all data has been obtained. // Call dsDataListDeallocate to deallocate recNames, recTypes, and // attrTypes.

// Deallocate dataBuffer by calling dsDataBufferDeAllocate. dsDataListDeallocate ( gDirRef, &recNames ); dsDataListDeallocate ( gDirRef, &recTypes ); dsDataListDeallocate ( gDirRef, &attrTypes ); dsDataBufferDeAllocate ( gDirRef, dataBuffer ); dataBuffer = NULL;

}

return dirStatus; } // GetRecordList

Getting Information About a Record’s Attribute

The sample code in Listing 3-2(page 36) demonstrates how to get information about a record’s attribute. The sample code opens an Open Directory session and gets an Open Directory reference. Then it calls its MyOpenDirNode routine and passes to it the address of the node reference (nodeRef) that it has allocated. The MyOpenDirNode routine is described in the section “Opening and Closing a Node” (page 28).

Getting Information About a Record’s Attribute

35

2007-01-08 © 2007 Apple Inc. All Rights Reserved.

Image 35
Contents Open Directory Programming Guide Apple Inc Contents N T E N T S Figures, Tables, and Listings G U R E S , T a B L E S , a N D L I S T I N G S See Also Organization of This DocumentIntroduction See Also Open Directory Overview Concepts1Flow of an Open Directory request Nodes2An Open Directory request over a network Record Types Search Policies and Search NodesConstant Description Standard attribute for storing a unique ID commonly found Standard Attribute TypesNative Attribute Types AuthenticationBasic Authentication Open Directory Overview Local Windows Hash Authentication Local Cached User Authentication Disabled User Authentication Directory Proxy Directory Native AuthenticationOpen Directory, lookupd, and NetInfo 3lookupd and NetInfo interaction when using SSH Debugging Directory Service Command Line UtilityListing Registered Nodes Working with NodesWorking with Nodes Finding a Node Opening and Closing a Node Authenticating a User to a Node Authenticating using directory native authentication Directory Native AuthenticationWorking with Nodes Working with Nodes Authenticating a User to a Node Listing Records Working with RecordsListing Records Working with Records Getting Information About a Record’s AttributeGetting Information About a Record’s Attribute Setting the Name of a Record Working with Records Listing 3-3Setting the name of a record Creating a Record and Adding an Attribute Void CreateRecord const tDirNodeReference inDirNodeRef Deleting a Record Working with Records Document Revision History Document Revision History
Related manuals
Manual 32 pages 7.58 Kb