Aggiunto costruttore i copia
git-svn-id: svn://10.65.10.50/trunk@2802 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
11ec3729bc
commit
b8653b0c6f
@ -322,3 +322,34 @@ int TAssoc_array::get_keys(TString_array& kl, bool add_values)
|
|||||||
restart();
|
restart();
|
||||||
return kl.items();
|
return kl.items();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HIDDEN TAssoc_array * _new_assoc_array = NULL;
|
||||||
|
|
||||||
|
|
||||||
|
// @doc INTERNAL
|
||||||
|
|
||||||
|
// @mfunc funzione per duplicare il contenuto di un assoc_array
|
||||||
|
//
|
||||||
|
HIDDEN void copia_elemento(const TObject & o)
|
||||||
|
|
||||||
|
{
|
||||||
|
const THash_object & h = (const THash_object & ) o;
|
||||||
|
|
||||||
|
_new_assoc_array->add(h.key(), h.obj(), TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
// @doc INTERNAL
|
||||||
|
|
||||||
|
// @mfunc Copia tutto l'array e ne duplica gli elementi
|
||||||
|
//
|
||||||
|
TAssoc_array & TAssoc_array::copy(
|
||||||
|
const TAssoc_array & a) // @parm Array associativo sorgente
|
||||||
|
|
||||||
|
{
|
||||||
|
CHECK(_new_assoc_array == NULL, "Trying to duplicate an assoc array while another copy is in progress");
|
||||||
|
_new_assoc_array = this;
|
||||||
|
((TAssoc_array &)a).for_each(copia_elemento);
|
||||||
|
_new_assoc_array = NULL;
|
||||||
|
return * this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -74,7 +74,9 @@ class TAssoc_array : public TContainer
|
|||||||
protected:
|
protected:
|
||||||
|
|
||||||
// @cmember Cerca l'oggetto con chiave k
|
// @cmember Cerca l'oggetto con chiave k
|
||||||
THash_object* _lookup(const char* k, bool& isnew, bool insert = FALSE);
|
THash_object* _lookup(const char* k, bool& isnew, bool insert = FALSE);
|
||||||
|
// @cmember Copia tutto l'array associativo e ne duplica gli elementi
|
||||||
|
TAssoc_array & copy(const TAssoc_array & a);
|
||||||
|
|
||||||
// @access Public Member
|
// @access Public Member
|
||||||
public:
|
public:
|
||||||
@ -134,10 +136,16 @@ public:
|
|||||||
|
|
||||||
// @cmember Mette chiavi e opzionalmente valori (come stringa) nel <c TString_array> passato
|
// @cmember Mette chiavi e opzionalmente valori (come stringa) nel <c TString_array> passato
|
||||||
int get_keys(TString_array& kl, bool add_values = FALSE);
|
int get_keys(TString_array& kl, bool add_values = FALSE);
|
||||||
|
// @cmember Operatore di assegnamento tra array associativi
|
||||||
|
TAssoc_array & operator= (const TAssoc_array & a)
|
||||||
|
{ return copy(a); }
|
||||||
|
|
||||||
// @cmember Costruttore
|
// @cmember Costruttore
|
||||||
TAssoc_array() : _cnt(0), _row(0), _col(0)
|
TAssoc_array() : _cnt(0), _row(0), _col(0)
|
||||||
{}
|
{}
|
||||||
|
// @cmember Costruttore. Copia tutto l'array associativo e ne duplica gli elementi
|
||||||
|
TAssoc_array(const TAssoc_array & a) : _cnt(0), _row(0), _col(0)
|
||||||
|
{ copy(a); }
|
||||||
// @cmember Distruttore
|
// @cmember Distruttore
|
||||||
virtual ~TAssoc_array()
|
virtual ~TAssoc_array()
|
||||||
{ destroy(); }
|
{ destroy(); }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user