LCOV - code coverage report
Current view: top level - co - objectDataICommand.cpp (source / functions) Hit Total Coverage
Test: Collage Lines: 39 45 86.7 %
Date: 2018-01-09 16:37:03 Functions: 16 18 88.9 %

          Line data    Source code
       1             : 
       2             : /* Copyright (c) 2012-2017, Daniel Nachbaur <danielnachbaur@gmail.com>
       3             :  *                          Stefan.Eilemann@epfl.ch
       4             :  *
       5             :  * This file is part of Collage <https://github.com/Eyescale/Collage>
       6             :  *
       7             :  * This library is free software; you can redistribute it and/or modify it under
       8             :  * the terms of the GNU Lesser General Public License version 2.1 as published
       9             :  * by the Free Software Foundation.
      10             :  *
      11             :  * This library is distributed in the hope that it will be useful, but WITHOUT
      12             :  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
      13             :  * FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
      14             :  * details.
      15             :  *
      16             :  * You should have received a copy of the GNU Lesser General Public License
      17             :  * along with this library; if not, write to the Free Software Foundation, Inc.,
      18             :  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
      19             :  */
      20             : 
      21             : #include "objectDataICommand.h"
      22             : 
      23             : #include "buffer.h"
      24             : #include <pression/data/CompressorInfo.h>
      25             : #include <pression/data/Registry.h>
      26             : 
      27             : namespace co
      28             : {
      29             : namespace detail
      30             : {
      31      372105 : class ObjectDataICommand
      32             : {
      33             : public:
      34      371801 :     ObjectDataICommand()
      35      371801 :         : version(0, 0)
      36             :         , datasize(0)
      37             :         , sequence(0)
      38             :         , chunks(1)
      39      371801 :         , isLast(false)
      40             :     {
      41      371801 :     }
      42             : 
      43             :     uint128_t version;
      44             :     uint64_t datasize;
      45             :     uint32_t sequence;
      46             :     std::string compressorName;
      47             :     uint32_t chunks;
      48             :     bool isLast;
      49             : };
      50             : }
      51             : 
      52      371798 : ObjectDataICommand::ObjectDataICommand(const ICommand& command)
      53             :     : ObjectICommand(command)
      54      371798 :     , _impl(new detail::ObjectDataICommand)
      55             : {
      56      371798 :     _init();
      57      371798 : }
      58             : 
      59           3 : ObjectDataICommand::ObjectDataICommand(LocalNodePtr local, NodePtr remote,
      60           3 :                                        ConstBufferPtr buffer)
      61             :     : ObjectICommand(local, remote, buffer)
      62           3 :     , _impl(new detail::ObjectDataICommand)
      63             : {
      64           3 :     _init();
      65           3 : }
      66             : 
      67         152 : ObjectDataICommand::ObjectDataICommand(const ObjectDataICommand& rhs)
      68             :     : ObjectICommand(rhs)
      69         152 :     , _impl(new detail::ObjectDataICommand(*rhs._impl))
      70             : {
      71         152 :     _init();
      72         152 : }
      73             : 
      74      371953 : void ObjectDataICommand::_init()
      75             : {
      76      371953 :     if (isValid())
      77      371953 :         *this >> _impl->version >> _impl->datasize >> _impl->sequence >>
      78      743906 :             _impl->isLast >> _impl->compressorName >> _impl->chunks;
      79      371953 : }
      80             : 
      81      743906 : ObjectDataICommand::~ObjectDataICommand()
      82             : {
      83      371953 :     delete _impl;
      84      371953 : }
      85             : 
      86      371641 : uint128_t ObjectDataICommand::getVersion() const
      87             : {
      88      371641 :     return _impl->version;
      89             : }
      90             : 
      91      185799 : uint32_t ObjectDataICommand::getSequence() const
      92             : {
      93      185799 :     return _impl->sequence;
      94             : }
      95             : 
      96         163 : uint64_t ObjectDataICommand::getDataSize() const
      97             : {
      98         163 :     return _impl->datasize;
      99             : }
     100             : 
     101         159 : CompressorInfo ObjectDataICommand::getCompressorInfo() const
     102             : {
     103         159 :     return pression::data::Registry::getInstance().find(_impl->compressorName);
     104             : }
     105             : 
     106         159 : uint32_t ObjectDataICommand::getChunks() const
     107             : {
     108         159 :     return _impl->chunks;
     109             : }
     110             : 
     111      185792 : bool ObjectDataICommand::isLast() const
     112             : {
     113      185792 :     return _impl->isLast;
     114             : }
     115             : 
     116           0 : std::ostream& operator<<(std::ostream& os, const ObjectDataICommand& command)
     117             : {
     118           0 :     os << static_cast<const ObjectICommand&>(command);
     119           0 :     if (command.isValid())
     120             :     {
     121           0 :         os << " v" << command.getVersion() << " size " << command.getDataSize()
     122           0 :            << " seq " << command.getSequence() << " last " << command.isLast();
     123             :     }
     124           0 :     return os;
     125             : }
     126          63 : }

Generated by: LCOV version 1.11