Example #1
0
File: npk.c Project: keedi/npk
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;
}
Example #2
0
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;
}