diff options
author | Dimitri van Heesch <dimitri@stack.nl> | 2013-07-19 19:46:35 (GMT) |
---|---|---|
committer | Dimitri van Heesch <dimitri@stack.nl> | 2013-07-19 19:46:35 (GMT) |
commit | 5875da6cae352bbcbe64f537ccfcfab08ad98b3f (patch) | |
tree | 1f707443b228c25e2d0389133b8e697e88a11426 /testing/027_extends.c | |
parent | ea7a639c40a88c0de4baad4c0ffd5ae4b4065969 (diff) | |
download | Doxygen-5875da6cae352bbcbe64f537ccfcfab08ad98b3f.zip Doxygen-5875da6cae352bbcbe64f537ccfcfab08ad98b3f.tar.gz Doxygen-5875da6cae352bbcbe64f537ccfcfab08ad98b3f.tar.bz2 |
Added regression test suite
Diffstat (limited to 'testing/027_extends.c')
-rw-r--r-- | testing/027_extends.c | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/testing/027_extends.c b/testing/027_extends.c new file mode 100644 index 0000000..7860abd --- /dev/null +++ b/testing/027_extends.c @@ -0,0 +1,93 @@ +// objective: test the \extends, \implements, \memberof, \private, and \public commands +// check: struct_object.xml +// check: struct_vehicle.xml +// check: struct_car.xml +// check: struct_truck.xml + +/** + * \file + */ + +typedef struct Object Object; //!< Object type +typedef struct Vehicle Vehicle; //!< Vehicle type +typedef struct Car Car; //!< Car type +typedef struct Truck Truck; //!< Truck type + +/*! + * Base object class. + */ +struct Object +{ + int ref; //!< \private Reference count. +}; + + +/*! + * Increments object reference count by one. + * \public \memberof Object + */ +static Object * objRef(Object *obj); + + +/*! + * Decrements object reference count by one. + * \public \memberof Object + */ +static Object * objUnref(Object *obj); + + +/*! + * Vehicle class. + * \extends Object + */ +struct Vehicle +{ + Object base; //!< \protected Base class. +}; + + +/*! + * Starts the vehicle. + * \public \memberof Vehicle + */ +void vehicleStart(Vehicle *obj); + + +/*! + * Stops the vehicle. + * \public \memberof Vehicle + */ +void vehicleStop(Vehicle *obj); + + +/*! + * Car class. + * \implements Vehicle + */ +struct Car +{ + Vehicle base; //!< \protected Base class. +}; + + +/*! + * Truck class. + * \implements Vehicle + */ +struct Truck +{ + Vehicle base; //!< \protected Base class. +}; + + +/*! + * Main function. + * + * Ref vehicleStart(), objRef(), objUnref(). + */ +int main(void) +{ + Car c; + vehicleStart((Vehicle*) &c); +} + |