Enlightenment CVS committal Author : mej Project : eterm Module : libast
Dir : eterm/libast/include/libast Modified Files: obj.h types.h.in Log Message: Sat Nov 1 13:56:22 2003 Michael Jennings (mej) Documentation updates for doxygen 1.3.x. =================================================================== RCS file: /cvsroot/enlightenment/eterm/libast/include/libast/obj.h,v retrieving revision 1.20 retrieving revision 1.21 diff -u -3 -r1.20 -r1.21 --- obj.h 31 Oct 2003 20:23:25 -0000 1.20 +++ obj.h 1 Nov 2003 18:56:43 -0000 1.21 @@ -25,6 +25,18 @@ #define _LIBAST_OBJ_H_ +/** + * @file obj.h + * LibAST Object Infrastructure -- Generic Objects + * + * This file contains macros and type definitions for creating and + * manipulating basic generic objects. + * + * @author Michael Jennings <[EMAIL PROTECTED]> + * $Revision: 1.21 $ + * $Date: 2003/11/01 18:56:43 $ + */ + /[EMAIL PROTECTED]/ /** * @name Object Definition and Declaration Macros @@ -423,14 +435,13 @@ /** * Access the class for a given object. * - * Every object has a member variable that references its @link - * spif_class_t class @endlink. There is a single class object for - * each individual object type, and all instances of that type - * reference the same class object. If you know the type of an - * object, you can use SPIF_CLASS_VAR() to access its class object - * (i.e., the class object for that type). However, this macro can be - * used to access the class object of @em any object, regardless of - * whether or not you know its type. + * Every object has a member variable that references its class. + * There is a single class object for each individual object type, and + * all instances of that type reference the same class object. If you + * know the type of an object, you can use SPIF_CLASS_VAR() to access + * its class object (i.e., the class object for that type). However, + * this macro can be used to access the class object of @em any + * object, regardless of whether or not you know its type. * * @note This macro returns an object of type spif_class_t, so only * methods common to all objects can be called using this macro. @@ -440,7 +451,7 @@ * @param obj An object of arbitrary/unknown type. * @return The class object for the given object. * - * @see DOXGRP_OBJ, SPIF_CLASS(), SPIF_OBJ(), spif_class_t + * @see DOXGRP_OBJ, SPIF_CLASS(), SPIF_OBJ() */ #define SPIF_OBJ_CLASS(obj) (SPIF_CLASS(SPIF_OBJ(obj)->cls)) @@ -464,12 +475,12 @@ * Call the named method for a given object. * * The methods which can be called on a given object are defined by - * that object's @link spif_class_t class @endlink. Since all objects - * are derived from spif_obj_t, and all classes are derived from - * spif_class_t (the class type for "obj"), the methods defined by - * spif_class_t can be called on any arbitrary object, regardless of - * its actual object/class types. This macro provides the mechanism - * by which this is done. + * that object's class. Since all objects are derived from + * spif_obj_t, and all classes are derived from spif_class_t (the + * class type for "obj"), the methods defined by spif_class_t can be + * called on any arbitrary object, regardless of its actual + * object/class types. This macro provides the mechanism by which + * this is done. * * @note This macro should not be called directly. It is used by the * SPIF_OBJ_*() macros and as a template for interface classes. @@ -662,18 +673,28 @@ */ /** - * @anchor spif_class_t * Object class structure. * - * This class contains the object class structure. + * This class contains the object class structure. It contains the + * string representation of the class name followed by a series of + * function pointers to the member functions for the class. The basic + * class type contains methods that all objects require. The + * structure members should not be accessed directly, but rather via + * the appropriate macros. + * + * @note Doxygen doesn't understand how to handle the macro-based + * class definition for this structure, so it thinks it's a function. + * It's actually a struct definition (spif_const_class_t) and a + * pointer definition (spif_class_t) as provided by the + * SPIF_DEFINE_OBJ() macro. + * + * @see DOXGRP_OBJ, SPIF_OBJ_CALL_METHOD() */ SPIF_DECL_OBJ(class) { /** Text representation of class name. */ spif_classname_t classname; - /** Pointer to object's constructor. */ spif_func_t noo; - /** Pointer to object's initializer. */ spif_func_t init; spif_func_t done; spif_func_t del; @@ -685,6 +706,22 @@ /* An obj is the most basic object type. It contains simply a pointer to the class name (a const char * so you can test it with ==). */ + +/** + * Generic object structure. + * + * The @c obj type is the parent of all other object types. Since it + * doesn't actually store any data, the only member of the @c obj + * type is its spif_class_t + * + * @note Doxygen doesn't understand how to handle the macro-based + * class definition for this structure, so it thinks it's a function. + * It's actually a struct definition (spif_const_obj_t) and a pointer + * definition (spif_obj_t) as provided by the SPIF_DEFINE_OBJ() + * macro. + * + * @see DOXGRP_OBJ + */ SPIF_DECL_OBJ(obj) { spif_class_t cls; }; =================================================================== RCS file: /cvsroot/enlightenment/eterm/libast/include/libast/types.h.in,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- types.h.in 30 Oct 2003 23:13:53 -0000 1.11 +++ types.h.in 1 Nov 2003 18:56:43 -0000 1.12 @@ -98,7 +98,7 @@ * @param type The type basename. * @return The full type name. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ #define SPIF_TYPE(type) spif_ ## type ## _t @@ -111,7 +111,7 @@ * @param type The type basename. * @return The full const type name. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ #define SPIF_CONST_TYPE(type) spif_const_ ## type ## _t @@ -125,7 +125,7 @@ * @param type The type basename. * @return The size of objects/structures of that type. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ #define SPIF_SIZEOF_TYPE(type) (sizeof(SPIF_CONST_TYPE(type))) @@ -139,7 +139,7 @@ * @param t The type basename. * @param u The actual type it's being mapped to. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ #define SPIF_DECL_TYPE(t, u) typedef u SPIF_CONST_TYPE(t); typedef SPIF_CONST_TYPE(t) * SPIF_TYPE(t) /[EMAIL PROTECTED]/ @@ -164,7 +164,7 @@ * @param type The type basename. * @return An allocated object of the specified type. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ #define SPIF_ALLOC(type) SPIF_CAST(type) MALLOC(SPIF_SIZEOF_TYPE(type)) @@ -176,7 +176,7 @@ * * @param obj The object to be freed. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ #define SPIF_DEALLOC(obj) FREE(obj) @@ -189,7 +189,7 @@ * @param type The type basename. * @return A string representing the classname for that type. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ #define SPIF_DECL_CLASSNAME(type) "!spif_" #type "_t!" /[EMAIL PROTECTED]/ @@ -212,7 +212,7 @@ * This macro is identical to traditional C typecasting and is * supplied primarily for consistency. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ #define SPIF_CAST_C(type) (type) @@ -223,7 +223,7 @@ * the @c const keyword is added to the typecast. It is supplied * primarily for consistency. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ #define SPIF_CONST_CAST_C(type) (const type) @@ -234,7 +234,7 @@ * basename. It is usually employed where emphasis on the basename is * desired, particularly with objects. * - * @see DOXGRP_TYPES, SPIF_TYPE() + * @see @link DOXGRP_TYPES Portable Data Types @endlink, SPIF_TYPE() */ #define SPIF_CAST(type) (SPIF_TYPE(type)) @@ -248,7 +248,7 @@ * terminology. This typecast applies const-ness (i.e., immutability) * to an object or other value. * - * @see DOXGRP_TYPES, SPIF_TYPE(), SPIF_CAST() + * @see @link DOXGRP_TYPES Portable Data Types @endlink, SPIF_TYPE(), SPIF_CAST() */ #define SPIF_CONST_CAST(type) (const SPIF_TYPE(type)) @@ -259,7 +259,7 @@ * type by its basename. It is usually employed where emphasis on the * basename is desired, particularly with objects. * - * @see DOXGRP_TYPES, SPIF_TYPE() + * @see @link DOXGRP_TYPES Portable Data Types @endlink, SPIF_TYPE() */ #define SPIF_CAST_PTR(type) (SPIF_TYPE(type) *) @@ -273,7 +273,7 @@ * terminology. This typecast applies const-ness (i.e., immutability) * to the object or other value referenced by the pointer. * - * @see DOXGRP_TYPES, SPIF_TYPE(), SPIF_CAST_PTR() + * @see @link DOXGRP_TYPES Portable Data Types @endlink, SPIF_TYPE(), SPIF_CAST_PTR() */ #define SPIF_CONST_CAST_PTR(type) (const SPIF_TYPE(type) *) /[EMAIL PROTECTED]/ @@ -300,7 +300,7 @@ * @param type The type basename. * @return A NULL object of the specified type. * - * @see DOXGRP_TYPES, SPIF_CAST() + * @see @link DOXGRP_TYPES Portable Data Types @endlink, SPIF_CAST() */ #define SPIF_NULL_TYPE(type) (SPIF_CAST(type) (NULL)) @@ -313,7 +313,7 @@ * @param type The native C type. * @return A NULL value of the specified type. * - * @see DOXGRP_TYPES, SPIF_CAST_C() + * @see @link DOXGRP_TYPES Portable Data Types @endlink, SPIF_CAST_C() */ #define SPIF_NULL_TYPE_C(type) (SPIF_CAST_C(type) (NULL)) @@ -329,7 +329,7 @@ * @return A string representation of a NULL object of the * specified type. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ #define SPIF_NULLSTR_TYPE(type) "{ ((spif_" #type "_t) NULL) }" @@ -345,7 +345,7 @@ * @return A string representation of a NULL value of the * specified C type. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ #define SPIF_NULLSTR_TYPE_C(type) "{ ((" #type ") NULL) }" /[EMAIL PROTECTED]/ @@ -374,7 +374,7 @@ * * An 8-bit signed integer. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef signed @INT_8_TYPE@ spif_int8_t; @@ -383,7 +383,7 @@ * * An 8-bit unsigned integer. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef unsigned @INT_8_TYPE@ spif_uint8_t; @@ -392,7 +392,7 @@ * * A 16-bit signed integer. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef signed @INT_16_TYPE@ spif_int16_t; @@ -401,7 +401,7 @@ * * A 16-bit unsigned integer. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef unsigned @INT_16_TYPE@ spif_uint16_t; @@ -410,7 +410,7 @@ * * A 32-bit signed integer. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef signed @INT_32_TYPE@ spif_int32_t; @@ -419,7 +419,7 @@ * * A 32-bit unsigned integer. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef unsigned @INT_32_TYPE@ spif_uint32_t; @@ -428,7 +428,7 @@ * * A 64-bit signed integer. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef signed @INT_64_TYPE@ spif_int64_t; @@ -437,7 +437,7 @@ * * A 64-bit unsigned integer. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef unsigned @INT_64_TYPE@ spif_uint64_t; /[EMAIL PROTECTED]/ @@ -460,7 +460,7 @@ * * A signed char. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef signed char spif_char_t; @@ -469,7 +469,7 @@ * * A signed short. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef signed short spif_short_t; @@ -478,7 +478,7 @@ * * A signed int. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef signed int spif_int_t; @@ -487,7 +487,7 @@ * * A signed long. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef signed long spif_long_t; @@ -496,7 +496,7 @@ * * An unsigned char. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef unsigned char spif_uchar_t; @@ -505,7 +505,7 @@ * * An unsigned short. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef unsigned short spif_ushort_t; @@ -514,7 +514,7 @@ * * An unsigned int. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef unsigned int spif_uint_t; @@ -523,7 +523,7 @@ * * An unsigned long. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef unsigned long spif_ulong_t; @@ -532,7 +532,7 @@ * * A pointer to a signed char. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef spif_char_t *spif_charptr_t; @@ -541,7 +541,7 @@ * * A generic, untyped pointer. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef void *spif_ptr_t; @@ -550,7 +550,7 @@ * * A generic function pointer. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef void * (*spif_func_t)(); @@ -561,7 +561,7 @@ * this point I can't imagine it needing to be anything else, but one * never knows.... * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef const spif_charptr_t spif_classname_t; @@ -589,7 +589,7 @@ * used for typecasting the protocol-based pointers (see below) to a * generic type suitable for use as a parameter to socket functions. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ SPIF_DECL_TYPE(sockaddr, struct sockaddr); @@ -600,7 +600,7 @@ * This type references an IPv4 socket address structure. It is used * to store IP addressing information for a given socket. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ SPIF_DECL_TYPE(ipsockaddr, struct sockaddr_in); @@ -611,7 +611,7 @@ * This type references a UNIX socket address structure. It is used * to store addressing information for a given UNIX socket. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ SPIF_DECL_TYPE(unixsockaddr, struct sockaddr_un); @@ -621,7 +621,7 @@ * @internal * This type references an IPv4 address in native host format. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ SPIF_DECL_TYPE(ipaddr, struct in_addr); @@ -631,7 +631,7 @@ * @internal * This type references host information in native host format. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ SPIF_DECL_TYPE(hostinfo, struct hostent); @@ -641,7 +641,7 @@ * @internal * This type references protocol information in native host format. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ SPIF_DECL_TYPE(protoinfo, struct protoent); @@ -651,7 +651,7 @@ * @internal * This type references service information in native host format. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ SPIF_DECL_TYPE(servinfo, struct servent); @@ -661,7 +661,7 @@ * This type encapsulates the actual type of the socket file * descriptor. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef int spif_sockfd_t; @@ -671,7 +671,7 @@ * This type encapsulates the actual representation of the protocol * family. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef int spif_sockfamily_t; @@ -681,7 +681,7 @@ * This type encapsulates the actual representation of the socket * type. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef int spif_socktype_t; @@ -691,7 +691,7 @@ * This type encapsulates the actual representation of a socket * protocol. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef int spif_sockproto_t; @@ -701,7 +701,7 @@ * This type encapsulates the actual representation of a socket's * port. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef spif_uint16_t spif_sockport_t; @@ -711,7 +711,7 @@ * This type encapsulates the actual representation of the size of a * socket address structure. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef socklen_t spif_sockaddr_len_t; /[EMAIL PROTECTED]/ @@ -741,7 +741,7 @@ * improve readability and simplify conversion from other comparison * functions. * - * @see DOXGRP_TYPES, SPIF_CMP_FROM_INT(), SPIF_CMP_IS_LESS(), + * @see @link DOXGRP_TYPES Portable Data Types @endlink, SPIF_CMP_FROM_INT(), SPIF_CMP_IS_LESS(), * SPIF_CMP_IS_EQUAL(), SPIF_CMP_IS_GREATER() */ typedef enum { @@ -765,7 +765,7 @@ * @param i A traditional integer comparison value. * @return The corresponding spif_cmp_t value. * - * @see DOXGRP_TYPES, spif_cmp_t + * @see @link DOXGRP_TYPES Portable Data Types @endlink, spif_cmp_t */ #define SPIF_CMP_FROM_INT(i) (((i) < 0) ? (SPIF_CMP_LESS) : (((i) > 0) ? (SPIF_CMP_GREATER) : (SPIF_CMP_EQUAL))) @@ -780,7 +780,7 @@ * @param cmp Comparison expression or value of type spif_cmp_t. * @return True if the result is SPIF_CMP_LESS, false otherwise. * - * @see DOXGRP_TYPES, spif_cmp_t, SPIF_CMP_FROM_INT() + * @see @link DOXGRP_TYPES Portable Data Types @endlink, spif_cmp_t, SPIF_CMP_FROM_INT() */ #define SPIF_CMP_IS_LESS(cmp) ((cmp) == SPIF_CMP_LESS) @@ -795,7 +795,7 @@ * @param cmp Comparison expression or value of type spif_cmp_t. * @return True if the result is SPIF_CMP_EQUAL, false otherwise. * - * @see DOXGRP_TYPES, spif_cmp_t, SPIF_CMP_FROM_INT() + * @see @link DOXGRP_TYPES Portable Data Types @endlink, spif_cmp_t, SPIF_CMP_FROM_INT() */ #define SPIF_CMP_IS_EQUAL(cmp) ((cmp) == SPIF_CMP_EQUAL) @@ -810,7 +810,7 @@ * @param cmp Comparison expression or value of type spif_cmp_t. * @return True if the result is SPIF_CMP_GREATER, false otherwise. * - * @see DOXGRP_TYPES, spif_cmp_t, SPIF_CMP_FROM_INT() + * @see @link DOXGRP_TYPES Portable Data Types @endlink, spif_cmp_t, SPIF_CMP_FROM_INT() */ #define SPIF_CMP_IS_GREATER(cmp) ((cmp) == SPIF_CMP_GREATER) @@ -835,7 +835,7 @@ * the spif_bool_t data type. For this and other reasons (namely * readability), use of "TRUE" and "FALSE" is preferred. * - * @see DOXGRP_TYPES + * @see @link DOXGRP_TYPES Portable Data Types @endlink */ typedef enum { #ifndef __cplusplus ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. Does SourceForge.net help you be more productive? Does it help you create better code? SHARE THE LOVE, and help us help YOU! Click Here: http://sourceforge.net/donate/ _______________________________________________ enlightenment-cvs mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs