18 #ifndef EQFABRIC_PATHS_H
19 #define EQFABRIC_PATHS_H
33 explicit NodePath(
const uint32_t index = 0 ) : nodeIndex( index ) {}
37 struct PipePath :
public NodePath
39 explicit PipePath(
const uint32_t index = 0 ) : pipeIndex( index ) {}
40 explicit PipePath(
const NodePath& p ) : NodePath( p ), pipeIndex( 0 ) {}
44 struct WindowPath :
public PipePath
46 explicit WindowPath(
const uint32_t index = 0 ) : windowIndex( index ) {}
47 explicit WindowPath(
const PipePath& p )
48 : PipePath( p ), windowIndex( 0 ) {}
52 struct ChannelPath :
public WindowPath
54 explicit ChannelPath(
const uint32_t index = 0 ) : channelIndex( index ) {}
55 explicit ChannelPath(
const WindowPath& p )
56 : WindowPath( p ), channelIndex( 0 ) {}
57 uint32_t channelIndex;
63 explicit CanvasPath(
const uint32_t index = 0 ) : canvasIndex( index ) {}
67 struct SegmentPath :
public CanvasPath
69 explicit SegmentPath(
const uint32_t index = 0 ) : segmentIndex( index ) {}
70 explicit SegmentPath(
const CanvasPath& p )
71 : CanvasPath( p ), segmentIndex( 0 ) {}
72 uint32_t segmentIndex;
77 explicit ObserverPath(
const uint32_t index = 0 )
78 : observerIndex( index ) {}
79 uint32_t observerIndex;
84 explicit LayoutPath(
const uint32_t index = 0 ) : layoutIndex( index ) {}
88 struct ViewPath :
public LayoutPath
90 explicit ViewPath(
const uint32_t index = 0 ) : viewIndex( index ) {}
91 explicit ViewPath(
const LayoutPath& p )
92 : LayoutPath( p ), viewIndex( 0 ) {}
97 inline std::ostream& operator << ( std::ostream& os,
const NodePath& path )
99 os <<
"node " << path.nodeIndex;
102 inline std::ostream& operator << ( std::ostream& os,
const PipePath& path )
104 os << static_cast< const NodePath& >( path ) <<
" pipe " << path.pipeIndex;
107 inline std::ostream& operator << ( std::ostream& os,
const WindowPath& path )
109 os << static_cast< const PipePath& >( path ) <<
" window "
113 inline std::ostream& operator << ( std::ostream& os,
const ChannelPath& path )
115 os << static_cast< const WindowPath& >( path ) <<
" channel "
116 << path.channelIndex;
120 inline std::ostream& operator << ( std::ostream& os,
const ObserverPath& path )
122 os <<
"observer " << path.observerIndex;
126 inline std::ostream& operator << ( std::ostream& os,
const LayoutPath& path )
128 os <<
"layout " << path.layoutIndex;
131 inline std::ostream& operator << ( std::ostream& os,
const ViewPath& path )
133 os << static_cast< const LayoutPath& >( path ) <<
" view "
138 inline std::ostream& operator << ( std::ostream& os,
const CanvasPath& path )
140 os <<
"canvas " << path.canvasIndex;
143 inline std::ostream& operator << ( std::ostream& os,
const SegmentPath& path )
145 os << static_cast< const CanvasPath& >( path ) <<
" segment "
146 << path.segmentIndex;
153 #endif // EQFABRIC_PATHS_H