Loading...
Searching...
No Matches
crateInfo.h
1//
2// Copyright 2016 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_USD_CRATE_INFO_H
25#define PXR_USD_USD_CRATE_INFO_H
26
27#include "pxr/pxr.h"
28#include "pxr/usd/usd/api.h"
29#include "pxr/base/tf/token.h"
30
31#include <cstddef>
32#include <cstdint>
33#include <memory>
34#include <string>
35#include <vector>
36
37PXR_NAMESPACE_OPEN_SCOPE
38
39
46{
47public:
48 struct Section {
49 Section() = default;
50 Section(std::string const &name, int64_t start, int64_t size)
51 : name(name), start(start), size(size) {}
52 std::string name;
53 int64_t start = -1, size = -1;
54 };
55
56 struct SummaryStats {
57 size_t numSpecs = 0;
58 size_t numUniquePaths = 0;
59 size_t numUniqueTokens = 0;
60 size_t numUniqueStrings = 0;
61 size_t numUniqueFields = 0;
62 size_t numUniqueFieldSets = 0;
63 };
64
66 USD_API
67 static UsdCrateInfo Open(std::string const &fileName);
68
70 USD_API
71 SummaryStats GetSummaryStats() const;
72
74 USD_API
75 std::vector<Section> GetSections() const;
76
78 USD_API
80
82 USD_API
84
86 explicit operator bool() const { return (bool)_impl; }
87
88private:
89
90 struct _Impl;
91 std::shared_ptr<_Impl> _impl;
92};
93
94
95PXR_NAMESPACE_CLOSE_SCOPE
96
97#endif // PXR_USD_USD_CRATE_INFO_H
Token for efficient comparison, assignment, and hashing of known strings.
Definition: token.h:88
A class for introspecting the underlying qualities of .usdc 'crate' files, for diagnostic purposes.
Definition: crateInfo.h:46
USD_API std::vector< Section > GetSections() const
Return the named file sections, their location and sizes in the file.
USD_API SummaryStats GetSummaryStats() const
Return summary statistics structure for this file.
USD_API TfToken GetFileVersion() const
Return the file version.
static USD_API UsdCrateInfo Open(std::string const &fileName)
Attempt to open and read fileName.
USD_API TfToken GetSoftwareVersion() const
Return the software version.
TfToken class for efficient string referencing and hashing, plus conversions to and from stl string c...