The virtual catalog DLL design is now locked and the draft is in test.
At the end, I have only three main functionalities
- Code: Select all
Rank => minlex solution grid
Solution grid => rank
Sequential processing on a virtual file
Rank => minlex solution gridHere nothing special, the DLL send back the solution grid for the given rank
Solution grid => rankThe solution grid can be minlex or not
And the source can be char 1-9 or integer 0-8
This gives four different calls.
If the solution grid is not minlex, all data of value used in the minlexing are sent back.
Sequential processing on a virtual fileFor anybody willing to work on the solution grids, we have then one way to do it:
Have an external loop on a slice of ranks,
Get the solution grid using the relevant call.
This is not a nice way to do it.
The DLL offers another way, a sequential access to a “virtual file”
The calling program must first open the virtual file, then get the “virtual records of solution grids”.
The file must process a chunk of partial solution with the first four rows known using internal tables.
In the first release, the call is for a chunk of “first bands”.
The reason to do so is quite simple. In the process, for each row 4 (four rows) known to have solution grids, a catalog builder is run to produce the attached solution grids.
This can be 63000 attached solution grids, and this is the only point where the process can be cut.
So, the “virtual file” proposed is in fact
Loop on the chunk of rows 4 asked
Produce the attached file
Delivers them in sequential mode.
With the GetNext () call, the process works in a slightly different way
Take the next in the buffer of attached solution grids
If the last one has been delivered, take the next row 4 and fill the buffer.
Do this till the last row 4.
In this mode, the average solution grid “get” is expected far below the millisecond
Control of the process and exchange file.The user has first to tell what is expected (which of the three options).
Also, an exchange structure pointer must be shared. This is used to send back more than only the rank or the solution grid.
Some details are still to be adjusted, but the ongoing test is nearly ready to be released.
I’ll do it in a separate thread with a new repository containing
the code,
the DLLs used,
the user .h files
and a sample code using the DLL