erstes Mediafiel im Parser
This commit is contained in:
+40
-23
@@ -1,4 +1,4 @@
|
|||||||
**FREE
|
**free
|
||||||
//========================================================================
|
//========================================================================
|
||||||
//
|
//
|
||||||
// Media Definition Parser
|
// Media Definition Parser
|
||||||
@@ -18,8 +18,6 @@ ctl-opt
|
|||||||
// /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
|
||||||
@@ -28,7 +26,6 @@ dcl-pr MD_ParseRetrieveBuffer;
|
|||||||
|
|
||||||
MediaDefinition
|
MediaDefinition
|
||||||
likeds(MD_MediaDefinition_T);
|
likeds(MD_MediaDefinition_T);
|
||||||
|
|
||||||
end-pr;
|
end-pr;
|
||||||
|
|
||||||
//=====================================================================
|
//=====================================================================
|
||||||
@@ -53,27 +50,28 @@ dcl-proc MD_ParseRetrieveBuffer;
|
|||||||
|
|
||||||
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
|
||||||
|
likeds(MD_Tape0200MediaFileDefinition_T);
|
||||||
|
|
||||||
|
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
|
||||||
//---------------------------------------------------------------
|
//---------------------------------------------------------------
|
||||||
@@ -84,7 +82,6 @@ dcl-proc MD_ParseRetrieveBuffer;
|
|||||||
1 :
|
1 :
|
||||||
%size(Header));
|
%size(Header));
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------
|
//---------------------------------------------------------------
|
||||||
// Header -> Media Definition
|
// Header -> Media Definition
|
||||||
//---------------------------------------------------------------
|
//---------------------------------------------------------------
|
||||||
@@ -104,7 +101,6 @@ dcl-proc MD_ParseRetrieveBuffer;
|
|||||||
MediaDefinition.SaveFormat =
|
MediaDefinition.SaveFormat =
|
||||||
Header.SaveFormat;
|
Header.SaveFormat;
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------
|
//---------------------------------------------------------------
|
||||||
// Device Definitions
|
// Device Definitions
|
||||||
//---------------------------------------------------------------
|
//---------------------------------------------------------------
|
||||||
@@ -121,7 +117,6 @@ dcl-proc MD_ParseRetrieveBuffer;
|
|||||||
DeviceOffset + 1 :
|
DeviceOffset + 1 :
|
||||||
%size(Device));
|
%size(Device));
|
||||||
|
|
||||||
|
|
||||||
//------------------------------------------------------------
|
//------------------------------------------------------------
|
||||||
// Device -> Media Definition
|
// Device -> Media Definition
|
||||||
//------------------------------------------------------------
|
//------------------------------------------------------------
|
||||||
@@ -132,6 +127,40 @@ dcl-proc MD_ParseRetrieveBuffer;
|
|||||||
MediaDefinition.Device(DeviceIndex).NumberOfMediaFiles =
|
MediaDefinition.Device(DeviceIndex).NumberOfMediaFiles =
|
||||||
Device.NumberOfMediaFileDefinitions;
|
Device.NumberOfMediaFileDefinitions;
|
||||||
|
|
||||||
|
//---------------------------------------------------------------
|
||||||
|
// First Media File
|
||||||
|
//---------------------------------------------------------------
|
||||||
|
|
||||||
|
if Device.NumberOfMediaFileDefinitions > 0;
|
||||||
|
|
||||||
|
MediaOffset =
|
||||||
|
Device.OffsetToFirstMediaFileDefinition;
|
||||||
|
|
||||||
|
MediaFile =
|
||||||
|
%subst(
|
||||||
|
ReceiverBuffer :
|
||||||
|
MediaOffset + 1 :
|
||||||
|
%size(MediaFile));
|
||||||
|
|
||||||
|
//------------------------------------------------------------
|
||||||
|
// Media File -> Media Definition
|
||||||
|
//------------------------------------------------------------
|
||||||
|
|
||||||
|
MediaDefinition.Device(DeviceIndex)
|
||||||
|
.MediaFile(1)
|
||||||
|
.SequenceNumber =
|
||||||
|
MediaFile.SequenceNumber;
|
||||||
|
|
||||||
|
MediaDefinition.Device(DeviceIndex)
|
||||||
|
.MediaFile(1)
|
||||||
|
.StartingPositionInFile =
|
||||||
|
MediaFile.StartingPositionInFile;
|
||||||
|
|
||||||
|
MediaDefinition.Device(DeviceIndex)
|
||||||
|
.MediaFile(1)
|
||||||
|
.NumberOfVolumeIdentifiers =
|
||||||
|
MediaFile.NumberOfVolumeIdentifiers;
|
||||||
|
endif;
|
||||||
|
|
||||||
//------------------------------------------------------------
|
//------------------------------------------------------------
|
||||||
// Next device
|
// Next device
|
||||||
@@ -141,16 +170,10 @@ dcl-proc MD_ParseRetrieveBuffer;
|
|||||||
|
|
||||||
DeviceOffset +=
|
DeviceOffset +=
|
||||||
Device.OffsetToNextDeviceDefinition;
|
Device.OffsetToNextDeviceDefinition;
|
||||||
|
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
endfor;
|
endfor;
|
||||||
|
|
||||||
|
|
||||||
end-proc;
|
end-proc;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//=====================================================================
|
//=====================================================================
|
||||||
//
|
//
|
||||||
// MD_RetrieveMediaDefinition
|
// MD_RetrieveMediaDefinition
|
||||||
@@ -165,10 +188,8 @@ dcl-proc MD_RetrieveMediaDefinition export;
|
|||||||
|
|
||||||
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);
|
||||||
|
|
||||||
@@ -190,7 +211,6 @@ dcl-proc MD_RetrieveMediaDefinition export;
|
|||||||
QualifiedObject.LibraryName =
|
QualifiedObject.LibraryName =
|
||||||
MediaDefinition.LibraryName;
|
MediaDefinition.LibraryName;
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------
|
//---------------------------------------------------------------
|
||||||
// Initialize receiver buffer and error structure
|
// Initialize receiver buffer and error structure
|
||||||
//---------------------------------------------------------------
|
//---------------------------------------------------------------
|
||||||
@@ -220,10 +240,7 @@ dcl-proc MD_RetrieveMediaDefinition export;
|
|||||||
if ApiError.BytesAvailable > 0;
|
if ApiError.BytesAvailable > 0;
|
||||||
|
|
||||||
// zun�chst nur Fehler zur�ckgeben/anzeigen
|
// zun�chst nur Fehler zur�ckgeben/anzeigen
|
||||||
|
|
||||||
endif;
|
endif;
|
||||||
|
|
||||||
// MD_CheckApiError(ApiError);
|
// MD_CheckApiError(ApiError);
|
||||||
|
|
||||||
|
|
||||||
end-proc;
|
end-proc;
|
||||||
Reference in New Issue
Block a user