From 224ec2c2609260fe9c14fdedcff4006e68195816 Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 22 Aug 1994 09:07:02 +0000 Subject: [PATCH] Resa const la funzione items. git-svn-id: svn://10.65.10.50/trunk@42 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- include/assoc.h | 182 ++++++++++++++++++++++++------------------------ 1 file changed, 91 insertions(+), 91 deletions(-) diff --git a/include/assoc.h b/include/assoc.h index 2b9bd45a7..527d92791 100755 --- a/include/assoc.h +++ b/include/assoc.h @@ -1,91 +1,91 @@ -#ifndef __ASSOC_H -#define __ASSOC_H - -#ifndef __ARRAY_H -#include -#endif - -#ifndef __STRINGS_H -#include -#endif - -class THash_object : public TObject -{ - friend class TAssoc_array; - - TString _key; - TObject* _obj; -public: - - TString& key() { return _key; } - TObject& obj() { return *_obj; } - - THash_object(const char* k) - { _key = k; } - ~THash_object() { if (_obj != NULL) delete _obj; } -}; - - -class TAssoc_array : public TObject -{ - enum { HASH_SIZE = 113 }; - word _cnt; - word _row; - word _col; - TArray _data[HASH_SIZE]; - - THash_object* _lookup(const char* k, bool& isnew, bool insert = FALSE); - - public: - - int items() { return _cnt; } - - void destroy(); - - // aggiunge oggetto; Se c'era gia' la chiave guarda force: - // se force = TRUE lo sostituisce e ritorna TRUE - // se force = FALSE non sostituisce e ritorna TRUE - // altrimenti ritorna FALSE - bool add(const char* key, TObject* obj = NULL, bool force = FALSE); - - // aggiunge copia oggetto (deve avere dup()). Vedi l'altra - // per i parametri - bool add(const char* key, const TObject& obj, bool force = FALSE); - - // elimina oggetto; ritorna FALSE se non c'era - bool remove(const char* key); - - // trova oggetto indicizzato; check se non c'e' - // normalmente si usa operator[key] - // se l'oggetto aggiunto era NULL ritorna error object - TObject& find(const char* key); - - // ritorna puntatore o NULL - TObject* objptr(const char* key); - - // TRUE se la chiave c'e', FALSE altrimenti - bool is_key(const char* key); - - // l'indice e' un po' strano ma si usera' questa poiche' - // 1) e' intuitivo - // 2) fa molto figo - TObject& operator[] (const char* key) { return find(key); } - - // iterazione come TToken_string - // si puo' adoperare get() e get_hashobj() intercambiabilmente ma - // non sono indipendenti (entrambe avanzano gli stessi contatori) - - TObject* get(); // ritorna solo l'object - THash_object* get_hashobj(); // se serve anche la chiave - void restart() { _row = 0; _col = 0; } - - TAssoc_array() : _cnt(0), _row(0), _col(0) {} - virtual ~TAssoc_array() { destroy(); } -}; - - - -#endif - - - +#ifndef __ASSOC_H +#define __ASSOC_H + +#ifndef __ARRAY_H +#include +#endif + +#ifndef __STRINGS_H +#include +#endif + +class THash_object : public TObject +{ + friend class TAssoc_array; + + TString _key; + TObject* _obj; +public: + + TString& key() { return _key; } + TObject& obj() { return *_obj; } + + THash_object(const char* k) + { _key = k; } + ~THash_object() { if (_obj != NULL) delete _obj; } +}; + + +class TAssoc_array : public TObject +{ + enum { HASH_SIZE = 113 }; + word _cnt; + word _row; + word _col; + TArray _data[HASH_SIZE]; + + THash_object* _lookup(const char* k, bool& isnew, bool insert = FALSE); + +public: + + int items() const { return _cnt; } + + void destroy(); + + // aggiunge oggetto; Se c'era gia' la chiave guarda force: + // se force = TRUE lo sostituisce e ritorna TRUE + // se force = FALSE non sostituisce e ritorna TRUE + // altrimenti ritorna FALSE + bool add(const char* key, TObject* obj = NULL, bool force = FALSE); + + // aggiunge copia oggetto (deve avere dup()). Vedi l'altra + // per i parametri + bool add(const char* key, const TObject& obj, bool force = FALSE); + + // elimina oggetto; ritorna FALSE se non c'era + bool remove(const char* key); + + // trova oggetto indicizzato; check se non c'e' + // normalmente si usa operator[key] + // se l'oggetto aggiunto era NULL ritorna error object + TObject& find(const char* key); + + // ritorna puntatore o NULL + TObject* objptr(const char* key); + + // TRUE se la chiave c'e', FALSE altrimenti + bool is_key(const char* key); + + // l'indice e' un po' strano ma si usera' questa poiche' + // 1) e' intuitivo + // 2) fa molto figo + TObject& operator[] (const char* key) { return find(key); } + + // iterazione come TToken_string + // si puo' adoperare get() e get_hashobj() intercambiabilmente ma + // non sono indipendenti (entrambe avanzano gli stessi contatori) + + TObject* get(); // ritorna solo l'object + THash_object* get_hashobj(); // se serve anche la chiave + void restart() { _row = 0; _col = 0; } + + TAssoc_array() : _cnt(0), _row(0), _col(0) {} + virtual ~TAssoc_array() { destroy(); } +}; + + + +#endif + + +