*** swig.h.old	Wed Feb 04 14:59:40 1998
--- swig.h	Fri Aug 28 14:46:32 1998
***************
*** 178,185 ****
--- 178,211 ----
    char  *firstkey();
    char  *nextkey();
  };
  
+ // -------------------------------------------------------------------
+ // Simple Vector class
+ // User is responsible for deleting contents before deleteing Vector
+ // -------------------------------------------------------------------
+ 
+ class Vector {
+ public:
+     Vector(size_t allocSize=8);
+     ~Vector();
+ 
+     size_t size()                      { return m_size;  }
+     size_t count()                     { return m_count; }
+     size_t append(void* object);
+     size_t extend(size_t newSize);
+ 
+     void*& operator[] (size_t idx);
+ 
+     static void*    s_nullPtr;
+ 
+ private:
+     size_t          m_size;
+     size_t          m_count;
+     void**          m_data;
+ };
+ 
+ 
  /************************************************************************
   * class DataType
   *
   * Defines the basic datatypes supported by the translator.
***************
*** 684,691 ****
--- 710,761 ----
  extern char  *name_get(char *vname, int suppress=0);
  extern char  *name_set(char *vname, int suppress=0);
  extern char  *name_construct(char *classname, int suppress=0);
  extern char  *name_destroy(char *classname, int suppress=0);
+ 
+ // ----------------------------------------------------------------------
+ // class CPP_class
+ //
+ // Class for managing class members (internally)
+ // ----------------------------------------------------------------------
+ 
+ class CPP_member;
+ 
+ class CPP_class {
+ public:
+   char        *classname;             // Real class name
+   char        *classrename;           // New name of class (if applicable)
+   char        *classtype;             // class type (struct, union, class)
+   int          strip;                 // Strip off class declarator
+   int          wextern;               // Value of extern wrapper variable for this class
+   int          have_constructor;      // Status bit indicating if we've seen a constructor
+   int          have_destructor;       // Status bit indicating if a destructor has been seen
+   int          is_abstract;           // Status bit indicating if this is an abstract class
+   int          generate_default;      // Generate default constructors
+   int          objective_c;           // Set if this is an objective C class
+   int          error;                 // Set if this class can't be generated
+   int          line;                  // Line number
+   char        **baseclass;            // Base classes (if any)
+   Hash        *local;                 // Hash table for local types
+   Hash        *scope;                 // Local scope hash table
+   DocEntry    *de;                    // Documentation entry of class
+   CPP_member  *members;               // Linked list of members
+   CPP_class   *next;                  // Next class
+   static CPP_class *classlist;        // List of all classes stored
+ 
+   Vector      addPragmas;
+ 
+   CPP_class(char *name, char *ctype);
+   void add_member(CPP_member *m);
+   CPP_member *search_member(char *name);
+   void inherit_decls(int mode);
+   void emit_decls();
+   static CPP_class *search(char *name);
+   void create_default();
+   static void create_all();
+ };
+ 
+ extern CPP_class     *current_class;
  
  /***********************************************************************
   * -- Revision History
   * $Log$
   * Revision 1.1  1998/10/03 05:56:02  RD
   * *** empty log message ***
   *
