~thopiekar/zypper/libzypp-manual-import

« back to all changes in this revision

Viewing changes to zypp/base/ReferenceCounted.cc

  • Committer: Thomas-Karl Pietrowski
  • Date: 2014-01-29 22:44:28 UTC
  • Revision ID: thopiekar@googlemail.com-20140129224428-gpcqnsdakby362n8
firstĀ import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*---------------------------------------------------------------------\
 
2
|                          ____ _   __ __ ___                          |
 
3
|                         |__  / \ / / . \ . \                         |
 
4
|                           / / \ V /|  _/  _/                         |
 
5
|                          / /__ | | | | | |                           |
 
6
|                         /_____||_| |_| |_|                           |
 
7
|                                                                      |
 
8
\---------------------------------------------------------------------*/
 
9
/** \file       zypp/base/ReferenceCounted.cc
 
10
 *
 
11
*/
 
12
#include <iostream>
 
13
 
 
14
#include "zypp/base/Logger.h"
 
15
#include "zypp/base/Exception.h"
 
16
#include "zypp/base/ReferenceCounted.h"
 
17
 
 
18
///////////////////////////////////////////////////////////////////
 
19
namespace zypp
 
20
{ /////////////////////////////////////////////////////////////////
 
21
  ///////////////////////////////////////////////////////////////////
 
22
  namespace base
 
23
  { /////////////////////////////////////////////////////////////////
 
24
 
 
25
    ReferenceCounted::ReferenceCounted()
 
26
    : _counter( 0 )
 
27
    {}
 
28
 
 
29
    ReferenceCounted::ReferenceCounted( const ReferenceCounted & /*rhs*/ )
 
30
    : _counter( 0 )
 
31
    {}
 
32
 
 
33
    ReferenceCounted::~ReferenceCounted()
 
34
    {
 
35
      if ( _counter )
 
36
        {
 
37
          INT << "~ReferenceCounted: nonzero reference count" << std::endl;
 
38
          throw std::out_of_range( "~ReferenceCounted: nonzero reference count" );
 
39
        }
 
40
    }
 
41
 
 
42
    void ReferenceCounted::unrefException() const
 
43
    {
 
44
      INT << "ReferenceCounted::unref: zero reference count" << std::endl;
 
45
      throw std::out_of_range( "ReferenceCounted::unref: zero reference count" );
 
46
    }
 
47
 
 
48
    std::ostream & ReferenceCounted::dumpOn( std::ostream & str ) const
 
49
    {
 
50
      return str << "ReferenceCounted(@" << (const void *)this
 
51
                 << "<=" << _counter << ")";
 
52
    }
 
53
 
 
54
    /////////////////////////////////////////////////////////////////
 
55
  } // namespace base
 
56
  ///////////////////////////////////////////////////////////////////
 
57
  /////////////////////////////////////////////////////////////////
 
58
} // namespace zypp
 
59
///////////////////////////////////////////////////////////////////