Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aby aplikacja mogła przeszukiwać tabelę routingu rozproszonego (DRT), należy utworzyć zapytanie wyszukiwania. Żądana wartość klucza jest określana przez aplikację, gdy wywoływana jest funkcja DrtStartSearch. Zachowanie wyszukiwania jest określane przez informacje określone przez aplikację w strukturze DRT_SEARCH_INFO.
Zazwyczaj zdarzenie aplikacji jest sygnalizowane, gdy wyszukiwanie odnajduje wyniki, a inne po zakończeniu wyszukiwania. Jeśli jednak fIterative jest ustawiona w DRT_SEARCH_INFO, zdarzenie aplikacji może być zasygnalizowane po nawiązaniu kontaktu z każdym węzłem po drodze.
Po zasygnalizaniu zdarzenia aplikacja wywołuje funkcję DrtGetSearchResult dla wyników. Jeśli zwrócony kod to S_OK, wtedy wyniki są umieszczone w strukturze DRT_SEARCH_RESULT zwróconej przez interfejs API. Zwrócone wyniki należą do zakresu wartości określonych w DRT_SEARCH_INFO. W przypadku, gdy wyszukiwanie nie znajdzie dopasowań, na koniec zwracania wyników zostanie zwrócona tylko wartość DRT_E_NO_MORE.
Poniższe informacje zawierają szczegółowe informacje na temat sposobu, w jaki elementy członkowskie zawarte w DRT_SEARCH_INFO zezwalają aplikacji na konkretne dyktowanie zachowania wyszukiwania infrastruktury DRT:
fAllowCurrentInstanceMatch
Domyślnie wyniki wyszukiwania DRT obejmują tylko dopasowania znalezione poza węzłem lokalnym. Ustawienie fAllowCurrentInstanceMatch określa, że wyniki wyszukiwania zawierają również dopasowania znalezione w lokalnej instancji DRT.
cMaxEndpoints
Ilość i zakres wyników zwracanych przez wyszukiwanie są określane przez aplikację z wartościami cMaxEndpoints (quantity) i pMinimumKey i pMaximumKey (zakres) i przywoływane przez DRT_SEARCH_INFO.
Gdy cMaxEndpoints = 1, infrastruktura DRT wyszukuje klucz, zwracając jedno odpowiednie dopasowanie w zakresie określonym przez wartości pMinimumKey i pMaximumKey w DRT_SEARCH_INFO. To dopasowanie może być dokładnym dopasowaniem lub najbliższym dopasowaniem w zakresie. Jeśli dopasowanie nie zostanie znalezione, zostanie zwrócona DRT_E_NO_MORE.
Jeśli cMaxEndpoints > 1, infrastruktura DRT zwróci dopasowania w zakresie mieszczącym się do wartości cMaxEndpoints. Zwrócone dopasowania mogą zawierać dokładne dopasowanie lub najbliższe możliwe dopasowania z określonego zakresu. Ponadto jeśli pMinimumKey i pMaximumKey są ustawione na tę samą wartość, wyszukiwanie jest przeprowadzane tylko dla tej wartości, zwracając DRT_E_NO_MORE, jeśli nie zostanie znaleziona.
fAnyMatchInRange
Element członkowski fAnyMatchInRange wskazuje, czy wyszukiwanie zostanie zatrzymane po znalezieniu pierwszego dopasowania w określonym zakresie, czy będzie kontynuowane w poszukiwaniu najbliższego dopasowania do klucza zdefiniowanego w interfejsie API DrtStartSearch. Po ustawieniu fAnyMatchInRange wyszukiwanie odbywa się przy użyciu cMaxEndpoints = 1 niezależnie od określonej wartości cMaxEndpoints w DRT_SEARCH_INFO.
iteracyjny
Wskaźnik członkowski fIterative określa, czy podczas wyszukiwania każdy węzeł kontaktowany przez infrastrukturę DRT będzie miał dane klucza/punktu końcowego skojarzone z nim i udostępnione aplikacji za pośrednictwem DRT_SEARCH_RESULT. Poprzez ustawienie fIterative na PRAWDA, zostanie wymuszona wartość cMaxEndpoints = 1. Gdy fIterative jest ustawiona na TRUE w zapytaniu wyszukiwania DRT, aplikacja otrzymuje zwrotną informację po kontakcie z każdym węzłem lub przeskokiem. Każdy wynik przeskoku zawiera klucz wskazujący, który węzeł DRT będzie wyszukiwany dalej. Wynik przeskoku jest zwracany za pośrednictwem drtGetSearchResult jako wynik DRT_MATCH_INTERMEDIATE.
pMinimumKey i pMaximumKey
Członkowie pMinimumKey i pMaximumKey mogą być używani do wyszukiwania kluczy w określonym zakresie. Jeśli członek fAnyMatchInRange ma ustawioną wartość FALSE, DRT zwróci najbliższe klucze do celu wyszukiwania (określonego za pomocą argumentu pKey przekazanego w funkcji DrtStartSearch), które mieszczą się w danym zakresie. Należy pamiętać, że argument pKey przekazany do DrtStartSearch musi należeć do zakresu zdefiniowanego przez pMinimumKey i pMaximumKey. Aby wyszukać dokładny klucz, ustaw pMinimumKey, pMaximumKey i pKey na tę samą wartość.
Tematy pokrewne