formatier

This commit is contained in:
2026-08-22 16:47:52 +02:00
parent 2012610615
commit 7a17c65712
+61 -61
View File
@@ -9,24 +9,24 @@
// //
//========================================================================== //==========================================================================
ctl-opt ctl-opt
option(*srcstmt:*nodebugio) nomain; option(*srcstmt:*nodebugio) nomain;
/COPY './meddfn_h.rpgle' /COPY './meddfn_h.rpgle'
/COPY './meddfnap_h.rpgle' /COPY './meddfnap_h.rpgle'
// /COPY GOSCH1/MEDDFN,MEDDFN_H // /COPY GOSCH1/MEDDFN,MEDDFN_H
// /COPY GOSCH1/MEDDFN,MEDDFNAP_H // /COPY GOSCH1/MEDDFN,MEDDFNAP_H
dcl-pr MD_ParseRetrieveBuffer; dcl-pr MD_ParseRetrieveBuffer;
ReceiverBuffer ReceiverBuffer
char(32767) const char(32767) const
options(*varsize); options(*varsize);
MediaDefinition MediaDefinition
likeds(MD_MediaDefinition_T); likeds(MD_MediaDefinition_T);
end-pr; end-pr;
//===================================================================== //=====================================================================
// //
@@ -40,43 +40,43 @@
// //
//===================================================================== //=====================================================================
dcl-proc MD_ParseRetrieveBuffer; dcl-proc MD_ParseRetrieveBuffer;
dcl-pi *n; dcl-pi *n;
ReceiverBuffer ReceiverBuffer
char(32767) const char(32767) const
options(*varsize); options(*varsize);
MediaDefinition MediaDefinition
likeds(MD_MediaDefinition_T); likeds(MD_MediaDefinition_T);
end-pi; end-pi;
dcl-ds Header dcl-ds Header
likeds(MD_Tape0200Header_T); likeds(MD_Tape0200Header_T);
dcl-ds Device dcl-ds Device
likeds(MD_Tape0200DeviceDefinition_T); likeds(MD_Tape0200DeviceDefinition_T);
dcl-ds MediaFile dcl-ds MediaFile
likeds(MD_Tape0200MediaFileDefinition_T); likeds(MD_Tape0200MediaFileDefinition_T);
dcl-s MediaOffset int(10); dcl-s MediaOffset int(10);
dcl-s DeviceOffset int(10); dcl-s DeviceOffset int(10);
dcl-s DeviceIndex int(10); dcl-s DeviceIndex int(10);
//--------------------------------------------------------------- //---------------------------------------------------------------
// Initialize result // Initialize result
//--------------------------------------------------------------- //---------------------------------------------------------------
clear MediaDefinition; clear MediaDefinition;
//--------------------------------------------------------------- //---------------------------------------------------------------
// TAPE0200 Header // TAPE0200 Header
//--------------------------------------------------------------- //---------------------------------------------------------------
Header = Header =
%subst( %subst(
ReceiverBuffer : ReceiverBuffer :
1 : 1 :
@@ -86,57 +86,57 @@
// Header -> Media Definition // Header -> Media Definition
//--------------------------------------------------------------- //---------------------------------------------------------------
MediaDefinition.MaximumParallelResources = MediaDefinition.MaximumParallelResources =
Header.MaximumParallelDeviceResources; Header.MaximumParallelDeviceResources;
MediaDefinition.MinimumParallelResources = MediaDefinition.MinimumParallelResources =
Header.MinimumParallelDeviceResources; Header.MinimumParallelDeviceResources;
MediaDefinition.NumberOfDevices = MediaDefinition.NumberOfDevices =
Header.NumberOfDeviceDefinitions; Header.NumberOfDeviceDefinitions;
MediaDefinition.DeviceAllocation = MediaDefinition.DeviceAllocation =
Header.DeviceAllocation; Header.DeviceAllocation;
MediaDefinition.SaveFormat = MediaDefinition.SaveFormat =
Header.SaveFormat; Header.SaveFormat;
//--------------------------------------------------------------- //---------------------------------------------------------------
// Device Definitions // Device Definitions
//--------------------------------------------------------------- //---------------------------------------------------------------
DeviceOffset = DeviceOffset =
Header.OffsetToFirstDeviceDefinition; Header.OffsetToFirstDeviceDefinition;
for DeviceIndex = 1 for DeviceIndex = 1
to Header.NumberOfDeviceDefinitions; to Header.NumberOfDeviceDefinitions;
Device = Device =
%subst( %subst(
ReceiverBuffer : ReceiverBuffer :
DeviceOffset + 1 : DeviceOffset + 1 :
%size(Device)); %size(Device));
//------------------------------------------------------------ //------------------------------------------------------------
// Device -> Media Definition // Device -> Media Definition
//------------------------------------------------------------ //------------------------------------------------------------
MediaDefinition.Device(DeviceIndex).DeviceName = MediaDefinition.Device(DeviceIndex).DeviceName =
Device.DeviceName; Device.DeviceName;
MediaDefinition.Device(DeviceIndex).NumberOfMediaFiles = MediaDefinition.Device(DeviceIndex).NumberOfMediaFiles =
Device.NumberOfMediaFileDefinitions; Device.NumberOfMediaFileDefinitions;
//--------------------------------------------------------------- //---------------------------------------------------------------
// First Media File // First Media File
//--------------------------------------------------------------- //---------------------------------------------------------------
if Device.NumberOfMediaFileDefinitions > 0; if Device.NumberOfMediaFileDefinitions > 0;
MediaOffset = MediaOffset =
Device.OffsetToFirstMediaFileDefinition; Device.OffsetToFirstMediaFileDefinition;
MediaFile = MediaFile =
%subst( %subst(
ReceiverBuffer : ReceiverBuffer :
MediaOffset + 1 : MediaOffset + 1 :
@@ -146,33 +146,33 @@
// Media File -> Media Definition // Media File -> Media Definition
//------------------------------------------------------------ //------------------------------------------------------------
MediaDefinition.Device(DeviceIndex) MediaDefinition.Device(DeviceIndex)
.MediaFile(1) .MediaFile(1)
.SequenceNumber = .SequenceNumber =
MediaFile.SequenceNumber; MediaFile.SequenceNumber;
MediaDefinition.Device(DeviceIndex) MediaDefinition.Device(DeviceIndex)
.MediaFile(1) .MediaFile(1)
.StartingPositionInFile = .StartingPositionInFile =
MediaFile.StartingPositionInFile; MediaFile.StartingPositionInFile;
MediaDefinition.Device(DeviceIndex) MediaDefinition.Device(DeviceIndex)
.MediaFile(1) .MediaFile(1)
.NumberOfVolumeIdentifiers = .NumberOfVolumeIdentifiers =
MediaFile.NumberOfVolumeIdentifiers; MediaFile.NumberOfVolumeIdentifiers;
endif; endif;
//------------------------------------------------------------ //------------------------------------------------------------
// Next device // Next device
//------------------------------------------------------------ //------------------------------------------------------------
if Device.OffsetToNextDeviceDefinition > 0; if Device.OffsetToNextDeviceDefinition > 0;
DeviceOffset += DeviceOffset +=
Device.OffsetToNextDeviceDefinition; Device.OffsetToNextDeviceDefinition;
endif; endif;
endfor; endfor;
end-proc; end-proc;
//===================================================================== //=====================================================================
// //
@@ -182,51 +182,51 @@
// //
//===================================================================== //=====================================================================
dcl-proc MD_RetrieveMediaDefinition export; dcl-proc MD_RetrieveMediaDefinition export;
dcl-pi *n; dcl-pi *n;
MediaDefinition MediaDefinition
likeds(MD_MediaDefinition_T); likeds(MD_MediaDefinition_T);
end-pi; end-pi;
dcl-ds QualifiedObject dcl-ds QualifiedObject
likeds(MD_QualifiedObjectName_T); likeds(MD_QualifiedObjectName_T);
dcl-ds Receiver dcl-ds Receiver
likeds(MD_ApiReceiverBuffer_T); likeds(MD_ApiReceiverBuffer_T);
dcl-ds ApiError dcl-ds ApiError
likeds(MD_APIError_T); likeds(MD_APIError_T);
dcl-s ReceiverLength int(10); dcl-s ReceiverLength int(10);
//--------------------------------------------------------------- //---------------------------------------------------------------
// Qualified media definition name // Qualified media definition name
//--------------------------------------------------------------- //---------------------------------------------------------------
QualifiedObject.ObjectName = QualifiedObject.ObjectName =
MediaDefinition.MediaDefinitionName; MediaDefinition.MediaDefinitionName;
QualifiedObject.LibraryName = QualifiedObject.LibraryName =
MediaDefinition.LibraryName; MediaDefinition.LibraryName;
//--------------------------------------------------------------- //---------------------------------------------------------------
// Initialize receiver buffer and error structure // Initialize receiver buffer and error structure
//--------------------------------------------------------------- //---------------------------------------------------------------
clear Receiver; clear Receiver;
clear ApiError; clear ApiError;
ApiError.BytesProvided = ApiError.BytesProvided =
%size(ApiError); %size(ApiError);
ReceiverLength = %size(Receiver.Data); ReceiverLength = %size(Receiver.Data);
//--------------------------------------------------------------- //---------------------------------------------------------------
// Retrieve TAPE0200 definition // Retrieve TAPE0200 definition
//--------------------------------------------------------------- //---------------------------------------------------------------
QSRRTVMD( QSRRTVMD(
QualifiedObject : QualifiedObject :
Receiver.Data : Receiver.Data :
ReceiverLength : ReceiverLength :
@@ -237,10 +237,10 @@
// Check API error // Check API error
//--------------------------------------------------------------- //---------------------------------------------------------------
if ApiError.BytesAvailable > 0; if ApiError.BytesAvailable > 0;
// zunchst nur Fehler zurckgeben/anzeigen // zunchst nur Fehler zurckgeben/anzeigen
endif; endif;
// MD_CheckApiError(ApiError); // MD_CheckApiError(ApiError);
end-proc; end-proc;