Index: vtcross/trunk/src/include/vtcross/cross_shell.h
===================================================================
--- vtcross/trunk/src/include/vtcross/cross_shell.h	(revision 465)
+++ vtcross/trunk/src/include/vtcross/cross_shell.h	(revision 518)
@@ -15,6 +15,6 @@
 */
 
-/* This header exports the declaration for the VTCROSS Shell component, which is
- * a critical part of every VTCROSS system. 
+/*! This header exports the declaration for the CROSS Shell component, which is
+ * a critical part of every CROSS system. 
  */
 
@@ -26,13 +26,22 @@
 
 
-/* Cognitive Radio Shell class declaration. 
+/*! \brief Cognitive Radio Shell class declaration. 
+ *
+ * The CROSS Cognitive Radio Shell (CRS) is the central control component of
+ * most CROSS radios.  It is a requirement for any CROSS radio, regardless of
+ * the presence or lack thereof of the SML.
  */
 class CognitiveRadioShell 
 {
     public:
+        /*! \brief Default CRS costructor. */
         CognitiveRadioShell();
+
+        /*! \brief Default CRS destructor. */
         ~CognitiveRadioShell();
 
-        /* Overloaded constructor that creates a CR Shell object and loads the
+        /*! \brief Preferred CRS constructor.
+         *
+         * Overloaded constructor that creates a CR Shell object and loads the
          * passed radio configuration XML file.
          */
@@ -40,25 +49,45 @@
             int16_t policyPort, int16_t commandPort);
 
-        /* Ask for the component type of a remote component via sockets, or
-         * respond to such a query sent to the shell itself.
-         */
+        /*! \brief Request the component type of a remote component. */
         std::string GetRemoteComponentType(int32_t socketFD);
+
+        /*! \brief Respond to a request to identify component type. */
         void SendComponentType(int32_t socketFD);
 
+        /*! \brief Shutdown the CRS.
+         *
+         * Since the CRS is the central control component of the CROSS radio,
+         * shutting down the CRS will shutdown the entire radio.
+         */
         void Shutdown();
+
+        /*! \brief Restart the CRS.
+         *
+         * Restart the CRS component - reloads configuration files, and
+         * re-initializes the CRS component.
+         */
         void Reset();
         
-        /* Start all the socket servers */
+        /*! \brief Start the CRS's socket server. 
+         *
+         * This function will make the CRS create a socket server and begin
+         * listening for incoming connections from other components.
+         */
         void StartShellServer(); 
 
+        /*! \brief Load the radio configuration.
+         *
+         * This function reads in the radio's XML configuration file, which is
+         * typically located on the same system as the CRS, although it can also
+         * be passed to the CRS from the radio host platform if necessary.
+         */
         int32_t LoadRadioConfiguration(const char* radioConfig, Parameter* &pList, \
             Utility* &uList, Observable* &oList, Radio_Info* radioInfo);
     private:
-        /* Parse and load/reload policies into the policy engine.
-         */
-        void LoadPolicies();
-        void ReloadPolicies();
-
-        /* Register and Deregister the different components.
+        /*! \brief Handle component registration activities.
+         *
+         * Register and Deregister the different components.
+         * TODO Are multiple functions really necessary?  They are all basically
+         * doing the same thing...
          */
         void RegisterCognitiveEngine(int32_t socketFD);
@@ -69,4 +98,10 @@
         void DeregisterSML(int32_t socketFD);
         
+        /*! \brief Set the active mission.
+         *
+         * This function handles a request by the radio host platform to set or
+         * change the current active mission in the service management layer.
+         * This command is basically passed through the CRS to the SML.
+         */
         void SetActiveMission(int32_t socketFD);
 
@@ -75,18 +110,23 @@
         int32_t HandleMessage(int32_t socketFD);
        
-        /* Send optimization request to primary port FD.
+        /*! \brief Send optimization request to CE.
+         *
+         * The host application requested that parameters be optimized - pass
+         * the parameters and command to the CE.
+         *
+         * TODO How is the CE being selected if multiple CEs are available?
          */
         void GetOptimalParameters(int32_t socketFD);
 
-        /* TODO
+        /*! TODO
          */
         bool SendRadioConfiguration(int32_t socketFD);
         bool SendRadioExperience(int32_t socketFD);
 
-        /* TODO
+        /*! TODO
          */
         bool UpdateParameterPerformance(int32_t socketFD);
 
-        /* TODO
+        /*! TODO
          */
         bool SML_present;
@@ -94,9 +134,9 @@
         bool CE_present;
        
-        /* TODO
+        /*! TODO
          */
         int32_t numberOfCognitiveEngines; 
 
-        /* TODO
+        /*! TODO
          */       
         int16_t primaryPort;
@@ -104,5 +144,9 @@
         int16_t commandPort;
 
-        /* TODO
+        /*! TODO
+         *
+         * I'm confused as to what exactly these are for... there can be
+         * multiple CEs and PEs, and the CRS _IS_ the command component.
+         * --BCH
          */
         int32_t ceSocketFD;
@@ -110,5 +154,5 @@
         int32_t policySocketFD;
 
-        /* TODO
+        /*! TODO
          */
         Utility *utils;
@@ -116,5 +160,5 @@
         Observable *observables;
 
-        /* TODO
+        /*! TODO
          */
         struct Radio_Info *radio_info;
