Udostępnij za pośrednictwem


Platform::Agile, klasa

Reprezentuje obiekt, który ma mashalingBehavior=Standard jako obiekt agile, co znacznie zmniejsza prawdopodobieństwo wyjątków wątków środowiska uruchomieniowego. Obiekt Agile<T> umożliwia wywoływanie obiektu niezwinnego lub wywoływanie z tego samego lub innego wątku. Aby uzyskać więcej informacji, zobacz Wątkowanie i marshaling.

Składnia

template <typename T>
class Agile;

Parametry

T
Nazwa typu dla klasy niezwinnej.

Uwagi

Większość klas w środowisko wykonawcze systemu Windows są zwinne. Obiekt agile może wywołać obiekt in-proc lub out-of-proc w tym samym lub innym wątku. Jeśli obiekt nie jest zwinny, opakuj obiekt niezwinny w Agile<T> obiekcie, który jest zwinny. Agile<T> Następnie można marshalować obiekt, a źródłowy obiekt niezwinny może być używany.

Klasa Agile<T> jest natywną, standardową klasą C++ i wymaga klasy agile.h. Reprezentuje obiekt niezwinny i kontekst obiektu Agile. Kontekst określa model wątków obiektu agile i zachowanie marshalingu. System operacyjny używa kontekstu do określania sposobu marshalingu obiektu.

Członkowie

Konstruktory publiczne

Nazwa/nazwisko opis
Agile::Agile Inicjuje nowe wystąpienie klasy Agile.
Agile::~Agile, destruktor Niszczy bieżące wystąpienie klasy Agile.

Metody publiczne

Nazwa/nazwisko opis
Agile::Get Zwraca uchwyt do obiektu reprezentowanego przez bieżący obiekt Agile.
Agile::GetAddressOf Ponownie inicjuje bieżący obiekt Agile, a następnie zwraca adres uchwytu do obiektu typu T.
Agile::GetAddressOfForInOut Zwraca adres uchwytu do obiektu reprezentowanego przez bieżący obiekt Agile.
Agile::Release Odrzuca podstawowy obiekt i kontekst bieżącego obiektu Agile.

Operatory publiczne

Nazwa/nazwisko opis
Agile::operator—> Pobiera uchwyt do obiektu reprezentowanego przez bieżący obiekt Agile.
Agile::operator= Przypisuje określoną wartość do bieżącego obiektu Agile.

Hierarchia dziedziczenia

Object

Agile

Wymagania

Minimalny obsługiwany klient: Windows 8

Minimalny obsługiwany serwer: Windows Server 2012

Przestrzeń nazw: Platforma

Nagłówek: agile.h

Agile::Agile, konstruktor

Inicjuje nowe wystąpienie klasy Agile.

Składnia

Agile();
Agile(T^ object);
Agile(const Agile<T>& object);
Agile(Agile<T>&& object);

Parametry

T
Typ określony przez parametr typename szablonu.

object
W drugiej wersji tego konstruktora obiekt używany do inicjowania nowego wystąpienia Agile. W trzeciej wersji obiekt, który jest kopiowany do nowego wystąpienia Agile. W czwartej wersji obiekt, który jest przenoszony do nowego wystąpienia Agile.

Uwagi

Pierwsza wersja tego konstruktora jest domyślnym konstruktorem. Druga wersja inicjuje nową klasę wystąpienia Agile z obiektu określonego object przez parametr . Trzecia wersja to konstruktor kopiujący. Czwarta wersja to konstruktor przenoszenia. Ten konstruktor nie może zgłaszać wyjątków.

Agile::~Agile, destruktor

Niszczy bieżące wystąpienie klasy Agile.

Składnia

~Agile();

Uwagi

Ten destruktor zwalnia również obiekt reprezentowany przez bieżący obiekt Agile.

Agile::Get, metoda

Zwraca uchwyt do obiektu reprezentowanego przez bieżący obiekt Agile.

Składnia

T^ Get() const;

Wartość zwracana

Uchwyt do obiektu reprezentowanego przez bieżący obiekt Agile.

Typ wartości zwracanej jest w rzeczywistości nieujawnionym typem wewnętrznym. Wygodnym sposobem przechowywania wartości zwracanej jest przypisanie jej do zmiennej zadeklarowanej za pomocą słowa kluczowego auto potrącenia typu. Na przykład auto x = myAgileTvariable->Get();.

Agile::GetAddressOf, metoda

Ponownie inicjuje bieżący obiekt Agile, a następnie zwraca adres uchwytu do obiektu typu T.

Składnia

T^* GetAddressOf() throw();

Parametry

T
Typ określony przez parametr typename szablonu.

Wartość zwracana

Adres uchwytu do obiektu typu T.

Uwagi

Ta operacja zwalnia bieżącą reprezentację obiektu typu T, jeśli istnieje; ponownie inicjuje elementy członkowskie danych obiektu Agile, uzyskuje bieżący kontekst wątków, a następnie zwraca adres zmiennej handle-to-object, która może reprezentować obiekt niezwinny. Aby spowodować reprezentowanie obiektu przez wystąpienie klasy Agile, użyj operatora przypisania (Agile::operator=), aby przypisać obiekt do wystąpienia klasy Agile.

Agile::GetAddressOfForInOut, metoda

Zwraca adres uchwytu do obiektu reprezentowanego przez bieżący obiekt Agile.

Składnia

T^* GetAddressOfForInOut()  throw();

Parametry

T
Typ określony przez parametr typename szablonu.

Wartość zwracana

Adres uchwytu do obiektu reprezentowanego przez bieżący obiekt Agile.

Uwagi

Ta operacja uzyskuje bieżący kontekst wątków, a następnie zwraca adres uchwytu do bazowego obiektu.

Agile::Release, metoda

Odrzuca podstawowy obiekt i kontekst bieżącego obiektu Agile.

Składnia

void Release() throw();

Uwagi

Obiekt bazowy i kontekst bieżącego obiektu Agile są odrzucane, jeśli istnieją, a następnie wartość obiektu Agile ma wartość null.

Agile::operator->, operator

Pobiera uchwyt do obiektu reprezentowanego przez bieżący obiekt Agile.

Składnia

T^ operator->() const throw();

Wartość zwracana

Uchwyt do obiektu reprezentowanego przez bieżący obiekt Agile.

Ten operator rzeczywiście zwraca nieujawniony typ wewnętrzny. Wygodnym sposobem przechowywania wartości zwracanej jest przypisanie jej do zmiennej zadeklarowanej za pomocą słowa kluczowego auto potrącenia typu.

Agile::operator=, operator

Przypisuje określony obiekt do bieżącego obiektu Agile.

Składnia

Agile<T> operator=( T^ object ) throw();
Agile<T> operator=( const Agile<T>& object ) throw();
Agile<T> operator=( Agile<T>&& object ) throw();
T^ operator=( IUnknown* lp ) throw();

Parametry

T
Typ określony przez nazwę typu szablonu.

object
Obiekt lub uchwyt do obiektu, który jest kopiowany lub przenoszony do bieżącego obiektu Agile.

Lp
Wskaźnik interfejsu IUnknown obiektu.

Wartość zwracana

Uchwyt do obiektu typu T

Uwagi

Pierwsza wersja operatora przypisania kopiuje uchwyt do typu odwołania do bieżącego obiektu Agile. Druga wersja kopiuje odwołanie do typu Agile do bieżącego obiektu Agile. Trzecia wersja przenosi typ Agile do bieżącego obiektu Agile. Czwarta wersja przenosi wskaźnik do obiektu COM do bieżącego obiektu Agile.

Operacja przypisania automatycznie utrwala kontekst bieżącego obiektu Agile.

Zobacz też

Przestrzeń nazw platformy