ANSC_STATUS DslhCpecoReset ( ANSC_HANDLE hThisObject ) { PDSLH_CPE_CONTROLLER_OBJECT pMyObject = (PDSLH_CPE_CONTROLLER_OBJECT )hThisObject; PDSLH_CWMP_OBJECT_DESCR pObjectDescr = (PDSLH_CWMP_OBJECT_DESCR )NULL; ULONG i = 0; #if 0 /* the objdesp is already released in another place */ for( i = 0; i < pMyObject->uObjCount; i ++) { pObjectDescr = (PDSLH_CWMP_OBJECT_DESCR)pMyObject->hObjDespArray[i]; if( pObjectDescr != NULL) { DslhCwmpFreeObjectDescr(pObjectDescr); } pMyObject->hObjDespArray[i] = NULL; } #endif pMyObject->uObjCount = 0; return ANSC_STATUS_SUCCESS; }
ANSC_STATUS DslhObjeoReset ( ANSC_HANDLE hThisObject ) { ANSC_STATUS returnStatus = ANSC_STATUS_SUCCESS; PDSLH_OBJ_ENTITY_OBJECT pMyObject = (PDSLH_OBJ_ENTITY_OBJECT)hThisObject; PDSLH_OBJ_ENTITY_OBJECT pChildObjEntity = (PDSLH_OBJ_ENTITY_OBJECT)NULL; PDSLH_VAR_ENTITY_OBJECT pChildVarEntity = (PDSLH_VAR_ENTITY_OBJECT)NULL; PDSLH_OBJEO_INSTANCE pObjeoInstance = (PDSLH_OBJEO_INSTANCE )NULL; PSINGLE_LINK_ENTRY pSLinkEntry = (PSINGLE_LINK_ENTRY )NULL; ULONG i = 0; /* reset the child objects/parameters */ if ( TRUE ) { pSLinkEntry = AnscQueuePopEntry(&pMyObject->ObjInsQueue); while ( pSLinkEntry ) { pObjeoInstance = ACCESS_DSLH_OBJEO_INSTANCE(pSLinkEntry); pSLinkEntry = AnscQueuePopEntry(&pMyObject->ObjInsQueue); AnscFreeMemory(pObjeoInstance); } } if ( TRUE ) { pSLinkEntry = AnscQueuePopEntry(&pMyObject->ObjeoQueue); while ( pSLinkEntry ) { pChildObjEntity = ACCESS_DSLH_OBJ_ENTITY_OBJECT(pSLinkEntry); pSLinkEntry = AnscQueuePopEntry(&pMyObject->ObjeoQueue); pChildObjEntity->Reset ((ANSC_HANDLE)pChildObjEntity); pChildObjEntity->Remove((ANSC_HANDLE)pChildObjEntity); } } if ( TRUE ) { pSLinkEntry = AnscQueuePopEntry(&pMyObject->VareoTable); while ( pSLinkEntry ) { pChildVarEntity = ACCESS_DSLH_VAR_ENTITY_OBJECT(pSLinkEntry); pSLinkEntry = AnscQueuePopEntry(&pMyObject->VareoTable); DslhVareoReset ((ANSC_HANDLE)pChildVarEntity); DslhVareoRemove((ANSC_HANDLE)pChildVarEntity); } } /* reset itself */ if ( pMyObject->ObjDescr ) { if( pMyObject->ObjDescr->hParamArray != NULL) { AnscFreeMemory(pMyObject->ObjDescr->hParamArray); pMyObject->ObjDescr->hParamArray = NULL; } DslhCwmpFreeObjectDescr(pMyObject->ObjDescr ); pMyObject->ObjDescr = NULL; } if ( pMyObject->LastName ) { AnscFreeMemory(pMyObject->LastName); pMyObject->LastName = NULL; } return ANSC_STATUS_SUCCESS; }