*** 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 *** *