Index: vtcross/trunk/src/libvtcross/Makefile.am
===================================================================
--- vtcross/trunk/src/libvtcross/Makefile.am	(revision 281)
+++ vtcross/trunk/src/libvtcross/Makefile.am	(revision 299)
@@ -13,2 +13,3 @@
 libvtcross_demo_sml_SOURCES = libvtcross_demo_sml.cpp
 libvtcross_demo_sml_LDADD = libvtcross.la
+
Index: vtcross/trunk/src/libvtcross/swig/libvtcross.i
===================================================================
--- vtcross/trunk/src/libvtcross/swig/libvtcross.i	(revision 299)
+++ vtcross/trunk/src/libvtcross/swig/libvtcross.i	(revision 299)
@@ -0,0 +1,62 @@
+%module cross
+%{
+#include "libvtcross.h"
+#include "containers.h"
+%}
+
+%typemap(in) uint32_t = int;
+
+%include "std_string.i"
+
+%include "containers.h"
+%include "libvtcross.h"
+
+%apply const std::string & { std::string * };
+
+%extend Parameter {
+
+    Parameter(int nparameters) {
+        Parameter * p = new Parameter[nparameters]; 
+        return p;
+    };
+
+    ~Parameter() {
+        delete [] $self;
+    };
+
+    Parameter *__getitem__(int i) {
+        return self+i;
+    };
+
+
+};
+
+%extend Observable {
+    Observable(int nobservables) {
+        Observable * o = new Observable[nobservables]; 
+        return o;
+    };
+
+    ~Observable() {
+        delete [] $self; 
+    };
+
+    Observable *__getitem__(int i) {
+        return self+i;
+    };
+};
+
+%extend Utility {
+    Utility(int nutilities) {
+        Utility * u = new Utility[nutilities]; 
+        return u;
+    };
+
+    ~Utility() {
+        delete [] $self;
+    };
+
+    Utility *__getitem__(int i) {
+        return self+i;
+    };
+};
Index: vtcross/trunk/src/libvtcross/swig/Makefile.am
===================================================================
--- vtcross/trunk/src/libvtcross/swig/Makefile.am	(revision 299)
+++ vtcross/trunk/src/libvtcross/swig/Makefile.am	(revision 299)
@@ -0,0 +1,15 @@
+BUILT_SOURCES = $(srcdir)/libvtcross_wrap.cpp
+SWIG_SOURCES = libvtcross.i
+
+INCLUDES = -I$(top_srcdir)/src/include
+
+
+pkgpython_PYTHON = cross.py
+pkgpyexec_LTLIBRARIES = _cross.la
+_cross_la_SOURCES = $(srcdir)/libvtcross_wrap.cpp $(SWIG_SOURCES)
+_cross_la_CPPFLAGS = $(SWIG_PYTHON_CPPFLAGS) -I$(top_srcdir)/src/libvtcross
+_cross_la_LDFLAGS = -module
+_cross_la_LIBADD = ../libvtcross.la
+
+$(srcdir)/libvtcross_wrap.cpp : $(SWIG_SOURCES)
+	$(SWIG) $(SWIG_PYTHON_OPT) -I$(top_srcdir)/trunk/src/libvtcross -I/usr/local/include -o $@ $<
Index: vtcross/trunk/src/libvtcross/swig/libcross_demo.py
===================================================================
--- vtcross/trunk/src/libvtcross/swig/libcross_demo.py	(revision 299)
+++ vtcross/trunk/src/libvtcross/swig/libcross_demo.py	(revision 299)
@@ -0,0 +1,19 @@
+from cross import *
+
+p = Parameter(2)
+currentParameters = Parameter(2)
+o = Observable(2)
+
+o[0].value = 150.00
+o[0].name = "throughput"
+
+o[1].name = "PER"
+o[1].value = 12.00
+
+currentParameters[0].name = "bandwidth"
+currentParameters[0].value = 300.0 
+
+currentParameters[1].name = "bandwidth"
+currentParameters[1].value = 10.0 
+
+p = GetOptimalParameters(o,2,currentParameters,2);
Index: vtcross/trunk/src/libvtcross/libvtcross.cpp
===================================================================
--- vtcross/trunk/src/libvtcross/libvtcross.cpp	(revision 285)
+++ vtcross/trunk/src/libvtcross/libvtcross.cpp	(revision 299)
@@ -182,2 +182,73 @@
     }
 }
+
+bool ActivateComponent(uint32_t id) {
+    return 1;
+}
+bool DeactivateComponent(uint32_t id) {
+    return 1;
+} 
+bool DisconnectComponent(uint32_t id) {
+    return 1;
+}
+
+Component* GetComponentInformation(uint32_t id) {
+
+}
+
+/* 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(){
+}
+
+
+/* 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.
+ */
+Observable* GetRadioObservables() {
+}
+Parameter* GetRadioParameters(){
+}
+Utility* GetRadioUtilities(){
+}
+
+
+/* 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(){
+}
+
+/* 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(){
+}
+
