1 /* a managed STRING* ... for lazy string read 2 */ 3 4 /* 5 6 Copyright (C) 1991-2003 The National Gallery 7 8 This program is free software; you can redistribute it and/or modify 9 it under the terms of the GNU General Public License as published by 10 the Free Software Foundation; either version 2 of the License, or 11 (at your option) any later version. 12 13 This program is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 GNU General Public License for more details. 17 18 You should have received a copy of the GNU General Public License along 19 with this program; if not, write to the Free Software Foundation, Inc., 20 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 21 22 */ 23 24 /* 25 26 These strings are distributed with VIPS - http://www.vips.ecs.soton.ac.uk 27 28 */ 29 30 #define TYPE_MANAGEDSTRING (managedstring_get_type()) 31 #define MANAGEDSTRING( obj ) \ 32 (G_TYPE_CHECK_INSTANCE_CAST( (obj), TYPE_MANAGEDSTRING, Managedstring )) 33 #define MANAGEDSTRING_CLASS( klass ) \ 34 (G_TYPE_CHECK_CLASS_CAST( (klass), \ 35 TYPE_MANAGEDSTRING, ManagedstringClass)) 36 #define IS_MANAGEDSTRING( obj ) \ 37 (G_TYPE_CHECK_INSTANCE_TYPE( (obj), TYPE_MANAGEDSTRING )) 38 #define IS_MANAGEDSTRING_CLASS( klass ) \ 39 (G_TYPE_CHECK_CLASS_TYPE( (klass), TYPE_MANAGEDSTRING )) 40 #define MANAGEDSTRING_GET_CLASS( obj ) \ 41 (G_TYPE_INSTANCE_GET_CLASS( (obj), \ 42 TYPE_MANAGEDSTRING, ManagedstringClass )) 43 44 struct _Managedstring { 45 Managed parent_object; 46 47 const char *string; 48 Element e; /* Points to compiled string */ 49 }; 50 51 typedef struct _ManagedstringClass { 52 ManagedClass parent_class; 53 54 } ManagedstringClass; 55 56 GType managedstring_get_type( void ); 57 58 Managedstring *managedstring_find( Heap *heap, const char *string ); 59 gboolean managedstring_get( Managedstring *managedstring, PElement *out ); 60