(root)/
binutils-2.41/
gprofng/
src/
DbeLinkList.h
       1  /* Copyright (C) 2021-2023 Free Software Foundation, Inc.
       2     Contributed by Oracle.
       3  
       4     This file is part of GNU Binutils.
       5  
       6     This program is free software; you can redistribute it and/or modify
       7     it under the terms of the GNU General Public License as published by
       8     the Free Software Foundation; either version 3, or (at your option)
       9     any later version.
      10  
      11     This program is distributed in the hope that it will be useful,
      12     but WITHOUT ANY WARRANTY; without even the implied warranty of
      13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      14     GNU General Public License for more details.
      15  
      16     You should have received a copy of the GNU General Public License
      17     along with this program; if not, write to the Free Software
      18     Foundation, 51 Franklin Street - Fifth Floor, Boston,
      19     MA 02110-1301, USA.  */
      20  
      21  #ifndef _DbeLinkList_h
      22  #define _DbeLinkList_h
      23  
      24  template <typename ITEM> class DbeLinkList
      25  {
      26  public:
      27  
      28    DbeLinkList (ITEM _item)
      29    {
      30      item = _item;
      31      next = NULL;
      32    };
      33  
      34    ~DbeLinkList () { };
      35  
      36    ITEM
      37    get_item ()
      38    {
      39      return item;
      40    }
      41  
      42    DbeLinkList<ITEM> *
      43    get_next ()
      44    {
      45      return next;
      46    }
      47  
      48    void
      49    set_next (DbeLinkList<ITEM> *p)
      50    {
      51      next = p;
      52    }
      53  
      54    void
      55    destroy (bool deleteItem = false)
      56    {
      57      for (DbeLinkList<ITEM> *p = next; p;)
      58        {
      59  	DbeLinkList<ITEM> *p1 = p->get_next ();
      60  	if (deleteItem)
      61  	  delete p->get_item ();
      62  	delete p;
      63  	p = p1;
      64        }
      65      next = NULL;
      66    }
      67  
      68  private:
      69    ITEM item;
      70    DbeLinkList<ITEM> *next;
      71  };
      72  
      73  #endif /* _DbeLinkList_h */