All discussion to this point has been of inputs and
outputs pertaining to the system and method to privatize data 0110. FIGURE 16 introduces
intermediate objects 0280 which support the processing required to convert inputs to outputs.
There are ten such objects or groupings of objects. Variable names are shown for some of the
elements in the support groups; these names are drawn from the microfiche appendix
accompanying this patent application; see in particular the header file "PryvitDL.h".
(1) Intermediate object group 1610 comprises support
for 16 concurrently active original data files 0220. The user's original data files 0220
are unpredictable in size and number. There is no assurance that it is safe to read an
entire file into random access memory. Hence each such file is brought one segment at a
time into a specific one of 16 original data buffers. The primary members of intermediate
object group 1610 are 16 original data buffers 1612, and a current input identifier 1613.
The latter is a value from 0 to 15 which designates which of the up to 16 members of the
group is being currently referenced.
Most operating systems allow more than 16 file streams
to be open at one time, but not necessarily 32 or more. The limit of 16 open file streams
is selected both because it is supported by all relevant operating systems, and further
because it allows a file that is open to be completely identified by a four bit value 0
through 15. The result is that references to one of the user's original data files 0220
can be compressed to four bits within the reconstitution plan 1270.
The original data buffers 1612 take the form of an
array of one byte integers named "OrigBuff[16][2048]". (The value 2048 is arbitrary; any
value may be selected that is appropriate for memory management under the implementation's
selected operating system and computer language.) The current input identifier 1613,
that is, the currently referenced member in the support group 1610, is identified by an
integer "CurrOrigNo" (value 0 to 15) drawn from a fragment guide 1640. Other relevant
variables in intermediate object group 1610 are: (a) integer "sizeOrigFile[16]" = the
size of each original data file 0220 currently open, (b) integer "TimeStamp[16]" = the
date and time of each such original data file, (c) integer "OrigDirLocn[16]" = the
offset within the location strings 1410 of each such file's directory location, (d)
file stream pointers "fpOrig[16]" = operating system access to up to 16 currently open
original data files 0220, (e) integer "ptOrigBuff[16]" = pointers within each buffer,
and (f) single byte integer "OrigStreamActive[16]" = a flag to indicate for each stream
whether it is currently active / open, with 0 indicating inactive and 1 indicating
normal operations.