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;
/COPY './meddfn_h.rpgle'
/COPY './meddfnap_h.rpgle'
/COPY './meddfn_h.rpgle'
/COPY './meddfnap_h.rpgle'
// /COPY GOSCH1/MEDDFN,MEDDFN_H
// /COPY GOSCH1/MEDDFN,MEDDFNAP_H
dcl-pr MD_ParseRetrieveBuffer;
dcl-pr MD_ParseRetrieveBuffer;
ReceiverBuffer
ReceiverBuffer
char(32767) const
options(*varsize);
MediaDefinition
MediaDefinition
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
options(*varsize);
MediaDefinition
MediaDefinition
likeds(MD_MediaDefinition_T);
end-pi;
end-pi;
dcl-ds Header
dcl-ds Header
likeds(MD_Tape0200Header_T);
dcl-ds Device
dcl-ds Device
likeds(MD_Tape0200DeviceDefinition_T);
dcl-ds MediaFile
dcl-ds MediaFile
likeds(MD_Tape0200MediaFileDefinition_T);
dcl-s MediaOffset int(10);
dcl-s MediaOffset int(10);
dcl-s DeviceOffset int(10);
dcl-s DeviceIndex int(10);
dcl-s DeviceOffset int(10);
dcl-s DeviceIndex int(10);
//---------------------------------------------------------------
// Initialize result
//---------------------------------------------------------------
clear MediaDefinition;
clear MediaDefinition;
//---------------------------------------------------------------
// TAPE0200 Header
//---------------------------------------------------------------
Header =
Header =
%subst(
ReceiverBuffer :
1 :
@@ -86,57 +86,57 @@
// Header -> Media Definition
//---------------------------------------------------------------
MediaDefinition.MaximumParallelResources =
MediaDefinition.MaximumParallelResources =
Header.MaximumParallelDeviceResources;
MediaDefinition.MinimumParallelResources =
MediaDefinition.MinimumParallelResources =
Header.MinimumParallelDeviceResources;
MediaDefinition.NumberOfDevices =
MediaDefinition.NumberOfDevices =
Header.NumberOfDeviceDefinitions;
MediaDefinition.DeviceAllocation =
MediaDefinition.DeviceAllocation =
Header.DeviceAllocation;
MediaDefinition.SaveFormat =
MediaDefinition.SaveFormat =
Header.SaveFormat;
//---------------------------------------------------------------
// Device Definitions
//---------------------------------------------------------------
DeviceOffset =
DeviceOffset =
Header.OffsetToFirstDeviceDefinition;
for DeviceIndex = 1
for DeviceIndex = 1
to Header.NumberOfDeviceDefinitions;
Device =
Device =
%subst(
ReceiverBuffer :
DeviceOffset + 1 :
%size(Device));
//------------------------------------------------------------
// Device -> Media Definition
//------------------------------------------------------------
MediaDefinition.Device(DeviceIndex).DeviceName =
MediaDefinition.Device(DeviceIndex).DeviceName =
Device.DeviceName;
MediaDefinition.Device(DeviceIndex).NumberOfMediaFiles =
MediaDefinition.Device(DeviceIndex).NumberOfMediaFiles =
Device.NumberOfMediaFileDefinitions;
//---------------------------------------------------------------
// First Media File
//---------------------------------------------------------------
if Device.NumberOfMediaFileDefinitions > 0;
if Device.NumberOfMediaFileDefinitions > 0;
MediaOffset =
MediaOffset =
Device.OffsetToFirstMediaFileDefinition;
MediaFile =
MediaFile =
%subst(
ReceiverBuffer :
MediaOffset + 1 :
@@ -146,33 +146,33 @@
// Media File -> Media Definition
//------------------------------------------------------------
MediaDefinition.Device(DeviceIndex)
MediaDefinition.Device(DeviceIndex)
.MediaFile(1)
.SequenceNumber =
MediaFile.SequenceNumber;
MediaDefinition.Device(DeviceIndex)
MediaDefinition.Device(DeviceIndex)
.MediaFile(1)
.StartingPositionInFile =
MediaFile.StartingPositionInFile;
MediaDefinition.Device(DeviceIndex)
MediaDefinition.Device(DeviceIndex)
.MediaFile(1)
.NumberOfVolumeIdentifiers =
MediaFile.NumberOfVolumeIdentifiers;
endif;
endif;
//------------------------------------------------------------
// Next device
//------------------------------------------------------------
if Device.OffsetToNextDeviceDefinition > 0;
if Device.OffsetToNextDeviceDefinition > 0;
DeviceOffset +=
DeviceOffset +=
Device.OffsetToNextDeviceDefinition;
endif;
endfor;
end-proc;
endif;
endfor;
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);
end-pi;
end-pi;
dcl-ds QualifiedObject
dcl-ds QualifiedObject
likeds(MD_QualifiedObjectName_T);
dcl-ds Receiver
dcl-ds Receiver
likeds(MD_ApiReceiverBuffer_T);
dcl-ds ApiError
dcl-ds ApiError
likeds(MD_APIError_T);
dcl-s ReceiverLength int(10);
dcl-s ReceiverLength int(10);
//---------------------------------------------------------------
// Qualified media definition name
//---------------------------------------------------------------
QualifiedObject.ObjectName =
QualifiedObject.ObjectName =
MediaDefinition.MediaDefinitionName;
QualifiedObject.LibraryName =
QualifiedObject.LibraryName =
MediaDefinition.LibraryName;
//---------------------------------------------------------------
// Initialize receiver buffer and error structure
//---------------------------------------------------------------
clear Receiver;
clear ApiError;
clear Receiver;
clear ApiError;
ApiError.BytesProvided =
ApiError.BytesProvided =
%size(ApiError);
ReceiverLength = %size(Receiver.Data);
ReceiverLength = %size(Receiver.Data);
//---------------------------------------------------------------
// Retrieve TAPE0200 definition
//---------------------------------------------------------------
QSRRTVMD(
QSRRTVMD(
QualifiedObject :
Receiver.Data :
ReceiverLength :
@@ -237,10 +237,10 @@
// Check API error
//---------------------------------------------------------------
if ApiError.BytesAvailable > 0;
if ApiError.BytesAvailable > 0;
// zunchst nur Fehler zurckgeben/anzeigen
endif;
endif;
// MD_CheckApiError(ApiError);
end-proc;
end-proc;