Mit dem Aufruf Extract_Shutdown_Time (CMESHT) erhält ein Programm die aktuelle Shutdown-Time der UTM-Partner-Anwendung, die mit KDCSHUT WARN oder mit KDCSHUT GRACE , time= gesetzt wird.
Die Shutdown-Time, die zurückgeliefert wird, wird abdruckbar in der Länge received_length geliefert und hat das Zeitformat Universal Time Coordinated (UTC). Sie muss noch in die lokale Zeitzone umgerechnet werden.
Der Aufruf Extract_Shutdown_Time ist im Zustand "Send" und "Receive" und im Zustand "Reset" unmittelbar nach einem Receive-/Receive_Mapped_Data-Aufruf und nach einem Extract_Shutdown_State-Aufruf erlaubt.
Diese Funktion ist nicht Bestandteil der CPI-C Spezifikation, sondern eine zusätzliche Funktion des UPIC-Trägersystems.
CMESHT (conversation_ID, buffer, requested_length, data_received, received_length, return_code)
Parameter
--> conversation_ID | Identifikation der Conversation |
<-- buffer | Puffer, in dem die Daten empfangen werden. Falls der Rückgabewert von data_received CM_NO_DATA_RECEIVED ist oder received_length=0, ist der Inhalt von buffer undefiniert. In buffer wird der Zeitpunkt zurückgeliefert, zu dem die Anwendung heruntergefahren wird. Die einzelnen Bytes haben folgende Bedeutung: Byte 1 - 8: Datum im Format jjjjmmtt:
Byte 9 - 11
Byte 12 - 17: Uhrzeit im Format hhmmss (UTC-Format):
|
--> requested_length | Maximale Länge der Daten, die empfangen werden können. |
<-- data_received | Gibt an, ob das Programm die Daten vollständig empfangen hat. Falls das Ergebnis (return_code) nicht einen der Werte CM_OK oder CM_DEALLOCATED_NORMAL hat, ist der Wert von data_received undefiniert. data_received kann folgende Werte annehmen: CM_COMPLETE_DATA_RECEIVED Die Daten wurden vollständig empfangen. CM_INCOMPLETE_DATA_RECEIVED Die Daten wurden nicht vollständig empfangen. CM_NO_DATA_RECEIVED Es wurden keine Daten empfangen. |
<-- received_length | Länge der empfangenen Daten. Der Wert von received_length ist undefiniert, wenn das Ergebnis (return_code) ungleich CM_OK ist. |
<-- return_code | Ergebnis des Funktionsaufrufs |
Ergebnis ( return_code )
CM_OK
Aufruf OK
CM_PROGRAM_PARAMETER_CHECK
Der Wert in conversation_ID ist ungültig.
Der Wert der conversation_ID ist ungültig, weil die Funktion nach Ende der Conversation mehr als einmal aufgerufen wurde oder weil noch keine Conversation existierte (nach dem Enable_UTM_UPIC()-Aufruf ist noch kein Initialize_Conversation()-Aufruf erfolgt).
Oder der Wert für requested_length ist größer als 32767 oder kleiner als 1.
CM_PRODUCT_SPECIFIC_ERROR
Die UPIC-Instanz konnte nicht gefunden werden.
Hinweis
Diese Funktion wurde nicht in ihrer vollen Komplexität gemäß den CPI-C Spezifikationen implementiert. Die Vereinfachungen gegenüber CPI-C sind folgende:
Der interne Puffer besitzt eine beschränkte Größe von 1024 Byte.
Ist der Wert für requested_length kleiner als die Länge der intern gespeicherten erweiterten Information, wird der vom Anwendungsprogramm zur Verfügung gestellte Puffer vollständig gefüllt und data_received auf CM_INCOMPLETE_DATA_RECEIVED gesetzt. Es ist nicht möglich, die restlichen Daten mit weiteren CMESHT-Aufrufen zu erhalten.
Der Wert der conversation_ID bleibt für diesen Funktionsaufruf nach dem Ende einer Conversation so lange gültig, bis Initialize_Conversation() oder Extract_Shutdown_Time() aufgerufen werden.
Verhalten im Fehlerfall
CM_PROGRAM_PARAMETER_CHECK
Programm ändern.
CM_PRODUCT_SPECIFIC_ERROR
Das Betriebssystem kann nicht genügend Speicherplatz für interne Puffer bereitstellen. Überprüfen Sie Ihr Programm auf zu hohe Speicherplatzanforderung und starten Sie ggf. Ihr System neu.
CM_ENTRY Extract_Shutdown_Time( unsigned char CM_PTR conversation_ID, unsigned char CM_PTR buffer, CM_INT32 CM_PTR requested_length, CM_DATA_RECEIVED_TYPE CM_PTR data_received, CM_INT32 CM_PTR received_length, CM_RETURN_CODE CM_PTR return_code )