Classe ImqObject C++

Questa classe è astratta. Quando un oggetto di questa classe viene distrutto, viene automaticamente chiuso e la sua connessione a ImqQueueManager viene interrotta.

Figura 1. classe ImqObject
Un diagramma di classe Booch che visualizza la classe ImqObject e la relativa classe parent, ImqError.

Attributi classe

comportamento
Controlla il funzionamento dell'apertura implicita.
IMQ_IMPL_OPEN ( 8L )
L'apertura implicita è consentita. Questa è l'opzione predefinita.

Attributi oggetto

Data della modifica
La data di modifica. Questo attributo è di sola lettura.
Ora della modifica
Il tempo di alterazione. Questo attributo è di sola lettura.
ID utente alternativo
L'id utente alternativo, fino a caratteri MQ_USER_ID_LENGTH. Il valore iniziale è una stringa null.
ID di sicurezza alternativo
L'id di sicurezza alternativo. Un valore binario (MQBYTE40) di lunghezza MQ_SECURITY_ID_LENGTH. Il valore iniziale è MQSID_NONE.
Opzioni di chiusura
Opzioni che si applicano quando un oggetto viene chiuso. Il valore iniziale è MQCO_NONE. Questo attributo viene ignorato durante le operazioni di riapertura implicite, dove viene utilizzato sempre un valore di MQCO_NONE.
riferimento connessione
Un riferimento a un oggetto ImqQueueManager che fornisce la connessione richiesta a un gestore di code (locale). Per un oggetto ImqQueueManager, è l'oggetto stesso. Il valore iniziale è zero.
Nota: non confondere questa operazione con il nome gestore code che identifica un gestore code (possibilmente remoto) per una coda denominata.
Descrizione
Il nome descrittivo (fino a 64 caratteri) del gestore code, della coda, dell'elenco nomi o del processo. Questo attributo è di sola lettura.
Nome
Il nome (fino a 48 caratteri) del gestore code, della coda, dell'elenco nomi o del processo. Il valore iniziale è una stringa null. Il nome di una coda modello cambia dopo un' apertura nel nome della coda dinamica risultante.
Nota: Un ImqQueueManager può avere un nome nullo, che rappresenta il gestore di code predefinito. Il nome cambia nel gestore code effettivo dopo una aperturariuscita. Un ImqDistributionList è dinamico e deve avere un nome nullo.
oggetto gestito successivo
Questo è l'oggetto successivo di questa classe, in nessun ordine particolare, con lo stesso riferimento di connessione di questo oggetto. Il valore iniziale è zero.
Opzioni di apertura
Le opzioni che vengono applicate quando un oggetto viene aperto. Il valore iniziale è MQOO_INQUIRE. Esistono due modi per impostare i valori appropriati:
  1. Non impostare le opzioni di apertura e non utilizzare il metodo open . IBM® MQ adatta automaticamente le opzioni di apertura e automaticamente apre, riapre e chiude gli oggetti come richiesto. Ciò può causare operazioni di riapertura non necessarie, poiché IBM MQ utilizza il metodo openFor e questo aggiunge solo opzioni di apertura in modo incrementale.
  2. Impostare le opzioni di apertura prima di utilizzare i metodi che risultano in una chiamata MQI (consultare Riferimento incrociato C++ e MQI ). Ciò garantisce che non si verifichino operazioni di riapertura non necessarie. Impostare esplicitamente le opzioni di apertura se è probabile che si verifichi uno dei potenziali problemi di riapertura (consultare Riapri ).

    Se si utilizza il metodo open , è necessario assicurarsi che le opzioni di apertura siano prima appropriate. Tuttavia, l'uso del metodo open non è obbligatorio; IBM MQ presenta ancora lo stesso funzionamento del caso 1, ma in questa circostanza, il funzionamento è efficiente.

Zero non è un valore valido; impostare il valore appropriato prima di tentare di aprire l'oggetto. Questo può essere fatto utilizzando setOpenOptions ( lOpenOptions ) seguito da open ( ), oppure openFor ( lRequiredOpenOption ).
Nota:
  1. MQOO_OUTPUT viene sostituito con MQOO_INQUIRE durante il metodo open per un elenco di distribuzione, poiché MQOO_OUTPUT è l'unica opzione di apertura valida in questo momento. Tuttavia, si consiglia sempre di impostare MQOO_OUTPUT esplicitamente nei programmi applicativi che utilizzano il metodo open .
  2. Specificare MQOO_RESOLVE_NAMES se si desidera utilizzare gli attributi nome gestore code risolto e nome coda risolto della classe.
stato aperto
Se l'oggetto è aperto (TRUE) o chiuso (FALSE). Il valore iniziale è FALSE. Questo attributo è di sola lettura.
oggetto gestito precedente
L'oggetto precedente di questa classe, in nessun ordine particolare, ha lo stesso riferimento di connessione di questo oggetto. Il valore iniziale è zero.
Identificativo gestore code
L'identificativo del gestore code. Questo attributo è di sola lettura.

Costruttori

ImqObject( );
Il costruttore predefinito.
ImqObject( const ImqObject & object );
Il costruttore di copia. Lo stato aperto sarà FALSE.

Metodi di classe (pubblico)

comportamento statico MQLONG ();
Restituisce il comportamento.
void setBehavior( const MQLONG behavior = 0 );
Imposta il comportamento.

Metodi oggetto (pubblico)

void operator = ( const ImqObject & oggetto );
Esegue una chiusura se necessario e copia i dati dell'istanza da oggetto. Lo stato aperto sarà FALSE.
ImqBoolean alterationDate( ImqString & data );
Fornisce una copia della data di modifica. Restituisce TRUE in caso di esito positivo.
ImqString alterationDate( );
Restituisce la data di modifica senza alcuna indicazione di possibili errori.
ImqBoolean alterationTime( ImqString & tempo );
Fornisce una copia del tempo di modifica. Restituisce TRUE in caso di esito positivo.
ImqString alterationTime( );
Restituisce il tempo di modifica senza alcuna indicazione di possibili errori.
ImqStringalternateUserId ( ) const ;
Restituisce una copia dell' ID utente alternativo.
ImqBooleansetAlternateUserId ( const char * id );
Imposta l' ID utente alternativo. L' ID utente alternativo può essere impostato solo quando lo stato aperto è FALSE. Questo metodo restituisce TRUE se ha esito positivo.
ImqBinary alternateSecurityId( ) const;
Restituisce una copia dell' ID di sicurezza alternativo .
ImqBoolean setAlternateSecurityId( const ImqBinary & token );
Imposta l' ID sicurezza alternativo. L' ID di protezione alternativo può essere impostato solo quando lo stato aperto è FALSE. La lunghezza dati di token deve essere zero o MQ_SECURITY_ID_LENGTH. Restituisce TRUE in caso di esito positivo.
ImqBoolean setAlternateSecurityId( const MQBYTE* token = 0);
Imposta l' ID sicurezza alternativo. token può essere zero, che equivale a specificare MQSID_NONE. Se token è diverso da zero, deve indirizzare i byte MQ_SECURITY_ID_LENGTH dei dati binari. Quando si utilizzano valori predefiniti come MQSID_NONE, potrebbe essere necessario eseguire un cast per garantire la corrispondenza della firma; ad esempio, (MQBYTE *) MQSID_NONE.

L' ID di protezione alternativo può essere impostato solo quando lo stato aperto è TRUE. Restituisce TRUE in caso di esito positivo.

ImqBoolean setAlternateSecurityId( const unsigned char * id = 0);
Imposta l' ID sicurezza alternativo.
ImqBoolean chiudi ();
Imposta lo stato aperto su FALSE. Restituisce TRUE in caso di esito positivo.
MQLONG closeOptions () const ;
Restituisce le opzioni di chiusura.
vuoto setCloseOptions ( const MQLONG options );
Imposta le opzioni di chiusura.
ImqQueueManager * connectionReference ( ) const;
Restituisce il riferimento connessione.
vuoto setConnectionReference ( ImqQueueManager & manager );
Imposta il riferimento connessione.
vuoto setConnectionReference ( ImqQueueManager * manager = 0 );
Imposta il riferimento connessione.
descrizione ImqBoolean ( ImqString & description ) = 0;
Fornisce una copia della descrizione. Restituisce TRUE in caso di esito positivo.
ImqString descrizione ();
Restituisce una copia della descrizione senza alcuna indicazione di possibili errori.
ImqBoolean name ( ImqString & name );
Fornisce una copia del nome. Restituisce TRUE in caso di esito positivo.
ImqString nome ();
Restituisce una copia del nome senza alcuna indicazione di possibili errori.
ImqBoolean setName ( const char * name = 0);
Imposta il nome. Il nome può essere impostato solo quando lo stato di apertura è FALSE e, per un ImqQueueManager,, quando lo stato di connessione è FALSE. Restituisce TRUE in caso di esito positivo.
ImqObject * nextManagedObject ( ) const;
Restituisce il successivo oggetto gestito.
ImqBoolean apri ();
Modifica lo stato di apertura in TRUE aprendo l'oggetto come necessario, utilizzando tra gli altri attributi le opzioni di apertura e il nome. Questo metodo utilizza le informazioni di riferimento della connessione e il metodo di connessione ImqQueueManager se necessario, per garantire che lo stato della connessione ImqQueueManager sia VERO. Restituisce lo stato aperto.
ImqBoolean openFor ( const MQLONG required - options = 0);
Tenta di garantire che l'oggetto sia aperto con opzioni aperteo con opzioni aperte che garantiscono il funzionamento implicito dal valore del parametro required - options .
Se required - options è zero, l'input è obbligatorio e qualsiasi opzione di input è sufficiente. Quindi, se le opzioni di apertura contengono già una delle seguenti opzioni:
  • MQOO_INPUT_AS_Q_DEF
  • MQOO_INPUT_CONDIVISO
  • MQOO_INPUT_EXCLUSIVE

le opzioni di apertura sono già soddisfacenti e non vengono modificate; se le opzioni di apertura non contengono ancora alcuna di queste opzioni, MQOO_INPUT_AS_Q_DEF è impostata nelle opzioni di apertura.

Se required - options è diverso da zero, le opzioni richieste vengono aggiunte alle opzioni aperte ; se required - options è una di queste opzioni, le altre vengono reimpostate.

Se una delle opzioni di apertura viene modificata e l'oggetto è già aperto, l'oggetto viene chiuso temporaneamente e riaperto per modificare le opzioni di apertura.

Restituisce TRUE in caso di esito positivo. L'esito positivo indica che l'oggetto è aperto con le opzioni appropriate.

MQLONG openOptions () const ;
Restituisce le opzioni di apertura.
ImqBooleansetOpenOptions ( const MQLONG options );
Imposta le opzioni di apertura. Le opzioni di aperture possono essere impostate solo quando lo stato di apertura è FALSE. Restituisce TRUE in caso di esito positivo.
ImqBoolean openStatus () const ;
Restituisce lo stato aperto.
ImqObject * previousManagedObject ( ) const;
Restituisce l' oggetto gestito precedente.
ImqBoolean queueManagerIdentifier( ImqString & id );
Fornisce una copia dell' identificativo del gestore code. Restituisce TRUE in caso di esito positivo.
ImqString queueManagerIdentifier( );
Restituisce l' identificativo del gestore code senza alcuna indicazione di possibili errori.

Metodi oggetto (protetti)

ImqBoolean closeTemporarily ();
Chiude un oggetto in modo sicuro prima della riapertura. Restituisce TRUE in caso di esito positivo. Questo metodo presuppone che lo stato aperto sia TRUE.
MQHCONN connectionHandle () const ;
Restituisce MQHCONN associato al riferimento connessione. Questo valore è zero se non è presente alcun riferimento di connessione o se il gestore non è connesso.
ImqBoolean inquire ( const MQLONG int - attr, MQLONG & valore );
Restituisce un valore intero, il cui indice è un valore MQIA_ *. In caso di errore, il valore è impostato su MQIAV_UNDEFINED.
ImqBoolean inquire ( const MQLONG char - attr, char * & buffer, const size_t lunghezza );
Restituisce una stringa di caratteri, il cui indice è un valore MQCA_ *.
Nota: entrambi questi metodi restituiscono solo un singolo valore di attributo. Se è richiesta una istantanea di più di un valore, in cui i valori sono congruenti tra loro per un istante, IBM MQ C++ non fornisce questa funzione ed è necessario utilizzare la chiamata MQINQ con i parametri appropriati.
vuoto virtuale openInformationDisperse ( );
Disperde le informazioni dalla sezione della variabile della struttura dati MQOD immediatamente dopo una chiamata MQOPEN.
virtuale ImqBoolean openInformationPrepare ( );
Prepara le informazioni per la sezione della variabile della struttura dati MQOD immediatamente prima di una chiamata MQOPEN e restituisce TRUE in caso di esito positivo.
ImqBoolean imposta ( const MQLONG attr int, const MQLONG valore );
Imposta un attributo numero intero IBM MQ .
ImqBoolean set ( const MQLONG char - attr, const char * buffer, const size_t required - length );
Imposta un attributo carattere IBM MQ .
vuoto setNextManagedObject ( const ImqObject * oggetto = 0 );
Imposta l' oggetto gestito successivo.

Attenzione: utilizzare questa funzione solo se si è certi che non interromperà l'elenco di oggetti gestiti.

vuoto setPreviousManagedObject ( const ImqObject * oggetto = 0 );
Imposta l' oggetto gestito precedente.

Attenzione: utilizzare questa funzione solo se si è certi che non interromperà l'elenco di oggetti gestiti.

Dati oggetto (protetti)

MQHOBJ ohobj
L'handle dell'oggetto IBM MQ (valido solo quando open status è TRUE).
MQOD omqod
La struttura dati MQOD integrata. La quantità di memoria assegnata per questa struttura dati è quella richiesta per un MQOD Versione 2. Esaminare il numero di versione (omqod.Version) e accedere agli altri campi nel modo seguente:
MQOD_VERSION_1
È possibile accedere a tutti gli altri campi in omqod .
MQOD_VERSION_2
È possibile accedere a tutti gli altri campi in omqod .
MQOD_VERSION_3
omqod.pmqod è un puntatore a un MQOD allocato dinamicamente, più grande. Non è possibile accedere ad altri campi in omqod . È possibile accedere a tutti i campi indirizzati da omqod.pmqod .
Nota: omqod.pmqod.Version può essere inferiore a omqod.Version, a indicare che IBM MQ MQI client ha più funzionalità del server IBM MQ .

Codici di origine

  • MQRC_ATTRIBUTO_BLOCCATO
  • MQRC_INCONSISTENT_OBJECT_STATE
  • RIFERIMENTO MQRC_NO_CONNECTION_DI
  • MQRC_STORAGE_NON_DISPONIBILE
  • MQRC_REOPEN_SAVED_CONTEXT_ERR
  • (codici di errore da MQCLOSE)
  • (codici motivo da MQCONN)
  • (codici motivo da MQINQ)
  • (codici motivo da MQOPEN)
  • (codici motivo da MQSET)