Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

nci/suif/suif2b/j2s/j2s_runtime/rt_UStringHashTable.h

Go to the documentation of this file.
00001 /* -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
00002 // rt_UStringHashTable.h
00003 
00004 #ifndef RT_USTRINGHASHTABLE_H
00005 #define RT_USTRINGHASHTABLE_H
00006 
00007 
00008 struct StringChainElement : public ChainElement {
00009   JObject   *copyOfString;
00010 };
00011 
00012 /*
00013   Represents a hashtable of references to java.lang.String
00014   instances.
00015 
00016   An instance of this class is used to provide the
00017   basis for java.lang.String.intern() semantics, which
00018   are to return a unique java.lang.String instance for
00019   a specified java.lang.String.
00020 
00021   */
00022 class UStringHashTable : public UHashTable {
00023 public:
00024   UStringHashTable(int numBuckets);
00025   virtual ~UStringHashTable();
00026   
00027   ChainElement *doNewChainElement ();
00028   void          doInitChainElement (
00029     ChainElement *pElm,
00030     void         *md);
00031 
00032   void     *insert(JObject *String, void * = NULL);
00033   void     *insert(char *s, void * = NULL);
00034   void     *insert(aJChar *s, int length, void * = NULL);
00035 
00036   boolean_t check();
00037   
00038   void *operator new(size_t);
00039   
00040 private:
00041   static int intern_count;
00042 
00043   JObject *my_lookup (JObject *String);
00044   JObject *_my_lookup (JObject *String, ChainElement **ppElm);
00045   
00046   void *   getValue(ChainElement *);
00047 };
00048 
00049 
00050 #endif // RT_USTRINGHASHTABLE_H

Generated at Mon Jul 31 13:42:11 2000 for NCI SUIF by doxygen 1.1.2 written by Dimitri van Heesch, © 1997-2000