00001 /* 00002 * plint/data/hash.h : hashes data structures 00003 * 00004 * Time-stamp: <2002-12-21 14:25:49 gseba> 00005 * 00006 * Copyright (C) Sebastian Glita, email: gseba@users.sourceforge.net 00007 * 00008 * This file is part of plint. 00009 * 00010 * plint is free software; you can redistribute it and/or modify it under the 00011 * terms of the GNU General Public License as published by the Free Software 00012 * Foundation; either version 2, or (at your option) any later version. 00013 * 00014 * plint is distributed in the hope that it will be useful, but WITHOUT 00015 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00016 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 00017 * more details. 00018 * 00019 * You should have received a copy of the GNU General Public License along 00020 * with plint; see the file COPYING. If not, write to the Free Software 00021 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA USA. 00022 * 00023 */ 00024 00025 #ifndef PLINT_DATA_TYPE_H 00026 #error Dont include me directly, but through data/type.h 00027 #endif 00028 00046 __BEGIN_DECLS 00047 00048 plint_hsh_t plint_hsh_new(); 00049 00050 plint_hsh_t plint_hsh_cpy(plint_hsh_t SOURCE); 00051 plint_hsh_t plint_hsh_dup(plint_hsh_t SOURCE); 00052 void plint_hsh_fre(plint_hsh_t HASH); 00053 00054 hashindex_t plint_hsh_put(plint_hsh_t HASH, plint_str_t STRING, plint_var_t VARIABLE); 00055 hashindex_t plint_hsh_get(plint_hsh_t HASH, plint_str_t STRING, plint_ref_t * PREFERENCE); 00056 00057 void plint_hsh_cat(plint_hsh_t LEFT, plint_hsh_t RIGHT); 00058 00059 inline plint_hsh_t plint_ptr_hsh(plint_ptr_t VALUE); 00060 inline plint_ptr_t plint_hsh_ptr(plint_hsh_t HASH); 00061 inline plint_ptr_t plint_hsh_set(plint_ptr_t VALUE, plint_hsh_t HASH); 00062 00063 __END_DECLS 00064