LCOV - code coverage report
Current view: top level - eq/fabric - paths.h (source / functions) Hit Total Coverage
Test: Equalizer Lines: 45 69 65.2 %
Date: 2017-12-16 05:07:20 Functions: 14 21 66.7 %

          Line data    Source code
       1             : 
       2             : /* Copyright (c) 2009-2010, Stefan Eilemann <eile@equalizergraphics.com>
       3             :  *
       4             :  * This library is free software; you can redistribute it and/or modify it under
       5             :  * the terms of the GNU Lesser General Public License version 2.1 as published
       6             :  * by the Free Software Foundation.
       7             :  *
       8             :  * This library is distributed in the hope that it will be useful, but WITHOUT
       9             :  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
      10             :  * FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
      11             :  * details.
      12             :  *
      13             :  * You should have received a copy of the GNU Lesser General Public License
      14             :  * along with this library; if not, write to the Free Software Foundation, Inc.,
      15             :  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
      16             :  */
      17             : 
      18             : #ifndef EQFABRIC_PATHS_H
      19             : #define EQFABRIC_PATHS_H
      20             : 
      21             : #include "types.h"
      22             : 
      23             : /** @cond IGNORE */
      24             : namespace eq
      25             : {
      26             : namespace fabric
      27             : {
      28             : //----- defines path types with are used to reference entities
      29             : // node...channel hierarchy
      30             : struct NodePath
      31             : {
      32          10 :     explicit NodePath(const uint32_t index = 0)
      33          10 :         : nodeIndex(index)
      34             :     {
      35          10 :     }
      36             :     uint32_t nodeIndex;
      37             : };
      38             : 
      39             : struct PipePath : public NodePath
      40             : {
      41           2 :     explicit PipePath(const uint32_t index = 0)
      42           2 :         : pipeIndex(index)
      43             :     {
      44           2 :     }
      45           8 :     explicit PipePath(const NodePath& p)
      46           8 :         : NodePath(p)
      47           8 :         , pipeIndex(0)
      48             :     {
      49           8 :     }
      50             :     uint32_t pipeIndex;
      51             : };
      52             : 
      53             : struct WindowPath : public PipePath
      54             : {
      55           2 :     explicit WindowPath(const uint32_t index = 0)
      56           2 :         : windowIndex(index)
      57             :     {
      58           2 :     }
      59           0 :     explicit WindowPath(const PipePath& p)
      60           0 :         : PipePath(p)
      61           0 :         , windowIndex(0)
      62             :     {
      63           0 :     }
      64             :     uint32_t windowIndex;
      65             : };
      66             : 
      67             : struct ChannelPath : public WindowPath
      68             : {
      69           2 :     explicit ChannelPath(const uint32_t index = 0)
      70           2 :         : channelIndex(index)
      71             :     {
      72           2 :     }
      73           0 :     explicit ChannelPath(const WindowPath& p)
      74           0 :         : WindowPath(p)
      75           0 :         , channelIndex(0)
      76             :     {
      77           0 :     }
      78             :     uint32_t channelIndex;
      79             : };
      80             : 
      81             : // View hierarchy
      82             : struct CanvasPath
      83             : {
      84        4586 :     explicit CanvasPath(const uint32_t index = 0)
      85        4586 :         : canvasIndex(index)
      86             :     {
      87        4586 :     }
      88             :     uint32_t canvasIndex;
      89             : };
      90             : 
      91             : struct SegmentPath : public CanvasPath
      92             : {
      93        2706 :     explicit SegmentPath(const uint32_t index = 0)
      94        2706 :         : segmentIndex(index)
      95             :     {
      96        2706 :     }
      97         638 :     explicit SegmentPath(const CanvasPath& p)
      98         638 :         : CanvasPath(p)
      99         638 :         , segmentIndex(0)
     100             :     {
     101         638 :     }
     102             :     uint32_t segmentIndex;
     103             : };
     104             : 
     105             : struct ObserverPath
     106             : {
     107         300 :     explicit ObserverPath(const uint32_t index = 0)
     108         300 :         : observerIndex(index)
     109             :     {
     110         300 :     }
     111             :     uint32_t observerIndex;
     112             : };
     113             : 
     114             : struct LayoutPath
     115             : {
     116        4324 :     explicit LayoutPath(const uint32_t index = 0)
     117        4324 :         : layoutIndex(index)
     118             :     {
     119        4324 :     }
     120             :     uint32_t layoutIndex;
     121             : };
     122             : 
     123             : struct ViewPath : public LayoutPath
     124             : {
     125        2906 :     explicit ViewPath(const uint32_t index = 0)
     126        2906 :         : viewIndex(index)
     127             :     {
     128        2906 :     }
     129         636 :     explicit ViewPath(const LayoutPath& p)
     130         636 :         : LayoutPath(p)
     131         636 :         , viewIndex(0)
     132             :     {
     133         636 :     }
     134             :     uint32_t viewIndex;
     135             : };
     136             : 
     137             : // ostream operators
     138           0 : inline std::ostream& operator<<(std::ostream& os, const NodePath& path)
     139             : {
     140           0 :     os << "node " << path.nodeIndex;
     141           0 :     return os;
     142             : }
     143           0 : inline std::ostream& operator<<(std::ostream& os, const PipePath& path)
     144             : {
     145           0 :     os << static_cast<const NodePath&>(path) << " pipe " << path.pipeIndex;
     146           0 :     return os;
     147             : }
     148           0 : inline std::ostream& operator<<(std::ostream& os, const WindowPath& path)
     149             : {
     150           0 :     os << static_cast<const PipePath&>(path) << " window " << path.windowIndex;
     151           0 :     return os;
     152             : }
     153           0 : inline std::ostream& operator<<(std::ostream& os, const ChannelPath& path)
     154             : {
     155           0 :     os << static_cast<const WindowPath&>(path) << " channel "
     156           0 :        << path.channelIndex;
     157           0 :     return os;
     158             : }
     159             : 
     160           0 : inline std::ostream& operator<<(std::ostream& os, const ObserverPath& path)
     161             : {
     162           0 :     os << "observer " << path.observerIndex;
     163           0 :     return os;
     164             : }
     165             : 
     166         292 : inline std::ostream& operator<<(std::ostream& os, const LayoutPath& path)
     167             : {
     168         292 :     os << "layout   " << path.layoutIndex;
     169         292 :     return os;
     170             : }
     171             : inline std::ostream& operator<<(std::ostream& os, const ViewPath& path)
     172             : {
     173             :     os << static_cast<const LayoutPath&>(path) << " view " << path.viewIndex;
     174             :     return os;
     175             : }
     176             : 
     177         622 : inline std::ostream& operator<<(std::ostream& os, const CanvasPath& path)
     178             : {
     179         622 :     os << "canvas " << path.canvasIndex;
     180         622 :     return os;
     181             : }
     182             : inline std::ostream& operator<<(std::ostream& os, const SegmentPath& path)
     183             : {
     184             :     os << static_cast<const CanvasPath&>(path) << " segment "
     185             :        << path.segmentIndex;
     186             :     return os;
     187             : }
     188             : /** @endcond */
     189             : }
     190             : }
     191             : #endif // EQFABRIC_PATHS_H

Generated by: LCOV version 1.11