This is the first part presentation of the Multimodal Application Framework (MAF) held in CINECA few months ago. Its development is still ongoing and is aimed to create an instrument for rapidly develop scientific visualization applications.
18. HowTos How to register and create object: mafRegisterObject(mafCore::mafObject); mafObjectBase*obj=mafNEWFromString("mafCore::mafObject"); How to create an id with Id Provider: mafId myId = m_IdProvider->createNewId("TestObjectId"); How to create/destroy a singleton: m_ObjectRegistry = mafObjectRegistry::instance(); m_ObjectRegistry->ShutDown();
23. Usage example Code to monitor time performance: // Initialize the profiler m_QAManager->profilerInit(); // Start the profiler with a string comment. m_QAManager->profilerStart(“Example"); // snippet of code to be monitored. long int m = 0; int i = 0; for(; i < 5000000; i++) { m = calcToProfile(m); } // Stop the profiler to get the timing information m_QAManager->profilerStop(); // Show the results on console. m_QAManager->profilerViewResultsOnConsole(); Starting D:evelAF3nstallinafQATest.exe... ********* Start testing of mafQAManagerTest ********* Config: Using QTest library 4.6.2, Qt 4.6.2 PASS : mafQAManagerTest::initTestCase() PASS : mafQAManagerTest::mafQAManagerAllocationTest() QDEBUG : mafQAManagerTest::profilerTest() "Function Name: mafQAManager run number 1 Location: mafQAManager run number 1 Notes: Example Call Number: 1 mSecs: 31 PASS : mafQAManagerTest::profilerTest() PASS : mafQAManagerTest::runScriptTest() PASS : mafQAManagerTest::cleanupTestCase() Totals: 5 passed, 0 failed, 0 skipped ********* Finished testing of mafQAManagerTest ********* CONSOLE OUTPUT
24.
25.
26.
27.
28.
29.
30.
31.
Editor's Notes
- Allow to open the URL for the specific application and allows the user compile a poll (??) -Allow retrieving the application version and other related build information.
Therefore at each build session, there will be a new generation of automated scripts for the QA.
The entire cycle terminates with the publishing of the QA results over internet,
Most part of QA scripts takes advantage from doxygen XML output that is created as first step. A script can also base its execution over another kind of source directory like code directory, and even extract information discriminating files using regular-expression
Each RuleGroup and each Rule inside a rulegroup need an initialization file in order to handle parameters. Generally the initialization file of a RuleGroup contain the file type checked and the source directory, while the rule initialization file contains parameter which depends by the rule itself.
Results are subdivided into a number of files equals to the total number of rule.