HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
inputAndOutputSpecs.h
Go to the documentation of this file.
1 //
2 // Copyright 2025 Pixar
3 //
4 // Licensed under the terms set forth in the LICENSE.txt file available at
5 // https://openusd.org/license.
6 //
7 #ifndef PXR_EXEC_VDF_INPUT_AND_OUTPUT_SPECS_H
8 #define PXR_EXEC_VDF_INPUT_AND_OUTPUT_SPECS_H
9 
10 /// \file
11 
12 #include "pxr/pxr.h"
13 
14 #include "pxr/exec/vdf/api.h"
16 
18 
19 /// \class VdfInputAndOutputSpecs
20 ///
21 /// \brief Hashable holder of a VdfInputSpec and VdfOutputSpec
22 ///
24 {
25 public:
26  /// Constructs a VdfInputAndOutputSpec
27  ///
28  VDF_API
30  const VdfInputSpecs &inputSpecs,
31  const VdfOutputSpecs &outputSpecs);
32 
33  VdfInputAndOutputSpecs(const VdfInputAndOutputSpecs &) = delete;
34  VdfInputAndOutputSpecs &operator=(const VdfInputAndOutputSpecs &) = delete;
35 
36  VDF_API
37  VdfInputAndOutputSpecs(VdfInputAndOutputSpecs &&);
38 
39  VDF_API
40  VdfInputAndOutputSpecs &operator=(VdfInputAndOutputSpecs &&);
41 
42  /// Returns the specs of the input connectors
43  ///
44  const VdfInputSpecs& GetInputSpecs() const { return _inputSpecs; }
45 
46  /// Returns the specs of the output connectors
47  ///
48  const VdfOutputSpecs& GetOutputSpecs() const { return _outputSpecs; }
49 
50  /// Appends \p inputSpecs.
51  ///
52  void AppendInputSpecs(const VdfInputSpecs &inputSpecs) {
53  _inputSpecs.Append(inputSpecs);
54  }
55 
56  /// Appends \p outputSpecs.
57  ///
58  void AppendOutputSpecs(const VdfOutputSpecs &outputSpecs) {
59  _outputSpecs.Append(outputSpecs);
60  }
61 
62  /// Returns true if this == \p rhs.
63  ///
64  VDF_API
65  bool operator==(const VdfInputAndOutputSpecs &rhs) const;
66 
67  /// Returns true if this != \p rhs.
68  ///
69  bool operator!=(const VdfInputAndOutputSpecs &rhs) const {
70  return !(*this == rhs);
71  }
72 
73  /// Computes the hash value for this instance.
74  ///
75  VDF_API
76  size_t GetHash() const;
77 
78 private:
79 
80  // This holds on to the specs of the input connectors.
81  VdfInputSpecs _inputSpecs;
82 
83  // This holds on to the specs of the output connectors.
84  VdfOutputSpecs _outputSpecs;
85 };
86 
88 
89 #endif
VDF_API VdfInputAndOutputSpecs(const VdfInputSpecs &inputSpecs, const VdfOutputSpecs &outputSpecs)
bool operator!=(const VdfInputAndOutputSpecs &rhs) const
#define PXR_NAMESPACE_OPEN_SCOPE
Definition: pxr.h:73
#define VDF_API
Definition: api.h:25
const VdfOutputSpecs & GetOutputSpecs() const
const VdfInputSpecs & GetInputSpecs() const
VDF_API size_t GetHash() const
VDF_API bool operator==(const VdfInputAndOutputSpecs &rhs) const
Hashable holder of a VdfInputSpec and VdfOutputSpec.
void AppendInputSpecs(const VdfInputSpecs &inputSpecs)
#define PXR_NAMESPACE_CLOSE_SCOPE
Definition: pxr.h:74
void Append(const VdfConnectorSpecs< T > &specs)
Appends a set of specs to this one.
VdfInputAndOutputSpecs & operator=(const VdfInputAndOutputSpecs &)=delete
void AppendOutputSpecs(const VdfOutputSpecs &outputSpecs)