/* * $XConsortium: hash.h /main/4 1996/06/11 17:21:59 cde-hal $ * * Copyright (c) 1993 HAL Computer Systems International, Ltd. * All rights reserved. Unpublished -- rights reserved under * the Copyright Laws of the United States. USE OF A COPYRIGHT * NOTICE IS PRECAUTIONARY ONLY AND DOES NOT IMPLY PUBLICATION * OR DISCLOSURE. * * THIS SOFTWARE CONTAINS CONFIDENTIAL INFORMATION AND TRADE * SECRETS OF HAL COMPUTER SYSTEMS INTERNATIONAL, LTD. USE, * DISCLOSURE, OR REPRODUCTION IS PROHIBITED WITHOUT THE * PRIOR EXPRESS WRITTEN PERMISSION OF HAL COMPUTER SYSTEMS * INTERNATIONAL, LTD. * * RESTRICTED RIGHTS LEGEND * Use, duplication, or disclosure by the Government is subject * to the restrictions as set forth in subparagraph (c)(l)(ii) * of the Rights in Technical Data and Computer Software clause * at DFARS 252.227-7013. * * HAL COMPUTER SYSTEMS INTERNATIONAL, LTD. * 1315 Dell Avenue * Campbell, CA 95008 * */ #ifndef _hash_h #define _hash_h 1 //#include #include "utility/buffer.h" #include "utility/key.h" class hash { public: hash(); virtual ~hash() ; virtual void init_data_member(unsigned int v_key_set_sz = 0, unsigned int v_hash_func_sz = 0, unsigned int v_hash_tbl_sz = 0); // status inquiry functions virtual int keysetsize() const { return v_key_set_sz; }; virtual int hashtablesize() const { return v_hash_tbl_sz; }; virtual int hashfuncsize() const { return v_hash_func_sz; }; // return the hash value for a key virtual int hashTo(const key_type&) = 0; // load a set of key-oid pairs virtual Boolean load() { return false; }; // compacted disk representation In and Out functions virtual int cdr_sizeof(); virtual io_status cdrOut(buffer&); virtual io_status cdrIn(buffer&); protected: unsigned int v_key_set_sz; unsigned int v_hash_func_sz; unsigned int v_hash_tbl_sz; }; #endif