|
Description  |
|
|
INCORPORATION BY REFERENCE
U.S. patent application Ser. No. 07/368,703 filed Jun. 19, 1989, in the
name of Robert L. Travis and William R. Laurune and entitled Data
Structure Including External Reference Arrangement, which is incorporated
herein by reference.
U.S. patent application Ser. No. 07/368,697, filed Jun. 19, 1989, in the
name of Carol A. Young and Neal F. Jacobson and entitled Tabular Data
Format, which is incorporated herein by reference.
FIELD OF THE INVENTION
The invention is directed generally to the field of digital computer
systems and more particularly to arrangements for converting structures,
such as file structures, from a source format to a target format.
BACKGROUND OF THE INVENTION
In a digital computer system, computer programs provided by a number of
vendors typically organize data for processing in a number of diverse
formats. Each vendor may use different formats for organizing the data
processed by its programs, with the formats being selected to enhance the
processing by the particular program. Some programs may also include
conversion routines which allow the program to import data from files
having selected formats to a format used by the program, and to export
data from the format used by the program to another format.
Some document interchange formats have been proposed as standard formats
for use by programs, and a number of programs support those formats at
least to the extent that they convert data from the formats normally
processed by them to one or more of the standard document interchange
formats, thereby facilitating export of the data at least to the standard
formats. In addition, typically the same programs will also convert data
from the standard document interchange formats to the formats normally
used by them, thereby facilitating import of the data at least from the
standard formats.
SUMMARY OF THE INVENTION
In brief summary, the invention provides a data structure format conversion
system comprising a front end converter, a back end converter, and a
converter executive. The front end converter converts a source data
structure in a source format to data for an intermediary. The back end
converter converts the data from the intermediary to a target data
structure in a target format. The intermediary includes a domain
conversion arrangement comprising a source domain intermediate data
structure for receiving data from the front end converter in the format
provided by the front end converter, a target domain intermediate data
structure for supplying data to the back end converter in the format
required by the back end converter, and a domain converter for converting
data from the format in the source domain intermediate data structure to
the format for storage in the target domain intermediate data structure.
Finally, a converter executive controls the front end converter and back
end converter to effect a conversion from the source data structure in the
source format to the target data structure in the target format, through
the intermediate format.
In a further aspect, the invention provides a data structure format
conversion system comprising a front end converter, a back end converter,
and a converter executive. The front end converter converts a source data
structure in a source format to data in an intermediate format. The back
end converter converts the data in the intermediate format to a target
data structure in a target format. Finally, a converter executive controls
the front end converter and back end converter to effect a conversion from
the source data structure in the source format to the target data
structure in the target format, through the intermediate format. The
converter executive selects the front end converter and the back end
converter from a plurality of converters, each identified by a name
identifying the respective formats converted thereby in response to the
respective names. To accomplish that, the converter executive includes an
intermediary selection portion for determining whether the format provided
by a selected front end converter corresponds to the format required by a
selected back end converter. An intermediate data structure portion
responsive is to a positive determination by the intermediary selection
portion for establishing an intermediate data structure to facilitate
transfer of data in the intermediate format from the front end converter
to the back end converter. Finally, a domain conversion portion responsive
to a negative determination by the intermediary selection portion for
establishing a domain conversion arrangement to facilitate conversion of
data in the intermediate format provided by the front end converter to the
intermediate format required by the back end converter.
In yet a further aspect, the invention provides a data structure format
conversion system comprising a front end converter, a back end converter,
and a converter executive. The front end converter converts a source data
structure in a source format to data in an intermediate format. The back
end converter converts the data in the intermediate format to a target
data structure in a target format. Finally, a converter executive controls
the front end converter and back end converter to effect a conversion from
the source data structure in the source format to the target data
structure in the target format, through the intermediate format. The front
end converter and the back end converter operate iteratively in connection
with sequential portions of the source data structure, the back end
converter iteratively generating data requests which enable the converter
executive to, in turn, enable the front end converter to perform a
conversion operation in connection with a next sequential portion of the
source data structure.
In yet a further aspect, the invention provides a data structure format
conversion system comprising a front end converter, a back end converter,
and a converter executive. The front end converter converts a source data
structure in a source format to data in an intermediate format. The back
end converter converts the data in the intermediate format to a target
data structure in a target format. Finally, a converter executive controls
the front end converter and back end converter to effect a conversion from
the source data structure in the source format to the target data
structure in the target format, through the intermediate format. The front
end converter and the back end converter operate iteratively in connection
with sequential portions of the source data structure, the back end
converter iteratively generating data requests which enable the converter
executive to, in turn, enable the front end converter to perform a
conversion operation in connection with a next sequential portion of the
source data structure. The back end converter further generates position
requests, the converter executive enabling the front end converter to
generate position information in response thereto for use by the back end
converter.
In yet a further aspect, the invention provides a method of converting a
data structure from a source structure to a target structure comprising
the steps of converting a source data structure in a source format to data
in a source domain intermediate data structure, converting the source
domain intermediate data structure to a target domain intermediate data
structure and converting the data in the target domain intermediate format
to a target data structure in a target format.
BRIEF DESCRIPTION OF THE DRAWINGS
This invention is pointed out with particularity in the appended claims.
The above and further advantages of this invention may be better
understood by referring to the following description taken in conjunction
with the accompanying drawings, in which:
FIG. 1 depicts a functional block diagram of a conversion system, for use
in connection with a digital computer system, constructed in accordance
with the invention;
FIGS. 2A through 2D depict flow diagrams illustrating the operation of the
conversion system depicted in FIG. 1;
FIG. 3 is a block diagram useful in understanding a data structure for a
"DOCUMENT" intermediate data format;
FIGS. 4A through 4D comprise diagrams depicting various aspects of the
DOCUMENT intermediate data structure;
FIG. 5 depicts a flow chart illustrating a selected processing operation in
connection with the DOCUMENT data structure;
FIGS. 6 through 10D illustrate data structures, at various levels of
detail, of a "TABULAR" intermediate data format; and
FIG. 11 depicts a flow chart illustrating a selected processing operation
in connection with the TABULAR data structure.
DETAILED DESCRIPTION OF AN ILLUSTRATIVE EMBODIMENT
FIG. 1 depicts a functional block diagram of a data format conversion
system 10, for use in connection with a digital computer system,
constructed in accordance with the invention. With reference to FIG. 1,
the conversion system 10 includes an executive converter 11 which receives
a conversion command from a command source 12. The command source may
comprise, for example, an operator input system, such as a video display
terminal, through which the operator may enter a conversion command
through the operating system command line. Alternatively, the command
source 12 may comprise an applications program that requires a conversion
from a source format to a target format.
A conversion command from command source 12 includes the identification of
the source structure to be converted, the identification of the
destination structure to be created, and also the source format and the
target format. The data format conversion system 10 includes a plurality
of converters stored in a converter store 13, which may be located in a
known location in the digital computer system, such as one or more
directories in a disk storage system (not shown). Each converter in
converter store 13 converts data between a source structure and one of a
plurality of known intermediate formats, such as, for example, formats
identified as DOCUMENT and TABULAR formats, or between one of the
intermediate formats and a target format. In response to the conversion
command, the converter executive 11 selects one or two converters, as
described below, with one of the selected converters comprising a front
end converter 14 and the other comprising a back end converter 15.
The details of one embodiment of the illustrative DOCUMENT format are
described in U.S. patent application Ser. No. 07/368,703, filed on even
date herewith, in the name of Robert L. Travis and William R. Laurune and
entitled Data Structure Including External Reference Arrangement, which is
incorporated herein by reference, and the details of the illustrative
TABULAR format are described in U.S. patent application Ser. No.
07/368,697, filed on even date herewith, in the name of Carol A. Young and
Neal F. Jacobson and entitled Tabular Data Format, which is also
incorporated herein by reference.
The front end converter 14, selected by the converter executive 11,
converts source data structure 16 to an output data structure for an
intermediary 17, and the back end converter 15, selected by the converter
executive 11, converts a data structure from the intermediary 17 to a
target data structure 20. The source data structure 16 and the target data
structure 20 may comprise in-memory data structures, or they may be data
structures stored in files on disk or other non-volatile mass storage.
The intermediary 17 may take one of two forms. If the front end converter
14 selected by the converter executive 11 generates an output data
structure having the same intermediate format as that used by the back end
converter 15 as its input, the converter executive 11 uses an intermediate
data structure 21 as its intermediary 17. For example, if the front end
converter 14 generates an output data structure having the DOCUMENT
format, and the back end converter 15 uses an input data structure having
the DOCUMENT format, both of them use the intermediate data structure 21
as the intermediary 17. Similarly, if the front end converter 14 generates
an output data structure having the TABULAR format, and the back end
converter 15 uses data in the TABULAR format as its input, both of them
use the intermediate data structure 21 as the intermediary. The
intermediate data structure 21 may be an in-memory data structure, or a
data structure stored in files on disk or other non-volatile mass storage.
On the other hand, if the front end converter 14 generates an output data
structure which has a different format than the format required by the
back end converter 15 for its input data structure, the converter
executive 11 uses a domain conversion arrangement 23 as the intermediary
17. The domain conversion arrangement 23 changes the format of the data
structure produced by the front end converter 14 to the format of the data
structure for use by the back end converter 15. The domain conversion
arrangement 23 includes a domain converter 24 that obtains data from a
source domain intermediate data structure 25, which receives output data
from the front end converter 14, and generates in response thereto a
target domain intermediate data structure 26, which provides input data to
the back end converter 15. The back end converter 15 uses the data in the
target domain intermediate data structure 26 in its conversion operation.
Using the illustrative DOCUMENT and TABULAR formats, if the front end
converter 14 generates data in the source domain intermediate data
structure 25 that is in the DOCUMENT format, the domain converter 24
converts the data in the source domain intermediate data structure 25 from
the DOCUMENT format to the TABULAR format for the target domain
intermediate data structure 26. Similarly, if the front end converter 14
generates data in the source domain intermediate data structure 25 that is
in the TABULAR format, the domain converter 24 converts the data in the
source domain intermediate data structure 25 from the TABULAR format to
the DOCUMENT format for the target domain intermediate data structure 26.
One specific embodiment includes a domain converter 24 which converts from
the DOCUMENT format to the TABULAR format, and another domain converter
which converts from the TABULAR format to the DOCUMENT format. In that
embodiment, the domain converters may be stored in the converters store 13
along with the various format converters and selected by the converter
executive 11 when necessary as described below.
The format conversion system 10 also includes an intermediate source/target
structure 27, which may comprise a target for data from the front end
converter 14 if the conversion command from the converter executive 11
specifies a converted format comprising either the DOCUMENT or the TABULAR
format. In that case, the data output from the front end converter 14, or
the domain conversion arrangement 23, is in the format specified by format
conversion command provided by the command source 12, and so the converter
executive 11 does not need to locate a back end converter 15 to form the
required output format.
Similarly, the intermediate source/target structure 27 may comprise a
source for data for the back end converter 15, either directly or
following domain conversion by the domain conversion arrangement 23, if
the conversion command provided to the converter executive 11 specifies
input data formatted in either the DOCUMENT or the TABULAR format. In that
case, if the back end converter 15 can use, as its input, data that is
formatted as specified in the conversion command, the converter executive
11 can enable the back end converter 15 to use the data from the
intermediate source/target structure 27 directly. On the other hand, if
the back end converter 15 requires data in the other of the DOCUMENT or
TABULAR formats than that specified in the conversion command received by
the converter executive 11, the converter executive 11 enables the domain
conversion arrangement 23 to perform a domain conversion operation to
convert the format of the data in the intermediate source/target structure
27 for use by the back end converter 15.
The operations performed by the various elements depicted in FIG. 1 will be
described in detail in connection with FIGS. 2A through 2D. With reference
to FIG. 2A, the converter executive 11 first receives a conversion command
from the command source 12 (step 50). The conversion command identifies
the formats of the source data structure 16 and target data structure 20
as well as the identification of the file or other source for the source
data structure 16, and the identification of the file or other sink for
the target data structure 20.
After receiving the conversion command, the converter executive 11 searches
for converters in converter store 13 that are satisfactory for converting
from the source format to the target format (step 51). In one embodiment,
the converters all have predetermined name formats identifying them as
either front end converters or back end converters, and identifying the
input and output formats for which they are compatible. That is, the front
end converters all have a name format DOCUMENT$READ.sub.-- <SRC.sub.--
FORM> or TABULAR$READ.sub.-- <SRC.sub.-- FORM> (where "<SRC.sub.-- FORM>"
represents a format name, that is, the name of the format of the data
structure to be converted, namely, the source structure 16). A front end
converter 14 with a name DOCUMENT$READ.sub.-- <SRC.sub.-- FORM> performs a
format conversion operation between a source format identified by
<SRC.sub.-- FORM> and the DOCUMENT format, and a front end converter 14
with a name TABULAR$READ.sub.-- <SRC.sub.-- FORM> performs a format
conversion operation between a source format identified by <SRC.sub.--
FORM> and the TABULAR format. Similarly, the back end converters 15 all
have a name format DOCUMENT$WRITE.sub.-- <TGT.sub.-- FORM> or
TABULAR$WRITE.sub.-- <TGT.sub.-- FORM> (where "<TGT.sub.-- FORM>"
represents a format name, that is, the name of the format of the data
structure to be created by the conversion, namely, target structure 20),
with a back end converter 15 with a name DOCUMENT$WRITE.sub.-- <TGT.sub.--
FORM> performing a format conversion operation between the DOCUMENT format
and a target format identified by <TGT.sub.-- FORM>, and a back end
converter 15 with a name TABULAR$READ.sub.-- <TGT.sub.-- FORM> performing
a format conversion operation between the TABULAR format and a target
format identified by <TGT.sub.-- FORM>.
Thus, in that embodiment, in performing step 51, the converter executive 11
searches for converters in converter store 13 which identify the source
format <SRC.sub.-- FORM> and target format <TGT.sub.-- FORM> which
correspond to the source format and target format identified in the
conversion command from the command source 12. If it cannot find the
necessary converters (step 52), it sequences to step 53 to return an error
message to the command source 12, and then exits.
On the other hand, if the converter executive 11, in step 52, determines
that it has found the necessary converters from converter store 13, it
sequences to step 54 to establish the located converters as a front end
converter 14 and a back end converter 15. Thereafter, the converter
executive 11 determines whether a domain conversion is required (step 55).
If the front end converter 14 and back end converter 15 established by the
converter executive 11 in step 54 identify different domains, that is, if
the front end converter 14 contains DOCUMENT in its name while the back
end converter 15 contains TABULAR in its name, or if the front end
converter 14 contains TABULAR in its name while the back end converter 15
contains DOCUMENT in its name, a domain conversion is required, and the
converter executive 11 establishes the domain conversion arrangement 23 as
the intermediary 17 (step 56). However, if the converter executive 11
determines in step 55 that both the front end converter 14 and the back
end converter 15 have DOCUMENT in their names, or if it determines that
both have TABULAR in their names, it establishes in step 55 the
intermediate data structure as the intermediary 17.
In step 56, the converter executive 11 operates to select a domain
converter 24 for use in domain conversion arrangement 23 in substantially
the same manner as it selects front and back end converters as described
above. That is, in one embodiment, a domain converter for converting from
the DOCUMENT format to the TABULAR format is named $DOCUMENT.sub.--
TO.sub.-- TABULAR and a domain converter for converting from the TABULAR
format to the DOCUMENT format is named $TABULAR.sub.-- TO.sub.-- DOCUMENT.
In that embodiment, if the converter executive 11, in selecting a front
end converter 14 from the converter store 13, can only locate a front end
converter that has the name DOCUMENT$READ.sub.-- <SRC.sub.-- FORM>, which
converts from the format <SRC.sub.-- FORM> to the DOCUMENT format, and a
back end converter that has the name TABULAR$WRITE.sub.-- <TGT.sub.--
FORM>, which converts from the TABULAR format to the format <TGT.sub.--
FORM>, then the converter 11 selects a domain converter having the name
$DOCUMENT.sub.-- TO.sub.-- TABULAR, which converts from the DOCUMENT
format generated by the front end converter 14, to the TABULAR format
required by the back end converter 15. Conversely, if the converter
executive 11, in selecting a front end converter 14 from the converter
store 13, can only locate a front end converter that has the name
TABULAR$READ.sub.-- <SRC.sub.-- FORM>, which converts from the format
<SRC.sub.-- FORM> to the TABULAR format, and a back end converter that has
the name DOCUMENT$WRITE.sub.-- <TGT.sub.-- FORM>, which converts from the
DOCUMENT format to the format <TGT.sub.-- FORM>, then the converter 11
selects a domain converter having the name $TABULAR.sub.-- TO.sub.--
DOCUMENT, which converts from the TABULAR format generated by the front
end converter 14, to the DOCUMENT format required by the back end
converter 15.
Thereafter, the converter executive 11 sequences to step 57 (FIG. 2B) to
call the front end converter 14, along with the name of the source
structure 16 to be converted. The call may be by any conventional
inter-process or inter-procedure call mechanism. The front end converter
14 receives the call, initializes itself in a conventional manner (step
60) and then opens the identified source structure (step 61). Thereafter,
the front end converter 14 creates a root aggregate for the identified
source structure (step 62). In this operation, the front end converter 14
allocates a portion of its memory space for the source structure 16
identified in the call from the converter executive 11, and inserts there
into selected context information, including pointers to major portions of
the source data structure 16, in particular, pointers to a descriptor
portion, a header portion, and a content portion. The front end converter
14 then returns control to the converter executive 11, along with a
pointer, identified as the root aggregate handle, to the just-created root
aggregate (step 63). Subsequent communications between the converter
executive 11 and the front end converter 14 regarding the conversion of
the source data structure 16 include the root aggregate handle to identify
the communications as relating to that conversion.
When the front end converter 14 returns control to the converter executive
11 (step 63), the converter executive 11 calls the back end converter 15,
identifying the front end converter 14 and the root aggregate handle (step
64). As with the call to the front end converter 14 in step 57, the call
to the back end converter 15 may be made by means of any conventional
inter-process or inter-procedure call mechanism. The back end converter 15
then initializes itself (step 65) and calls the converter executive 11 for
a conversion operation, the call identifying the root aggregate handle and
the front end converter 14 (step 66). The converter executive 11, in turn,
calls the front end converter 14 identified in the call from the back end
converter 15, identifying the root aggregate handle (step 67).
Upon receiving the call from the converter executive 11, the front end
converter 14 performs a conversion operation in connection with the source
data structure 16 to generate an intermediate aggregate. In this
operation, the converter executive 11 may convert the entire source data
structure 16, or only a portion thereof, sufficient to provide at least
one aggregate in the intermediate format produced by the front end
converter 14. An aggregate is a manageable portion of the intermediate
format, which is associated with a data type. For example, in the DOCUMENT
format described in the aforementioned Document Data Format patent
application, aggregate types include such categories as the document
descriptor, document header, document segment beginning and end, and
various types of document content, including text, directives, Bezier
curves, lines, arcs, references to external information, and so forth.
Similarly, in the TABULAR format described in the aforementioned Tabular
Data Format patent application, aggregate types include such categories as
the descriptor, header, and tables.
The front end converter 14, while performing its conversion operation,
iteratively generates, from the source data structure 16, sufficient
information from the source data structure 16 to produce at least one
aggregate. The specific details of the conversion operation depend on the
format of the source data structure 16 and the particular intermediate
format comprising the output of the front end converter 14. If the front
end converter 14 loads an entire source data structure 16 into memory for
processing, it converts the entire source data structure 16 at that point,
iteratively producing aggregates and passing them to the converter
executive 11 for storage in either the intermediate data structure 21 or
the source domain intermediate data structure 25, depending on whether the
converter executive 11 determined that a domain conversion was required.
On the other hand, if the front end converter 14 does not load the entire
source data structure 16 into memory it converts only an aggregate at a
time, upon request from the converter executive 11, beginning with the
header, and descriptor aggregates and proceeding sequentially through the
source data structure 16 for the remaining portions thereof. In addition,
the front end converter 14 provides to the converter executive 11 status
information regarding the status of the conversion along with the
converted aggregate, in particular indicating when it has completed
conversion of the entire source data structure 16.
Following the conversion of either the entire source data structure 16 or
an aggregate (step 70), front end converter 14 returns control to the
converter executive 11. The converter executive 11 then determines whether
a domain conversion is required (step 71), and if so calls the domain
converter 24 to perform the conversion in connection with the source
domain intermediate data structure 25 to form the target domain
intermediate data structure 26 (step 72). This occurs if the converter
executive 11 has previously established the domain conversion arrangement
23 as the intermediary 17. Following step 72, or step 71 if the converter
executive 11 determines that domain conversion is not necessary, the
converter executive 11 calls the back end (step 73).
Upon receiving the call from the converter executive 11 (step 73), the back
end converter 15 determines whether the information provided by the
intermediary 17, comprising either the intermediate data structure 21 or
the target domain intermediate data structure 26, indicates that the
entire source data structure 16 has been converted (step 74). This occurs
if the front end converter 14 has notified the converter executive 11, in
the call in step 70, that it has completed conversion of the entire source
data structure 16 as indicated above. If not, the back end converter 15
sequences to step 75 to perform a conversion of the aggregate in either
the intermediate data structure 21 or the target domain intermediate data
structure 26 from the intermediate format to form the target data
structure 20. As with the front end converter 14 noted above, the specific
operations performed by the back end converter 15 in performing the
conversion will depend on the intermediate format and the specific format
of the target data structure 20. After performing the conversion on the
aggregate provided by the intermediary 17, the back end converter 15
returns to step 66 to request the next aggregate from the converter
executive 11.
If the back end converter 15 determines, in step 74, that the entire source
data structure 16 has been converted, it sequences to step 76 to close the
target data structure 20. In this operation, the back end converter 15
may, if necessary, write the target data structure 20 to a disk file, and
eliminate any in-memory data structures which it used for performing the
format conversion to the target format. Thereafter, the back end converter
15 calls the converter executive 11, indicating completion of the
conversion operation (step 76), after which it exits.
In response to notification from the back end converter 15 that the
conversion operation has been completed, the converter executive 11 calls
the front end converter 14, indicating that the conversion operation has
been completed (step 77). The front end converter 14 also closes the
source data structure 16 (step 80), and eliminates in-memory data
structures which it used during the conversion, including the root
aggregate established during step 62 (FIG. 2B). The front end converter 14
then, exits, returning control to the converter executive 11. The
converter executive 11 then returns the conversion status and the
identification of the target data structure 20 to the command source 12,
after which it exits, thereby completing the conversion operation.
It will be appreciated that, if the conversion command from the command
source 12 indicates that the format of the source data is in either the
DOCUMENT format or the TABULAR format, the converter executive 11 does
not, in step 51, need to search for a front end converter 14, but instead
uses the intermediate source/target data structure 27 as the source of the
data to be converted. The converter executive 11 operates, in conjunction
with the back end converter 15, as a front end converter to the extent
that it converts either the entire intermediate source/target data
structure 27, if it can load it into memory, or an aggregate at a time on
request from the back end converter 15 as described above. In addition,
the converter executive 11 uses the particular intermediary 17 as required
by the format of the intermediate source/target data structure 27 and the
input format of required by the back end converter 15. That is, if the
format of the intermediate source/target data structure 27 is the same as
that required by the back end converter 15 as its input, the converter
executive 11 uses the intermediate data structure 21 as the intermediary
17. On the other hand, if the format of the intermediate source/target
data structure 27 differs from that required by the back end converter 15
as its input, the converter executive 11 uses the domain conversion
arrangement 23 to perform the required domain conversion.
Similarly, if the conversion command from the command source 12 indicates
that the format of the target data is in either the DOCUMENT format or the
TABULAR format, the converter executive 11 does not, in step 51, need to
search for a back end converter 15, but instead uses the intermediate
source/target data structure 27 as the target of the data that was
converted. The converter executive 11 operates, in conjunction with the
front end converter 14, as a back end converter to the extent that it
receives the output from the front end converter 14 as the intermediate
source/target data structure 27, if it is in the proper DOCUMENT or
TABULAR format as required by the conversion command. However, if the
output of the front end converter 14 is not in the format required by the
conversion command, the converter executive 11 enables the domain
conversion arrangement 23 to perform the required domain conversion to
produce the intermediate source/target data structure 27.
With this background, the operations of a front end converter 14 and a back
end converter 15 will now be generally described. A front end converter 14
comprises a procedure which essentially has four entry points, including a
main calling entry point, which the converter executive 11 uses to
initially call the front end converter 14 (in step 57, FIG. 2B), a
GET.sub.-- AGGREGATE entry point, a GET.sub.-- POSITION entry point, and a
CLOSE entry point. The main calling point is identified by the front end
converter's name, as described above, and enables the converter executive
11 and front end converter 14 to establish a context, pass the
identification of the source data structure 16, establish various
processing options, and enable the front end converter 14 to return
pointers to the other entry points. In calling the front end converter 14
through the main entry point, the converter executive 11 supplies a
converter context value and a pointer to a location in which the front end
converter 14 may insert a returned context value which is used in
subsequent call operations through the GET.sub.-- AGGREGATE, GET.sub.--
POSITION and CLOSE entry points as described below. This front end
converter-supplied context value is used to disambiguate conversion
operations if the front end converter 14 is being used to convert multiple
source data structures 16 contemporaneously. The converter executive 11
also supplies pointers to locations in which the called front end
converter 14 can supply the pointers to the GET.sub.-- AGGREGATE,
GET.sub.-- POSITION and CLOSE entry points. In response to a call through
its main entry point, as described above the front end converter 14
allocates memory space for the source data structure 16, or at least a
portion thereof, in a conventional manner.
The GET.sub.-- AGGREGATE entry point is used by the converter executive 11
(in step 67 FIG. 2C) to enable the front end converter 14 to provide the
next aggregate during an incremental conversion operation. In calling
through this entry point, the converter executive 11 identifies the
context value supplied by the front end converter 14 in response to the
call through the main entry point (step 57), a pointer to a buffer to
receive the aggregate, and a pointer to a locatio | | |