HDK
|
#include <PDG_FileUtils.h>
Public Types | |
enum | TransferType { eTransferTempDir, eTransferWorkingDir, eTransferScript, eTransferAsset } |
Enumeration of file transfer destination paths. More... | |
using | ViewerPair = std::pair< UT_StringHolder, bool > |
Public Member Functions | |
const UT_StringSet & | tags () const |
Returns the set of available tags. More... | |
void | tags (const UT_StringHolder &prefix, UT_StringArray &sorted_tags) const |
Returns the sorted list of tags for the given prefix. More... | |
bool | isViewable (const UT_StringHolder &tag) const |
Returns true if the tag is viewable. More... | |
const ViewerPair & | tagToViewer (const UT_StringHolder &tag) const |
Looks up the viewer application for a tag. More... | |
const ViewerPair & | pathToViewer (const UT_StringHolder &path) const |
Loops up the viewer application for a path. More... | |
const UT_StringHolder & | pathToTag (const UT_StringHolder &path) const |
Looks up the file tag for a full file path. More... | |
const UT_StringHolder & | extensionToTag (const char *ext, const UT_StringHolder &def) const |
Looks up the file tag for an extension. More... | |
UT_StringHolder | pathToExtension (const UT_StringHolder &path) const |
void | addTag (const UT_StringHolder &tag) |
void | addExtensionTag (const UT_StringHolder &ext, const UT_StringHolder &tag) |
Adds an extension -> tag mapping. More... | |
void | addTagViewer (const UT_StringHolder &tag, const UT_StringHolder &viewer, bool is_multiviewer=false) |
Adds a tag -> viewer application mapping. More... | |
bool | checkCached (const UT_StringHolder &local_path, const PDG_File &file, const PDG_WorkItem *work_item) const |
Checks if a given file path is cached. More... | |
bool | statFile (const UT_StringHolder &local_path, const PDG_File &file, const PDG_WorkItem *work_item, PDG_File::Hash &file_hash, exint &file_size) const |
Returns the hash/mod time of the file. More... | |
void | dirtyFiles (const PDG_WorkItem *work_item, const PDG_File::Set &files, bool delete_items, bool remove_outputs) const |
bool | transferFile (const PDG_Scheduler *scheduler, const PDG_WorkItem *work_item, const PDG_File &file, TransferType default_type, bool check_type, UT_WorkBuffer &errors) const |
bool | transferFile (const PDG_Scheduler *scheduler, const PDG_WorkItem *work_item, const PDG_File &file, const UT_StringHolder &root_path, const UT_StringHolder &sub_path, TransferType default_type, bool check_type, UT_WorkBuffer &errors) const |
UT_StringHolder | formatTransferPath (const PDG_Scheduler *scheduler, const UT_StringHolder &local_path, TransferType default_type, bool local, bool check_type) const |
UT_StringHolder | formatTransferPath (const PDG_Scheduler *scheduler, const UT_StringHolder &root_path, const UT_StringHolder &local_path, const UT_StringHolder &sub_path, TransferType default_type, bool local, bool check_type) const |
Static Public Member Functions | |
static int | compareFilePaths (const UT_StringHolder &left, const UT_StringHolder &right) |
static bool | makeIntermediateDirs (const char *full_path) |
Makes intermediate directories. More... | |
static UT_StringHolder | makeURL (const UT_StringHolder &scheme, const UT_StringHolder &path) |
Formats a URL given a scheme and url body. More... | |
static bool | hasDuplicateFiles (const PDG_File::Array &files, PDG_File::Set &duplicates) |
Static Public Attributes | |
static const UT_StringHolder | theFileTag |
Default tag for any file. More... | |
static const UT_StringHolder | theArchiveTag |
Default tag for an archive. More... | |
static const UT_StringHolder | theCsvTag |
Default tag for an archive. More... | |
static const UT_StringHolder | theGeoTag |
Default tag for geometry. More... | |
static const UT_StringHolder | theUSDTag |
Default tag for USD. More... | |
static const UT_StringHolder | theImageTag |
Default tag for imgages. More... | |
static const UT_StringHolder | theTextTag |
Default tag for text data. More... | |
static const UT_StringHolder | theVideoTag |
Default tag for videos. More... | |
static const UT_StringHolder | theHipTag |
Default tag for hip files. More... | |
static const UT_StringHolder | theHdaTag |
Default tag for hda files. More... | |
static const UT_StringHolder | thePythonScriptTag |
Default tag for Python script files. More... | |
static const UT_StringHolder | theDirectoryTag |
Default tag for directories. More... | |
static const UT_StringHolder | theSymLinkTag |
Default tag for sym links. More... | |
static const ViewerPair | theDefaultViewer |
Default viewer application. More... | |
Protected Member Functions | |
PDG_FileUtils (const PDG_CustomHandlers *handlers, bool init_defaults) | |
Protected Member Functions inherited from UT_NonCopyableNS::UT_NonCopyable | |
UT_NonCopyable ()=default | |
~UT_NonCopyable ()=default | |
UT_NonCopyable (const UT_NonCopyable &)=delete | |
UT_NonCopyable & | operator= (const UT_NonCopyable &)=delete |
Friends | |
class | PDG_TypeRegistry |
Definition at line 33 of file PDG_FileUtils.h.
using PDG_FileUtils::ViewerPair = std::pair<UT_StringHolder, bool> |
Pair of viewer application, and whether the application supports open multiple files
Definition at line 38 of file PDG_FileUtils.h.
Enumeration of file transfer destination paths.
Definition at line 83 of file PDG_FileUtils.h.
|
protected |
Initializes the file mapping object and optionally loads in the default, built-in tags/extension mappings.
void PDG_FileUtils::addExtensionTag | ( | const UT_StringHolder & | ext, |
const UT_StringHolder & | tag | ||
) |
Adds an extension -> tag mapping.
void PDG_FileUtils::addTag | ( | const UT_StringHolder & | tag | ) |
Adds a tag to the system, without establishing an extension - >tag mapping. For non-file based tags
void PDG_FileUtils::addTagViewer | ( | const UT_StringHolder & | tag, |
const UT_StringHolder & | viewer, | ||
bool | is_multiviewer = false |
||
) |
Adds a tag -> viewer application mapping.
bool PDG_FileUtils::checkCached | ( | const UT_StringHolder & | local_path, |
const PDG_File & | file, | ||
const PDG_WorkItem * | work_item | ||
) | const |
Checks if a given file path is cached.
|
static |
Compares the file paths and returns 0 if they're equal, -1 if the left path is ordered first, and 1 if the right path is ordered first. The paths are first compared directly as strings, and if they're not equal the paths are normalized to remove extra slashes or .. tokens, then compared again.
void PDG_FileUtils::dirtyFiles | ( | const PDG_WorkItem * | work_item, |
const PDG_File::Set & | files, | ||
bool | delete_items, | ||
bool | remove_outputs | ||
) | const |
Called when a work item should delete files, and runs any custom handlers that match the item
const UT_StringHolder& PDG_FileUtils::extensionToTag | ( | const char * | ext, |
const UT_StringHolder & | def | ||
) | const |
Looks up the file tag for an extension.
UT_StringHolder PDG_FileUtils::formatTransferPath | ( | const PDG_Scheduler * | scheduler, |
const UT_StringHolder & | local_path, | ||
TransferType | default_type, | ||
bool | local, | ||
bool | check_type | ||
) | const |
Returns the path that a local file will be transfered to, based on the transfer type and the file extension. Always looks up the extension in the transfer type mapping, and only uses the default transfer type as a fallback.
UT_StringHolder PDG_FileUtils::formatTransferPath | ( | const PDG_Scheduler * | scheduler, |
const UT_StringHolder & | root_path, | ||
const UT_StringHolder & | local_path, | ||
const UT_StringHolder & | sub_path, | ||
TransferType | default_type, | ||
bool | local, | ||
bool | check_type | ||
) | const |
Returns the path that a local file will be transfer to, based on the transfer type, extension, and the relative path of the local file to the root file path. For example, if the root path is $HIP and the local_path is $HIP/sub_dir/file.bgeo.sc, the file will be copied tp {dest}/{sub_path}/sub_dir/file.bgeo.sc where "dest" is determined by the specified scheduler and file type.
|
static |
Returns true if the specified list of files has any duplicates, and returns the set of duplicates.
bool PDG_FileUtils::isViewable | ( | const UT_StringHolder & | tag | ) | const |
Returns true if the tag is viewable.
|
static |
Makes intermediate directories.
|
static |
Formats a URL given a scheme and url body.
UT_StringHolder PDG_FileUtils::pathToExtension | ( | const UT_StringHolder & | path | ) | const |
Return the extension of the given path which may include an archive dot suffix like .bgeo.sc
const UT_StringHolder& PDG_FileUtils::pathToTag | ( | const UT_StringHolder & | path | ) | const |
Looks up the file tag for a full file path.
const ViewerPair& PDG_FileUtils::pathToViewer | ( | const UT_StringHolder & | path | ) | const |
Loops up the viewer application for a path.
bool PDG_FileUtils::statFile | ( | const UT_StringHolder & | local_path, |
const PDG_File & | file, | ||
const PDG_WorkItem * | work_item, | ||
PDG_File::Hash & | file_hash, | ||
exint & | file_size | ||
) | const |
Returns the hash/mod time of the file.
const UT_StringSet& PDG_FileUtils::tags | ( | ) | const |
Returns the set of available tags.
void PDG_FileUtils::tags | ( | const UT_StringHolder & | prefix, |
UT_StringArray & | sorted_tags | ||
) | const |
Returns the sorted list of tags for the given prefix.
const ViewerPair& PDG_FileUtils::tagToViewer | ( | const UT_StringHolder & | tag | ) | const |
Looks up the viewer application for a tag.
bool PDG_FileUtils::transferFile | ( | const PDG_Scheduler * | scheduler, |
const PDG_WorkItem * | work_item, | ||
const PDG_File & | file, | ||
TransferType | default_type, | ||
bool | check_type, | ||
UT_WorkBuffer & | errors | ||
) | const |
Transfers a file from a local path to a remote path accessible by the specified scheduler. The work item indicates what depends on the file, and may be null if the file transfer was initiated for a global file dependency.
bool PDG_FileUtils::transferFile | ( | const PDG_Scheduler * | scheduler, |
const PDG_WorkItem * | work_item, | ||
const PDG_File & | file, | ||
const UT_StringHolder & | root_path, | ||
const UT_StringHolder & | sub_path, | ||
TransferType | default_type, | ||
bool | check_type, | ||
UT_WorkBuffer & | errors | ||
) | const |
Transfers a file from a local path to a remote path accessible by the specified scheduler, and preserves the directory structure relative to the specified root path. The work item indicates what depends on the file, and may be null if the file transfer was initiated for a global file dependency.
|
friend |
Definition at line 243 of file PDG_FileUtils.h.
|
static |
Default tag for an archive.
Definition at line 44 of file PDG_FileUtils.h.
|
static |
Default tag for an archive.
Definition at line 47 of file PDG_FileUtils.h.
|
static |
Default viewer application.
Definition at line 80 of file PDG_FileUtils.h.
|
static |
Default tag for directories.
Definition at line 74 of file PDG_FileUtils.h.
|
static |
Default tag for any file.
Definition at line 41 of file PDG_FileUtils.h.
|
static |
Default tag for geometry.
Definition at line 50 of file PDG_FileUtils.h.
|
static |
Default tag for hda files.
Definition at line 68 of file PDG_FileUtils.h.
|
static |
Default tag for hip files.
Definition at line 65 of file PDG_FileUtils.h.
|
static |
Default tag for imgages.
Definition at line 56 of file PDG_FileUtils.h.
|
static |
Default tag for Python script files.
Definition at line 71 of file PDG_FileUtils.h.
|
static |
Default tag for sym links.
Definition at line 77 of file PDG_FileUtils.h.
|
static |
Default tag for text data.
Definition at line 59 of file PDG_FileUtils.h.
|
static |
Default tag for USD.
Definition at line 53 of file PDG_FileUtils.h.
|
static |
Default tag for videos.
Definition at line 62 of file PDG_FileUtils.h.