All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
packageResolver.h
Go to the documentation of this file.
1 //
2 // Copyright 2018 Pixar
3 //
4 // Licensed under the Apache License, Version 2.0 (the "Apache License")
5 // with the following modification; you may not use this file except in
6 // compliance with the Apache License and the following modification to it:
7 // Section 6. Trademarks. is deleted and replaced with:
8 //
9 // 6. Trademarks. This License does not grant permission to use the trade
10 // names, trademarks, service marks, or product names of the Licensor
11 // and its affiliates, except as required to comply with Section 4(c) of
12 // the License and to reproduce the content of the NOTICE file.
13 //
14 // You may obtain a copy of the Apache License at
15 //
16 // http://www.apache.org/licenses/LICENSE-2.0
17 //
18 // Unless required by applicable law or agreed to in writing, software
19 // distributed under the Apache License with the above modification is
20 // distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21 // KIND, either express or implied. See the Apache License for the specific
22 // language governing permissions and limitations under the Apache License.
23 //
24 #ifndef PXR_USD_AR_PACKAGE_RESOLVER_H
25 #define PXR_USD_AR_PACKAGE_RESOLVER_H
26 
28 
29 #include "pxr/pxr.h"
30 #include "pxr/usd/ar/api.h"
31 
32 #include <memory>
33 #include <string>
34 
35 PXR_NAMESPACE_OPEN_SCOPE
36 
37 class ArAsset;
38 class VtValue;
39 
96 {
97 public:
98  ArPackageResolver(const ArPackageResolver&) = delete;
99  ArPackageResolver& operator=(const ArPackageResolver&) = delete;
100 
101  AR_API
102  virtual ~ArPackageResolver();
103 
104  // --------------------------------------------------------------------- //
108  // --------------------------------------------------------------------- //
109 
124  AR_API
125  virtual std::string Resolve(
126  const std::string& resolvedPackagePath,
127  const std::string& packagedPath) = 0;
128 
130 
131  // --------------------------------------------------------------------- //
135  // --------------------------------------------------------------------- //
136 
142  AR_API
143  virtual std::shared_ptr<ArAsset> OpenAsset(
144  const std::string& resolvedPackagePath,
145  const std::string& resolvedPackagedPath) = 0;
146 
147  // --------------------------------------------------------------------- //
155  // --------------------------------------------------------------------- //
156 
160  AR_API
161  virtual void BeginCacheScope(
162  VtValue* cacheScopeData) = 0;
163 
167  AR_API
168  virtual void EndCacheScope(
169  VtValue* cacheScopeData) = 0;
170 
171 protected:
172  AR_API
174 };
175 
176 PXR_NAMESPACE_CLOSE_SCOPE
177 
178 #endif // PXR_USD_AR_PACKAGE_RESOLVER_H
virtual AR_API std::shared_ptr< ArAsset > OpenAsset(const std::string &resolvedPackagePath, const std::string &resolvedPackagedPath)=0
Returns an ArAsset object for the asset at resolvedPackagedPath located in the package asset at resol...
Interface for accessing the contents of an asset.
Definition: asset_v1.h:47
virtual AR_API void BeginCacheScope(VtValue *cacheScopeData)=0
Mark the start of a resolution caching scope.
Interface for resolving assets within package assets.
virtual AR_API void EndCacheScope(VtValue *cacheScopeData)=0
Mark the end of a resolution caching scope.
virtual AR_API std::string Resolve(const std::string &resolvedPackagePath, const std::string &packagedPath)=0
Returns the resolved path for the asset located at packagedPath in the package specified by resolvedP...
Provides a container which may hold any type, and provides introspection and iteration over array typ...
Definition: value.h:168