/* Basic functions for @XX@ structures. * Copyright (C) 1995, 1996 Free Software Foundation, Inc. * * Author: Albin L. Jones * Created: Mon Dec 11 01:24:48 EST 1995 * Updated: Mon Mar 11 00:54:50 EST 1996 * Serial: 96.03.11.03 * * This file is part of the GNU Objective C Class Library. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef __@XX@_bas_h_OBJECTS_INCLUDE #define __@XX@_bas_h_OBJECTS_INCLUDE 1 /**** Included Headers *******************************************************/ #include #include #include #include /**** Type, Constant, and Macro Definitions **********************************/ #define __@XX@__ 1 /**** Function Implementations ***********************************************/ /** Magic numbers... **/ /* Returns XX's magic number. */ int objects_@XX@_magic_number(objects_@XX@_t *xx); /** Zones... **/ /* Returns the allocs used to create and maintain XX. */ NSZone * objects_@XX@_zone(objects_@XX@_t *xx); /** Names... **/ /* Returns the name that was given to XX. */ NSString * objects_@XX@_name(objects_@XX@_t *xx); /* Gives XX a name. */ void objects_@XX@_set_name(objects_@XX@_t *xx, NSString *name); /* Takes away XX's name. */ void objects_@XX@_unset_name(objects_@XX@_t *xx); /** Serial numbers... **/ /* Returns the (process-wide) unique number given to the Libfn * structure XX. See for more info. */ size_t objects_@XX@_serial_number(objects_@XX@_t *xx); /* Gives XX a new (process-wide) unique number. Numbers are not * reused. See for more info. */ size_t _objects_@XX@_set_serial_number(objects_@XX@_t *xx); /** Extras... **/ /* Sets the callbacks associated with XX's ``extra''. NOTE: This must * be done before calling `objects_@XX@_set_extra()', as these callbacks * are used in that routine. */ objects_callbacks_t objects_@XX@_set_extra_callbacks(objects_@XX@_t *xx, objects_callbacks_t callbacks); /* Returns the callbacks associated with XX's ``extra''. */ objects_callbacks_t objects_@XX@_extra_callbacks(objects_@XX@_t *xx); /* Returns XX's ``extra'', a little extra space that each * structure carries around with it. Its use is * implementation-dependent. */ const void * objects_@XX@_extra(objects_@XX@_t *xx); /* Sets XX's ``extra'', a little extra space that each structure * carries around with it. Its use is implementation-dependent. */ const void * objects_@XX@_set_extra(objects_@XX@_t *xx, const void *extra); /* Resets XX's ``extra''. */ void objects_@XX@_unset_extra(objects_@XX@_t *xx); /** Low-level Creation and Destruction **/ /* Handles the universal, low-level allocation of structures. */ objects_@XX@_t * _objects_@XX@_alloc_with_zone(NSZone *zone); /* Handles the universal, low-level deallocation of structures. */ void _objects_@XX@_dealloc(objects_@XX@_t *xx); /* Handles the low-level copying of structures. */ objects_@XX@_t * _objects_@XX@_copy_with_zone(objects_@XX@_t *xx, NSZone *zone); /* Returns a low-level description of XX. */ NSString * _objects_@XX@_description(objects_@XX@_t *xx); #endif /* __@XX@_bas_h_OBJECTS_INCLUDE */