bool npk_package_close( NPK_PACKAGE package ) { NPK_PACKAGEBODY* pb = (NPK_PACKAGEBODY*)package; NPK_RESULT res; int i; if( !package ) { npk_error( NPK_ERROR_PackageIsNull ); return false; } res = npk_package_remove_all_entity( pb ); if( NPK_SUCCESS != res ) return res; #ifdef NPK_PLATFORM_WINDOWS DeleteCriticalSection( &pb->cs_ ); #endif if( false == pb->usingFdopen_ ) npk_close( pb->handle_ ); for( i = 0; i < NPK_HASH_BUCKETS; ++i ) NPK_SAFE_FREE( pb->bucket_[i] ); NPK_SAFE_FREE( pb ); return true; }
NPK_RESULT npk_package_clear( NPK_PACKAGE package ) { NPK_RESULT res; if( !package ) return npk_error( NPK_ERROR_PackageIsNull ); if( ( res = npk_package_remove_all_entity( package ) ) != NPK_SUCCESS ) return res; if( ( res = npk_package_init( package ) ) != NPK_SUCCESS ) return res; return NPK_SUCCESS; }