My Project  0.0.16
QUCS Mapping
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
nodelist.h
Go to the documentation of this file.
1 /*
2  * nodelist.h - node list class definitions
3  *
4  * Copyright (C) 2003, 2004, 2008 Stefan Jahn <stefan@lkcc.org>
5  *
6  * This 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 2, or (at your option)
9  * any later version.
10  *
11  * This software 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 package; see the file COPYING. If not, write to
18  * the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
19  * Boston, MA 02110-1301, USA.
20  *
21  * $Id: nodelist.h 1825 2011-03-11 20:42:14Z ela $
22  *
23  */
24 
25 #ifndef __NODELIST_H__
26 #define __NODELIST_H__
27 
28 class node;
29 class net;
30 
31 struct nodelist_t {
32  int n;
33  char * name;
34  node ** nodes;
35  int nNodes;
36  int nAlloc;
37  int internal;
38  struct nodelist_t * next;
39 };
40 
41 class nodelist
42 {
43  public:
44  nodelist ();
45  nodelist (net *);
46  nodelist (const nodelist &);
47  ~nodelist ();
48  void add (char *, int intern = 0);
49  void append (char *, int intern = 0);
50  struct nodelist_t * getRoot (void) { return root; }
51  int length (void);
52  int contains (char *);
53  int getNodeNr (char *);
54  char * get (int);
55  int isInternal (int);
56  void addCircuitNode (struct nodelist_t *, node *);
57  void assignNodes (void);
58  void print (void);
59  struct nodelist_t * getNode (int);
60  struct nodelist_t * getLastNode (void);
61  char * getNodeString (int);
62  void sort (void);
63  struct nodelist_t * copy (struct nodelist_t *);
64  void add (struct nodelist_t *);
65  void append (struct nodelist_t *);
66  void release (struct nodelist_t *);
67  void remove (char *);
68  void remove (struct nodelist_t *, int keep = 0);
69  void remove (circuit *);
70  struct nodelist_t * create (char *, int);
71  void insert (struct nodelist_t *);
72  void insert (circuit *);
73  void delCircuitNode (struct nodelist_t *, node *);
74  void sortedNodes (node **, node **);
75  struct nodelist_t * getNode (char *);
76 
77  private:
78  struct nodelist_t ** narray;
79  struct nodelist_t * root;
80  struct nodelist_t * last;
81  char * txt;
82  int sorting;
83 };
84 
85 #endif /* __NODELIST_H__ */