Index: vtcross/trunk/src/include/vtcross/cognitive_engine.h
===================================================================
--- vtcross/trunk/src/include/vtcross/cognitive_engine.h	(revision 518)
+++ vtcross/trunk/src/include/vtcross/cognitive_engine.h	(revision 530)
@@ -27,6 +27,18 @@
 /*! \brief Cognitive Engine class declaration.
  *
- * All public functions are inherited from parent classes.  Please see parent
- * class definitions for function documentation.
+ * This is the declaration for the default cognitive engine class.  Note that
+ * most of the below functions are implemented in CognitiveEngine.cpp - however,
+ * the functionality is very non-specific.
+ *
+ * Each of the 'Perform*' functions are left un-implemented, for the most part.
+ *
+ * The purpose of this class is to act as a non-abstract parent class.
+ * Cognitive Engines should be built by publically inherting from this class,
+ * and overloading the 'Perform*' functions - thus creating new and specific
+ * cognitive engine functionality, without the need to rewrite or copy/paste the
+ * rest of the code.
+ *
+ * Note, however, that all functions are virtual.  Any function may be
+ * overloaded by the child class, if desired.
  */
 class CognitiveEngine : public Engine
@@ -47,17 +59,16 @@
                 const bool SML);
         
-        void SendComponentType();
-        void ConnectToRemoteComponent(const char* serverName, \
+        virtual void SendComponentType();
+        virtual void ConnectToRemoteComponent(const char* serverName, \
                 const char* serverPort, const bool SML);
-        void WaitForSignal();
-        void Shutdown();
-        void Reset();
-        void RegisterComponent();
-        void DeregisterComponent();
+        virtual void WaitForSignal();
+        virtual void Shutdown();
+        virtual void Reset();
+        virtual void RegisterComponent();
+        virtual void DeregisterComponent();
 
-        void RegisterServices();
-        void DeregisterServices();
+        virtual void RegisterServices();
+        virtual void DeregisterServices();
 
-    private:
         /*! \brief Receive radio XML configuration.
          * 
@@ -65,5 +76,5 @@
          * (the CE will not always be local to the radio). This gets passed
          * through either the Shell or the SML. */
-        void ReceiveRadioConfiguration();
+        virtual void ReceiveRadioConfiguration();
 
         /*! \brief Receive an 'experience' report from the radio.
@@ -72,5 +83,5 @@
          * for a CE just starting up so that it has a moving start regarding
          * parameter optimization. */
-        void ReceiveExperience();
+        virtual void ReceiveExperience();
 
         /*! \brief Request that the CE optimize a set of parameters. 
@@ -79,7 +90,7 @@
          * observables and possibly a service if the SML component is present
          * and active. */
-        Parameter *GetSolution(Observable *observables, \
+        virtual Parameter *GetSolution(Observable *observables, \
                 Parameter *currentParameters);
-        Parameter *GetSolution(Observable *observables, \
+        virtual Parameter *GetSolution(Observable *observables, \
                 Parameter *currentParameters, std::string service);
 
@@ -94,6 +105,6 @@
          * more accurate performance statistics. 
          */
-        void ReceiveFeedback(Observable *observables,Parameter *parameters);
-        void ReceiveFeedback(Observable *observables, Parameter *parameters, \
+        virtual void ReceiveFeedback(Observable *observables,Parameter *parameters);
+        virtual void ReceiveFeedback(Observable *observables, Parameter *parameters, \
                 std::string service);
 
@@ -107,6 +118,21 @@
          * may build the chromosome structure.
          */
-        void BuildCognitiveEngine();
+        virtual void BuildCognitiveEngine();
 
+        /*! \brief Each of these functions responds to a specific command.
+         *
+         * These functions are left principally un-implemented. It is the duty
+         * of child classes to implement these functions, as they define the
+         * cognitive engine's functionality.
+         */
+        virtual void PerformUpdatePerformance();
+        virtual void PerformRequestOptimizationService();
+        virtual void PerformRequestOptimization();
+        virtual void PerformQueryComponentType();
+        virtual void PerformConnectSML();
+        virtual void PerformDisconnectSML();
+        virtual void PerformResetEngineCognitive();
+        virtual void PerformShutdownEngineCognitive();
+ 
         /*! \brief Keept track of what this CE is connected to. 
          *
@@ -118,5 +144,5 @@
         bool SML_present;
         int32_t commandSocketFD;
-        
+       
         // TODO Need a description for these fields.  Are these radio utilites,
         // parameters, and observables global to the whole system?
