Пример #1
0
void
inventory_manager::update ()
{
  update_container ();
  sort ();
  update_view ();
}
Пример #2
0
void on_container_update_ids(GUPnPServiceProxy *content_dir,
                             const char *variable, GValue *value,
                             gpointer user_data)
{
    char **tokens = g_strsplit(g_value_get_string(value), ",", 0);
    guint i;
    for (i=0; tokens[i] != NULL && tokens[i+1] != NULL; i+=2) {
        update_container(content_dir, tokens[i]);
    }
    g_strfreev(tokens);
}
Пример #3
0
int main()
{
   listspc::list<testclass> container;
   testclass *tc;

   // fill list
   for (int i=0; i<9; i++) 
   {
      tc = new testclass(i);
      container.push_back(*tc);
      delete tc;
   }

   update_container(container);
   print_container(container);
   
   return 0;
}
Пример #4
0
VOID update_thread( PVOID cntr )
{
	APIRET			rc;
	HAB				hab;
	HMQ             hmq;
	
	PVOID			pvFlipRaw,
					pvFlopRaw;

	QPROCESSARRAY   apqFlipSorted,
					apqFlopSorted;

	APPRECORDARRAY	removeList;
	QPROCESSARRAY  	procInsertList;
	QTHREADARRAY   	threadInsertList;
	QTHREADARRAY   	updateList;

	
	hab = WinInitialize( 0 );
	hmq = WinCreateMsgQueue( hab, 0 );

	rc = DosAllocMem( &pvFlipRaw, MEMPOOL, PAG_COMMIT | PAG_READ | PAG_WRITE );
	rc = DosAllocMem( &pvFlopRaw, MEMPOOL, PAG_COMMIT | PAG_READ | PAG_WRITE );
	
	rc = DosAllocMem( ( PPVOID ) &apqFlipSorted.pData,
					  sizeof( PQPROCESS ) * MAX_PROCESSES,
					  PAG_COMMIT | PAG_READ | PAG_WRITE );
	apqFlipSorted.ulSize = 0;					

	rc = DosAllocMem( ( PPVOID ) &apqFlopSorted.pData,
					  sizeof( PQPROCESS ) * MAX_PROCESSES,
					  PAG_COMMIT | PAG_READ | PAG_WRITE );
	apqFlopSorted.ulSize = 0;
		
	rc = DosAllocMem( ( PPVOID ) &removeList.pData,
					  sizeof( PAPPRECORD ) * ( MAX_PROCESSES + MAX_THREADS ),
					  PAG_COMMIT | PAG_READ | PAG_WRITE );
	removeList.ulSize = 0;
	
	rc = DosAllocMem( ( PPVOID ) &procInsertList.pData,
					  sizeof( PQPROCESS ) * MAX_PROCESSES,
					  PAG_COMMIT | PAG_READ | PAG_WRITE );
	procInsertList.ulSize = 0;
					
	rc = DosAllocMem( ( PPVOID ) &threadInsertList.pData,
					  sizeof( PQTHREAD ) * MAX_THREADS,
					  PAG_COMMIT | PAG_READ | PAG_WRITE );
	threadInsertList.ulSize = 0;

	rc = DosAllocMem( ( PPVOID ) &updateList.pData,
					  sizeof( PQTHREAD ) * MAX_THREADS,
					  PAG_COMMIT | PAG_READ | PAG_WRITE );
	updateList.ulSize = 0;

	DosCreateMutexSem( NULL,
					   &hmuxUpdate,
					   0L,
					   FALSE );

	/*
	 *  to save time, the update is done in the flip-flop way - this saves
	 *  the cost of reallocating and commiting memory
	 *
	 **/
	
    while( TRUE )
    {
    	memset( pvFlipRaw, 0, MEMPOOL );
		rc = DosQuerySysState( 0x01, 0L, 0L, 0L, ( PCHAR ) pvFlipRaw, MEMPOOL );
		sort_raw( ( PQTOPLEVEL ) pvFlipRaw, &apqFlipSorted );

		DosRequestMutexSem( hmuxUpdate, SEM_INDEFINITE_WAIT );		
		build_update_lists( &apqFlipSorted, &apqFlopSorted,
							&removeList,
							&procInsertList,
							&threadInsertList,
							&updateList );
		
		update_container( ( HWND ) cntr,
		                  &removeList,
						  &procInsertList,
						  &threadInsertList,
						  &updateList );		
		DosReleaseMutexSem( hmuxUpdate );						
							
		DosSleep( 5 * 1000 );

    	memset( pvFlopRaw, 0, MEMPOOL );
		rc = DosQuerySysState( 0x01, 0L, 0L, 0L, ( PCHAR ) pvFlopRaw, MEMPOOL );
		sort_raw( ( PQTOPLEVEL ) pvFlopRaw, &apqFlopSorted );

		DosRequestMutexSem( hmuxUpdate, SEM_INDEFINITE_WAIT );		
		build_update_lists( &apqFlopSorted, &apqFlipSorted,
							&removeList,
							&procInsertList,
							&threadInsertList,
							&updateList );
							
		update_container( ( HWND ) cntr,
						  &removeList,
						  &procInsertList,
						  &threadInsertList,
						  &updateList );
		DosReleaseMutexSem( hmuxUpdate );
									
		DosSleep( 5 * 1000 );
    };
};