7#ifndef PXR_USD_VALIDATION_USD_VALIDATION_CONTEXT_H
8#define PXR_USD_VALIDATION_USD_VALIDATION_CONTEXT_H
13#include "pxr/base/plug/plugin.h"
16#include "pxr/usd/usd/primRange.h"
17#include "pxr/usdValidation/usdValidation/api.h"
18#include "pxr/usdValidation/usdValidation/error.h"
24PXR_NAMESPACE_OPEN_SCOPE
28class Usd_PrimFlagsPredicate;
93 bool includeAllAncestors =
true);
110 bool includeAllAncestors =
true);
127 const UsdValidationValidatorMetadataVector &metadata,
128 bool includeAllAncestors =
true);
150 const std::vector<const UsdValidationValidator *> &validators);
159 const std::vector<const UsdValidationValidatorSuite *> &suites);
178 UsdValidationErrorVector
Validate(
const SdfLayerHandle &layer)
const;
203 const UsdStagePtr &stage,
204 const Usd_PrimFlagsPredicate &predicate,
218 const UsdStagePtr &stage,
219 const Usd_PrimFlagsPredicate &predicate)
const;
234 UsdValidationErrorVector
Validate(
const UsdStagePtr &stage)
const;
249 const UsdStagePtr &stage,
265 const UsdStagePtr &stage,
266 const Usd_PrimFlagsPredicate &predicate,
267 const std::vector<UsdTimeCode> &timeCodes)
const;
285 const UsdStagePtr &stage,
286 const std::vector<UsdTimeCode> &timeCodes)
const;
306 const std::vector<UsdPrim> &prims,
344 const std::vector<UsdPrim> &prims,
345 const std::vector<UsdTimeCode> &timeCodes)
const;
362 const std::vector<UsdTimeCode> &timeCodes)
const;
367 void _InitializeFromValidatorMetadata(
368 const UsdValidationValidatorMetadataVector &metadata,
369 bool includeAllAncestors);
375 void _DistributeValidators(
376 const std::vector<const UsdValidationValidator *> &validators);
381 enum class _TimeDependencyState {
388 void _ValidateLayer(
WorkDispatcher &dispatcher,
const SdfLayerHandle &layer,
389 UsdValidationErrorVector *errors,
390 std::mutex *errorsMutex)
const;
406 const UsdStagePtr &stage,
407 UsdValidationErrorVector *errors,
408 std::mutex *errorsMutex,
409 const Usd_PrimFlagsPredicate &predicate,
411 std::vector<UsdTimeCode>> ×)
const;
415 template <
typename T>
418 UsdValidationErrorVector *errors, std::mutex *errorsMutex,
420 _TimeDependencyState timeDependencyState =
421 _TimeDependencyState::All)
const;
431 template <
typename T>
432 void _RunValidatePrims(
433 const T &prims, UsdValidationErrorVector *errors,
434 std::mutex *errorsMutex,
436 std::vector<UsdTimeCode>> ×)
const;
439 using _SchemaTypeValidatorPair
440 = std::pair<TfToken, std::vector<const UsdValidationValidator *>>;
441 using _SchemaTypeValidatorPairVector
442 = std::vector<_SchemaTypeValidatorPair>;
448 std::vector<const UsdValidationValidator *> _layerValidators;
449 std::vector<const UsdValidationValidator *> _stageValidators;
450 std::vector<const UsdValidationValidator *> _primValidators;
460 _SchemaTypeValidatorPairVector _schemaTypeValidators;
463PXR_NAMESPACE_CLOSE_SCOPE
TfType represents a dynamic runtime type.
An forward-iterable range that traverses a subtree of prims rooted at a given prim in depth-first ord...
UsdValidationContext provides an interface for managing and running validators on USD layers,...
USDVALIDATION_API UsdValidationErrorVector Validate(const UsdPrimRange &prims, const UsdValidationTimeRange &timeRange={}) const
Run validation on the given valid prims by executing the selected validators for this UsdValidationCo...
USDVALIDATION_API UsdValidationErrorVector Validate(const UsdPrimRange &prims, const std::vector< UsdTimeCode > &timeCodes) const
Run validation on the given valid prims by executing the selected validators for this UsdValidationCo...
USDVALIDATION_API UsdValidationContext(const std::vector< TfType > &schemaTypes)
Create a UsdValidationContext by collecting validators using the specified schema types.
USDVALIDATION_API UsdValidationContext(const TfTokenVector &keywords, bool includeAllAncestors=true)
Create a UsdValidationContext by collecting validators using the specified keywords.
USDVALIDATION_API UsdValidationErrorVector Validate(const SdfLayerHandle &layer) const
Run validation on the given valid layer by executing the selected validators for this UsdValidationCo...
USDVALIDATION_API UsdValidationContext(const std::vector< const UsdValidationValidatorSuite * > &suites)
Create a UsdValidationContext by collecting validators from the specified vector of validator suites.
USDVALIDATION_API UsdValidationErrorVector Validate(const UsdStagePtr &stage, const Usd_PrimFlagsPredicate &predicate) const
Run validation on the given valid stage by executing the selected validators for this UsdValidationCo...
USDVALIDATION_API UsdValidationErrorVector Validate(const UsdStagePtr &stage) const
Run validation on the given valid stage by executing the selected validators for this UsdValidationCo...
USDVALIDATION_API UsdValidationContext(const std::vector< const UsdValidationValidator * > &validators)
Create a UsdValidationContext by collecting validators using the specified vector of validators.
USDVALIDATION_API UsdValidationErrorVector Validate(const UsdStagePtr &stage, const UsdValidationTimeRange &timeRange) const
Run validation on the given valid stage by executing the selected validators for this UsdValidationCo...
USDVALIDATION_API UsdValidationContext(const PlugPluginPtrVector &plugins, bool includeAllAncestors=true)
Create a UsdValidationContext by collecting validators using the specified vector of plugins.
USDVALIDATION_API UsdValidationErrorVector Validate(const UsdStagePtr &stage, const Usd_PrimFlagsPredicate &predicate, const UsdValidationTimeRange &timeRange) const
Run validation on the given valid stage by executing the selected validators for this UsdValidationCo...
USDVALIDATION_API UsdValidationErrorVector Validate(const UsdStagePtr &stage, const std::vector< UsdTimeCode > &timeCodes) const
Run validation on the given valid stage by executing the selected validators for this UsdValidationCo...
USDVALIDATION_API UsdValidationErrorVector Validate(const std::vector< UsdPrim > &prims, const std::vector< UsdTimeCode > &timeCodes) const
Run validation on the given valid prims by executing the selected validators for this UsdValidationCo...
USDVALIDATION_API UsdValidationContext(const UsdValidationValidatorMetadataVector &metadata, bool includeAllAncestors=true)
Create a UsdValidationContext by collecting validators using the specified vector of validator metada...
USDVALIDATION_API UsdValidationErrorVector Validate(const std::vector< UsdPrim > &prims, const UsdValidationTimeRange &timeRange={}) const
Run validation on the given valid prims by executing the selected validators for this UsdValidationCo...
USDVALIDATION_API UsdValidationErrorVector Validate(const UsdStagePtr &stage, const Usd_PrimFlagsPredicate &predicate, const std::vector< UsdTimeCode > &timeCodes) const
Run validation on the given valid stage by executing the selected validators for this UsdValidationCo...
A class which describes the interval at which validation is to be performed.
A work dispatcher runs concurrent tasks.
Definitions of basic string utilities in tf.
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...
std::vector< TfToken > TfTokenVector
Convenience types.