Index: vtcross/branches/bhilburn/src/cognitive_engines/cbr.c
===================================================================
--- vtcross/branches/bhilburn/src/cognitive_engines/cbr.c	(revision 123)
+++ vtcross/branches/bhilburn/src/cognitive_engines/cbr.c	(revision 125)
@@ -7,5 +7,5 @@
 #include <stdio.h>
 
-#include "cbr.h"
+#include <vtcross/cbr.h>
 
 
Index: vtcross/branches/bhilburn/src/cognitive_engines/Makefile.am
===================================================================
--- vtcross/branches/bhilburn/src/cognitive_engines/Makefile.am	(revision 123)
+++ vtcross/branches/bhilburn/src/cognitive_engines/Makefile.am	(revision 125)
@@ -1,4 +1,7 @@
+INCLUDES = -I$(top_srcdir)/src/include
+
 bin_PROGRAMS = cbr_demo
 
 cbr_demo_SOURCES = cbr.c cbr_demo.c
 
+
Index: vtcross/branches/bhilburn/src/cognitive_engines/cbr_demo.c
===================================================================
--- vtcross/branches/bhilburn/src/cognitive_engines/cbr_demo.c	(revision 123)
+++ vtcross/branches/bhilburn/src/cognitive_engines/cbr_demo.c	(revision 125)
@@ -8,5 +8,5 @@
 #include <string.h>
 
-#include "cbr.h"
+#include <vtcross/cbr.h>
 
 //using namespace std;
Index: vtcross/branches/bhilburn/src/include/vtcross/libvtcross.h
===================================================================
--- vtcross/branches/bhilburn/src/include/vtcross/libvtcross.h	(revision 125)
+++ vtcross/branches/bhilburn/src/include/vtcross/libvtcross.h	(revision 125)
@@ -0,0 +1,111 @@
+/* Virginia Tech Cognitive Radio Open Source Systems
+ * Virginia Tech, 2009
+ *
+ * LICENSE INFORMATION GOES HERE
+ */
+
+/* VTCROSS Cognitive Radio API
+ *
+ * This header exports all public functions that comprise the VTCROSS function
+ * library.  
+ *
+ * PUT MORE STUFF HERE
+ */
+
+#ifndef LIBVTCROSS_H
+#define LIBVTCROSS_H
+
+#ifdef GCC_EXPERIMENTAL
+    #include <cstdint>
+#else
+    #include <stdint.h>
+#endif
+
+#include "components.h"
+#include "containers.h"
+
+
+/* Parses VTCROSS XML configuration file and uses it to configure the radio. 
+ *
+ * This function *must* be called when the radio first starts up, and may be
+ * called at any point after that to reconfigure the radio.
+ */
+bool ParseRadioConfiguration();
+
+/* Lists current radio configuration options loaded from the configuration XML
+ * file. 
+ *
+ * TODO How are we listing these?  Are we simply returning them to stdout?
+ * Logging them? Returning strings?  Need to figure this out...
+ */
+void ListCurrentRadioConfiguration();
+
+/* View data from the current status of the radio. 
+ *
+ * This function allows client code to capture radio properties at any certain
+ * instant.  Note, however, that these properties could be changing at very
+ * rapid rates. There is no guarantee that the return results from these
+ * functions will still be valid by the time the client code receives them.
+ */
+Observables* GetRadioObservables();
+Parameters* GetRadioParameters();
+Utilities* GetRadioUtilities();
+
+/* View components currently connected to the radio by id. 
+ *
+ * TODO Should there be another way to list components? If you have 10 cognitive
+ * engines, how are you going to know which is which just by id?
+ */
+uint32_t* GetConnectedCognitiveEngines();
+uint32_t* GetConnectedPolicyEngines();
+uint32_t* GetConnectedManagementServiceLayers();
+uint32_t* GetConnectedComponents();
+
+/* Look up component information by id. 
+ *
+ * Note that the return type is of abstract base class component, which can then
+ * be used to reference whatever sub-component type was referenced by the id.
+ */
+Component* GetComponentInformation(uint32_t id);
+
+/* Given a certain set of observables, ask the radio to find the optimum radio
+ * parameters and return them. 
+ *
+ * TODO I'm a little confused about this function... why would anyone need to
+ * use this?  Shouldn't this be internal to the radio operation? 
+ */
+Parameters* GetOptimalParameters(Observables *radioObservables);
+
+/* Update the radio regarding its performance for a certain set of transmission
+ * parameters, observables, and utilities.
+ *
+ * TODO Where in the function parameters are we accurately representing the
+ * radio's performance?
+ */
+bool UpdateParameterPerformance(Parameters *radioParameters, \
+        Observables *radioObservables, Utilies *radioUtilies);
+
+/* Deactivate/Activate/Disconnect a component by id.
+ *
+ * TODO This seems silly?  If id's are independent of component type, why not
+ * just have one deactivate function that takes an id and operates on it? Why do
+ * we need 3 separate functions? They are all components...
+ */
+bool DeactivateCE(uint32_t id);
+bool DeactivatePE(uint32_t id);
+bool DeactivateSML(uint32_t id);
+bool ActivateCE(uint32_t id);
+bool ActivatePE(uint32_t id);
+bool ActivateSML(uint32_t id);
+bool DisconnectCE(uint32_t id);
+bool DisconnectPE(uint32_t id);
+bool DisconnectSML(uint32_t id);
+
+/* Shut down the radio.
+ *
+ * This function will deactivate and disconnect all radio components before
+ * finally shutting down the shell and stopping radio operations.
+ */
+bool Shutdown();
+
+#endif
Index: vtcross/branches/bhilburn/src/include/vtcross/Makefile.am
===================================================================
--- vtcross/branches/bhilburn/src/include/vtcross/Makefile.am	(revision 125)
+++ vtcross/branches/bhilburn/src/include/vtcross/Makefile.am	(revision 125)
@@ -0,0 +1,1 @@
+include_HEADERS = cbr.h components.h containers.h libvtcross.h
Index: vtcross/branches/bhilburn/src/include/vtcross/components.h
===================================================================
--- vtcross/branches/bhilburn/src/include/vtcross/components.h	(revision 125)
+++ vtcross/branches/bhilburn/src/include/vtcross/components.h	(revision 125)
@@ -0,0 +1,77 @@
+/* Virginia Tech Cognitive Radio Open Source Systems
+ * Virginia Tech, 2009
+ *
+ * LICENSE INFORMATION GOES HERE
+ */
+
+ /* This header exports the declarations for all VT-CROSS radio components.  It
+ * contains two pure abstract base classes, Component and Engine; Engine derives
+ * from Component.  All functions contained within the abstract base classes are
+ * dynamically linked and pure, and all child non-abstract classes derive using 
+ * private inheritence.  Class functions of the abstract base classes are public
+ * for two reasons: (1) To allow for public/protected inheritence in other 
+ * implementations, (2) So that symbolic debuggers can navigate the call tree 
+ * for typecasted objects of derivative classes.
+ */
+
+#ifndef CONTAINERS_H
+#define CONTAINERS_H
+
+
+#include "containers.h"
+
+
+class Component
+{
+    public:
+        virtual void GetRemoteComponentType() = 0;
+        virtual void WaitForSignal() = 0;
+        virtual void Shutdown() = 0;
+        virtual void Reset() = 0;
+        virtual void RegisterComponent(socketFD, compType) = 0;
+        virtual void DeregisterComponent() = 0;
+};
+
+
+class Engine : public Component
+{
+    public:
+        virtual void RegisterServices() = 0;
+        virtual void DeregisterServices() = 0;
+};
+
+
+class ServiceManagementLayer : private Component
+{
+    private: 
+        void TransferRadioConfiguration();
+        void TransferExperience();
+        void ReceiveServices();
+        void SetActiveMission();
+        void ListServices();
+        void ReloadConfiguration();
+        void LoadConfiguration();
+};
+
+
+class PolicyEngine : private Engine
+{
+    private:
+        void ReloadPolicies();
+        void LoadPolicies();
+        void ValidateParameters();
+};
+
+
+class CognitiveEngine : private Engine
+{
+    private:
+        void ReceiveRadioConfiguration();
+        void ReceiveExperience();
+        void GetSolution(Observable *observables);
+        void GetSolution(Observable *observables, string service);
+        void ReceiveFeedback(Observable *observables, Parameter *parameters, Utility *utilities);
+        void ReceiveFeedback(Observable *observables, Parameter *parameters, string service);
+};
+
+#endif
Index: vtcross/branches/bhilburn/src/include/vtcross/containers.h
===================================================================
--- vtcross/branches/bhilburn/src/include/vtcross/containers.h	(revision 125)
+++ vtcross/branches/bhilburn/src/include/vtcross/containers.h	(revision 125)
@@ -0,0 +1,64 @@
+/* Virginia Tech Cognitive Radio Open Source Systems
+ * Virginia Tech, 2009
+ *
+ * LICENSE INFORMATION GOES HERE
+ */
+
+/* This header contains commonly used data container structs in VT-CROSS
+ * systems.
+ */
+
+#ifndef COMPONENTS_H
+#define COMPONENTS_H
+
+/* Until the new C++ i99 standard is made permanent, allow use of otherwise
+ * legacy C-libraries.
+ */
+#ifdef GCC_EXPERIMENTAL
+    #include <cstdint>
+#else
+    #include <stdint.h>
+#endif
+
+
+struct CE_Info {
+    uint32_t numUtilities;
+    uint32_t numParameters;
+    uint32_t numObservables;
+    uint32_t policy_engine;
+    uint32_t policy_socket;
+    uint32_t ce_socket;
+};
+
+struct Utility {
+    std::string name;
+    std::string units;
+    std::string goal;
+    float target;
+    float value;
+};
+
+struct Affect {
+    Utility *u;
+    std::string relation;
+};
+
+struct Parameter {
+    std::string name;
+    std::string units;
+    float min;
+    uint32_t numAffects;
+    Affect affection_list[10];
+    float max;
+    float step;
+    float value;
+};
+
+struct Observable {
+    std::string name;
+    Affect affection_list[10];
+    uint32_t numAffects;
+    float value;
+};
+
+#endif
Index: vtcross/branches/bhilburn/src/include/vtcross/cbr.h
===================================================================
--- vtcross/branches/bhilburn/src/include/vtcross/cbr.h	(revision 125)
+++ vtcross/branches/bhilburn/src/include/vtcross/cbr.h	(revision 125)
@@ -0,0 +1,34 @@
+//
+// Case-based reasoner
+//
+
+#ifndef CBR_H
+#define CBR_H
+
+#include "sqlite3.h"
+//#define CBR_LEN_FILENAME 64
+
+#define DATABASENAME "cactus_cbr"
+
+typedef struct cbr_s * cbr;
+
+// create the CBR
+cbr cbr_create(char * _filename, char * _tablename, char * _cols[], unsigned int _len);
+
+// free the CBR
+void cbr_free(cbr _cbr);
+
+// print databse/table
+void cbr_print(cbr _cbr);
+
+#define EQ 0    // equals
+#define NE 1    // not equals
+#define GT 2    // greater than
+#define GE 3    // greater than or equal to
+#define LT 4    // less than
+#define LE 5    // less than or equal to
+int cbr_search(cbr _cbr, char *_names[], int * _ops, float *_vals, unsigned int _n, float *_retvals);
+
+int cbr_add_row(cbr _cbr, char *_cols[], float *_vals, unsigned int _len);
+
+#endif
Index: vtcross/branches/bhilburn/src/include/Makefile.am
===================================================================
--- vtcross/branches/bhilburn/src/include/Makefile.am	(revision 120)
+++ vtcross/branches/bhilburn/src/include/Makefile.am	(revision 125)
@@ -0,0 +1,1 @@
+SUBDIRS = vtcross
Index: vtcross/branches/bhilburn/src/include/libvtcross.h
===================================================================
--- vtcross/branches/bhilburn/src/include/libvtcross.h	(revision 115)
+++ 	(revision )
@@ -1,111 +1,0 @@
-/* Virginia Tech Cognitive Radio Open Source Systems
- * Virginia Tech, 2009
- *
- * LICENSE INFORMATION GOES HERE
- */
-
-/* VTCROSS Cognitive Radio API
- *
- * This header exports all public functions that comprise the VTCROSS function
- * library.  
- *
- * PUT MORE STUFF HERE
- */
-
-#ifndef LIBVTCROSS_H
-#define LIBVTCROSS_H
-
-#ifdef GCC_EXPERIMENTAL
-    #include <cstdint>
-#else
-    #include <stdint.h>
-#endif
-
-#include "components.h"
-#include "containers.h"
-
-
-/* Parses VTCROSS XML configuration file and uses it to configure the radio. 
- *
- * This function *must* be called when the radio first starts up, and may be
- * called at any point after that to reconfigure the radio.
- */
-bool ParseRadioConfiguration();
-
-/* Lists current radio configuration options loaded from the configuration XML
- * file. 
- *
- * TODO How are we listing these?  Are we simply returning them to stdout?
- * Logging them? Returning strings?  Need to figure this out...
- */
-void ListCurrentRadioConfiguration();
-
-/* View data from the current status of the radio. 
- *
- * This function allows client code to capture radio properties at any certain
- * instant.  Note, however, that these properties could be changing at very
- * rapid rates. There is no guarantee that the return results from these
- * functions will still be valid by the time the client code receives them.
- */
-Observables* GetRadioObservables();
-Parameters* GetRadioParameters();
-Utilities* GetRadioUtilities();
-
-/* View components currently connected to the radio by id. 
- *
- * TODO Should there be another way to list components? If you have 10 cognitive
- * engines, how are you going to know which is which just by id?
- */
-uint32_t* GetConnectedCognitiveEngines();
-uint32_t* GetConnectedPolicyEngines();
-uint32_t* GetConnectedManagementServiceLayers();
-uint32_t* GetConnectedComponents();
-
-/* Look up component information by id. 
- *
- * Note that the return type is of abstract base class component, which can then
- * be used to reference whatever sub-component type was referenced by the id.
- */
-Component* GetComponentInformation(uint32_t id);
-
-/* Given a certain set of observables, ask the radio to find the optimum radio
- * parameters and return them. 
- *
- * TODO I'm a little confused about this function... why would anyone need to
- * use this?  Shouldn't this be internal to the radio operation? 
- */
-Parameters* GetOptimalParameters(Observables *radioObservables);
-
-/* Update the radio regarding its performance for a certain set of transmission
- * parameters, observables, and utilities.
- *
- * TODO Where in the function parameters are we accurately representing the
- * radio's performance?
- */
-bool UpdateParameterPerformance(Parameters *radioParameters, \
-        Observables *radioObservables, Utilies *radioUtilies);
-
-/* Deactivate/Activate/Disconnect a component by id.
- *
- * TODO This seems silly?  If id's are independent of component type, why not
- * just have one deactivate function that takes an id and operates on it? Why do
- * we need 3 separate functions? They are all components...
- */
-bool DeactivateCE(uint32_t id);
-bool DeactivatePE(uint32_t id);
-bool DeactivateSML(uint32_t id);
-bool ActivateCE(uint32_t id);
-bool ActivatePE(uint32_t id);
-bool ActivateSML(uint32_t id);
-bool DisconnectCE(uint32_t id);
-bool DisconnectPE(uint32_t id);
-bool DisconnectSML(uint32_t id);
-
-/* Shut down the radio.
- *
- * This function will deactivate and disconnect all radio components before
- * finally shutting down the shell and stopping radio operations.
- */
-bool Shutdown();
-
-#endif
Index: vtcross/branches/bhilburn/src/include/components.h
===================================================================
--- vtcross/branches/bhilburn/src/include/components.h	(revision 115)
+++ 	(revision )
@@ -1,77 +1,0 @@
-/* Virginia Tech Cognitive Radio Open Source Systems
- * Virginia Tech, 2009
- *
- * LICENSE INFORMATION GOES HERE
- */
-
- /* This header exports the declarations for all VT-CROSS radio components.  It
- * contains two pure abstract base classes, Component and Engine; Engine derives
- * from Component.  All functions contained within the abstract base classes are
- * dynamically linked and pure, and all child non-abstract classes derive using 
- * private inheritence.  Class functions of the abstract base classes are public
- * for two reasons: (1) To allow for public/protected inheritence in other 
- * implementations, (2) So that symbolic debuggers can navigate the call tree 
- * for typecasted objects of derivative classes.
- */
-
-#ifndef CONTAINERS_H
-#define CONTAINERS_H
-
-
-#include "containers.h"
-
-
-class Component
-{
-    public:
-        virtual void GetRemoteComponentType() = 0;
-        virtual void WaitForSignal() = 0;
-        virtual void Shutdown() = 0;
-        virtual void Reset() = 0;
-        virtual void RegisterComponent(socketFD, compType) = 0;
-        virtual void DeregisterComponent() = 0;
-};
-
-
-class Engine : public Component
-{
-    public:
-        virtual void RegisterServices() = 0;
-        virtual void DeregisterServices() = 0;
-};
-
-
-class ServiceManagementLayer : private Component
-{
-    private: 
-        void TransferRadioConfiguration();
-        void TransferExperience();
-        void ReceiveServices();
-        void SetActiveMission();
-        void ListServices();
-        void ReloadConfiguration();
-        void LoadConfiguration();
-};
-
-
-class PolicyEngine : private Engine
-{
-    private:
-        void ReloadPolicies();
-        void LoadPolicies();
-        void ValidateParameters();
-};
-
-
-class CognitiveEngine : private Engine
-{
-    private:
-        void ReceiveRadioConfiguration();
-        void ReceiveExperience();
-        void GetSolution(Observable *observables);
-        void GetSolution(Observable *observables, string service);
-        void ReceiveFeedback(Observable *observables, Parameter *parameters, Utility *utilities);
-        void ReceiveFeedback(Observable *observables, Parameter *parameters, string service);
-};
-
-#endif
Index: vtcross/branches/bhilburn/src/include/containers.h
===================================================================
--- vtcross/branches/bhilburn/src/include/containers.h	(revision 115)
+++ 	(revision )
@@ -1,64 +1,0 @@
-/* Virginia Tech Cognitive Radio Open Source Systems
- * Virginia Tech, 2009
- *
- * LICENSE INFORMATION GOES HERE
- */
-
-/* This header contains commonly used data container structs in VT-CROSS
- * systems.
- */
-
-#ifndef COMPONENTS_H
-#define COMPONENTS_H
-
-/* Until the new C++ i99 standard is made permanent, allow use of otherwise
- * legacy C-libraries.
- */
-#ifdef GCC_EXPERIMENTAL
-    #include <cstdint>
-#else
-    #include <stdint.h>
-#endif
-
-
-struct CE_Info {
-    uint32_t numUtilities;
-    uint32_t numParameters;
-    uint32_t numObservables;
-    uint32_t policy_engine;
-    uint32_t policy_socket;
-    uint32_t ce_socket;
-};
-
-struct Utility {
-    std::string name;
-    std::string units;
-    std::string goal;
-    float target;
-    float value;
-};
-
-struct Affect {
-    Utility *u;
-    std::string relation;
-};
-
-struct Parameter {
-    std::string name;
-    std::string units;
-    float min;
-    uint32_t numAffects;
-    Affect affection_list[10];
-    float max;
-    float step;
-    float value;
-};
-
-struct Observable {
-    std::string name;
-    Affect affection_list[10];
-    uint32_t numAffects;
-    float value;
-};
-
-#endif
Index: vtcross/branches/bhilburn/src/include/cbr.h
===================================================================
--- vtcross/branches/bhilburn/src/include/cbr.h	(revision 115)
+++ 	(revision )
@@ -1,34 +1,0 @@
-//
-// Case-based reasoner
-//
-
-#ifndef CBR_H
-#define CBR_H
-
-#include "sqlite3.h"
-//#define CBR_LEN_FILENAME 64
-
-#define DATABASENAME "cactus_cbr"
-
-typedef struct cbr_s * cbr;
-
-// create the CBR
-cbr cbr_create(char * _filename, char * _tablename, char * _cols[], unsigned int _len);
-
-// free the CBR
-void cbr_free(cbr _cbr);
-
-// print databse/table
-void cbr_print(cbr _cbr);
-
-#define EQ 0    // equals
-#define NE 1    // not equals
-#define GT 2    // greater than
-#define GE 3    // greater than or equal to
-#define LT 4    // less than
-#define LE 5    // less than or equal to
-int cbr_search(cbr _cbr, char *_names[], int * _ops, float *_vals, unsigned int _n, float *_retvals);
-
-int cbr_add_row(cbr _cbr, char *_cols[], float *_vals, unsigned int _len);
-
-#endif
Index: vtcross/branches/bhilburn/src/policy_engines/Makefile.am
===================================================================
--- vtcross/branches/bhilburn/src/policy_engines/Makefile.am	(revision 120)
+++ vtcross/branches/bhilburn/src/policy_engines/Makefile.am	(revision 125)
@@ -1,2 +1,4 @@
+INCLUDES = -I$(top_srcdir)/src/include
+
 bin_PROGRAMS = policy_demo
 
Index: vtcross/branches/bhilburn/src/policy_engines/default_policy_engine.c
===================================================================
--- vtcross/branches/bhilburn/src/policy_engines/default_policy_engine.c	(revision 120)
+++ vtcross/branches/bhilburn/src/policy_engines/default_policy_engine.c	(revision 125)
@@ -7,5 +7,5 @@
 #include <string.h>
 
-#include "cbr.h"
+#include <vtcross/cbr.h>
 
 #define CR_PORT 30002
Index: vtcross/branches/bhilburn/configure.ac
===================================================================
--- vtcross/branches/bhilburn/configure.ac	(revision 123)
+++ vtcross/branches/bhilburn/configure.ac	(revision 125)
@@ -9,7 +9,8 @@
 
 AC_PROG_INSTALL
-AC_OUTPUT(Makefile doc/Makefile src/Makefile src/shell/Makefile
+AC_CONFIG_FILES(Makefile doc/Makefile src/Makefile src/shell/Makefile
           src/libvtcross/Makefile src/cognitive_engines/Makefile 
           src/policy_engines/Makefile src/service_management_layer/Makefile 
-          src/tinyxml/Makefile src/include/Makefile)
-
+          src/tinyxml/Makefile src/include/Makefile
+          src/include/vtcross/Makefile)
+AC_OUTPUT
