8 #ifndef PXR_USD_NDR_DECLARE_H
9 #define PXR_USD_NDR_DECLARE_H
23 #include <unordered_map>
24 #include <unordered_set>
43 inline const std::string&
51 typedef std::unordered_map<
TfToken, std::string,
124 return (static_cast<std::size_t>(_major) << 32) +
125 static_cast<std::size_t
>(_minor);
139 return _major == 0 && _minor == 0;
144 friend bool operator==(
const NdrVersion& lhs,
const NdrVersion& rhs)
146 return lhs._major == rhs._major && lhs._minor == rhs._minor;
151 friend bool operator!=(
const NdrVersion& lhs,
const NdrVersion& rhs)
153 return !(lhs == rhs);
158 friend bool operator<(
const NdrVersion& lhs,
const NdrVersion& rhs)
160 return lhs._major < rhs._major ||
161 (lhs._major == rhs._major && lhs._minor < rhs._minor);
166 friend bool operator<=(
const NdrVersion& lhs,
const NdrVersion& rhs)
168 return lhs._major < rhs._major ||
169 (lhs._major == rhs._major && lhs._minor <= rhs._minor);
174 friend bool operator>(
const NdrVersion& lhs,
const NdrVersion& rhs)
176 return !(lhs <= rhs);
181 friend bool operator>=(
const NdrVersion& lhs,
const NdrVersion& rhs)
188 : _major(x._major), _minor(x._minor), _isDefault(true) { }
191 int _major = 0, _minor = 0;
192 bool _isDefault =
false;
206 #endif // PXR_USD_NDR_DECLARE_H
NDR_API int GetMajor() const
Return the major version number or zero for an invalid version.
NDR_API std::size_t GetHash() const
Return a hash for the version.
NDR_API int GetMinor() const
Return the minor version number or zero for an invalid version.
std::vector< TfToken > NdrTokenVec
NDR_API friend bool operator>=(const NdrVersion &lhs, const NdrVersion &rhs)
Return true iff the left side is greater than or equal to the right side.
NDR_API std::string GetString() const
Return the version as a string.
NdrNode const * NdrNodeConstPtr
std::vector< NdrNodeUniquePtr > NdrNodeUniquePtrVec
std::vector< NdrOption > NdrOptionVec
NDR_API friend bool operator>(const NdrVersion &lhs, const NdrVersion &rhs)
Return true iff the left side is greater than the right side.
Functor to use for hash maps from tokens to other things.
NDR_API std::string GetStringSuffix() const
Return the version as a identifier suffix.
TfToken::HashFunctor NdrIdentifierHashFunctor
std::vector< NdrNodeConstPtr > NdrNodeConstPtrVec
NDR_API bool operator!() const
Return true iff the version is invalid.
NDR_API friend bool operator<=(const NdrVersion &lhs, const NdrVersion &rhs)
Return true iff the left side is less than or equal to the right side.
std::vector< NdrPropertyUniquePtr > NdrPropertyUniquePtrVec
std::vector< NdrIdentifier > NdrIdentifierVec
NDR_API NdrVersion GetAsDefault() const
NDR_API friend bool operator!=(const NdrVersion &lhs, const NdrVersion &rhs)
Return true iff versions are not equal.
std::vector< std::string > NdrStringVec
std::unordered_set< NdrIdentifier, NdrIdentifierHashFunctor > NdrIdentifierSet
std::unique_ptr< NdrProperty > NdrPropertyUniquePtr
std::pair< TfToken, TfToken > NdrOption
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
NDR_API bool IsDefault() const
Return true iff this version is marked as default.
NDR_API friend bool operator<(const NdrVersion &lhs, const NdrVersion &rhs)
Return true iff the left side is less than the right side.
std::unique_ptr< NdrNode > NdrNodeUniquePtr
#define PXR_NAMESPACE_CLOSE_SCOPE
NdrProperty * NdrPropertyPtr
NDR_API friend bool operator==(const NdrVersion &lhs, const NdrVersion &rhs)
Return true iff versions are equal.
std::unordered_set< std::string > NdrStringSet
std::unordered_map< TfToken, std::string, TfToken::HashFunctor > NdrTokenMap
std::unordered_map< TfToken, NdrPropertyConstPtr, TfToken::HashFunctor > NdrPropertyPtrMap
NDR_API NdrVersion()=default
Create an invalid version.
NdrProperty const * NdrPropertyConstPtr
const std::string & NdrGetIdentifierString(const NdrIdentifier &id)