Classe Platform::Agile
Representa um objeto que tem um MashalingBehavior=Standard como um objeto Agile, que reduz a possibilidade de exceções de threading do runtime. O Agile<T>
permite que o objeto não Agile chame ou seja chamado do mesmo thread ou de um thread diferente. Para obter mais informações, confira Threading e marshaling.
Sintaxe
template <typename T>
class Agile;
Parâmetros
T
O typename para a classe não Agile.
Comentários
A maioria das classes no Windows Runtime é Agile. Um objeto Agile pode chamar ou ser chamado por um objeto em processo ou fora de processo no mesmo thread ou em um thread diferente. Se um objeto não for Agile, encapsule o objeto não Agile em um objeto Agile<T>
, que seja Agile. Em seguida, pode-se realizar marshaling do objeto Agile<T>
e o objeto não Agile subjacente pode ser usado.
A classe Agile<T>
é uma classe do C++ nativa e padrão e requer o agile.h
. Representa o contextodo objeto não Agile e do objeto Agile. O contexto especifica um modelo de threading e comportamento de marshaling de um objeto Agile. O sistema operacional usa o contexto para determinar como realizar marshaling de um objeto.
Membros
Construtores públicos
Nome | Descrição |
---|---|
Agile::Agile | Inicializa uma nova instância da classe Agile. |
Destruidor Agile::~Agile | Destrói a instância atual da classe Agile. |
Métodos públicos
Nome | Descrição |
---|---|
Agile::Get | Retorna um identificador para o objeto representado pelo objeto Agile atual. |
Agile::GetAddressOf | Reinicializa o objeto Agile atual e retorna o endereço de um identificador para um objeto do tipo T . |
Agile::GetAddressOfForInOut | Retorna o endereço de um identificador para o objeto representado pelo objeto Agile atual. |
Agile::Release | Descarta o objeto e o contexto subjacentes do objeto Agile atual. |
Operadores públicos
Nome | Descrição |
---|---|
Agile::operator-> | Recupera um endereço de um identificador para o objeto representado pelo objeto Agile atual. |
Agile::operator= | Atribui o objeto especificado ao objeto Agile atual. |
Hierarquia de herança
Object
Agile
Requisitos
Cliente com suporte mínimo: Windows 8
Servidor com suporte mínimo: Windows Server 2012
Namespace: Platform
Cabeçalho: agile.h
Construtor Agile::Agile
Inicializa uma nova instância da classe Agile.
Sintaxe
Agile();
Agile(T^ object);
Agile(const Agile<T>& object);
Agile(Agile<T>&& object);
Parâmetros
T
Um tipo especificado pelo parâmetro typename do modelo.
object
Na segunda versão desse construtor, um objeto usado para inicializar uma nova instância de Agile. Na terceira versão, o objeto que é copiado para a nova instância de Agile. Na quarta versão, o objeto que é movido para a nova instância de Agile.
Comentários
A primeira versão desse construtor é o construtor padrão. A segunda versão inicializa a nova classe da instância de Agile do objeto especificado pelo parâmetro object
. A terceira versão é o construtor de cópia. A quarta versão é o construtor de movimento. Esse construtor não pode gerar exceções.
Destruidor Agile::~Agile
Destrói a instância atual da classe Agile.
Sintaxe
~Agile();
Comentários
Este destruidor também libera o objeto representado pelo objeto Agile atual.
Método Agile::Get
Retorna um identificador para o objeto representado pelo objeto Agile atual.
Sintaxe
T^ Get() const;
Valor retornado
Um identificador para o objeto representado pelo objeto Agile atual.
O tipo do valor retornado é, de fato, um tipo interno não revelado. Uma forma conveniente de manter o valor retornado é atribuí-lo a uma variável declarada com a palavra-chave de dedução de tipo auto
. Por exemplo, auto x = myAgileTvariable->Get();
.
Método Agile::GetAddressOf
Reinicializa o objeto Agile atual e retorna o endereço de um identificador para um objeto do tipo T
.
Sintaxe
T^* GetAddressOf() throw();
Parâmetros
T
Um tipo especificado pelo parâmetro typename do modelo.
Valor de retorno
O endereço de um identificador para um objeto do tipo T
.
Comentários
Essa operação libera a representação atual de um objeto do tipo T
, se houver; reinicializa os membros de dados do objeto Agile; adquire o contexto de threading atual; e, em seguida, retorna o endereço de uma variável de identificador para objeto que pode representar um objeto não ágil. Para fazer com que uma instância da classe Agile represente um objeto, use o operador de atribuição (Agile::operator=) para atribuir o objeto à instância da classe Agile.
Método Agile::GetAddressOfForInOut
Retorna o endereço de um identificador para o objeto representado pelo objeto Agile atual.
Sintaxe
T^* GetAddressOfForInOut() throw();
Parâmetros
T
Um tipo especificado pelo parâmetro typename do modelo.
Valor de retorno
O endereço de um identificador para o objeto representado pelo objeto Agile atual.
Comentários
Esta operação adquire o contexto de threading atual e retorna o endereço de um identificador para o objeto subjacente.
Método Agile::Release
Descarta o objeto e o contexto subjacentes do objeto Agile atual.
Sintaxe
void Release() throw();
Comentários
O objeto e o contexto subjacentes do objeto Agile atual serão descartados, caso existam, e o valor do objeto Agile será definido como nulo.
Operador Agile::operator->
Recupera um endereço de um identificador para o objeto representado pelo objeto Agile atual.
Sintaxe
T^ operator->() const throw();
Valor retornado
Um identificador para o objeto representado pelo objeto Agile atual.
Esse operador retorna, na verdade, um tipo interno não revelado. Uma forma conveniente de manter o valor retornado é atribuí-lo a uma variável declarada com a palavra-chave de dedução de tipo auto
.
Operador Agile::operator=
Atribui o objeto especificado ao objeto Agile atual.
Sintaxe
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();
Parâmetros
T
O tipo especificado pelo typename do modelo.
object
O objeto ou o identificador de um objeto que é copiado ou movido para o objeto Agile atual.
LP
O ponteiro de interface de IUnknown de um objeto.
Valor de retorno
Um identificador para um objeto do tipo T
Comentários
A primeira versão do operador de atribuição copia um identificador para um tipo de referência para o objeto Agile atual. A segunda versão copia uma referência a um tipo Agile para o objeto Agile atual. A terceira versão move um tipo Agile para o objeto Agile atual. A quarta versão move um ponteiro para um objeto COM para o objeto Agile atual.
A operação de atribuição persiste automaticamente o contexto do objeto Agile atual.