src/core/ref-count-base.h
author Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
Sun, 15 Nov 2009 09:16:32 +0100
changeset 5533 63e2dbaf577c
parent 5505 c0ac392289c3
permissions -rw-r--r--
make the destructor non-pure for the python bindings
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2775
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
     1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
     2
/*
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
     3
 * Copyright (c) 2007 Georgia Tech Research Corporation
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
     4
 *
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
     7
 * published by the Free Software Foundation;
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
     8
 *
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    12
 * GNU General Public License for more details.
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    13
 *
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    17
 *
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    18
 * Author:  George Riley <riley@ece.gatech.edu>
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    19
 * Adapted from original code in object.h by:
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    20
 * Authors: Gustavo Carneiro <gjcarneiro@gmail.com>,
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    21
 *          Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    22
 */
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    23
#ifndef __REF_COUNT_BASE_H__
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    24
#define __REF_COUNT_BASE_H__
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    25
5505
c0ac392289c3 replace RefCountBase with SimpleRefCount<> to avoid duplicate refcounting implementations.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3395
diff changeset
    26
#include "simple-ref-count.h"
2775
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    27
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    28
namespace ns3 {
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    29
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    30
/**
5505
c0ac392289c3 replace RefCountBase with SimpleRefCount<> to avoid duplicate refcounting implementations.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3395
diff changeset
    31
 * \brief A deprecated way to get reference-counting powers
2775
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    32
 *
5505
c0ac392289c3 replace RefCountBase with SimpleRefCount<> to avoid duplicate refcounting implementations.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3395
diff changeset
    33
 * Users who wish to use reference counting for a class of their own should use
c0ac392289c3 replace RefCountBase with SimpleRefCount<> to avoid duplicate refcounting implementations.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3395
diff changeset
    34
 * instead the template \ref ns3::SimpleRefCount. This class is maintained
c0ac392289c3 replace RefCountBase with SimpleRefCount<> to avoid duplicate refcounting implementations.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3395
diff changeset
    35
 * purely for compatibility to avoid breaking the code of users.
2775
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    36
 */
5505
c0ac392289c3 replace RefCountBase with SimpleRefCount<> to avoid duplicate refcounting implementations.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3395
diff changeset
    37
class RefCountBase : public SimpleRefCount<RefCountBase>
2775
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    38
{ 
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    39
public:
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    40
  /**
5505
c0ac392289c3 replace RefCountBase with SimpleRefCount<> to avoid duplicate refcounting implementations.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 3395
diff changeset
    41
   * This only thing this class does it declare a virtual destructor
2775
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    42
   */
5533
63e2dbaf577c make the destructor non-pure for the python bindings
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 5505
diff changeset
    43
  virtual ~RefCountBase ();
2775
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    44
};
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    45
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    46
} // namespace ns3
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    47
03a23eb5f1e8 bug: 147. Add RefCountBase
George F. Riley<riley@ece.gatech.edu>
parents:
diff changeset
    48
#endif /* __REF_COUNT_BASE_H__*/