Checkpoint Commander - User Guide

Result sets and XSPFs

Author: Will Dickson, CCS
Author: John Dickson, CCS
Version: 1.0.0
Date: 06 August 2007

What are result sets?

A result set is a special kind of Checkpoint Commander device. Other kinds of device - "regular" devices - store files directly, whereas a result set stores references to files which are actually held on other (open) devices. These references can mostly, but not always, be treated as though they were the files themselves.

Files (strictly, file references, but we'll mostly use the looser term for the sake of brevity) in a result set are ordered. Initially they appear in the order in which they were added, but you can rearrange them afterwards. In contrast, files in a regular device are sorted - they are automatically arranged into a fixed order, as defined on the Options menu.

The same file can appear multiple times within the same result set. In contrast, a folder in a regular device can only contain one file which has a given filename. [Clearly two differently-named files can contain the same content, but they're treated as separate files.]

A result set does not have a folder structure. If you put a (reference to a) folder into the result set, it's treated much like an ordinary file.

[The mathematically inclined will have noted from the above that a result set isn't really a set at all. However, the mathematically accurate description - "result ordered bag" - was felt not to be punchy enough. :-)

Creating result sets

Creating result sets from scratch

To create an empty result set, use Do|New result set.

Find files or folders

Creating an empty result set

You can then populate it by copying references into it.

Find files or folders

Populating the result set

Creating result sets with the search function

To generate a result set which shows files matching a set of search criteria, use the Find files or folders function from the Tools menu. It brings up a large, but fairly self-explanatory, dialog box.

Find files or folders

Find files or folders
The search result set

The search result set
  • The text you enter in the "find files matching" box is a regular expression which will be compared to the file name of each file in the search area you specify. This regular expression is rather simplified: * (asterisk) matches zero or more characters, ? matches exactly one character, but everything else is taken as a literal. The more sophisticated regular-expression syntaxes supported by e.g. many functions in unix are not supported.
  • Note that the Windows find-files-or-folders sometimes second-guesses you, by effectively adding * wildcards in various places if you seem to have forgotten. Checkpoint Commander does what it's told instead.
  • You can do multiple selections on the list of devices in just the same way as for files in a panel; see above.
  • If you specify left / right panel selection as the source, Checkpoint Commander will take a strictly legalistic view of it, and only search in what you have actually selected in the appropriate panel. This can be slightly irritating until you get used to it, but allows more selective searches. To get the sloppier behaviour found elsewhere, do a Ctrl+A in the appropriate panel first (see above).
  • As the dialog hints, you can get more advanced searches by short-circuiting the selection criterion in this dialog (by using * to return everything) and using smart recursion (see below) instead.

If you OK this dialog, Checkpoint Commander opens a new device for the results of the search, and starts to fill it. This process may take a while; you'll see the results as they come in.

This result set is only corresponds to the search criteria at the time when the search was made: if files or folders are added or removed subsequently, the result set is not updated to reflect this. If the folder listings in the search are being modified (by some other application) while the search is going on, there is no guarantee that the result set will be any kind of consistent snapshot. However, most users won't need to care about this.

Caution! Result sets may contain (references to) folders. If you perform operations on these folders (references) you can get results which might be a lot more dramatic than you intended. Watch your step!

Modifying result sets

When you've created your result set, via whichever means, you can modify it using the normal operations which apply to regular devices.

Hint: since a result set is a device, you can use Tools|Find files or folders to search within a result set. This creates a second result set which is a subset of the first. You can, if you wish, search again within the second result set, and so on.

File references don't nest. If you copy a file reference from one result set to another, the second result set gets another reference to the file itself - it doesn't get a reference to the first reference! (If you don't understand this, don't worry - it's a fairly obscure point. Basically it works the way you'd expect.)

Using result sets

There are a whole range of different ways to use result sets. A few ideas:

  1. Track down files that seem to have wandered off into the wrong folder. Discover files that you had completely forgotten about, or never knew you had. For example:
    • Search for files matching *.htm* across all your hard drives.
    • Surf through the results using the Checkpoint Commander browser interface.
    • Quickly discover what is in each file.
  2. The same technique can be used with Checkpoint Commander's tracking viewers for text files, audio files (mp3, flac and ogg-vorbis) and images. If you launch a tracking viewer against a file (reference) in a result set, it will track through the result set.
  3. Save the result set as an XSPF. Feed the XSPF directly to applications or plugins to use as a playlist. This technique can be used with VLC media player to quickly search through large collections of video files.
  4. Assemble a playlist to burn to a mix CD.
    • Assemble the playlist as a result set, with files from anywhere on your system.
    • Create an empty disk folder and copy the result set into it. (This copies every file in the result set into that disk folder.)
    • Burn the CD using your normal CD burning software.
  5. Use Checkpoint Commander to assemble a set of files and an XSPF playlist to bind them together, for use as a complete set with some other application. (Eg. upload the set into Checkpoint Chameleon).

Saving and re-opening result sets with XSPF

Checkpoint Commander saves result sets in a new, open format called XSPF - the XML Shareable Playlist Format [111]. XSPF which fixes the major problems which are shared by older, ad-hoc playlist formats such as M3U.

Checkpoint Commander stores results using one of two slightly different location schemes. Both are equally valid XSPF, but the resulting XSPF files have different advantages and limitations.

Full-featured
This scheme includes an encoded "handle" for the device each file belongs to. Practical upshot:
  • Can include files from multiple devices.
  • Saved file references are absolute: if you move the saved result set, the references won't change with it, and will continue to point to the original files.
  • Can be used (as a playlist) by any Checkpoint Commander plugin which is XSPF-aware. [At time of writing, this is only the audio player.]
  • Can be used as a playlist by any helper app which is XSPF-aware. NB. this only works when the helper app is launched by Checkpoint Commander, as a helper app. [In this situation, Checkpoint Commander is "in the loop" and can decode the device handles on the helper app's behalf.]
  • Cannot be used directly by other applications (only Checkpoint Commander understands the device handles).
Restricted capabilities
This omits the device handle and relativises each file location URL with respect to the URL of the XSPF itself. Practical upshot:
  • All files in the result set must belong to the same device.
  • The XSPF file must be stored there as well.
  • The XSPF file will break if moved relative to the files it points to.
  • If you move en bloc both an XSPF and every file it refers to, it will work, and will refer to the files in their new locations.
  • Can be used (as a playlist) by any Checkpoint Commander plugin which is XSPF-aware.
  • Can be used as a playlist by any application which is XSPF-aware, regardless of how it was launched.
  • Can be used to create pre-packaged playlist / content filesets for use with other applications.

If your result set can't be saved as restricted-capabilities (usually this is because it contains references to files from more than one device), then the option will be greyed out.

Don't feel you have to use full-featured saves just because you only intend to use the result with Checkpoint Commander. Sometimes the relative references of a restricted-capabilities save are more useful than the absolute ones of a full-featured save.

To re-open a saved result set, use the result-set opener plugin.

Checkpoint Commander cannot currently read XSPFs from other applications as result sets. However, Checkpoint Commander plugins which can read XSPFs directly, can use such XSPFs as playlists.

Operations on result sets

Operations on files

Because result sets contain references to files and folders held on regular devices, rather than the files and folders themselves, operations on a result set behave slightly differently from the same operation on a "real" device. The tables below specify exactly what happens.


Operations on files
Operation Source Target Meaning
Copy Real Real Copy file from source into target
Copy Real Result Generate reference to source, in target (files unchanged)
Copy Result Real Copy file pointed to by source, into target
Copy Result Result Copy reference (files unchanged)
 
Move Real Real Copy file, then wipe from source
Move Real Result Forbidden (not meaningful)
Move Result Real Copy file pointed to by source into target, then wipe it from its original location
Move Result Result Copy reference, then remove reference from source
 
Wipe Real N/A Destroy file on filesystem
Wipe Result N/A Destroy file pointed to (and remove reference)
 
Delete Real N/A Forbidden (use Wipe instead)
Delete Result N/A Remove reference (files unchanged)

[NOTE] When Copying or Moving files from a result set to a real folder, all the files you specify will go into that folder, regardless of what folders the source files are in. Thus if the result set contains two files with the same name, but in different folders, one will copied over the other. If "confirm irreversible actions" is on, Checkpoint Commander will ask you first; otherwise, it won't.

Operations on folders

Behaviour when transferring folders is similar, but takes into account the fact that while a result set can hold a reference to a folder somewhere else, a real folder can't do this (in general) and so the entire tree of files and subfolders pointed to is affected.


Operations on folders
Operation Source Target Meaning
Copy Real Real Recursively copy the folder and all its contents from source into target
Copy Real Result Generate reference to source folder, in target (files unchanged)
Copy Result Real Recursively copy the folder pointed to by source, and all its contents, into target
Copy Result Result Copy reference (files unchanged)
 
Move Real Real Copy file, then wipe from source
Move Real Result Forbidden (not meaningful)
Move Result Real Recursively copy the folder pointed to by source, and all its contents, into target, then wipe everything from its original location
Move Result Result Copy reference, then remove reference from source
 
Wipe Real N/A Recursively destroy folder on filesystem, and all its contents
Wipe Result N/A Recursively destroy folder pointed to on filesystem, and all its contents (and remove reference)
 
Delete Real N/A Forbidden (use Wipe instead)
Delete Result N/A Remove pointer (files unchanged)

Authored in CXD using Checkpoint Information Engineering Workbench   Copyright © Caversham Computer Services Ltd.