Be Book Application Kit Application Kit Indeks

BMessageQueue

Pochodzi od: żaden
Zadeklarowany w:  be/app/MessageQueue.h
Biblioteka: libbe.so
Podsumowanie:  więcej...

 

Klasa BMessageQueue (czyli kolejka komunikatów) uzupełnia implementację BLooper'a przez dostarczenie stosu typu "pierwszy wchodzi/pierwszy wychodzi" (FIFO - first-in/first-out) w którym looper może umieszczać nadchodzace obiekty BMessage. Ogólnie, powiniem wystarczyć mechanizm rozgłaszania komunikatów BLooper'a. Jednak, jeśli kiedykolwiek będziesz potrzebował manipulować bezpośrednio kolejką BMessage, możesz tak zrobić.


Konstruktor i Destruktor


BMessageQueue()

BMessageQueue(void)

Tworzy pusty obiekt BMessageQueue.


~BMessageQueue()

virtual ~BMessageQueue()

Niszczy wszystkie obiekty w kolejce i wszystkie struktury danych używane do zarządzania kolejką.


Funkcje Członkowskie


AddMessage() , RemoveMessage()

void AddMessage(BMessage *message)
void RemoveMessage(BMessage *message)

AddMessage() dodaje komunikat message na koniec kolejki. RemoveMessage() usuwa konkretny komunikat message z kolejki i niszczy go.


CountMessages() , IsEmpty()

int32 CountMessages(void) const
bool IsEmpty(void) const

CountMessages() zwraca liczbę komunikatów obecnych w kolejce.

IsEmpty() zwraca true jeśli obiekt nie zawiera żadnego komunikatu i false w przeciwnym wypadku.


FindMessage()

BMessage *FindMessage(int32 index) const
BMessage *FindMessage(uint32 what, int32 index = 0) const

FindMessage() zwraca wskaźnik do obiektu BMessage o indeksie index w kolejce, gdzie indeks 0 oznacza komunikat który przebywa w kolejce najdłużej. Druga wersja pozwala Ci określić wartość pola what; w tym przypadku, są zliczane tylko te komunikaty, których argument what jest dopasowany. Jeśli komunikat nie pasuje do żadnego kryterium, funkcje zwracają NULL.

Komunikat nie jest usuwany z kolejki komunikatów.


IsEmpty() patrz CountMessages()


Lock(), Unlock()

bool Lock(void)
void Unlock(void)

Te funkcje blokują i odblokowują BMessageQueue, żeby inny wątek nie zmienił zawartości kolejki w chwili gdy będzie ona czytana. Lock() nie zwraca wartości dopóki blokuje kolejkę; zawsze zwraca ona true. Unlock() zwalnia blokadę, żeby ktoś inny mógł zablokować kolejkę. Wywołania tych funkcji mogą być zagnieżdżane.

Popatrz również do: BLooper::Lock()


NextMessage()

BMessage *NextMessage(void)

Usuwa i zawraca najstarszy komunikat z kolejki. Jeśli kolejka jest pusta, funkcja zwraca NULL.

Popatrz również do: FindMessage()


RemoveMessage() patrz AddMessage()
Unlock() patrz Lock()


Be Book Application Kit Application Kit Indeks

Be Book,
...w ślicznym HTML...
dla BeOS wydanie 5

Copyright © 2000 Be, Inc. Wszelkie prawa zastrzeżone.