コード例 #1
0
ファイル: pbltest.c プロジェクト: peterGraf/pbl
int main( int argc, char * argv[ ] )
{
    void * ht;
    int    rc;

    char * data;

    ht = pblHtCreate();

    rc = pblHtInsert( ht, "123", 4, "123" );
    rc = pblHtInsert( ht, "124", 4, "124" );
    rc = pblHtInsert( ht, "125", 4, "125" );
    rc = pblHtInsert( ht, "123", 4, "123" );
    rc = pblHtInsert( ht, "123", 3, "123" );

    data = pblHtLookup( ht, "123", 4 );
    data = pblHtLookup( ht, "123", 3 );
    data = pblHtLookup( ht, "124", 4 );
    data = pblHtLookup( ht, "125", 4 );
    data = pblHtLookup( ht, "126", 4 );

    for( data = pblHtFirst( ht ); data; data = pblHtNext( ht ))
    {
        data = pblHtCurrent( ht );
    }

    rc = pblHtRemove( ht, "125", 4 );

    data = pblHtFirst( ht );

    rc = pblHtDelete( ht );

    while( !pblHtRemove( ht, 0, 0 ));

    rc = pblHtInsert( ht, "123", 4, "123" );
    rc = pblHtInsert( ht, "124", 4, "124" );
    rc = pblHtInsert( ht, "125", 4, "125" );
    rc = pblHtInsert( ht, "123", 4, "123" );
    rc = pblHtInsert( ht, "123", 3, "123" );

    for( data = pblHtFirst( ht ); data; data = pblHtNext( ht ))
    {
        pblHtRemove( ht, 0, 0 );
    }

    rc = pblHtDelete( ht );

    return rc;
}
コード例 #2
0
ファイル: pblhttst.c プロジェクト: pangkunpeng1987/pbl
/*
 * test frame for the hash table library
 *
 * this test frame calls the hash table library,
 * it does not have any parameters, it is meant for
 * debugging the hash table library
 */
int pblHASHTABLE_TestFrame( int argc, char * argv[ ] )
{
    pblHashTable_t * ht;
    int    rc;
    size_t size;

    char * data;

    ht = pblHtCreate();
    fprintf( stdout, "pblHtCreate() ht = %p\n", ht );

    rc = pblHtInsert( ht, "123", 4, "123" );
    fprintf( stdout, "pblHtInsert( ht, 123, 4, 123 ) rc = %d\n", rc );

    rc = pblHtInsert( ht, "124", 4, "124" );
    fprintf( stdout, "pblHtInsert( ht, 124, 4, 124 ) rc = %d\n", rc );

    rc = pblHtInsert( ht, "125", 4, "125" );
    fprintf( stdout, "pblHtInsert( ht, 125, 4, 125 ) rc = %d\n", rc );

    rc = pblHtInsert( ht, "123", 4, "123" );
    fprintf( stdout, "pblHtInsert( ht, 123, 4, 123 ) rc = %d\n", rc );

    rc = pblHtInsert( ht, "123", 3, "123" );
    fprintf( stdout, "pblHtInsert( ht, 123, 3, 123 ) rc = %d\n", rc );

    data = pblHtLookup( ht, "123", 4 );
    fprintf( stdout, "pblHtLookup( ht, 123, 4 ) data = %s\n",
             data ? data : "NULL" );

    data = pblHtLookup( ht, "123", 3 );
    fprintf( stdout, "pblHtLookup( ht, 123, 3 ) data = %s\n",
             data ? data : "NULL" );

    data = pblHtLookup( ht, "124", 4 );
    fprintf( stdout, "pblHtLookup( ht, 124, 4 ) data = %s\n",
             data ? data : "NULL" );

    data = pblHtLookup( ht, "125", 4 );
    fprintf( stdout, "pblHtLookup( ht, 125, 4 ) data = %s\n",
             data ? data : "NULL" );

    data = pblHtLookup( ht, "126", 4 );
    fprintf( stdout, "pblHtLookup( ht, 126, 4 ) data = %s\n",
             data ? data : "NULL" );


    for( data = pblHtFirst( ht ); data; data = pblHtNext( ht ))
    {
        data = pblHtCurrent( ht );
        fprintf( stdout, "pblHtCurrent( ht ) data = %s\n",
                 data ? data : "NULL" );
        size = 0;
        data = pblHtCurrentKey( ht, &size );
        fprintf( stdout, "pblHtCurrentKey( ht, &size ) data = %s, size %ld\n",
                 data ? data : "NULL", (long int)size );

    }

    rc = pblHtRemove( ht, "125", 4 );
    fprintf( stdout, "pblHtRemove( ht, 125, 4 ) rc = %d\n", rc );

    data = pblHtFirst( ht );
    fprintf( stdout, "pblHtFirst( ht ) data = %s\n", data ? data : "NULL" );

    rc = pblHtDelete( ht );
    fprintf( stdout, "pblHtDelete( ht, 125, 4 ) rc = %d\n", rc );

    while( !pblHtRemove( ht, 0, 0 ));

    rc = pblHtInsert( ht, "123", 4, "123" );
    fprintf( stdout, "pblHtInsert( ht, 123, 4, 123 ) rc = %d\n", rc );

    rc = pblHtInsert( ht, "124", 4, "124" );
    fprintf( stdout, "pblHtInsert( ht, 124, 4, 124 ) rc = %d\n", rc );

    rc = pblHtInsert( ht, "125", 4, "125" );
    fprintf( stdout, "pblHtInsert( ht, 125, 4, 125 ) rc = %d\n", rc );

    rc = pblHtInsert( ht, "123", 4, "123" );
    fprintf( stdout, "pblHtInsert( ht, 123, 4, 123 ) rc = %d\n", rc );

    rc = pblHtInsert( ht, "123", 3, "123" );
    fprintf( stdout, "pblHtInsert( ht, 123, 3, 123 ) rc = %d\n", rc );


    for( data = pblHtFirst( ht ); data; data = pblHtNext( ht ))
    {
        pblHtRemove( ht, 0, 0 );
    }

    rc = pblHtDelete( ht );
    fprintf( stdout, "pblHtDelete( ht ) rc = %d\n", rc );

    return( rc );
}
コード例 #3
0
ファイル: lockManagerImpl.c プロジェクト: Zhoutall/stasis
static void * pblHtFirst_r(pblHashTable_t *h) {
  pthread_mutex_lock(&stasis_lock_manager_ht_mut);
  void * ret = pblHtFirst(h);
  pthread_mutex_unlock(&stasis_lock_manager_ht_mut);
  return ret;
}