Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

/usr/src/redhat/BUILD/fmdfeeserver-0.1/doc/Mainpage.cc

Go to the documentation of this file.
00001 /** @mainpage RCU Control Engine Implemented in C++ 
00002 
00003     This is a C++ implementation of the DCS RCU Control Engine
00004 
00005 
00006     @section content Contents 
00007     
00008     - @ref overview
00009     - @ref rcuce_bits
00010     - @ref rcuce_core
00011       - @ref rcuce_dcsc 
00012       - @ref rcuce_rcu 
00013       - @ref rcuce_fsm
00014       - @ref rcuce_serv
00015         - @ref rcuce_rcu_serv
00016     - @ref rcuce_fecs
00017     - @ref rcuce_msg
00018 
00019     @section overview Overview
00020 
00021     This is a re-implementation of the RCU control engine, based on
00022     the C++ reimplementation of the FeeServer. 
00023 
00024     The basics of the library is the RcuCE::ControlEngine class.  This
00025     defines a the interface to the FeeServer.  It handles incoming
00026     events, and updates the services defined in the server.  The
00027     control engine defines a few commands it self (see @ref
00028     rcuce_bits), but delegates most other commands to the registered
00029     RcuCE::CommandHandler objects.  The control engine also has a few
00030     services, but most other services are managed by registered
00031     ServiceProvider objects.
00032 
00033     The library also defines a top-level interface to the RCU (@ref
00034     RcuCE::Rcu).  This provides all the commands to read/write
00035     registers of the RCU and associated Front-end cards both via the
00036     ALTRO bus and the @f$ I^2C@f$.
00037 
00038     The RcuCE::Rcu class uses the RcuCE::Dcsc class which is an
00039     abstraction over the Dcsc message buffer interface.
00040 
00041     Front-end card services are not defined directly in the library.
00042     Instead, the user should provide a sub-class of the
00043     RcuCE::FecFactory class (see @ref rcuce_fecs) to create custom
00044     RcuCE::Fec objects whenever a front-end card becomes active.  When
00045     the RcuCE::Rcu object sees that a FEC has been turned on, it
00046     suspends the monitor thread, and asks the RcuCE::FecFactory to
00047     give it a new RcuCE::Fec object.  The RcuCE::Fec object should
00048     register new services via the RcuCE::ServiceProvider interface.
00049     After having made all needed Fec objects, the RcuCE::Rcu object
00050     resumes the monitor thread.  A similar approach is used if a FEC
00051     disappeares: The monitor thread is suspended, the RcuCE::Fec
00052     object is removed, along with its services, and the monitor thread
00053     is resumed.
00054 
00055     The library provides a Finite State Machine (FSM) interface that a
00056     user can derive from to define their own state machines.  See also
00057     @ref rcuce_fsm. 
00058 */
00059 #error not for compilation. 
00060 
00061 //
00062 // EOF
00063 //

Generated on Thu Apr 17 14:32:44 2008 for FMD FeeServer by doxygen 1.3.5