LCOV - code coverage report
Current view: top level - eq/server - global.h (source / functions) Hit Total Coverage
Test: Equalizer Lines: 63 66 95.5 %
Date: 2017-12-16 05:07:20 Functions: 26 27 96.3 %

          Line data    Source code
       1             : 
       2             : /* Copyright (c) 2006-2013, Stefan Eilemann <eile@equalizergraphics.com>
       3             :  *               2008-2010, Cedric Stalder <cedric.stalder@gmail.com>
       4             :  *                    2014, Daniel Nachbaur <danielnachbaur@gmail.com>
       5             :  *
       6             :  * This library is free software; you can redistribute it and/or modify it under
       7             :  * the terms of the GNU Lesser General Public License version 2.1 as published
       8             :  * by the Free Software Foundation.
       9             :  *
      10             :  * This library is distributed in the hope that it will be useful, but WITHOUT
      11             :  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
      12             :  * FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
      13             :  * details.
      14             :  *
      15             :  * You should have received a copy of the GNU Lesser General Public License
      16             :  * along with this library; if not, write to the Free Software Foundation, Inc.,
      17             :  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
      18             :  */
      19             : 
      20             : #ifndef EQSERVER_GLOBAL_H
      21             : #define EQSERVER_GLOBAL_H
      22             : 
      23             : #include "channel.h"               // nested enum
      24             : #include "compound.h"              // nested enum
      25             : #include "config.h"                // nested enum
      26             : #include "connectionDescription.h" // nested enum
      27             : #include "node.h"                  // nested enum
      28             : #include "pipe.h"                  // nested enum
      29             : #include "view.h"                  // nested enum
      30             : #include "window.h"                // nested enum
      31             : 
      32             : namespace eq
      33             : {
      34             : namespace server
      35             : {
      36             : /**
      37             :  * The global default attributes.
      38             :  */
      39         608 : class Global
      40             : {
      41             : public:
      42             :     EQSERVER_API static Global* instance();
      43             : 
      44             :     /** De-allocate the global instance. */
      45             :     EQSERVER_API static void clear();
      46             : 
      47             :     /** @name Connection (Description) Attributes. */
      48             :     //@{
      49           8 :     void setConnectionSAttribute(const ConnectionDescription::SAttribute attr,
      50             :                                  const std::string& value)
      51             :     {
      52           8 :         _connectionSAttributes[attr] = value;
      53           8 :     }
      54        1924 :     const std::string& getConnectionSAttribute(
      55             :         const ConnectionDescription::SAttribute attr) const
      56             :     {
      57        1924 :         return _connectionSAttributes[attr];
      58             :     }
      59             : 
      60           4 :     void setConnectionIAttribute(const ConnectionDescription::IAttribute attr,
      61             :                                  const int32_t value)
      62             :     {
      63           4 :         _connectionIAttributes[attr] = value;
      64           4 :     }
      65        2886 :     int32_t getConnectionIAttribute(
      66             :         const ConnectionDescription::IAttribute attr) const
      67             :     {
      68        2886 :         return _connectionIAttributes[attr];
      69             :     }
      70             :     //@}
      71             : 
      72             :     /** @name Config Attributes. */
      73             :     //@{
      74         396 :     void setConfigFAttribute(const Config::FAttribute attr, const float value)
      75             :     {
      76         396 :         _configFAttributes[attr] = value;
      77         396 :     }
      78        1646 :     float getConfigFAttribute(const Config::FAttribute attr) const
      79             :     {
      80        1646 :         return _configFAttributes[attr];
      81             :     }
      82             : 
      83           4 :     void setConfigIAttribute(const Config::IAttribute attr, const int32_t value)
      84             :     {
      85           4 :         _configIAttributes[attr] = value;
      86           4 :     }
      87        2424 :     int32_t getConfigIAttribute(const Config::IAttribute attr) const
      88             :     {
      89        2424 :         return _configIAttributes[attr];
      90             :     }
      91             :     //@}
      92             : 
      93             :     /** @name Node Attributes. */
      94             :     //@{
      95           4 :     void setNodeSAttribute(const Node::SAttribute attr,
      96             :                            const std::string& value)
      97             :     {
      98           4 :         _nodeSAttributes[attr] = value;
      99           4 :     }
     100        1244 :     const std::string& getNodeSAttribute(const Node::SAttribute attr) const
     101             :     {
     102        1244 :         return _nodeSAttributes[attr];
     103             :     }
     104             : 
     105           4 :     void setNodeCAttribute(const Node::CAttribute attr, const char value)
     106             :     {
     107           4 :         _nodeCAttributes[attr] = value;
     108           4 :     }
     109        1244 :     char getNodeCAttribute(const Node::CAttribute attr) const
     110             :     {
     111        1244 :         return _nodeCAttributes[attr];
     112             :     }
     113             : 
     114          12 :     void setNodeIAttribute(const Node::IAttribute attr, const int32_t value)
     115             :     {
     116          12 :         _nodeIAttributes[attr] = value;
     117          12 :     }
     118        3732 :     int32_t getNodeIAttribute(const Node::IAttribute attr) const
     119             :     {
     120        3732 :         return _nodeIAttributes[attr];
     121             :     }
     122             :     //@}
     123             : 
     124             :     /** @name Pipe Attributes. */
     125             :     //@{
     126           8 :     void setPipeIAttribute(const Pipe::IAttribute attr, const int32_t value)
     127             :     {
     128           8 :         _pipeIAttributes[attr] = value;
     129           8 :     }
     130        3460 :     int32_t getPipeIAttribute(const Pipe::IAttribute attr) const
     131             :     {
     132        3460 :         return _pipeIAttributes[attr];
     133             :     }
     134             :     //@}
     135             : 
     136             :     /** @name Window Attributes. */
     137             :     //@{
     138         316 :     void setWindowIAttribute(const WindowSettings::IAttribute attr,
     139             :                              const int32_t value)
     140             :     {
     141         316 :         _windowIAttributes[attr] = value;
     142         316 :     }
     143       47166 :     int32_t getWindowIAttribute(const WindowSettings::IAttribute attr) const
     144             :     {
     145       47166 :         return _windowIAttributes[attr];
     146             :     }
     147             :     //@}
     148             : 
     149             :     /** @name Channel Attributes. */
     150             :     //@{
     151           6 :     void setChannelIAttribute(const Channel::IAttribute attr,
     152             :                               const int32_t value)
     153             :     {
     154           6 :         _channelIAttributes[attr] = value;
     155           6 :     }
     156       11550 :     int32_t getChannelIAttribute(const Channel::IAttribute attr) const
     157             :     {
     158       11550 :         return _channelIAttributes[attr];
     159             :     }
     160             : 
     161           4 :     void setChannelSAttribute(const Channel::SAttribute attr,
     162             :                               const std::string& value)
     163             :     {
     164           4 :         _channelSAttributes[attr] = value;
     165           4 :     }
     166        9900 :     const std::string& getChannelSAttribute(
     167             :         const Channel::SAttribute attr) const
     168             :     {
     169        9900 :         return _channelSAttributes[attr];
     170             :     }
     171             :     //@}
     172             : 
     173             :     /** @name Compound Attributes. */
     174             :     //@{
     175          20 :     void setCompoundIAttribute(const Compound::IAttribute attr,
     176             :                                const int32_t value)
     177             :     {
     178          20 :         _compoundIAttributes[attr] = value;
     179          20 :     }
     180       74700 :     int32_t getCompoundIAttribute(const Compound::IAttribute attr) const
     181             :     {
     182       74700 :         return _compoundIAttributes[attr];
     183             :     }
     184             :     //@}
     185             : 
     186             :     /** @name View Attributes. */
     187             :     //@{
     188           0 :     void setViewSAttribute(const View::SAttribute attr,
     189             :                            const std::string& value)
     190             :     {
     191           0 :         _viewSAttributes[attr] = value;
     192           0 :     }
     193        4984 :     const std::string& getViewSAttribute(const View::SAttribute attr) const
     194             :     {
     195        4984 :         return _viewSAttributes[attr];
     196             :     }
     197             :     //@}
     198             : 
     199             : private:
     200             :     Global();
     201             : 
     202             :     std::string _connectionSAttributes[ConnectionDescription::SATTR_ALL];
     203             :     int32_t _connectionIAttributes[ConnectionDescription::IATTR_ALL];
     204             : 
     205             :     float _configFAttributes[Config::FATTR_ALL];
     206             :     int32_t _configIAttributes[Config::IATTR_ALL];
     207             : 
     208             :     std::string _nodeSAttributes[Node::SATTR_ALL];
     209             :     char _nodeCAttributes[Node::CATTR_ALL];
     210             :     int32_t _nodeIAttributes[Node::IATTR_ALL];
     211             : 
     212             :     int32_t _pipeIAttributes[Pipe::IATTR_ALL];
     213             : 
     214             :     int32_t _windowIAttributes[WindowSettings::IATTR_ALL];
     215             : 
     216             :     int32_t _channelIAttributes[Channel::IATTR_ALL];
     217             :     std::string _channelSAttributes[Channel::SATTR_ALL];
     218             : 
     219             :     int32_t _compoundIAttributes[Compound::IATTR_ALL];
     220             : 
     221             :     std::string _viewSAttributes[View::SATTR_ALL];
     222             : 
     223             :     struct Private;
     224             :     Private* _private; // placeholder for binary-compatible changes
     225             : 
     226             :     void _setupDefaults();
     227             :     void _readEnvironment();
     228             : 
     229             :     friend EQSERVER_API std::ostream& operator<<(std::ostream&, const Global*);
     230             : };
     231             : 
     232             : EQSERVER_API std::ostream& operator<<(std::ostream&, const Global*);
     233             : }
     234             : }
     235             : #endif // EQSERVER_GLOBAL_H

Generated by: LCOV version 1.11