You can subscribe to this list here.
| 2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(9) |
Oct
(124) |
Nov
(120) |
Dec
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2001 |
Jan
(6) |
Feb
(34) |
Mar
(49) |
Apr
(81) |
May
(25) |
Jun
(3) |
Jul
(1) |
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(37) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Frank V. C. <fr...@us...> - 2000-11-03 13:29:46
|
Update of /cvsroot/corelinux/clfw In directory slayer.i.sourceforge.net:/tmp/cvs-serv4310 Modified Files: ChangeLog Log Message: 119868 Release 0.2.4 prep Index: ChangeLog =================================================================== RCS file: /cvsroot/corelinux/clfw/ChangeLog,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -r1.10 -r1.11 *** ChangeLog 2000/10/29 17:09:51 1.10 --- ChangeLog 2000/11/03 13:29:44 1.11 *************** *** 1,5 **** --- 1,11 ---- + 2000-11-03 Frank V. Castellucci <fr...@ca...> + + * Defect 121210 - RPM spec errouneously identifies cl++ instead of libcorelinux + * Feature 119748 - MetaType should handle function dispatch without object + 2000-10-29 Frank V. Castellucci <fr...@ca...> * Feature 119678 - Added dispatch table for MetaType for object method invocation + * Defect 119864 - Can't use MetaType macros outside of corelinux namespace 2000-10-25 Frank V. Castellucci <fr...@ca...> |
|
From: Frank V. C. <fr...@us...> - 2000-11-03 13:23:45
|
Update of /cvsroot/corelinux/clfw In directory slayer.i.sourceforge.net:/tmp/cvs-serv3537 Modified Files: clfw.spec.in Log Message: 121210 RPM spec file fix for requires tag Index: clfw.spec.in =================================================================== RCS file: /cvsroot/corelinux/clfw/clfw.spec.in,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -r1.7 -r1.8 *** clfw.spec.in 2000/10/15 12:38:33 1.7 --- clfw.spec.in 2000/11/03 13:23:42 1.8 *************** *** 17,21 **** License: LGPL BuildRoot: /var/tmp/%{name}-buildroot ! Requires: libcl++, libuuid %description --- 17,21 ---- License: LGPL BuildRoot: /var/tmp/%{name}-buildroot ! Requires: libcorelinux %description |
|
From: Frank V. C. <fr...@us...> - 2000-11-03 12:35:21
|
Update of /cvsroot/corelinux/clfll In directory slayer.i.sourceforge.net:/tmp/cvs-serv29795 Modified Files: clfll.spec.in configure.in Log Message: Stabalize environment Index: clfll.spec.in =================================================================== RCS file: /cvsroot/corelinux/clfll/clfll.spec.in,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -r1.1.1.1 -r1.2 *** clfll.spec.in 2000/11/02 21:15:59 1.1.1.1 --- clfll.spec.in 2000/11/03 12:35:02 1.2 *************** *** 17,21 **** License: LGPL BuildRoot: /var/tmp/%{name}-buildroot ! Requires: libcl++, libuuid %description --- 17,21 ---- License: LGPL BuildRoot: /var/tmp/%{name}-buildroot ! Requires: libcorelinux, libclfw %description Index: configure.in =================================================================== RCS file: /cvsroot/corelinux/clfll/configure.in,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -r1.1.1.1 -r1.2 *** configure.in 2000/11/02 21:15:36 1.1.1.1 --- configure.in 2000/11/03 12:35:02 1.2 *************** *** 9,14 **** CLFLL_MAJOR_VERSION=0 ! CLFLL_MINOR_VERSION=2 ! CLFLL_MICRO_VERSION=4 dnl --- 9,14 ---- CLFLL_MAJOR_VERSION=0 ! CLFLL_MINOR_VERSION=0 ! CLFLL_MICRO_VERSION=1 dnl *************** *** 104,108 **** echo "You need to install corelinux framework (libclfw++). see http://corelinux.sourceforge.net" exit; ! ],-lstdc++) # --- 104,108 ---- echo "You need to install corelinux framework (libclfw++). see http://corelinux.sourceforge.net" exit; ! ],-luuid) # |
|
From: Frank V. C. <fr...@us...> - 2000-11-02 21:20:50
|
Update of /cvsroot/corelinux/clfll/src/testdrivers In directory slayer.i.sourceforge.net:/tmp/cvs-serv20579/testdrivers Log Message: Directory /cvsroot/corelinux/clfll/src/testdrivers added to the repository |
|
From: Frank V. C. <fr...@us...> - 2000-11-02 21:17:34
|
Update of /cvsroot/corelinux/clfll In directory slayer.i.sourceforge.net:/tmp/cvs-serv19661 Log Message: Initial Load Status: Vendor Tag: fc Release Tags: start N clfll/NEWS N clfll/Makefile.am N clfll/AUTHORS N clfll/configure.in N clfll/COPYING N clfll/COPYING.DOC N clfll/INSTALL N clfll/README N clfll/clfll.spec.in N clfll/.cvsignore N clfll/autorun.sh N clfll/ChangeLog N clfll/src/Makefile.am N clfll/src/clfll/clfll.cpp N clfll/src/clfll/Makefile.am N clfll/admin/Makefile.am N clfll/admin/.cvsignore N clfll/admin/config.guess N clfll/admin/config.sub N clfll/admin/install-sh N clfll/admin/ltconfig N clfll/admin/ltmain.sh N clfll/admin/missing N clfll/admin/mkinstalldirs N clfll/admin/clfll_check_compilers.m4 N clfll/doc/Makefile.am N clfll/doc/clfll.css N clfll/doc/clfll.cfg.in N clfll/doc/clfll.html N clfll/clfll/Makefile.am N clfll/clfll/ClfllCommon.hpp N clfll/debian/Makefile.am N clfll/debian/README.redhat N clfll/debian/README.debian N clfll/debian/changelog N clfll/debian/control N clfll/debian/control.in N clfll/debian/copyright N clfll/debian/dirs N clfll/debian/diversions.ex N clfll/debian/genmake.pl N clfll/debian/info.ex N clfll/debian/postinst N clfll/debian/rules N clfll/debian/libclfll.files No conflicts created by this import ***** Bogus filespec: - ***** Bogus filespec: Imported ***** Bogus filespec: sources |
|
From: Frank V. C. <fr...@us...> - 2000-11-02 12:32:04
|
Update of /cvsroot/corelinux/corelinux/src/classlibs/corelinux In directory slayer.i.sourceforge.net:/tmp/cvs-serv19759 Modified Files: Thread.cpp Log Message: 113184 sigaction not work in glibc2.0 Index: Thread.cpp =================================================================== RCS file: /cvsroot/corelinux/corelinux/src/classlibs/corelinux/Thread.cpp,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -r1.15 -r1.16 *** Thread.cpp 2000/09/07 12:50:22 1.15 --- Thread.cpp 2000/11/02 12:32:01 1.16 *************** *** 73,76 **** --- 73,77 ---- // + /* struct sigaction sa; memset(&sa,0,sizeof(sa)); *************** *** 79,82 **** --- 80,84 ---- sigaction(SIGCHLD,&sa,NULLPTR); + */ } else |
|
From: Frank V. C. <fr...@us...> - 2000-11-01 11:55:02
|
Update of /cvsroot/corelinux/corelinux In directory slayer.i.sourceforge.net:/tmp/cvs-serv26708 Modified Files: ChangeLog Log Message: Misc 116436 Index: ChangeLog =================================================================== RCS file: /cvsroot/corelinux/corelinux/ChangeLog,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -r1.29 -r1.30 *** ChangeLog 2000/10/07 12:39:24 1.29 --- ChangeLog 2000/11/01 11:54:59 1.30 *************** *** 14,19 **** --- 14,24 ---- -------------- + 0.4.29 to 0.4.30 + ---------------- + Feature 113873 : More docs on frameworks + 0.4.28 to 0.4.29 ---------------- + Feature 113873 : More docs on frameworks 0.4.27 to 0.4.28 (Never released) *************** *** 153,156 **** --- 158,165 ---- ------------ + 0.4.29 to 0.4.30 + ---------------- + Defect 113184 : Removed sigaction (not currently used) to allow glibc2.0 systems + 0.4.28 to 0.4.29 ---------------- |
|
From: Frank V. C. <fr...@us...> - 2000-10-31 22:49:12
|
Update of /cvsroot/corelinux/clfw In directory slayer.i.sourceforge.net:/tmp/cvs-serv4709 Modified Files: README configure.in Log Message: Prep for 0.2.4 Index: README =================================================================== RCS file: /cvsroot/corelinux/clfw/README,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** README 2000/10/31 01:38:24 1.9 --- README 2000/10/31 22:49:09 1.10 *************** *** 1,4 **** ==================================================== ! CoreLinux++ Framework Source Distribution Beta 0.2.3 ==================================================== --- 1,4 ---- ==================================================== ! CoreLinux++ Framework Source Distribution Beta 0.2.4 ==================================================== *************** *** 31,35 **** libclfw requires libuuid ! libclfw-0.2.3 require libcorelinux at least 0.4.29 Documentation --- 31,35 ---- libclfw requires libuuid ! libclfw-0.2.4 require libcorelinux at least 0.4.29 Documentation Index: configure.in =================================================================== RCS file: /cvsroot/corelinux/clfw/configure.in,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -r1.18 -r1.19 *** configure.in 2000/10/30 05:01:25 1.18 --- configure.in 2000/10/31 22:49:09 1.19 *************** *** 10,14 **** CLFW_MAJOR_VERSION=0 CLFW_MINOR_VERSION=2 ! CLFW_MICRO_VERSION=3 dnl --- 10,14 ---- CLFW_MAJOR_VERSION=0 CLFW_MINOR_VERSION=2 ! CLFW_MICRO_VERSION=4 dnl |
|
From: Frank V. C. <fr...@us...> - 2000-10-31 16:09:57
|
Update of /cvsroot/corelinux/htdocs In directory slayer.i.sourceforge.net:/tmp/cvs-serv11238 Modified Files: download.php Log Message: Updated debians Index: download.php =================================================================== RCS file: /cvsroot/corelinux/htdocs/download.php,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -r1.13 -r1.14 *** download.php 2000/10/31 12:51:53 1.13 --- download.php 2000/10/31 16:09:54 1.14 *************** *** 9,13 **** $cl_release_deb=1; $clfw_release="0.2.3"; ! $clfwdeb_release="0.2.1"; $clfw_release_rpm=1; $clfw_release_deb=1; --- 9,13 ---- $cl_release_deb=1; $clfw_release="0.2.3"; ! $clfwdeb_release="0.2.3"; $clfw_release_rpm=1; $clfw_release_deb=1; |
|
From: Frank V. C. <fr...@us...> - 2000-10-31 12:51:56
|
Update of /cvsroot/corelinux/htdocs In directory slayer.i.sourceforge.net:/tmp/cvs-serv13036 Modified Files: download.php news.php Log Message: Release clfw 0.2.3 Index: download.php =================================================================== RCS file: /cvsroot/corelinux/htdocs/download.php,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -r1.12 -r1.13 *** download.php 2000/10/26 12:05:56 1.12 --- download.php 2000/10/31 12:51:53 1.13 *************** *** 8,12 **** $cl_release_rpm=1; $cl_release_deb=1; ! $clfw_release="0.2.2"; $clfwdeb_release="0.2.1"; $clfw_release_rpm=1; --- 8,12 ---- $cl_release_rpm=1; $cl_release_deb=1; ! $clfw_release="0.2.3"; $clfwdeb_release="0.2.1"; $clfw_release_rpm=1; Index: news.php =================================================================== RCS file: /cvsroot/corelinux/htdocs/news.php,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -r1.29 -r1.30 *** news.php 2000/10/26 12:05:56 1.29 --- news.php 2000/10/31 12:51:53 1.30 *************** *** 41,44 **** --- 41,51 ---- <? + add_breaking_news("10/31/2000", + "libclfw++ 0.2.3 released!", + "New Library released!", + "rel-0-2-3", + "Extended MetaType to enable dispatch table definitions and indirect object calls. Test driver shows how this + is done."); + add_breaking_news("10/26/2000", "libclfw++ 0.2.2 released!", *************** *** 357,360 **** --- 364,368 ---- echo "<table compact width=100% border=0>\n"; + add_small_news("10/31","rel-0-2-3","libclfw++ 0.2.3"); add_small_news("10/26","rel-0-2-2","libclfw++ 0.2.2"); add_small_news("10/15","rel-0-2-1","libclfw++ 0.2.1"); |
|
From: Frank V. C. <fr...@us...> - 2000-10-31 01:38:26
|
Update of /cvsroot/corelinux/clfw In directory slayer.i.sourceforge.net:/tmp/cvs-serv10018 Modified Files: README Log Message: Release 0.2.3 Index: README =================================================================== RCS file: /cvsroot/corelinux/clfw/README,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -r1.8 -r1.9 *** README 2000/10/27 10:51:58 1.8 --- README 2000/10/31 01:38:24 1.9 *************** *** 21,26 **** to provide frameworks with the ability to reason with objects dynamically. ! This release adds a number of new wrappers and enhancements to the MetaType that ! include type attribute declaration and accesor/mutators. Requirements --- 21,28 ---- to provide frameworks with the ability to reason with objects dynamically. ! Along those lines, this release adds the ability to define functions to ! the MetaType that can be called through a dispatch method. We have provided ! an example on how to do this in the testdrivers directory of the source ! distribution. Requirements *************** *** 29,33 **** libclfw requires libuuid ! libclfw-0.2.2 require libcorelinux at least 0.4.29 Documentation --- 31,35 ---- libclfw requires libuuid ! libclfw-0.2.3 require libcorelinux at least 0.4.29 Documentation |
|
From: Frank V. C. <fr...@us...> - 2000-10-30 05:01:30
|
Update of /cvsroot/corelinux/clfw In directory slayer.i.sourceforge.net:/tmp/cvs-serv14134 Modified Files: configure.in Log Message: 119678 Completed dispatch table functionality with example Index: configure.in =================================================================== RCS file: /cvsroot/corelinux/clfw/configure.in,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -r1.17 -r1.18 *** configure.in 2000/10/27 10:51:58 1.17 --- configure.in 2000/10/30 05:01:25 1.18 *************** *** 77,81 **** dnl Checks for typedefs, structures, and compiler characteristics. ! CPPFLAGS="${CPPFLAGS} -I\$(top_srcdir)/clfw/ " dnl Checks for library functions. --- 77,81 ---- dnl Checks for typedefs, structures, and compiler characteristics. ! CPPFLAGS="${CPPFLAGS} -I\$(top_srcdir)/clfw/ -I\$(srcdir)/include" dnl Checks for library functions. *************** *** 116,118 **** src/libs/clfw/Makefile \ src/testdrivers/Makefile \ ! src/testdrivers/exf1/Makefile, [ chmod +x debian/rules ] ) --- 116,120 ---- src/libs/clfw/Makefile \ src/testdrivers/Makefile \ ! src/testdrivers/exf1/Makefile \ ! src/testdrivers/exf1/include/Makefile, [ chmod +x debian/rules ] ) ! |
|
From: Frank V. C. <fr...@us...> - 2000-10-30 05:01:29
|
Update of /cvsroot/corelinux/clfw/src/libs/clfw In directory slayer.i.sourceforge.net:/tmp/cvs-serv14134/src/libs/clfw Modified Files: MetaType.cpp Log Message: 119678 Completed dispatch table functionality with example Index: MetaType.cpp =================================================================== RCS file: /cvsroot/corelinux/clfw/src/libs/clfw/MetaType.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -r1.10 -r1.11 *** MetaType.cpp 2000/10/29 17:09:52 1.10 --- MetaType.cpp 2000/10/30 05:01:25 1.11 *************** *** 340,344 **** // ! // Get the descriptor, getter, and subsequent value // --- 340,344 ---- // ! // Get the descriptor, setter, and subsequent value // *************** *** 379,382 **** --- 379,443 ---- } + // + // Dispatch Method + // + + void MetaType::dispatch + ( + FrameworkEntityPtr aInstanceObject, + char *aMethodName, + void **args, + void *retArg + ) + throw( NullPointerException, DescriptorNotFound ) + { + if( aMethodName == NULLPTR || aInstanceObject == NULLPTR ) + { + throw NullPointerException(LOCATION); + } + else + { + ; // do nothing + } + + // + // Get the descriptor, function, and subsequent value + // + + DispatchDescriptorCptr aDesc( NULLPTR ); + + DispatchDescriptorCptr *pMd(theDispatchFunctions); + + while( *pMd != NULLPTR ) + { + if( strcmp((*pMd)->theClassMethodName,aMethodName) == 0 ) + { + aDesc = *pMd; + if( aDesc->theFunction != NULLPTR ) + { + (*(aDesc->theFunction))(aInstanceObject,args,retArg); + } + else + { + throw NullPointerException(LOCATION); + } + break; + } + else + { + ; // do nothing + } + ++pMd; + } + + if( aDesc == NULLPTR ) + { + throw DescriptorNotFound(aMethodName, LOCATION); + } + else + { + ; // do nothing + } + } } |
|
From: Frank V. C. <fr...@us...> - 2000-10-30 05:01:29
|
Update of /cvsroot/corelinux/clfw/src/testdrivers/exf1/include In directory slayer.i.sourceforge.net:/tmp/cvs-serv14134/src/testdrivers/exf1/include Added Files: Makefile.am UserType.hpp Log Message: 119678 Completed dispatch table functionality with example ***** Error reading new file: (2, 'No such file or directory') ***** Error reading new file: (2, 'No such file or directory') |
|
From: Frank V. C. <fr...@us...> - 2000-10-30 05:01:29
|
Update of /cvsroot/corelinux/clfw/src/testdrivers/exf1 In directory slayer.i.sourceforge.net:/tmp/cvs-serv14134/src/testdrivers/exf1 Modified Files: Makefile.am examp1.cpp Added Files: UserType.cpp Log Message: 119678 Completed dispatch table functionality with example ***** Error reading new file: (2, 'No such file or directory') Index: Makefile.am =================================================================== RCS file: /cvsroot/corelinux/clfw/src/testdrivers/exf1/Makefile.am,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** Makefile.am 2000/10/03 02:14:04 1.1 --- Makefile.am 2000/10/30 05:01:26 1.2 *************** *** 12,20 **** SUFFIXES = .cpp .hpp .c .h .f .F .o .moc ! #SUBDIRS = include ! bin_PROGRAMS = exf1 ! exf1_SOURCES = examp1.cpp exf1_LDADD = ${top_builddir}/src/libs/clfw/libclfw++.la --- 12,20 ---- SUFFIXES = .cpp .hpp .c .h .f .F .o .moc ! SUBDIRS = include ! bin_PROGRAMS = exf1 ! exf1_SOURCES = examp1.cpp UserType.cpp exf1_LDADD = ${top_builddir}/src/libs/clfw/libclfw++.la Index: examp1.cpp =================================================================== RCS file: /cvsroot/corelinux/clfw/src/testdrivers/exf1/examp1.cpp,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -r1.16 -r1.17 *** examp1.cpp 2000/10/29 17:09:53 1.16 --- examp1.cpp 2000/10/30 05:01:26 1.17 *************** *** 69,72 **** --- 69,76 ---- #endif + #if !defined(__USERTYPE_HPP) + #include <UserType.hpp> + #endif + using namespace corelinux; *************** *** 82,85 **** --- 86,94 ---- int main( void ); + // + // MetaType information dump + // + + void dumpFundementals( void ); void dumpMetaTypeInformation( MetaTypeCptr ); void dumpTypeInformation( FrameworkEntityPtr ); *************** *** 88,91 **** --- 97,102 ---- void dumpParents( MetaTypeCptr ); + void testDispatch( void ); + // // Assertion and Exception handlers *************** *** 134,214 **** try { ! // ! // Because the root (and a number of support classes) are abstract, ! // we can't allocate them, but we can reason with them ! // ! ! dumpMetaTypeInformation( FrameworkEntity::getTypeDescriptor() ); ! dumpMetaTypeInformation( Number::getTypeDescriptor() ); ! dumpMetaTypeInformation( UnsignedNumber::getTypeDescriptor() ); ! dumpMetaTypeInformation( SignedNumber::getTypeDescriptor() ); ! ! // ! // Now we sweeten the pot with showing the factory methods, ! // introspection, getters, setters, and destructors ! // ! ! // bool ! ! BooleanPtr aBoolean = new Boolean(true); ! dumpTypeInformation( aBoolean ); ! cout << "Value of aBoolean = " << ! getValue<bool>("Value",aBoolean) << endl; ! delete aBoolean; ! ! // real ! ! RealNumberPtr aReal = RealNumber::create(); ! setValue<Real>("Value",9.7,aReal); ! dumpTypeInformation( aReal ); ! cout << "Value of aReal = " << ! getValue<Real>("Value",aReal) << endl; ! RealNumber::destroy( aReal ); ! ! // signed Integer ! ! IntegerPtr aInteger = Integer::create(); ! setValue<Int>("Value",8,aInteger); ! dumpTypeInformation( aInteger ); ! cout << "Value of aInteger = " << ! getValue<Int>("Value",aInteger) << endl; ! Integer::destroy( aInteger ); ! ! // Show that new is overriden even for constructors with ! // values by dumping the allocation information after ! // destructor ! ! IntegerPtr anotherInteger = new Integer(7); ! cout << "Value of anotherInteger = " << ! anotherInteger->getValue() << endl; ! delete anotherInteger; ! dumpMetaTypeInformation( Integer::getTypeDescriptor() ); ! ! // signed Short ! ! ShortIntegerPtr aShort = ShortInteger::create(); ! setValue<Short>("Value",3,aShort); ! dumpTypeInformation( aShort ); ! cout << "Value of aShort = " ! << getValue<Short>("Value",aShort) << endl; ! ShortInteger::destroy( aShort ); ! ! // unsigned Integer ! ! UnsignedIntegerPtr aUnsigned = new UnsignedInteger; ! setValue<UnsignedInt>( "Value",(UnsignedInt)-1,aUnsigned ); ! dumpTypeInformation( aUnsigned ); ! cout << "Value of aUnsigned = " ! << getValue<UnsignedInt>("Value",aUnsigned) << endl; ! delete aUnsigned; ! ! // unsigned short integer ! ! UnsignedShortIntegerPtr aUnsignedShort = new UnsignedShortInteger; ! setValue<Word>( "Value",(Word)-2,aUnsignedShort); ! dumpTypeInformation( aUnsignedShort ); ! cout << "Value of aUnsignedShort = " ! << getValue<UnsignedInt>("Value",aUnsigned) << endl; ! delete aUnsignedShort; } --- 145,150 ---- try { ! testDispatch(); ! //dumpFundementals(); } *************** *** 233,236 **** --- 169,310 ---- } + void testDispatch( void ) + { + UserTypePtr aType( new UserType ); + UnsignedShortIntegerPtr aValue( new UnsignedShortInteger(8) ); + + dumpTypeInformation( aType ); + + // + // Dispatch the method + // + + // + // Get the accumulator data member of UserType, + // and get it's value + // + + cout << "Value of Accumulator before = " + << getValue<UnsignedInt> + ( + "Value", + getValue<UnsignedIntegerPtr> + ( + "Accumulator", + aType + ) + ) << endl; + + aType->getType()->dispatch + ( + aType, + "addToAccumulator", + (void **)aValue, + (void *) 0 + ); + + // + // Get the accumulator data member of UserType, + // and get it's value + // + + cout << "Value of Accumulator after = " + << getValue<UnsignedInt> + ( + "Value", + getValue<UnsignedIntegerPtr> + ( + "Accumulator", + aType + ) + ) << endl; + + delete aType; + delete aValue; + } + + void dumpFundementals( void ) + { + // + // Because the root (and a number of support classes) are abstract, + // we can't allocate them, but we can reason with them + // + + dumpMetaTypeInformation( FrameworkEntity::getTypeDescriptor() ); + dumpMetaTypeInformation( Number::getTypeDescriptor() ); + dumpMetaTypeInformation( UnsignedNumber::getTypeDescriptor() ); + dumpMetaTypeInformation( SignedNumber::getTypeDescriptor() ); + dumpMetaTypeInformation( UserType::getTypeDescriptor() ); + + // + // Now we sweeten the pot with showing the factory methods, + // introspection, getters, setters, and destructors + // + + // bool + + BooleanPtr aBoolean = new Boolean(true); + dumpTypeInformation( aBoolean ); + cout << "Value of aBoolean = " << + getValue<bool>("Value",aBoolean) << endl; + delete aBoolean; + + // real + + RealNumberPtr aReal = RealNumber::create(); + setValue<Real>("Value",9.7,aReal); + dumpTypeInformation( aReal ); + cout << "Value of aReal = " << + getValue<Real>("Value",aReal) << endl; + RealNumber::destroy( aReal ); + + // signed Integer + + IntegerPtr aInteger = Integer::create(); + setValue<Int>("Value",8,aInteger); + dumpTypeInformation( aInteger ); + cout << "Value of aInteger = " << + getValue<Int>("Value",aInteger) << endl; + Integer::destroy( aInteger ); + + // Show that new is overriden even for constructors with + // values by dumping the allocation information after + // destructor + + IntegerPtr anotherInteger = new Integer(7); + cout << "Value of anotherInteger = " << + anotherInteger->getValue() << endl; + delete anotherInteger; + dumpMetaTypeInformation( Integer::getTypeDescriptor() ); + + // signed Short + + ShortIntegerPtr aShort = ShortInteger::create(); + setValue<Short>("Value",3,aShort); + dumpTypeInformation( aShort ); + cout << "Value of aShort = " + << getValue<Short>("Value",aShort) << endl; + ShortInteger::destroy( aShort ); + + // unsigned Integer + + UnsignedIntegerPtr aUnsigned = new UnsignedInteger; + setValue<UnsignedInt>( "Value",(UnsignedInt)-1,aUnsigned ); + dumpTypeInformation( aUnsigned ); + cout << "Value of aUnsigned = " + << getValue<UnsignedInt>("Value",aUnsigned) << endl; + delete aUnsigned; + + // unsigned short integer + + UnsignedShortIntegerPtr aUnsignedShort = new UnsignedShortInteger; + setValue<Word>( "Value",(Word)-2,aUnsignedShort); + dumpTypeInformation( aUnsignedShort ); + cout << "Value of aUnsignedShort = " + << getValue<UnsignedInt>("Value",aUnsigned) << endl; + delete aUnsignedShort; + + } + // // Dump info on meta types *************** *** 259,264 **** AllocatorPtr aAPtr( aMTPtr->getAllocator() ); cout ! << "number allocs = " << aAPtr->getAllocateCount() << endl ! << "number deallocs = " << aAPtr->getDeallocateCount() << endl; } else --- 333,340 ---- AllocatorPtr aAPtr( aMTPtr->getAllocator() ); cout ! << "number allocs = " << aAPtr->getAllocateCount() ! << endl ! << "number deallocs = " << aAPtr->getDeallocateCount() ! << endl; } else *************** *** 316,321 **** { cout ! << "\tClass = " << parents[x]->getInstanceTypeName() << endl ! << "\tMetaType = " << parents[x]->getMetaTypeName() << endl; } } --- 392,399 ---- { cout ! << "\tClass = " << parents[x]->getInstanceTypeName() ! << endl ! << "\tMetaType = " << parents[x]->getMetaTypeName() ! << endl; } } *************** *** 348,354 **** for( int x = 0; aMDescs[x] != NULLPTR; ++x ) { ! cout << "\tVar name = " << aMDescs[x]->theTypeVariableName << endl; ! cout << "\tVar type = " << aMDescs[x]->theTypeName << endl; ! cout << "\tVar size = " << aMDescs[x]->theSizeInBytes << endl; if( aMDescs[x]->theGetter != NULLPTR ) { --- 426,447 ---- for( int x = 0; aMDescs[x] != NULLPTR; ++x ) { ! cout << "\tVar name = " << aMDescs[x]->theTypeVariableName ! << endl; ! cout << "\tVar type = " << aMDescs[x]->theTypeName ! << endl; ! cout << "\tVar size = " << aMDescs[x]->theSizeInBytes ! << endl; ! ! if( aMDescs[x]->theTypePointer != NULLPTR ) ! { ! cout << "\tClass type = " ! << aMDescs[x]->theTypePointer->getInstanceTypeName() ! << endl; ! } ! else ! { ! cout << "\tNot a FrameworkEntity" << endl; ! } ! if( aMDescs[x]->theGetter != NULLPTR ) { *************** *** 393,398 **** for( int x = 0; aMDescs[x] != NULLPTR; ++x ) { ! cout << "\tFunction name = " << aMDescs[x]->theClassMethodName << endl ! << "\tFunction address = " << aMDescs[x]->theFunction << endl; } } --- 486,491 ---- for( int x = 0; aMDescs[x] != NULLPTR; ++x ) { ! cout << "\tFunction name = " << ! aMDescs[x]->theClassMethodName << endl; } } |
|
From: Frank V. C. <fr...@us...> - 2000-10-30 05:01:29
|
Update of /cvsroot/corelinux/clfw/clfw In directory slayer.i.sourceforge.net:/tmp/cvs-serv14134/clfw Modified Files: MetaType.hpp Log Message: 119678 Completed dispatch table functionality with example Index: MetaType.hpp =================================================================== RCS file: /cvsroot/corelinux/clfw/clfw/MetaType.hpp,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -r1.18 -r1.19 *** MetaType.hpp 2000/10/29 17:16:18 1.18 --- MetaType.hpp 2000/10/30 05:01:25 1.19 *************** *** 32,36 **** #include <cstdio> ! namespace corelinux { DECLARE_CLASS( FrameworkEntity ); --- 32,36 ---- #include <cstdio> ! namespace corelinux { DECLARE_CLASS( FrameworkEntity ); *************** *** 38,41 **** --- 38,42 ---- DECLARE_CLASS( DescriptorNotFound ); DECLARE_CLASS( AccessorNotFound ); + } /*! *************** *** 58,67 **** \return a const pointer to the MetaType \ */ \ ! static MetaTypeCptr getTypeDescriptor( void ); \ /** \ get the type \ \return a const pointer to the MetaType \ */ \ ! virtual MetaTypeCptr getType( void ) const; \ /** \ create a new instance of className \ --- 59,68 ---- \return a const pointer to the MetaType \ */ \ ! static corelinux::MetaTypeCptr getTypeDescriptor( void ); \ /** \ get the type \ \return a const pointer to the MetaType \ */ \ ! virtual corelinux::MetaTypePtr getType( void ) const; \ /** \ create a new instance of className \ *************** *** 74,79 **** */ \ static void destroy( className##Ptr aPointer ); \ ! static className##Ptr castDown( FrameworkEntityPtr ); \ ! static className##Ref castDown( FrameworkEntityRef ); \ /** \ redefine the operator new[] \ --- 75,80 ---- */ \ static void destroy( className##Ptr aPointer ); \ ! static className##Ptr castDown( corelinux::FrameworkEntityPtr ); \ ! static className##Ref castDown( corelinux::FrameworkEntityRef ); \ /** \ redefine the operator new[] \ *************** *** 81,90 **** \return a VoidPtr \ */ \ ! VoidPtr operator new(size_t aSize); \ /** \ redefine the operator delete[] \ \arg aVoidPtr the pointer to delete \ */ \ ! void operator delete(VoidPtr aVoidPtr); \ protected: \ private: \ --- 82,91 ---- \return a VoidPtr \ */ \ ! void * operator new(size_t aSize); \ /** \ redefine the operator delete[] \ \arg aVoidPtr the pointer to delete \ */ \ ! void operator delete(void * aVoidPtr); \ protected: \ private: \ *************** *** 92,96 **** the MetaType descriptor \ */ \ ! static MetaType theTypeDesc; #define OPEN_METATYPE_PARENTS( className ) \ --- 93,97 ---- the MetaType descriptor \ */ \ ! static corelinux::MetaType theTypeDesc; #define OPEN_METATYPE_PARENTS( className ) \ *************** *** 98,102 **** array storing the parents descriptors \ */ \ ! MetaType const * className##MetaType##Parents[] = \ { \ --- 99,103 ---- array storing the parents descriptors \ */ \ ! corelinux::MetaType const * className##MetaType##Parents[] = \ { \ *************** *** 111,128 **** The parent type descriptor array must be termined by the NULLPTR \ */ \ ! MetaTypeCptr(NULLPTR) \ } ! typedef void * (*PfnGet)( FrameworkEntityPtr ); ! typedef void (*PfnSet)( FrameworkEntityPtr, VoidPtr ); struct _InstanceMemberDescriptor { ! char *theTypeName; ! char *theTypeVariableName; ! Dword theSizeInBytes; ! MetaTypeCptr theTypePointer; ! PfnGet theGetter; ! PfnSet theSetter; } ; --- 112,129 ---- The parent type descriptor array must be termined by the NULLPTR \ */ \ ! corelinux::MetaTypeCptr(NULLPTR) \ } ! typedef void * (*PfnGet)( corelinux::FrameworkEntityPtr ); ! typedef void (*PfnSet)( corelinux::FrameworkEntityPtr, corelinux::VoidPtr ); struct _InstanceMemberDescriptor { ! char *theTypeName; ! char *theTypeVariableName; ! Dword theSizeInBytes; ! corelinux::MetaTypeCptr theTypePointer; ! PfnGet theGetter; ! PfnSet theSetter; } ; *************** *** 137,145 **** #define _DECLARE_INSTANCEDATA_STATICS(dataName) \ static MemberDescriptor the##dataName##Descriptor; \ ! static void *get##dataName##AsVPtr( FrameworkEntityPtr ); \ static void set##dataName##AsVPtr \ ( \ ! FrameworkEntityPtr , \ ! VoidPtr \ ); \ --- 138,146 ---- #define _DECLARE_INSTANCEDATA_STATICS(dataName) \ static MemberDescriptor the##dataName##Descriptor; \ ! static void *get##dataName##AsVPtr( corelinux::FrameworkEntityPtr ); \ static void set##dataName##AsVPtr \ ( \ ! corelinux::FrameworkEntityPtr , \ ! corelinux::VoidPtr \ ); \ *************** *** 168,172 **** void * get##dataName##AsVoidPtr( void ) const \ { \ ! return (VoidPtr)get##dataName##AsPointer(); \ } \ /** \ --- 169,173 ---- void * get##dataName##AsVoidPtr( void ) const \ { \ ! return (void *)get##dataName##AsPointer(); \ } \ /** \ *************** *** 206,214 **** const type & get##dataName##AsReference( void ) const \ { \ ! return (const type &) baseClass::get##dataName##AsReference(); \ } \ const type * get##dataName##AsPointer( void ) const \ { \ ! return (const type *)baseClass::get##dataName##AsPointer(); \ } \ void * get##dataName##AsVoidPtr( void ) const \ --- 207,215 ---- const type & get##dataName##AsReference( void ) const \ { \ ! return (const type &) baseClass::get##dataName##AsReference(); \ } \ const type * get##dataName##AsPointer( void ) const \ { \ ! return (const type *)baseClass::get##dataName##AsPointer(); \ } \ void * get##dataName##AsVoidPtr( void ) const \ *************** *** 232,236 **** { \ baseType btr = (baseType) *((type *) aType); \ ! baseClass::set##dataName##FromVPtr((VoidPtr)&btr); \ } \ --- 233,237 ---- { \ baseType btr = (baseType) *((type *) aType); \ ! baseClass::set##dataName##FromVPtr((void *)&btr); \ } \ *************** *** 244,248 **** void *className::get##dataName##AsVPtr \ ( \ ! FrameworkEntityPtr aSelf \ ) \ { \ --- 245,249 ---- void *className::get##dataName##AsVPtr \ ( \ ! corelinux::FrameworkEntityPtr aSelf \ ) \ { \ *************** *** 252,257 **** void className::set##dataName##AsVPtr \ ( \ ! FrameworkEntityPtr aSelf, \ ! VoidPtr aType \ ) \ { \ --- 253,258 ---- void className::set##dataName##AsVPtr \ ( \ ! corelinux::FrameworkEntityPtr aSelf, \ ! corelinux::VoidPtr aType \ ) \ { \ *************** *** 319,327 **** ! typedef void (*DispatchFunction)( FrameworkEntityPtr, void **, void * ); struct __DispatchDescriptor { ! CharPtr theClassMethodName; ! DispatchFunction theFunction; } ; --- 320,328 ---- ! typedef void (*DispatchFunction)( corelinux::FrameworkEntityPtr, void **, void * ); struct __DispatchDescriptor { ! corelinux::CharPtr theClassMethodName; ! DispatchFunction theFunction; } ; *************** *** 334,347 **** \arg methName : unique name identifier */ #define DISPATCH_FUNCTION( className, methName ) \ ! static extern "C" void className##methName \ ! ( \ ! FrameworkEntityPtr aClass, \ ! void **args, \ ! void *ret \ ! ) \ ! { \ ! className##Ptr myPointer = className:::castDown( aClass ); #define CLOSE_DISPATH_FUNCTION \ } --- 335,367 ---- \arg methName : unique name identifier */ + #define DISPATCH_FUNCTION( className, methName ) \ ! static void className##methName \ ! ( \ ! corelinux::FrameworkEntityPtr aClass, \ ! void **args, \ ! void *ret \ ! ) \ ! { \ ! className##Ptr myPointer = className::castDown( aClass ); + /*! + \def DISPATCH_FUNCTION_NORETURN( className, methName ) + \brief Opens the standard header, body required to do something + but ignores return value + \arg className : base name for method + \arg methName : unique name identifier + */ + + #define DISPATCH_FUNCTION_NORETURN( className, methName ) \ + static void className##methName \ + ( \ + corelinux::FrameworkEntityPtr aClass, \ + void **args, \ + void * \ + ) \ + { \ + className##Ptr myPointer = className::castDown( aClass ); + #define CLOSE_DISPATH_FUNCTION \ } *************** *** 424,432 **** aAlPtr->destroyType(aPtr); \ } \ ! className##Ref className::castDown( FrameworkEntityRef aP ) \ { \ return dynamic_cast<className##Ref>(aP); \ } \ ! className##Ptr className::castDown( FrameworkEntityPtr aP ) \ { \ return dynamic_cast<className##Ptr>(aP); \ --- 444,452 ---- aAlPtr->destroyType(aPtr); \ } \ ! className##Ref className::castDown( corelinux::FrameworkEntityRef aP ) \ { \ return dynamic_cast<className##Ref>(aP); \ } \ ! className##Ptr className::castDown( corelinux::FrameworkEntityPtr aP ) \ { \ return dynamic_cast<className##Ptr>(aP); \ *************** *** 438,444 **** \return a VoidPtr \ */ \ ! VoidPtr className::operator new( size_t ) \ { \ ! return (VoidPtr)className::create(); \ } \ /** \ --- 458,464 ---- \return a VoidPtr \ */ \ ! void * className::operator new( size_t ) \ { \ ! return (void *)className::create(); \ } \ /** \ *************** *** 448,452 **** \arg the pointer aVoidPtr \ */ \ ! void className::operator delete(VoidPtr aVoidPtr) \ { \ className##Ptr aPtr = (className##Ptr)aVoidPtr; \ --- 468,472 ---- \arg the pointer aVoidPtr \ */ \ ! void className::operator delete(void * aVoidPtr) \ { \ className##Ptr aPtr = (className##Ptr)aVoidPtr; \ *************** *** 472,476 **** Cast to type \ */ \ ! className##Ptr className::castDown( FrameworkEntityPtr aP ) \ { \ return dynamic_cast<className##Ptr>(aP); \ --- 492,496 ---- Cast to type \ */ \ ! className##Ptr className::castDown( corelinux::FrameworkEntityPtr aP ) \ { \ return dynamic_cast<className##Ptr>(aP); \ *************** *** 482,488 **** \return a VoidPtr \ */ \ ! VoidPtr className::operator new( size_t ) \ { \ ! return (VoidPtr)className::create(); \ } \ /** \ --- 502,508 ---- \return a VoidPtr \ */ \ ! void * className::operator new( size_t ) \ { \ ! return (void *)className::create(); \ } \ /** \ *************** *** 492,496 **** \arg the pointer aVoidPtr \ */ \ ! void className::operator delete(VoidPtr aVoidPtr) \ { \ className##Ptr aPtr = (className##Ptr)aVoidPtr; \ --- 512,516 ---- \arg the pointer aVoidPtr \ */ \ ! void className::operator delete(void *aVoidPtr) \ { \ className##Ptr aPtr = (className##Ptr)aVoidPtr; \ *************** *** 521,525 **** className##Ptr className::create( void ) \ { \ ! throw AbstractEntityException \ ( \ className##AllocExc, \ --- 541,545 ---- className##Ptr className::create( void ) \ { \ ! throw corelinux::AbstractEntityException \ ( \ className##AllocExc, \ *************** *** 534,538 **** void className::destroy( className##Ptr ) \ { \ ! throw AbstractEntityException \ ( \ className##DeAllocExc, \ --- 554,558 ---- void className::destroy( className##Ptr ) \ { \ ! throw corelinux::AbstractEntityException \ ( \ className##DeAllocExc, \ *************** *** 540,544 **** ); \ } \ ! className##Ptr className::castDown( FrameworkEntityPtr aP ) \ { \ return dynamic_cast<className##Ptr>(aP); \ --- 560,564 ---- ); \ } \ ! className##Ptr className::castDown( corelinux::FrameworkEntityPtr aP ) \ { \ return dynamic_cast<className##Ptr>(aP); \ *************** *** 550,556 **** \return a VoidPtr \ */ \ ! VoidPtr className::operator new( size_t ) \ { \ ! throw AbstractEntityException \ ( \ className##AllocExc, \ --- 570,576 ---- \return a VoidPtr \ */ \ ! void * className::operator new( size_t ) \ { \ ! throw corelinux::AbstractEntityException \ ( \ className##AllocExc, \ *************** *** 565,571 **** \arg the pointer aVoidPtr \ */ \ ! void className::operator delete( VoidPtr ) \ { \ ! throw AbstractEntityException \ ( \ className##DeAllocExc, \ --- 585,591 ---- \arg the pointer aVoidPtr \ */ \ ! void className::operator delete( void * ) \ { \ ! throw corelinux::AbstractEntityException \ ( \ className##DeAllocExc, \ *************** *** 605,609 **** implements the getType() function \ */ \ ! MetaTypeCptr className::getType( void ) const \ { \ return &theTypeDesc; \ --- 625,629 ---- implements the getType() function \ */ \ ! MetaTypePtr className::getType( void ) const \ { \ return &theTypeDesc; \ *************** *** 714,717 **** --- 734,739 ---- _DEFINE_ENTITY_ALWAYS(className) + namespace corelinux + { /*! \class MetaType *************** *** 934,937 **** --- 956,976 ---- //@} + /** @name Instance Mutators and methods interfaces + */ + //@{ + /** + Attempts to call the method via a dispatch function on + the object + @param FrameworkEntity pointer to the object + @param char pointer to the named method (used for lookup) + @param void pointer array of arguments + @param void pointer to return value + @exception NullpointerException if object or name are null + @exception DescriptorNotFound if no match + */ + + void dispatch( FrameworkEntityPtr, char *, void **, void * ) + throw( NullPointerException, DescriptorNotFound ); + //@} protected: |
|
From: Frank V. C. <fr...@us...> - 2000-10-29 23:47:26
|
Update of /cvsroot/corelinux/clfw/src/testdrivers/exf1/include In directory slayer.i.sourceforge.net:/tmp/cvs-serv9442/include Log Message: Directory /cvsroot/corelinux/clfw/src/testdrivers/exf1/include added to the repository |
|
From: Christophe Prud'h. <pru...@us...> - 2000-10-29 20:41:07
|
Update of /cvsroot/corelinux/clfw/debian In directory slayer.i.sourceforge.net:/tmp/cvs-serv23814 Modified Files: rules changelog Log Message: update debian for 0.2.2 Index: rules =================================================================== RCS file: /cvsroot/corelinux/clfw/debian/rules,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** rules 2000/09/05 01:21:15 1.4 --- rules 2000/10/29 20:41:04 1.5 *************** *** 4,8 **** package=libclfw ! version=0.0.1 version_major=0 --- 4,8 ---- package=libclfw ! version=0.2.2 version_major=0 Index: changelog =================================================================== RCS file: /cvsroot/corelinux/clfw/debian/changelog,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** changelog 2000/09/05 01:21:15 1.3 --- changelog 2000/10/29 20:41:04 1.4 *************** *** 1,9 **** ! libclfw (0.0.1-2) unstable; urgency=low * corrected includefir path for LibraryLoad -- Christophe Prud'homme <pru...@mi...> Mon, 4 Sep 2000 21:03:14 -0400 ! libclfw (0.0.1-1) unstable; urgency=low * created 3 packages: --- 1,22 ---- ! libclfw (0.2.2-1) unstable; urgency=low + * new upstream version. + + -- Christophe Prud'homme <pru...@mi...> Sun, 29 Oct 2000 10:20:13 -0400 + + libclfw (0.2.1-1) unstable; urgency=low + + * new upstream version. + * 0.2.0 was skipped. + + -- Christophe Prud'homme <pru...@mi...> Mon, 16 Oct 2000 10:20:13 -0400 + + libclfw (0.1.0-2) unstable; urgency=low + * corrected includefir path for LibraryLoad -- Christophe Prud'homme <pru...@mi...> Mon, 4 Sep 2000 21:03:14 -0400 ! libclfw (0.1.0-1) unstable; urgency=low * created 3 packages: |
|
From: Frank V. C. <fr...@us...> - 2000-10-29 17:16:21
|
Update of /cvsroot/corelinux/clfw/clfw In directory slayer.i.sourceforge.net:/tmp/cvs-serv28366/clfw Modified Files: MetaType.hpp Log Message: 119678 Dispatch table for objects Index: MetaType.hpp =================================================================== RCS file: /cvsroot/corelinux/clfw/clfw/MetaType.hpp,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -r1.17 -r1.18 *** MetaType.hpp 2000/10/29 17:09:52 1.17 --- MetaType.hpp 2000/10/29 17:16:18 1.18 *************** *** 319,323 **** ! typedef void (*DispatchFunction)( FrameworkEntityPtr, void *, void ** ); struct __DispatchDescriptor { --- 319,323 ---- ! typedef void (*DispatchFunction)( FrameworkEntityPtr, void **, void * ); struct __DispatchDescriptor { *************** *** 335,340 **** */ #define DISPATCH_FUNCTION( className, methName ) \ ! static extern "C" void className##methName( FrameworkEntityPtr aClass, void *ret, void **args ) \ ! { \ className##Ptr myPointer = className:::castDown( aClass ); --- 335,345 ---- */ #define DISPATCH_FUNCTION( className, methName ) \ ! static extern "C" void className##methName \ ! ( \ ! FrameworkEntityPtr aClass, \ ! void **args, \ ! void *ret \ ! ) \ ! { \ className##Ptr myPointer = className:::castDown( aClass ); |
|
From: Frank V. C. <fr...@us...> - 2000-10-29 17:09:56
|
Update of /cvsroot/corelinux/clfw/src/libs/clfw In directory slayer.i.sourceforge.net:/tmp/cvs-serv27714/src/libs/clfw Modified Files: Aggregate.cpp Boolean.cpp FrameworkEntity.cpp Integer.cpp MetaType.cpp Number.cpp RealNumber.cpp ShortInteger.cpp SignedNumber.cpp UnsignedInteger.cpp UnsignedNumber.cpp UnsignedShortInteger.cpp Log Message: 119678 Dispatch table for objects Index: Aggregate.cpp =================================================================== RCS file: /cvsroot/corelinux/clfw/src/libs/clfw/Aggregate.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** Aggregate.cpp 2000/10/25 22:31:23 1.1 --- Aggregate.cpp 2000/10/29 17:09:52 1.2 *************** *** 54,57 **** --- 54,59 ---- CLOSE_INSTANCEDATA; + DEFINE_DUMMY_DISPATCHTABLE( Aggregate ); + //! we use the abstract macro for MetaTypeAggregate autonaming Index: Boolean.cpp =================================================================== RCS file: /cvsroot/corelinux/clfw/src/libs/clfw/Boolean.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** Boolean.cpp 2000/10/23 04:05:53 1.2 --- Boolean.cpp 2000/10/29 17:09:52 1.3 *************** *** 59,62 **** --- 59,64 ---- CLOSE_INSTANCEDATA; + DEFINE_DUMMY_DISPATCHTABLE( Boolean ); + //! we use the standard macro for MetaTypeBoolean autonaming *************** *** 70,78 **** : FrameworkEntity() { ! ; // do nothing } // // Destructor // --- 72,104 ---- : FrameworkEntity() + { + this->setValue(false); + } + + + // + // Copy constructor + // + + Boolean::Boolean( BooleanCref aBoolRef ) + : + FrameworkEntity() { ! this->setValue( aBoolRef.getValue() ); } // + // Value constructor + // + + Boolean::Boolean( bool const &aBoolRef ) + : + FrameworkEntity() + { + this->setValue( aBoolRef ); + } + + + // // Destructor // *************** *** 101,105 **** bool Boolean::operator==( bool const &aBool ) const { ! return ( theValue == aBool ); } --- 127,131 ---- bool Boolean::operator==( bool const &aBool ) const { ! return ( this->getValue() == aBool ); } *************** *** 115,119 **** if( this != &aBoolRef ) { ! theValue = aBoolRef.getValue(); } else --- 141,145 ---- if( this != &aBoolRef ) { ! this->setValue( aBoolRef.getValue() ); } else *************** *** 130,134 **** BooleanRef Boolean::operator=( bool const &aBool ) { ! theValue = aBool; return ( *this ); } --- 156,160 ---- BooleanRef Boolean::operator=( bool const &aBool ) { ! this->setValue(aBool); return ( *this ); } Index: FrameworkEntity.cpp =================================================================== RCS file: /cvsroot/corelinux/clfw/src/libs/clfw/FrameworkEntity.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -r1.6 -r1.7 *** FrameworkEntity.cpp 2000/10/22 14:49:16 1.6 --- FrameworkEntity.cpp 2000/10/29 17:09:52 1.7 *************** *** 52,55 **** --- 52,57 ---- CLOSE_INSTANCEDATA; + DEFINE_DUMMY_DISPATCHTABLE( FrameworkEntity ); + //! because we must define MetaTypeRoot and is abstract Index: Integer.cpp =================================================================== RCS file: /cvsroot/corelinux/clfw/src/libs/clfw/Integer.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** Integer.cpp 2000/10/27 12:41:35 1.4 --- Integer.cpp 2000/10/29 17:09:52 1.5 *************** *** 34,37 **** --- 34,38 ---- #endif + namespace corelinux { *************** *** 62,65 **** --- 63,68 ---- DEFINE_INSTANCEDATA( Integer, Value ) CLOSE_INSTANCEDATA; + + DEFINE_DUMMY_DISPATCHTABLE( Integer ); //! we use the standard macro for MetaTypeInteger autonaming Index: MetaType.cpp =================================================================== RCS file: /cvsroot/corelinux/clfw/src/libs/clfw/MetaType.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** MetaType.cpp 2000/10/22 14:49:16 1.9 --- MetaType.cpp 2000/10/29 17:09:52 1.10 *************** *** 26,33 **** #endif - #if !defined(__METATYPE_HPP) - #include <MetaType.hpp> - #endif - #if !defined(__DESCRIPTORNOTFOUND_HPP) #include <DescriptorNotFound.hpp> --- 26,29 ---- *************** *** 55,58 **** --- 51,55 ---- MetaTypeCptr *aParentArray, MemberDescriptorCptr *aMemberArray, + DispatchDescriptorCptr *aDispatchArray, CharCptr aTypeName, CharCptr aMetaTypeName *************** *** 64,72 **** theBaseClasses( aParentArray ), theInstanceMembers( aMemberArray ), theInstanceTypeName( aTypeName ), theMetaTypeName( aMetaTypeName ), theFactoryAllocator( NULLPTR ) { ! ; } --- 61,70 ---- theBaseClasses( aParentArray ), theInstanceMembers( aMemberArray ), + theDispatchFunctions( aDispatchArray ), theInstanceTypeName( aTypeName ), theMetaTypeName( aMetaTypeName ), theFactoryAllocator( NULLPTR ) { ! ; // do nothing } *************** *** 82,85 **** --- 80,84 ---- MetaTypeCptr *aParentArray, MemberDescriptorCptr *aMemberArray, + DispatchDescriptorCptr *aDispatchArray, CharCptr aTypeName, CharCptr aMetaTypeName, *************** *** 92,100 **** theBaseClasses( aParentArray ), theInstanceMembers( aMemberArray ), theInstanceTypeName( aTypeName ), theMetaTypeName( aMetaTypeName ), theFactoryAllocator( aAllocation ) { ! ; } --- 91,100 ---- theBaseClasses( aParentArray ), theInstanceMembers( aMemberArray ), + theDispatchFunctions( aDispatchArray ), theInstanceTypeName( aTypeName ), theMetaTypeName( aMetaTypeName ), theFactoryAllocator( aAllocation ) { ! ; // do nothing } *************** *** 169,172 **** --- 169,179 ---- } + // Get the list of function dispatch descriptors + + DispatchDescriptorCptr *const MetaType::getInstanceFunctions( void ) const + { + return theDispatchFunctions; + } + // Get the class name *************** *** 371,374 **** --- 378,382 ---- } } + } Index: Number.cpp =================================================================== RCS file: /cvsroot/corelinux/clfw/src/libs/clfw/Number.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** Number.cpp 2000/10/23 04:05:53 1.4 --- Number.cpp 2000/10/29 17:09:52 1.5 *************** *** 54,57 **** --- 54,59 ---- CLOSE_INSTANCEDATA; + DEFINE_DUMMY_DISPATCHTABLE( Number ); + //! we use the abstract macro for MetaTypeNumber autonaming Index: RealNumber.cpp =================================================================== RCS file: /cvsroot/corelinux/clfw/src/libs/clfw/RealNumber.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** RealNumber.cpp 2000/10/14 11:41:26 1.1 --- RealNumber.cpp 2000/10/29 17:09:52 1.2 *************** *** 59,62 **** --- 59,64 ---- CLOSE_INSTANCEDATA; + DEFINE_DUMMY_DISPATCHTABLE( RealNumber ); + //! we use the standard macro for MetaTypeRealNumber autonaming *************** *** 68,71 **** --- 70,75 ---- RealNumber::RealNumber( void ) + : + Number() { ; // do nothing *************** *** 73,76 **** --- 77,102 ---- // + // Constructor + // + + RealNumber::RealNumber( RealNumberCref aRealRef ) + : + Number() + { + this->setValue( aRealRef.getValue() ); + } + + // + // Value Constructor + // + + RealNumber::RealNumber( RealCref aRealRef ) + : + Number() + { + this->setValue( aRealRef ); + } + + // // Destructor // *************** *** 78,82 **** RealNumber::~RealNumber( void ) { ! ; } --- 104,108 ---- RealNumber::~RealNumber( void ) { ! ; // do nothing } *************** *** 94,97 **** --- 120,132 ---- // + // Value equality + // + + bool RealNumber::operator==( RealCref aReal ) const + { + return ( this->getValue() == aReal ); + } + + // // Assignment operator // *************** *** 104,108 **** if( this != &aRealRef ) { ! theValue = aRealRef.getValue(); } else --- 139,143 ---- if( this != &aRealRef ) { ! this->setValue( aRealRef.getValue() ); } else *************** *** 113,119 **** } RealNumberRef RealNumber::operator=( RealCref aReal ) { ! theValue = aReal; return ( *this ); } --- 148,158 ---- } + // + // Value assignment + // + RealNumberRef RealNumber::operator=( RealCref aReal ) { ! this->setValue( aReal ); return ( *this ); } Index: ShortInteger.cpp =================================================================== RCS file: /cvsroot/corelinux/clfw/src/libs/clfw/ShortInteger.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** ShortInteger.cpp 2000/10/27 12:41:35 1.3 --- ShortInteger.cpp 2000/10/29 17:09:52 1.4 *************** *** 63,66 **** --- 63,68 ---- CLOSE_INSTANCEDATA; + DEFINE_DUMMY_DISPATCHTABLE( ShortInteger ); + //! we use the standard macro for MetaTypeInteger autonaming Index: SignedNumber.cpp =================================================================== RCS file: /cvsroot/corelinux/clfw/src/libs/clfw/SignedNumber.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** SignedNumber.cpp 2000/10/23 04:05:53 1.1 --- SignedNumber.cpp 2000/10/29 17:09:52 1.2 *************** *** 58,61 **** --- 58,63 ---- CLOSE_INSTANCEDATA; + DEFINE_DUMMY_DISPATCHTABLE( SignedNumber ); + //! we use the standard macro for MetaTypeSignedNumber autonaming Index: UnsignedInteger.cpp =================================================================== RCS file: /cvsroot/corelinux/clfw/src/libs/clfw/UnsignedInteger.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** UnsignedInteger.cpp 2000/10/27 12:41:35 1.3 --- UnsignedInteger.cpp 2000/10/29 17:09:52 1.4 *************** *** 64,67 **** --- 64,69 ---- CLOSE_INSTANCEDATA; + DEFINE_DUMMY_DISPATCHTABLE( UnsignedInteger ); + //! we use the standard macro for MetaTypeInteger autonaming Index: UnsignedNumber.cpp =================================================================== RCS file: /cvsroot/corelinux/clfw/src/libs/clfw/UnsignedNumber.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** UnsignedNumber.cpp 2000/10/23 04:05:53 1.1 --- UnsignedNumber.cpp 2000/10/29 17:09:52 1.2 *************** *** 58,61 **** --- 58,63 ---- CLOSE_INSTANCEDATA; + DEFINE_DUMMY_DISPATCHTABLE( UnsignedNumber ); + //! we use the standard macro for MetaTypeUnsignedNumber autonaming Index: UnsignedShortInteger.cpp =================================================================== RCS file: /cvsroot/corelinux/clfw/src/libs/clfw/UnsignedShortInteger.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** UnsignedShortInteger.cpp 2000/10/27 12:41:35 1.2 --- UnsignedShortInteger.cpp 2000/10/29 17:09:52 1.3 *************** *** 63,66 **** --- 63,68 ---- CLOSE_INSTANCEDATA; + DEFINE_DUMMY_DISPATCHTABLE( UnsignedShortInteger ); + //! we use the standard macro for MetaTypeInteger autonaming |
|
From: Frank V. C. <fr...@us...> - 2000-10-29 17:09:56
|
Update of /cvsroot/corelinux/clfw/clfw/LibLoad In directory slayer.i.sourceforge.net:/tmp/cvs-serv27714/clfw/LibLoad Modified Files: LibraryObjectDefinition.hpp LibraryType.hpp Log Message: 119678 Dispatch table for objects Index: LibraryObjectDefinition.hpp =================================================================== RCS file: /cvsroot/corelinux/clfw/clfw/LibLoad/LibraryObjectDefinition.hpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** LibraryObjectDefinition.hpp 2000/08/30 21:22:05 1.1 --- LibraryObjectDefinition.hpp 2000/10/29 17:09:52 1.2 *************** *** 22,29 **** */ ! #if !defined(__COMMON_HPP) ! #include <Common.hpp> #endif #include <string> --- 22,33 ---- */ ! #if !defined(__CLFWCOMMON_HPP) ! #include <ClfwCommon.hpp> #endif + #if !defined(__AGGREGATE_HPP) + #include <clfw/Aggregate.hpp> + #endif + #include <string> *************** *** 42,47 **** DECLARE_CLASS( LibraryObjectDefinition ); ! class LibraryObjectDefinition { public: --- 46,53 ---- DECLARE_CLASS( LibraryObjectDefinition ); ! class LibraryObjectDefinition : public Aggregate { + DECLARE_METATYPEMEMBERS( LibraryObjectDefinition ); + public: *************** *** 50,53 **** --- 56,63 ---- // + /// Default definition constructor + + LibraryObjectDefinition( void ) ; + /** Default constructor requires a library object *************** *** 72,79 **** bool operator==( LibraryObjectDefinitionCref ) const; - /// Name coercion operator - - operator const std::string &( void ) const; - // // Accessor --- 82,85 ---- *************** *** 102,105 **** --- 108,117 ---- virtual void destroyIndividual( LibraryInstancePtr, LibraryObjectPtr ) = 0; + /** @name Data members for Meta access + */ + //@{ + DECLARE_INSTANCEDATA( string, DefinitionName ); + //@} + protected: *************** *** 108,115 **** // Constructors // - /// Default constructor not allowed - - LibraryObjectDefinition( void ) throw ( Assertion ); - /// Copy constructor not allowed --- 120,123 ---- *************** *** 124,130 **** private: - /// The defintion and library object name - - std::string theDefinitionName; }; --- 132,135 ---- Index: LibraryType.hpp =================================================================== RCS file: /cvsroot/corelinux/clfw/clfw/LibLoad/LibraryType.hpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** LibraryType.hpp 2000/10/25 22:31:22 1.3 --- LibraryType.hpp 2000/10/29 17:09:52 1.4 *************** *** 27,31 **** #if !defined(__AGGREGATE_HPP) ! #include <Aggregate.hpp> #endif --- 27,31 ---- #if !defined(__AGGREGATE_HPP) ! #include <clfw/Aggregate.hpp> #endif |
|
From: Frank V. C. <fr...@us...> - 2000-10-29 17:09:55
|
Update of /cvsroot/corelinux/clfw/src/libs/LibLoad In directory slayer.i.sourceforge.net:/tmp/cvs-serv27714/src/libs/LibLoad Modified Files: LibraryObjectDefinition.cpp LibraryType.cpp Log Message: 119678 Dispatch table for objects Index: LibraryObjectDefinition.cpp =================================================================== RCS file: /cvsroot/corelinux/clfw/src/libs/LibLoad/LibraryObjectDefinition.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** LibraryObjectDefinition.cpp 2000/08/31 02:18:51 1.2 --- LibraryObjectDefinition.cpp 2000/10/29 17:09:52 1.3 *************** *** 19,22 **** --- 19,25 ---- */ + /*! \file LibraryObjectDefinition.cpp + */ + #define LIBRARY_LOAD_FRAMWORK *************** *** 31,53 **** namespace corelinux { ! // ! // Constructor ! // ! LibraryObjectDefinition::LibraryObjectDefinition( const std::string &aName ) ! throw ( NullPointerException ) ! : ! theDefinitionName( aName ) ! { ! if( theDefinitionName.empty() == true ) ! { ! throw NullPointerException(LOCATION); ! } ! else ! { ! ; // do nothing ! } ! } // // Default constructor --- 34,72 ---- namespace corelinux { ! //! version LibraryType for the MetaType ! const DwordCref version(1); ! ! //! meta indentifier for the LibraryType ! ! const UniversalIdentifier metaIdentifier ! ( ! "0829af44-accb-11d4-8df6-00500489272c" ! ); ! ! //! ahh, our first foray into ontologies ! ! OPEN_METATYPE_PARENTS( LibraryObjectDefinition ) ! DEFINE_METATYPE_PARENT( Aggregate ) ! CLOSE_METATYPE_PARENT; ! ! //! because this is a abstract base entity, there are no members either ! ! //! We define our property data descriptor ! ! DEFINE_INSTANCEDATA_DESCRIPTOR(LibraryObjectDefinition,string,DefinitionName); ! ! //! We construct the values reference ! ! OPEN_INSTANCEDATA( LibraryObjectDefinition ) ! DEFINE_INSTANCEDATA( LibraryObjectDefinition, DefinitionName ) ! CLOSE_INSTANCEDATA; + DEFINE_DUMMY_DISPATCHTABLE( LibraryObjectDefinition ); + + //! we use the abstract macro for MetaTypeAggregate autonaming + + DEFINE_ABSTRACT_METATYPE( LibraryObjectDefinition, metaIdentifier, version ); + // // Default constructor *************** *** 55,61 **** LibraryObjectDefinition::LibraryObjectDefinition( void ) ! throw ( Assertion ) { ! NEVER_GET_HERE; } --- 74,81 ---- LibraryObjectDefinition::LibraryObjectDefinition( void ) ! : ! Aggregate() { ! ; // do nothing } *************** *** 69,72 **** --- 89,94 ---- ) throw ( Assertion ) + : + Aggregate() { NEVER_GET_HERE; *************** *** 90,104 **** LibraryObjectDefinitionCref aObjectDefinition ) const - { - return (theDefinitionName == (const std::string &)aObjectDefinition); - } - - // - // Coercion operator - // - - LibraryObjectDefinition::operator const std::string &( void ) const { ! return theDefinitionName; } --- 112,117 ---- LibraryObjectDefinitionCref aObjectDefinition ) const { ! return ( this->getDefinitionName() == aObjectDefinition.getDefinitionName() ); } Index: LibraryType.cpp =================================================================== RCS file: /cvsroot/corelinux/clfw/src/libs/LibLoad/LibraryType.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** LibraryType.cpp 2000/10/25 22:31:23 1.4 --- LibraryType.cpp 2000/10/29 17:09:52 1.5 *************** *** 19,22 **** --- 19,25 ---- */ + /*! \file LibraryType.cpp + */ + #define LIBRARY_LOAD_FRAMWORK *************** *** 59,62 **** --- 62,67 ---- DEFINE_INSTANCEDATA( LibraryType, TypeName ) CLOSE_INSTANCEDATA; + + DEFINE_DUMMY_DISPATCHTABLE( LibraryType ); //! we use the abstract macro for MetaTypeAggregate autonaming |
|
From: Frank V. C. <fr...@us...> - 2000-10-29 17:09:55
|
Update of /cvsroot/corelinux/clfw/clfw In directory slayer.i.sourceforge.net:/tmp/cvs-serv27714/clfw Modified Files: Boolean.hpp MetaType.hpp RealNumber.hpp Log Message: 119678 Dispatch table for objects Index: Boolean.hpp =================================================================== RCS file: /cvsroot/corelinux/clfw/clfw/Boolean.hpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** Boolean.hpp 2000/10/22 14:46:38 1.1 --- Boolean.hpp 2000/10/29 17:09:52 1.2 *************** *** 57,60 **** --- 57,74 ---- Boolean( void ); + /** + Copy constructor + @param Boolean const reference + */ + + Boolean( BooleanCref ); + + /** + Value constructor + @param bool const reference + */ + + Boolean( bool const & ); + /// Virtual destructor *************** *** 76,80 **** Equality operator @param bool const reference ! @return bool true if the same object instance */ --- 90,94 ---- Equality operator @param bool const reference ! @return bool true if the values are the same */ Index: MetaType.hpp =================================================================== RCS file: /cvsroot/corelinux/clfw/clfw/MetaType.hpp,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -r1.16 -r1.17 *** MetaType.hpp 2000/10/25 12:20:26 1.16 --- MetaType.hpp 2000/10/29 17:09:52 1.17 *************** *** 38,42 **** DECLARE_CLASS( DescriptorNotFound ); DECLARE_CLASS( AccessorNotFound ); - /*! --- 38,41 ---- *************** *** 76,79 **** --- 75,79 ---- static void destroy( className##Ptr aPointer ); \ static className##Ptr castDown( FrameworkEntityPtr ); \ + static className##Ref castDown( FrameworkEntityRef ); \ /** \ redefine the operator new[] \ *************** *** 295,299 **** Array storing the attribute descriptors \ */ \ ! MemberDescriptor const *className##Type##Members[] = \ { \ --- 295,299 ---- Array storing the attribute descriptors \ */ \ ! static MemberDescriptor const *className##Type##Members[] = \ { \ *************** *** 319,322 **** --- 319,371 ---- + typedef void (*DispatchFunction)( FrameworkEntityPtr, void *, void ** ); + struct __DispatchDescriptor + { + CharPtr theClassMethodName; + DispatchFunction theFunction; + } ; + + DECLARE_TYPE( struct __DispatchDescriptor, DispatchDescriptor ); + + /*! + \def DISPATCH_FUNCTION( className, methName ) + \brief Opens the standard header, body required to do something + \arg className : base name for method + \arg methName : unique name identifier + */ + #define DISPATCH_FUNCTION( className, methName ) \ + static extern "C" void className##methName( FrameworkEntityPtr aClass, void *ret, void **args ) \ + { \ + className##Ptr myPointer = className:::castDown( aClass ); + + #define CLOSE_DISPATH_FUNCTION \ + } + + /*! + \def DEFINE_DISPATCH_DESCRIPTOR( className, methName ) + \brief Defines a dispatch descriptor for a specific call + \arg className : identifies the class + \arg classMethName : identifies the class method that is called + \arg methName : identifies the dispath function + */ + + #define DEFINE_DISPATCH_DESCRIPTOR( className, classMethName, methName ) \ + static DispatchDescriptor className##Dispatch##methName = \ + { #classMethName, className##methName } + + #define OPEN_DISPATCH_TABLE( className ) \ + static DispatchDescriptor const *className##DispatchTable[] = \ + { \ + + #define DEFINE_DISPATCH_ENTRY( className, methName ) \ + &className##Dispatch##methName, + + #define CLOSE_DISPATH_TABLE \ + 0 } + + #define DEFINE_DUMMY_DISPATCHTABLE( className ) \ + static DispatchDescriptor const *className##DispatchTable[] = \ + { 0 } + /*! \def _DEFINE_FACTORY( className ) *************** *** 370,373 **** --- 419,426 ---- aAlPtr->destroyType(aPtr); \ } \ + className##Ref className::castDown( FrameworkEntityRef aP ) \ + { \ + return dynamic_cast<className##Ref>(aP); \ + } \ className##Ptr className::castDown( FrameworkEntityPtr aP ) \ { \ *************** *** 515,519 **** ); \ } \ ! /*! \def _DEFINE_ENTITY_ALWAYS_PARMS(className,identification,version) --- 568,572 ---- ); \ } \ ! /*! \def _DEFINE_ENTITY_ALWAYS_PARMS(className,identification,version) *************** *** 531,537 **** className##Size, \ className##MetaType##Parents, \ ! className##Type##Members, - #define _DEFINE_SINGLE_STRINGID( className ) \ className##Name \ --- 584,590 ---- className##Size, \ className##MetaType##Parents, \ ! className##Type##Members, \ ! className##DispatchTable, #define _DEFINE_SINGLE_STRINGID( className ) \ className##Name \ *************** *** 655,658 **** --- 708,712 ---- ,&the##className##Allocator \ _DEFINE_ENTITY_ALWAYS(className) + /*! \class MetaType *************** *** 684,692 **** ( UniversalIdentifierCref , ! DwordCref , ! DwordCref , ! MetaTypeCptr *, ! MemberDescriptorCptr *, ! CharCptr , CharCptr ) throw ( Assertion ); --- 738,747 ---- ( UniversalIdentifierCref , ! DwordCref , ! DwordCref , ! MetaTypeCptr *, ! MemberDescriptorCptr *, ! DispatchDescriptorCptr *, ! CharCptr , CharCptr ) throw ( Assertion ); *************** *** 708,717 **** ( UniversalIdentifierCref , ! DwordCref , ! DwordCref , ! MetaTypeCptr *, ! MemberDescriptorCptr *, ! CharCptr , ! CharCptr , AllocatorPtr ) throw ( Assertion ); --- 763,773 ---- ( UniversalIdentifierCref , ! DwordCref , ! DwordCref , ! MetaTypeCptr *, ! MemberDescriptorCptr *, ! DispatchDescriptorCptr *, ! CharCptr , ! CharCptr , AllocatorPtr ) throw ( Assertion ); *************** *** 723,726 **** --- 779,789 ---- //@} + /** @name Operator overloads + */ + //@{ + + bool operator==( MetaTypeCptr ) const; + //@} + /** @name MetaType Accessors General accessors for the meta type and various descriptors *************** *** 764,767 **** --- 827,836 ---- /** + get the instance dispatch descriptors + */ + + DispatchDescriptorCptr * const getInstanceFunctions( void ) const; + + /** get the name of the instance of this MetaType. @return the name of the instance of this MetaType *************** *** 871,874 **** --- 940,944 ---- MetaType( MetaTypeCref ) throw ( Assertion ); + protected: *************** *** 881,884 **** --- 951,955 ---- MetaTypeCptr *const theBaseClasses; MemberDescriptorCptr *const theInstanceMembers; + DispatchDescriptorCptr *const theDispatchFunctions; CharCptr theInstanceTypeName; CharCptr theMetaTypeName; *************** *** 886,889 **** --- 957,961 ---- }; } + #endif // if !defined(__METATYPE_HPP) Index: RealNumber.hpp =================================================================== RCS file: /cvsroot/corelinux/clfw/clfw/RealNumber.hpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** RealNumber.hpp 2000/10/14 11:40:20 1.1 --- RealNumber.hpp 2000/10/29 17:09:52 1.2 *************** *** 36,40 **** /*! \class RealNumber ! Represents the subset of Numbers that are whole */ --- 36,40 ---- /*! \class RealNumber ! Represents the subset of Numbers that are real */ *************** *** 57,60 **** --- 57,74 ---- RealNumber( void ); + /** + Copy constructor + @param RealNumber const reference + */ + + RealNumber( RealNumberCref ); + + /** + Value constructor + @param Real const reference + */ + + RealNumber( RealCref ); + /// Virtual destructor *************** *** 74,77 **** --- 88,99 ---- /** + Equality operator + @param Real const reference + @return bool true if the values are the same + */ + + bool operator==( RealCref ) const; + + /** Assignment operator @param RealNumber const reference *************** *** 80,83 **** --- 102,111 ---- RealNumberRef operator=( RealNumberCref ); + + /** + Value Assignment operator + @param Real const reference + @returnm RealNumber reference to (*this) + */ RealNumberRef operator=( RealCref ); |
|
From: Frank V. C. <fr...@us...> - 2000-10-29 17:09:55
|
Update of /cvsroot/corelinux/clfw/src/testdrivers/exf1 In directory slayer.i.sourceforge.net:/tmp/cvs-serv27714/src/testdrivers/exf1 Modified Files: examp1.cpp Log Message: 119678 Dispatch table for objects Index: examp1.cpp =================================================================== RCS file: /cvsroot/corelinux/clfw/src/testdrivers/exf1/examp1.cpp,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -r1.15 -r1.16 *** examp1.cpp 2000/10/27 12:41:35 1.15 --- examp1.cpp 2000/10/29 17:09:53 1.16 *************** *** 49,52 **** --- 49,56 ---- #endif + #if !defined(__REALNUMBER_HPP) + #include <clfw/RealNumber.hpp> + #endif + #if !defined(__SHORTINTEGER_HPP) #include <clfw/ShortInteger.hpp> *************** *** 81,84 **** --- 85,89 ---- void dumpTypeInformation( FrameworkEntityPtr ); void dumpInstanceMembers( MetaTypeCptr ); + void dumpInstanceFunctions( MetaTypeCptr ); void dumpParents( MetaTypeCptr ); *************** *** 144,147 **** --- 149,169 ---- // + // bool + + BooleanPtr aBoolean = new Boolean(true); + dumpTypeInformation( aBoolean ); + cout << "Value of aBoolean = " << + getValue<bool>("Value",aBoolean) << endl; + delete aBoolean; + + // real + + RealNumberPtr aReal = RealNumber::create(); + setValue<Real>("Value",9.7,aReal); + dumpTypeInformation( aReal ); + cout << "Value of aReal = " << + getValue<Real>("Value",aReal) << endl; + RealNumber::destroy( aReal ); + // signed Integer *************** *** 257,260 **** --- 279,288 ---- dumpInstanceMembers( aMTPtr ); + // + // Dump dispatch table + // + + dumpInstanceFunctions( aMTPtr ); + } // *************** *** 348,351 **** --- 376,407 ---- } + + void dumpInstanceFunctions( MetaTypeCptr aMTPtr ) + { + DispatchDescriptorCptr * const aMDescs = aMTPtr->getInstanceFunctions(); + + cout << endl << "Instance Function List : " << endl; + if( aMDescs == NULLPTR ) + { + cout << "Internal class error for functions : " << + aMTPtr->getInstanceTypeName() << endl; + } + else + { + if( aMDescs[0] != NULLPTR ) + { + for( int x = 0; aMDescs[x] != NULLPTR; ++x ) + { + cout << "\tFunction name = " << aMDescs[x]->theClassMethodName << endl + << "\tFunction address = " << aMDescs[x]->theFunction << endl; + } + } + else + { + cout << "\tNo function members" << endl; + } + } + } + // |
|
From: Frank V. C. <fr...@us...> - 2000-10-29 17:09:54
|
Update of /cvsroot/corelinux/clfw In directory slayer.i.sourceforge.net:/tmp/cvs-serv27714 Modified Files: ChangeLog Log Message: 119678 Dispatch table for objects Index: ChangeLog =================================================================== RCS file: /cvsroot/corelinux/clfw/ChangeLog,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** ChangeLog 2000/10/25 22:31:22 1.9 --- ChangeLog 2000/10/29 17:09:51 1.10 *************** *** 1,2 **** --- 1,6 ---- + 2000-10-29 Frank V. Castellucci <fr...@ca...> + + * Feature 119678 - Added dispatch table for MetaType for object method invocation + 2000-10-25 Frank V. Castellucci <fr...@ca...> |