[prev in list] [next in list] [prev in thread] [next in thread]
List: doxygen-users
Subject: [Doxygen-users] Documentation Generation Problem
From: Jake Colman <colman () ppllc ! com>
Date: 2005-03-28 22:23:53
Message-ID: 761x9z5s06.fsf () newjersey ! ppllc ! com
[Download RAW message or body]
I posted this once before but never heard anything back so I thought I'd try
again.
In the following code example, the method tSMPManager::addEngine() will not
be documented. Why not?
===============================================================
-- cSMPManager.h --
// Copyright 2004 Principia Partners LLC
#ifndef SMP_MANAGER_H
#define SMP_MANAGER_H
#undef COMMA
#include <cMutex.h>
#include <cSMPQueue.h>
namespace PAS {
template <class cX, class cY> class tSMPThread;
template <class cX, class cY> class tSMPManager
{
private:
tSMPQueue<tSMPThread<cX,cY> > qWorkThreads;
tSMPQueue<tSMPThread<cX,cY> > qResultThreads;
tSMPManager( const tSMPManager& ) {} // not implemented
tSMPManager& operator=( const tSMPManager& ) {} // not implemented
protected:
tSMPQueue<cX> qWork;
tSMPQueue<cY> qResults;
unsigned int EngineCount;
const cSMPContext* Context;
bool addEngine( tSMPThread<cX,cY>* T );
public:
tSMPManager( const cSMPContext* C, int EngineCount );
virtual ~tSMPManager();
virtual void init() = 0;
virtual void start();
virtual void wait();
virtual bool createWorkUnits() = 0;
virtual cX* nextWorkUnit();
virtual bool postResults( cY* );
virtual cY* nextResult();
virtual const cSMPContext* context() const;
virtual void exitCallback( tSMPThread<cX,cY>* T );
};
}
#endif
===============================================================
-- tSMPManager.h --
//
// Copyright 1995-2005 Principia Partners LLC
//
#include <cSMPManager.h>
namespace PAS {
/*!
* \defgroup SMP Multi-Threading Library
*/
/*!
* \class tSMPManager cSMPManager.h
*
* \ingroup SMP
*
* \brief The %tSMPManager class provides the overall management of a
* multi-threaded process.
*
*/
/*!
* Creates the SMP Manager object to manage the application's multi-threading
* requirements.
*
* \param C The data area to be passed on to the tSMPThread objects.
* \param theEngineCount The number of threads that should be created
*/
template <class cX, class cY>
tSMPManager<cX,cY>::tSMPManager( const cSMPContext* C, int theEngineCount )
: Context( C ),
EngineCount( theEngineCount )
{}
template <class cX, class cY>
tSMPManager<cX,cY>::~tSMPManager() {}
/*!
* This pure virtual method initializes the SMP Manager.
*/
template <class cX, class cY>
void tSMPManager<cX,cY>::init() {}
/*!
* This method starts the multi-threading process.
*/
template <class cX, class cY>
void tSMPManager<cX,cY>::start()
{
}
/*!
* Adds a new 'engine' (i.e., thread) to one of the Thread Queues that are
* managed by this (the Manager) object.
*
* The object represented by \a T is pushed onto either the \var qWorkThreads
* or \var qResultThreads queue. As long as thread objects are on the queue
* there is outstanding work or results being processed. When the queue are
* emptied and closed, all processing has been completed.
*
* \param T An instance of a tSMPThread object.
*/
template <class cX, class cY>
bool tSMPManager<cX,cY>::addEngine( tSMPThread<cX,cY>* T )
{
return true;
}
/*!
* This method causes to the manager to wait for all threads to complete.
* Completion is indicated by the \var qWorkThreads and \var qResultThreads
* queues being emptied and closed.
*/
template <class cX, class cY>
void tSMPManager<cX,cY>::wait()
{
}
/*!
* This pure virtual method is responsible for creating the work units for
* this application. The work units are pushed onto the \var qWork queue.
*
* \return TRUE if the work units were succesfully created.
*/
template <class cX, class cY>
bool tSMPManager<cX,cY>::createWorkUnits() {}
/*!
* Templatized function to manage the units of work to be processed by the
* tSMPThread objects. The method pops work units off the \var qWork
* queue and returns it to the caller.
*
* \return A pointer to an object of type cX, determined by the specific
* template instantiation.
*/
template <class cX, class cY>
cX* tSMPManager<cX,cY>::nextWorkUnit()
{
return NULL;
}
/*!
* Templatized function to post the results of work that has been completed
* by the tSMPThread object. The \a cY object is pushed onto the \a
* qResults queue. It is the caller's responsibilty to ensure there is a
* thread (see tSMPManager::addEngine()) that will be reponsible for calling
* tSMPManager::nextResult() to pop results off of the queue.
*
* \return TRUE if the result could be posted.
*/
template <class cX, class cY>
bool tSMPManager<cX,cY>::postResults( cY* Y )
{
return qResults.push( Y );
}
/*!
* Templatized function to pop result objects off of the \a qResults queue.
*
* \return A pointer to an object of type cY, determined by the specific
* template instantiation.
*/
template <class cX, class cY>
cY* tSMPManager<cX,cY>::nextResult()
{
return NULL;
}
/*!
* Provides access to the Manager's context.
* \return const pointer to the context
*/
template <class cX, class cY>
const cSMPContext* tSMPManager<cX,cY>::context() const
{
return NULL;
}
/*!
* This method is invoked when an SMP Thread has completed all of its work.
* This signals the Manager to pop the thread off of its queue. When the
* thread queue is empty it indicates that all processing has been completed.
*/
template <class cX, class cY>
void tSMPManager<cX,cY>::exitCallback( tSMPThread<cX,cY>* T )
{
}
}
// end of file
===============================================================
--
Jake Colman
Sr. Applications Developer
Principia Partners LLC
Harborside Financial Center
1001 Plaza Two
Jersey City, NJ 07311
(201) 209-2467
www.principiapartners.com
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Doxygen-users mailing list
Doxygen-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/doxygen-users
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic