static void test_case_char (void) { SLL_T* head; int i; head = sll_new (CDATA, iter_cb_char, pre_iterator, post_iterator); for (i = 'a'; i <= 'z'; i++) sll_insert (head, i); sll_iter (head); printf ("\n"); fprintf (stderr, "deleting a\n"); sll_delete (head, 'a'); fprintf (stderr, "deleting f\n"); sll_delete (head, 'f'); fprintf (stderr, "deleting z\n"); sll_delete (head, 'z'); sll_iter (head); fprintf (stderr, "inserting a \n"); sll_insert (head, 'a'); fprintf (stderr, "inserting z\n"); sll_insert (head, 'z'); fprintf (stderr, "inserting z\n"); sll_insert (head, 'z'); sll_iter (head); fprintf (stderr, "deleting z\n"); sll_delete (head, 'z'); sll_iter (head); }
void sll_destroy( struct simpleLinkedList *element ) { if( element && ( element != NULL ) ) { o_log(SQLDEBUG, "preparing to delete element: %x, with prev=%x, and next=%x", element, element->prev, element->next); sll_destroy( sll_getNext( element ) ); sll_delete( element ); } }
void strBuf_reset(NStrBuf* strBuf) { if (strBuf->lst) { NStrBufSeg* seg = sll_first(strBuf->lst); while (seg) { NBK_free(seg->data); NBK_free(seg); seg = sll_next(strBuf->lst); } sll_delete(&strBuf->lst); } }
/******************************************************************************* * test_case_int_1 - test core linked list operations * * RETURNS: void */ static void test_case_int_4 (void) { SLL_T* head; int i; fprintf (stdout, "TC[LL]: test case int#1\n"); head = sll_new (IDATA, iter_cb_int, pre_iterator, post_iterator); fprintf (stdout, "TC[LL]: inserting 1...19\n"); for (i = 1; i < 20; i++) sll_insert (head, i); sll_iter (head); fprintf (stdout, "TC[LL]: deleting 10\n"); sll_delete (head, 10); fprintf (stdout, "TC[LL]: deleting 15\n"); sll_delete (head, 15); fprintf (stdout, "TC[LL]: deleting 19\n"); sll_delete (head, 19); sll_iter (head); fprintf (stdout, "TC[LL]: inserting 19\n"); sll_insert (head, 19); fprintf (stdout, "TC[LL]: inserting 10\n"); sll_insert (head, 10); sll_iter (head); if (NULL != sll_find (head, 5)) fprintf (stdout, "TC[LL]: OK found 5\n"); else fprintf (stdout, "TC[LL]: ERROR Not found 5\n"); if (NULL != sll_find (head, 67)) fprintf (stdout, "TC[LL]: ERROR found 67\n"); else fprintf (stdout, "TC[LL]: OK Not found 67\n"); }
CResourceManager::~CResourceManager() { if (iDecodeThread) { delete iDecodeThread; iDecodeThread = NULL; // it shoudn't be dandling in case of DLL load/unload at runtime } iTimer->Cancel(); delete iTimer; CleanAllConn(KAllPageId); CloseHttpSession(); sll_delete(&iConnList); if (m_IAPSeted && m_bUseOutNetSettting) { iConnection = NULL; iSocketServ = NULL; } else if (m_IAPSeted && !m_bUseOutNetSettting) { m_connection.Close(); m_socketServ.Close(); } cookieMgr_save(iCookieMgr, COOKIE_PATH); cookieMgr_delete(&iCookieMgr); cacheMgr_save(iCacheMgr); cacheMgr_delete(&iCacheMgr); if (iUserAgent) delete iUserAgent; if (iImei) delete iImei; if (iCachePath) delete iCachePath; if (iProbe) { delete iProbe; iProbe = NULL; } if (iSysControl) { delete iSysControl; iSysControl = NULL; } }
// Delete session that have not been accessed since 'oldest_allowed' void clear_sessions_older_than( time_t oldest_allowed ) { struct simpleLinkedList *session = NULL; struct simpleLinkedList *sess_data = NULL; int session_expiration_count = 0; session = sll_findFirstElement( sessions ); while( session != NULL ) { struct simpleLinkedList *this_session = session; session = sll_getNext( session ); if( 0 == strcmp( this_session->key, "placeholder" ) ) continue; struct session_data *sessions_element = (struct session_data *)this_session->data; if( sessions_element->last_accessed < oldest_allowed ) { for( sess_data = sll_findFirstElement( sessions_element->session_container ) ; sess_data != NULL ; sess_data = sll_getNext( sess_data ) ) { free( sess_data->key ); free( sess_data->data ); } sll_destroy( sll_findFirstElement( sessions_element->session_container ) ); sessions_element->session_container = NULL; free( sessions_element ); this_session->data = NULL; o_log( DEBUGM, "Deleting session: %s", this_session->key ); free( this_session->key ); this_session->key = NULL; sll_delete( this_session ); session_expiration_count++; } } if( session_expiration_count >= 1 ) { o_log( DEBUGM, "Expired %d sessions", session_expiration_count); } }