db_item_c.x revision a506a34ceb0e9dcc6c61bf0560202f8538928650
355b4669e025ff377602b6fc7caaf30dbc218371jacobs/*
355b4669e025ff377602b6fc7caaf30dbc218371jacobs * CDDL HEADER START
355b4669e025ff377602b6fc7caaf30dbc218371jacobs *
355b4669e025ff377602b6fc7caaf30dbc218371jacobs * The contents of this file are subject to the terms of the
355b4669e025ff377602b6fc7caaf30dbc218371jacobs * Common Development and Distribution License, Version 1.0 only
355b4669e025ff377602b6fc7caaf30dbc218371jacobs * (the "License"). You may not use this file except in compliance
355b4669e025ff377602b6fc7caaf30dbc218371jacobs * with the License.
355b4669e025ff377602b6fc7caaf30dbc218371jacobs *
355b4669e025ff377602b6fc7caaf30dbc218371jacobs * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
355b4669e025ff377602b6fc7caaf30dbc218371jacobs * or http://www.opensolaris.org/os/licensing.
355b4669e025ff377602b6fc7caaf30dbc218371jacobs * See the License for the specific language governing permissions
355b4669e025ff377602b6fc7caaf30dbc218371jacobs * and limitations under the License.
355b4669e025ff377602b6fc7caaf30dbc218371jacobs *
355b4669e025ff377602b6fc7caaf30dbc218371jacobs * When distributing Covered Code, include this CDDL HEADER in each
355b4669e025ff377602b6fc7caaf30dbc218371jacobs * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
355b4669e025ff377602b6fc7caaf30dbc218371jacobs * If applicable, add the following below this CDDL HEADER, with the
355b4669e025ff377602b6fc7caaf30dbc218371jacobs * fields enclosed by brackets "[]" replaced with your own identifying
355b4669e025ff377602b6fc7caaf30dbc218371jacobs * information: Portions Copyright [yyyy] [name of copyright owner]
355b4669e025ff377602b6fc7caaf30dbc218371jacobs *
355b4669e025ff377602b6fc7caaf30dbc218371jacobs * CDDL HEADER END
355b4669e025ff377602b6fc7caaf30dbc218371jacobs */
355b4669e025ff377602b6fc7caaf30dbc218371jacobs/*
355b4669e025ff377602b6fc7caaf30dbc218371jacobs * db_item_c.x
355b4669e025ff377602b6fc7caaf30dbc218371jacobs *
355b4669e025ff377602b6fc7caaf30dbc218371jacobs * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
355b4669e025ff377602b6fc7caaf30dbc218371jacobs * Use is subject to license terms.
355b4669e025ff377602b6fc7caaf30dbc218371jacobs */
355b4669e025ff377602b6fc7caaf30dbc218371jacobs
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%#pragma ident "%Z%%M% %I% %E% SMI"
355b4669e025ff377602b6fc7caaf30dbc218371jacobs
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%
355b4669e025ff377602b6fc7caaf30dbc218371jacobs% /* A 'counted' string. */
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%
355b4669e025ff377602b6fc7caaf30dbc218371jacobs
355b4669e025ff377602b6fc7caaf30dbc218371jacobs#if RPC_HDR
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%#ifndef _DB_ITEM_H
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%#define _DB_ITEM_H
355b4669e025ff377602b6fc7caaf30dbc218371jacobs#endif /* RPC_HDR */
355b4669e025ff377602b6fc7caaf30dbc218371jacobs
355b4669e025ff377602b6fc7caaf30dbc218371jacobs#if RPC_HDR || RPC_XDR
355b4669e025ff377602b6fc7caaf30dbc218371jacobs#ifdef USINGC
355b4669e025ff377602b6fc7caaf30dbc218371jacobsstruct item{
355b4669e025ff377602b6fc7caaf30dbc218371jacobs char itemvalue<>;
355b4669e025ff377602b6fc7caaf30dbc218371jacobs};
355b4669e025ff377602b6fc7caaf30dbc218371jacobs#endif /* USINGC */
355b4669e025ff377602b6fc7caaf30dbc218371jacobs#endif /* RPC_HDR */
355b4669e025ff377602b6fc7caaf30dbc218371jacobs
355b4669e025ff377602b6fc7caaf30dbc218371jacobs#ifndef USINGC
355b4669e025ff377602b6fc7caaf30dbc218371jacobs#ifdef RPC_HDR
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%class item {
355b4669e025ff377602b6fc7caaf30dbc218371jacobs% int len;
355b4669e025ff377602b6fc7caaf30dbc218371jacobs% char *value;
355b4669e025ff377602b6fc7caaf30dbc218371jacobs% public:
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%/* Constructor: creates item using given character sequence and length */
355b4669e025ff377602b6fc7caaf30dbc218371jacobs% item( char* str, int len);
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%/* Constructor: creates item by copying given item */
355b4669e025ff377602b6fc7caaf30dbc218371jacobs% item( item* );
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%/* Constructor: creates empty item (zero length and null value). */
355b4669e025ff377602b6fc7caaf30dbc218371jacobs% item() {len = 0; value = NULL;}
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%/* Destructor: recover space occupied by characters and delete item. */
355b4669e025ff377602b6fc7caaf30dbc218371jacobs% ~item() {delete value;}
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%/* Equality test. 'casein' TRUE means case insensitive test. */
355b4669e025ff377602b6fc7caaf30dbc218371jacobs% bool_t equal( item *, bool_t casein = FALSE );
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%/* Equality test. 'casein' TRUE means case insensitive test. */
355b4669e025ff377602b6fc7caaf30dbc218371jacobs% bool_t equal( char *, int, bool_t casein = FALSE );
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%/* Assignment: update item by setting pointers. No space is allocated. */
355b4669e025ff377602b6fc7caaf30dbc218371jacobs% void update( char* str, int n) {len = n; value = str;}
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%/* Return contents of item. */
355b4669e025ff377602b6fc7caaf30dbc218371jacobs% void get_value( char** s, int * n ) { *s = value; *n=len;}
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%/* Prints contents of item to stdout */
355b4669e025ff377602b6fc7caaf30dbc218371jacobs% void print();
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%/* Return hash value. 'casein' TRUE means case insensitive test. */
355b4669e025ff377602b6fc7caaf30dbc218371jacobs% unsigned int get_hashval( bool_t casein = FALSE );
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%};
355b4669e025ff377602b6fc7caaf30dbc218371jacobs#endif /* RPC_HDR */
355b4669e025ff377602b6fc7caaf30dbc218371jacobs#endif /* USINGC */
355b4669e025ff377602b6fc7caaf30dbc218371jacobs
355b4669e025ff377602b6fc7caaf30dbc218371jacobs#if RPC_HDR
355b4669e025ff377602b6fc7caaf30dbc218371jacobs%#endif /* _DB_ITEM_H */
355b4669e025ff377602b6fc7caaf30dbc218371jacobs#endif /* RPC_HDR */
355b4669e025ff377602b6fc7caaf30dbc218371jacobs