18 #ifndef EQFABRIC_PATHS_H
19 #define EQFABRIC_PATHS_H
33 NodePath(
const uint32_t index = 0 ) : nodeIndex( index ) {}
37 struct PipePath :
public NodePath
39 PipePath(
const uint32_t index = 0 ) : pipeIndex( index ) {}
40 PipePath(
const NodePath& p ) : NodePath( p ), pipeIndex( 0 ) {}
44 struct WindowPath :
public PipePath
46 WindowPath(
const uint32_t index = 0 ) : windowIndex( index ) {}
47 WindowPath(
const PipePath& p ) : PipePath( p ), windowIndex( 0 ) {}
51 struct ChannelPath :
public WindowPath
53 ChannelPath(
const uint32_t index = 0 ) : channelIndex( index ) {}
54 ChannelPath(
const WindowPath& p ) : WindowPath( p ), channelIndex( 0 ) {}
55 uint32_t channelIndex;
61 CanvasPath(
const uint32_t index = 0 ) : canvasIndex( index ) {}
65 struct SegmentPath :
public CanvasPath
67 SegmentPath(
const uint32_t index = 0 ) : segmentIndex( index ) {}
68 SegmentPath(
const CanvasPath& p ) : CanvasPath( p ), segmentIndex( 0 ) {}
69 uint32_t segmentIndex;
74 ObserverPath(
const uint32_t index = 0 ) : observerIndex( index ) {}
75 uint32_t observerIndex;
80 LayoutPath(
const uint32_t index = 0 ) : layoutIndex( index ) {}
84 struct ViewPath :
public LayoutPath
86 ViewPath(
const uint32_t index = 0 ) : viewIndex( index ) {}
87 ViewPath(
const LayoutPath& p ) : LayoutPath( p ), viewIndex( 0 ) {}
92 inline std::ostream& operator << ( std::ostream& os,
const NodePath& path )
94 os <<
"node " << path.nodeIndex;
97 inline std::ostream& operator << ( std::ostream& os,
const PipePath& path )
99 os << static_cast< const NodePath& >( path ) <<
" pipe " << path.pipeIndex;
102 inline std::ostream& operator << ( std::ostream& os,
const WindowPath& path )
104 os << static_cast< const PipePath& >( path ) <<
" window "
108 inline std::ostream& operator << ( std::ostream& os,
const ChannelPath& path )
110 os << static_cast< const WindowPath& >( path ) <<
" channel "
111 << path.channelIndex;
115 inline std::ostream& operator << ( std::ostream& os,
const ObserverPath& path )
117 os <<
"observer " << path.observerIndex;
121 inline std::ostream& operator << ( std::ostream& os,
const LayoutPath& path )
123 os <<
"layout " << path.layoutIndex;
126 inline std::ostream& operator << ( std::ostream& os,
const ViewPath& path )
128 os << static_cast< const LayoutPath& >( path ) <<
" view "
133 inline std::ostream& operator << ( std::ostream& os,
const CanvasPath& path )
135 os <<
"canvas " << path.canvasIndex;
138 inline std::ostream& operator << ( std::ostream& os,
const SegmentPath& path )
140 os << static_cast< const CanvasPath& >( path ) <<
" segment "
141 << path.segmentIndex;
148 #endif // EQFABRIC_PATHS_H