ResourceGroup
The ResourceGroup is the central component of the Resources system.
ResourceGroups represent a collection of Resources.
They can be saved/loaded from a filetype which supersedes resfileindex files.
See Resource Group File Format file specification for more details.
-
class ResourceGroup
Contains a collection of Resources.
Subclassed by CarbonResources::BundleResourceGroup, CarbonResources::PatchResourceGroup
Public Functions
-
Result CreateBundle(const BundleCreateParams ¶ms) const
Creates a Bundle from the ResourceGroup.
See also
BundleResourceGroup::Unpack for information regarding bundle unpacking.
- Parameters:
params – input parameters, See BundleCreateParams for more details.
- Returns:
Result see CarbonResources::Result for more details.
-
Result CreatePatch(const PatchCreateParams ¶ms) const
Creates a Patch from the ResourceGroup. This ResourceGroup is expected to be latest.
See also
PatchResourceGroup::Apply for information regarding patch application.
- Parameters:
params – input parameters, See PatchCreateParams for more details.
- Returns:
Result see CarbonResources::Result for more details.
-
Result ImportFromFile(const ResourceGroupImportFromFileParams ¶ms) const
Imports resource data from file.
Note
Legacy support for importing from resfileindex CSV files is included.
- Parameters:
params – input parameters, See ResourceGroupImportFromFileParams for more details.
- Returns:
Result see CarbonResources::Result for more details.
-
Result ExportToFile(const ResourceGroupExportToFileParams ¶ms) const
Exports ResourceGroup to file.
- Parameters:
params – input parameters, See ResourceGroupExportToFileParams for more details.
- Returns:
Result see CarbonResources::Result for more details.
-
Result CreateFromDirectory(const CreateResourceGroupFromDirectoryParams ¶ms)
Creates a ResourceGroup from a supplied directory.
Note
No file filtering supported
- Parameters:
params – input parameters, See CreateResourceGroupFromDirectoryParams for more details.
- Returns:
Result see CarbonResources::Result for more details.
-
Result Merge(const ResourceGroupMergeParams ¶ms) const
Merges a supplied ResourceGroup with this one. Merge performed on RelativePath, merge ResourceGroup takes precedent.
- Parameters:
params – input parameters, See ResourceGroupMergeParams for more details.
- Returns:
Result see CarbonResources::Result for more details.
-
Result DiffAgainstGroup(const ResourceGroupDiffAgainstGroupParams ¶ms) const
Diffs two supplied ResourceGroups.
- Parameters:
params – input parameters, See ResourceGroupDiffAgainstGroupParams for more details.
- Returns:
Result see CarbonResources::Result for more details.
-
Result RemoveResources(const ResourceGroupRemoveResourcesParams ¶ms) const
Removes Resources from ResourceGroup. Resources to remove are supplied are identified from a vector of RelativePaths.
Note
No file filtering supported
- Parameters:
params – input parameters, See CreateResourceGroupFromDirectoryParams for more details.
- Returns:
Result see CarbonResources::Result for more details.
-
class ResourceGroupImpl
Subclassed by CarbonResources::BundleResourceGroup::BundleResourceGroupImpl, CarbonResources::PatchResourceGroup::PatchResourceGroupImpl
-
Result CreateBundle(const BundleCreateParams ¶ms) const
Input Parameters
-
struct ResourceGroupImportFromFileParams
Function Parameters required for CarbonResources::ResourceGroup::ImportFromFile.
Public Members
-
std::filesystem::path filename
Full filename of input file.
-
StatusCallback statusCallback = nullptr
Optional status function callback. Callback is triggered at key status update events.
-
std::filesystem::path filename
-
struct ResourceGroupExportToFileParams
Function Parameters required for CarbonResources::ResourceGroup::ExportToFile.
Public Members
-
std::filesystem::path filename = "ResourceGroup.yaml"
Full filename of output file. If directory doesn’t exist it will be created.
-
Version outputDocumentVersion = S_DOCUMENT_VERSION
Document version to output. By default this will be latest supported by the library.
-
StatusCallback statusCallback = nullptr
Optional status function callback. Callback is triggered at key status update events.
-
std::filesystem::path filename = "ResourceGroup.yaml"
-
struct CreateResourceGroupFromDirectoryParams
Function Parameters required for CarbonResources::ResourceGroup::CreateFromDirectory.
Public Members
-
std::filesystem::path directory = ""
Input directory for which to find files.
-
uintmax_t resourceStreamThreshold = 10000000
Files encountered that are above this the threshold value will be streamed in. Value is in bytes, default: 10000000
-
Version outputDocumentVersion = S_DOCUMENT_VERSION
Document version to output. By default this will be latest supported by the library.
-
StatusCallback statusCallback = nullptr
Optional status function callback. Callback is triggered at key status update events.
-
std::string resourcePrefix = ""
Resource prefix setting, e.g. res.
-
std::filesystem::path directory = ""
-
struct PatchCreateParams
Function Parameters required for CarbonResources::ResourceGroup::CreatePatch.
Public Members
-
uint32_t maxInputFileChunkSize = 50000000
Files are processed in chunks, maxInputFileChunkSize indicate the size of this chunk. Files smaller than chunk will be processed in one pass.
-
ResourceGroup *previousResourceGroup = nullptr
ResourceGroup containing resources from previous build.
-
std::filesystem::path resourceGroupRelativePath = "ResourceGroup.yaml"
Relative path for output resourceGroup which will contain the diff between PatchCreateParams::previousResourceGroup and this ResourceGroup.
-
std::filesystem::path resourceGroupPatchRelativePath = "PatchResourceGroup.yaml"
Relative path for output PatchResourceGroup which will contain all the patches produced.
-
std::filesystem::path patchFileRelativePathPrefix = "Patches/Patch"
Relative path prefix for produced patch binaries. Default is “Patches/Patch” which will produce patches such as Patches/Patch.1 …
-
ResourceDestinationSettings resourcePatchBinaryDestinationSettings = {CarbonResources::ResourceDestinationType::LOCAL_CDN, "PatchOut/Patches/"}
Where the produced binary patches will be saved.
-
ResourceDestinationSettings resourcePatchResourceGroupDestinationSettings = {CarbonResources::ResourceDestinationType::LOCAL_RELATIVE, "PatchOut/"}
Where the produced PatchResourceGroup will be saved.
-
StatusCallback statusCallback = nullptr
Optional status function callback. Callback is triggered at key status update events.
-
std::chrono::seconds downloadRetrySeconds = {120}
Delay before a failed download is retried (seconds)
-
std::filesystem::path indexFolder = std::filesystem::temp_directory_path() / "carbonResources" / "chunkIndexes"
Directory to store index calculation files during patch creation.
-
uint32_t maxInputFileChunkSize = 50000000
-
struct BundleCreateParams
Function Parameters required for CarbonResources::ResourceGroup::CreatePatch.
Public Members
-
ResourceSourceSettings resourceSourceSettings = {CarbonResources::ResourceSourceType::LOCAL_RELATIVE}
Where resources related to ResourceGroup are to be be sourced.
-
ResourceDestinationSettings chunkDestinationSettings = {CarbonResources::ResourceDestinationType::LOCAL_CDN, "BundleOut/Chunks/"}
Where chunks created will be saved.
-
std::filesystem::path resourceGroupRelativePath = "ResourceGroup.yaml"
Where to save a ResourceGroup the Bundle was based off. This ResourceGroup will match the original but can be saved somewhere else.
-
std::filesystem::path resourceGroupBundleRelativePath = "BundleResourceGroup.yaml"
Relative path for use with the output BundleResourceGroup.
-
uintmax_t chunkSize = 50000000
Size of chunks to break files into. Value representation is in bytes, default is 10000000
-
uintmax_t fileReadChunkSize = 10000000
Size of chunks to read files in. Default is 10000000.
-
ResourceDestinationSettings resourceBundleResourceGroupDestinationSettings = {CarbonResources::ResourceDestinationType::LOCAL_RELATIVE, "BundleOut/"}
Where to save the resulting BundleResourceGroup
-
StatusCallback statusCallback = nullptr
Optional status function callback. Callback is triggered at key status update events.
-
std::chrono::seconds downloadRetrySeconds = {120}
Delay before a failed download is retried (seconds)
-
bool calculateCompressions = true
Specifies if compression will be calculated for the generated bundle chunks
-
ResourceSourceSettings resourceSourceSettings = {CarbonResources::ResourceSourceType::LOCAL_RELATIVE}
-
struct ResourceGroupMergeParams
Function Parameters required for CarbonResources::ResourceGroup::Merge.
Public Members
-
ResourceGroup *resourceGroupToMerge = nullptr
ResourceGroup to merge
-
ResourceGroup *mergedResourceGroup = nullptr
Resulting ResourceGroup after merge
-
ResourceGroup *resourceGroupToMerge = nullptr
-
struct ResourceGroupDiffAgainstGroupParams
Function Parameters required for CarbonResources::ResourceGroup::DiffAgainstGroup.
Public Members
-
ResourceGroup *resourceGroupToDiffAgainst = nullptr
Resource group to diff against
-
std::vector<std::filesystem::path> *additions = nullptr
Output list of relative paths that have been added or modified on second group.
-
std::vector<std::filesystem::path> *subtractions = nullptr
Output list of relative paths that have been removed on second group.
-
ResourceGroup *resourceGroupToDiffAgainst = nullptr
-
struct ResourceGroupRemoveResourcesParams
Function Parameters required for CarbonResources::ResourceGroup::RemoveResources.
Public Members
-
std::vector<std::filesystem::path> *resourcesToRemove = nullptr
List of Resources to remove identified by RelativePath.
-
bool errorIfResourceNotFound = true
If true the function will return an error state if supplied Resource is not present in ResourceGroup
-
std::vector<std::filesystem::path> *resourcesToRemove = nullptr