functions/taskengine/Set-PSFTaskEngineCache.ps1
function Set-PSFTaskEngineCache { <# .SYNOPSIS Sets the cache for a task engine task. .DESCRIPTION Sets the cache for a task engine task. Tasks executed by the task engine have no way to directly transfer output to the main runspace. This function is designed to work around this by providing a central storage. This function should only be called tasks scheduled to execute within the task engine. .PARAMETER Module The name of the module that generated the task. Use scriptname in case of using this within a script. .PARAMETER Name The name of the task for which the cache is. .PARAMETER Value The value to set this cache to. .EXAMPLE PS C:\> Set-PSFTaskEngineCache -Module 'mymodule' -Name 'maintenancetask' -Value $results Stores the content of $results in the cache 'mymodule / maintenancetask' These values can now be retrieved using Get-PSFTaskEngineCache. #> [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSUseShouldProcessForStateChangingFunctions", "")] [CmdletBinding()] Param ( [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [string] $Module, [Parameter(Mandatory = $true)] [ValidateNotNullOrEmpty()] [string] $Name, [Parameter(Mandatory = $true)] [AllowNull()] $Value ) $tempModule = $Module.ToLower() $tempName = $Name.ToLower() if (-not ([PSFramework.TaskEngine.TaskHost]::Cache.ContainsKey($tempModule))) { [PSFramework.TaskEngine.TaskHost]::Cache[$tempModule] = @{ } } [PSFramework.TaskEngine.TaskHost]::Cache[$tempModule][$tempName] = $Value } |