ANSC_HANDLE AnscXmlDomNodeGetTailChild ( ANSC_HANDLE hThisObject ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PANSC_XML_DOM_NODE_OBJECT pXmlNode = (PANSC_XML_DOM_NODE_OBJECT)hThisObject; PANSC_XML_DOM_NODE_OBJECT pChildNode = NULL; PSINGLE_LINK_ENTRY pSLinkEntry = NULL; if( AnscQueueQueryDepth(&pXmlNode->ChildNodeQueue) == 0) { return NULL; } AnscAcquireXmlLock(&pXmlNode->ChildNodeQueueLock); pSLinkEntry = AnscQueueGetLastEntry(&pXmlNode->ChildNodeQueue); AnscReleaseXmlLock(&pXmlNode->ChildNodeQueueLock); if ( pSLinkEntry ) { pChildNode = ACCESS_ANSC_XML_DOM_NODE_OBJECT(pSLinkEntry); } return (ANSC_HANDLE)pChildNode; }
ULONG DslhObjroGetObjRecordCount ( ANSC_HANDLE hThisObject ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PDSLH_OBJ_RECORD_OBJECT pMyObject = (PDSLH_OBJ_RECORD_OBJECT)hThisObject; PDSLH_OBJ_ENTITY_OBJECT pObjEntity = (PDSLH_OBJ_ENTITY_OBJECT)pMyObject->hDslhObjEntity; PDSLH_OBJ_RECORD_OBJECT pChildObjRecord = (PDSLH_OBJ_RECORD_OBJECT)NULL; return AnscQueueQueryDepth(&pMyObject->ObjroQueue); }
ANSC_HANDLE AnscXmlDomNodeGetHeadChild ( ANSC_HANDLE hThisObject ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PANSC_XML_DOM_NODE_OBJECT pXmlNode = (PANSC_XML_DOM_NODE_OBJECT)hThisObject; PANSC_XML_DOM_NODE_OBJECT pChildNode = NULL; PSINGLE_LINK_ENTRY pSLinkEntry = NULL; if( AnscQueueQueryDepth(&pXmlNode->ChildNodeQueue) == 0) { if( pXmlNode->ChildNodeQueue.Next.Next != NULL) { PANSC_XML_ATTRIBUTE pNameAttr = NULL; pNameAttr = (PANSC_XML_ATTRIBUTE)AnscXmlDomNodeGetFirstAttr(pXmlNode); if( pNameAttr == NULL || pNameAttr->StringData == NULL) { AnscXmlWarning("The child node queue of XML node is corrupted.\n"); } else { AnscXmlWarning ( "The child node queue of XML node '%s' is corrupted.\n", (PCHAR)pNameAttr->StringData ); } } return NULL; } AnscAcquireXmlLock(&pXmlNode->ChildNodeQueueLock); pSLinkEntry = AnscQueueGetFirstEntry(&pXmlNode->ChildNodeQueue); AnscReleaseXmlLock(&pXmlNode->ChildNodeQueueLock); if ( pSLinkEntry ) { pChildNode = ACCESS_ANSC_XML_DOM_NODE_OBJECT(pSLinkEntry); } return (ANSC_HANDLE)pChildNode; }
ULONG DslhObjroGetVarRecordCount ( ANSC_HANDLE hThisObject, BOOL bExcludeHidden ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PDSLH_OBJ_RECORD_OBJECT pMyObject = (PDSLH_OBJ_RECORD_OBJECT)hThisObject; PDSLH_OBJ_ENTITY_OBJECT pObjEntity = (PDSLH_OBJ_ENTITY_OBJECT)pMyObject->hDslhObjEntity; PDSLH_VAR_RECORD_OBJECT pChildVarRecord = (PDSLH_VAR_RECORD_OBJECT)NULL; PDSLH_VAR_ENTITY_OBJECT pChildVarEntity = (PDSLH_VAR_ENTITY_OBJECT)NULL; PSINGLE_LINK_ENTRY pSLinkEntry = (PSINGLE_LINK_ENTRY )NULL; ULONG ulVarRecordCount = 0; if( bExcludeHidden ) { pSLinkEntry = AnscQueueGetFirstEntry(&pMyObject->VarroTable); while ( pSLinkEntry ) { pChildVarRecord = ACCESS_DSLH_VAR_RECORD_OBJECT(pSLinkEntry); pChildVarEntity = (PDSLH_VAR_ENTITY_OBJECT)pChildVarRecord->hDslhVarEntity; pSLinkEntry = AnscQueueGetNextEntry(pSLinkEntry); if( pChildVarEntity->ParamDescr && !pChildVarEntity->ParamDescr->bInvisible) { ulVarRecordCount ++; } } } else { /* include all the parameters */ ulVarRecordCount += AnscQueueQueryDepth(&pMyObject->VarroTable); } return ulVarRecordCount; }
ULONG AnscLpccoGetPartyCount ( ANSC_HANDLE hThisObject ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PANSC_LPC_CONNECTOR_OBJECT pMyObject = (PANSC_LPC_CONNECTOR_OBJECT)hThisObject; ULONG ulPartyCount = 0; ULONG i = 0; AnscAcquireLock(&pMyObject->PartyTableLock); for ( i = 0; i < ANSC_LPCCO_PARTY_TABLE_SIZE; i++ ) { ulPartyCount += AnscQueueQueryDepth(&pMyObject->PartyTable[i]); } AnscReleaseLock(&pMyObject->PartyTableLock); return ulPartyCount; }
ANSC_HANDLE SlapOmoGetObjProxy2 ( ANSC_HANDLE hThisObject, ANSC_HANDLE hTokenChain ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PSLAP_OBJ_MAPPER_OBJECT pMyObject = (PSLAP_OBJ_MAPPER_OBJECT )hThisObject; PSLAP_OBJ_MAPPER_PROPERTY pProperty = (PSLAP_OBJ_MAPPER_PROPERTY)&pMyObject->Property; PSLAP_OBJ_BROKER_OBJECT pRootObjBroker = (PSLAP_OBJ_BROKER_OBJECT )pMyObject->hRootObjBroker; PSLAP_OBJ_BROKER_OBJECT pThisObjBroker = (PSLAP_OBJ_BROKER_OBJECT )pRootObjBroker; PSLAP_OBJ_BROKER_OBJECT pNextObjBroker = (PSLAP_OBJ_BROKER_OBJECT )NULL; PSLAP_OBJ_PROXY_OBJECT pObjProxy = (PSLAP_OBJ_PROXY_OBJECT )pThisObjBroker->hSlapObjProxy; PANSC_TOKEN_CHAIN pPathTokenChain = (PANSC_TOKEN_CHAIN )hTokenChain; PANSC_STRING_TOKEN pPathToken = NULL; PSINGLE_LINK_ENTRY pSLinkEntry = NULL; if ( AnscQueueQueryDepth(&pPathTokenChain->TokensQueue) == 0 ) { pObjProxy = (PSLAP_OBJ_PROXY_OBJECT)NULL; } else { pSLinkEntry = AnscQueuePopEntry(&pPathTokenChain->TokensQueue); while ( pSLinkEntry && pThisObjBroker ) { pPathToken = ACCESS_ANSC_STRING_TOKEN(pSLinkEntry); pNextObjBroker = (PSLAP_OBJ_BROKER_OBJECT)pThisObjBroker->GetObjBroker ( (ANSC_HANDLE)pThisObjBroker, pPathToken->Name ); if ( pNextObjBroker ) { if ( pNextObjBroker->hSlapObjProxy ) { pObjProxy = (PSLAP_OBJ_PROXY_OBJECT)pNextObjBroker->hSlapObjProxy; } AnscFreeMemory(pPathToken); } else { AnscQueuePushEntryAtFront(&pPathTokenChain->TokensQueue, &pPathToken->Linkage); break; } pThisObjBroker = pNextObjBroker; pSLinkEntry = AnscQueuePopEntry(&pPathTokenChain->TokensQueue); } if ( AnscQueueQueryDepth(&pPathTokenChain->TokensQueue) > 0 ) { pObjProxy = (PSLAP_OBJ_PROXY_OBJECT)NULL; } } return (ANSC_HANDLE)pObjProxy; }