7 #ifndef PXR_EXEC_VDF_REQUEST_H
8 #define PXR_EXEC_VDF_REQUEST_H
123 friend class VdfRequest;
135 return _mo == rhs._mo;
143 size_t _ComputeIndex()
const;
154 const_iterator
begin()
const;
159 const_iterator
end()
const;
175 return _r->_request->size();
184 ? &(*_r->_request)[i]
189 const VdfRequest *_r;
200 void Add(
const const_iterator& iterator);
206 void Remove(
const const_iterator& iterator);
224 friend bool operator==(
const VdfRequest& lhs,
const VdfRequest& rhs)
226 return (lhs._request == rhs._request ||
227 *lhs._request == *rhs._request) &&
228 lhs._bits == rhs._bits;
234 friend bool operator!=(
const VdfRequest& lhs,
const VdfRequest& rhs)
236 return !(lhs == rhs);
246 const size_t num = std::min<size_t>(request.
GetSize(), 3);
249 for(
size_t i = 0; i < num; i++) {
269 void _Add(
size_t index);
275 void _Remove(
size_t index);
279 std::shared_ptr<const VdfMaskedOutputVector> _request;
reference operator*() const
friend bool operator==(const VdfRequest &lhs, const VdfRequest &rhs)
bool operator!=(const const_iterator &rhs) const
VDF_API const_iterator begin() const
IndexedView(const VdfRequest &request)
VDF_API const VdfNetwork * GetNetwork() const
VDF_API void Add(const const_iterator &iterator)
STATIC_INLINE size_t Hash(const char *s, size_t len)
const_iterator & operator++()
#define PXR_NAMESPACE_OPEN_SCOPE
VDF_API bool IsEmpty() const
std::forward_iterator_tag iterator_category
std::ptrdiff_t difference_type
Fast bit array that keeps track of the number of bits set and can find the next set in a timely manne...
const VdfMaskedOutput * Get(const size_t i) const
const_iterator operator++(int)
pointer operator->() const
VDF_API void Remove(const const_iterator &iterator)
VDF_API size_t GetSize() const
Class to hold on to an externally owned output and a mask.
bool operator==(const const_iterator &rhs) const
static size_t Combine(Args &&...args)
Produce a hash code by combining the hash codes of several objects.
VDF_API const_iterator end() const
friend bool operator!=(const VdfRequest &lhs, const VdfRequest &rhs)
#define PXR_NAMESPACE_CLOSE_SCOPE
size_t operator()(const VdfRequest &request) const
bool IsSet(size_t index) const
std::vector< VdfMaskedOutput > VdfMaskedOutputVector