Index: /experimental/components/DataComparator/branches/DataComparator-metadata/DataComparator.cpp
===================================================================
--- /experimental/components/DataComparator/branches/DataComparator-metadata/DataComparator.cpp	(revision 4401)
+++ /experimental/components/DataComparator/branches/DataComparator-metadata/DataComparator.cpp	(revision 4700)
@@ -63,6 +63,6 @@
 DataComparator_i::DataComparator_i(const char *uuid, omni_condition *condition) : Resource_impl(uuid), component_running(condition) 
 {
-    dataIn_0 = new standardInterfaces_i::realChar_p("data_bits_in");
-    dataIn_1 = new standardInterfaces_i::realChar_p("control_bits_in");
+    dataIn = new standardInterfaces_i::realChar_p("data_bits_in");
+    metadataOut = new standardInterfaces_i::RadioMetaData_u("metadata_out");
 
     // initialze algorithm variables
@@ -82,6 +82,6 @@
 DataComparator_i::~DataComparator_i(void)
 {   
-    delete dataIn_0;
-    delete dataIn_1;
+    delete dataIn;
+    delete metadataOut;
     if ( packet != NULL )
         delete [] packet;
@@ -101,10 +101,10 @@
     CORBA::Object_var p;
 
-    p = dataIn_0->getPort(portName);
+    p = dataIn->getPort(portName);
 
     if (!CORBA::is_nil(p))
         return p._retn();
 
-    p = dataIn_1->getPort(portName);
+    p = metadataOut->getPort(portName);
 
     if (!CORBA::is_nil(p))
@@ -186,26 +186,18 @@
 
     PortTypes::CharSequence * data_bits_in(NULL);
-    PortTypes::CharSequence * control_bits_in(NULL);
 
     while( true )
     {
         data_bits_in = NULL;
-        dataIn_0->getData(data_bits_in);
+        dataIn->getData(data_bits_in, metadata);
         N = data_bits_in->length();
         DEBUG(7, DataComparator, "received " << N << " data samples")
 
-        dataIn_1->getData(control_bits_in);
-        M = control_bits_in->length();
-        DEBUG(7, DataComparator, "received " << M << " control samples")
-
         if ( N != packet_length ) {
             DEBUG(1, DataComparator, "WARNING: data packet sizes do not match")
         }
 
-        if ( M != 1 ) {
-            DEBUG(1, DataComparator, "WARNING: control packet sizes do not match")
-        }
-        packet_id = (*control_bits_in)[0];
-      //  packet_id=1;        
+        packet_id = metadata->packet_id;
+
         DEBUG(5, DataComparator, "packet id : " << packet_id);
 
@@ -248,7 +240,9 @@
         }
 
+        // push meta data
+        metadataOut->pushMetaData(*metadata);
+
         // Release input buffers
-        dataIn_0->bufferEmptied();
-        dataIn_1->bufferEmptied();
+        dataIn->bufferEmptied();
 
 
Index: /experimental/components/DataComparator/branches/DataComparator-metadata/DataComparator.h
===================================================================
--- /experimental/components/DataComparator/branches/DataComparator-metadata/DataComparator.h	(revision 3039)
+++ /experimental/components/DataComparator/branches/DataComparator-metadata/DataComparator.h	(revision 4700)
@@ -31,10 +31,8 @@
 #include "ossie/PortTypes.h"
 
-#include "standardinterfaces/realChar.h"
-#include "standardinterfaces/realChar_u.h"
 #include "standardinterfaces/realChar_p.h"
+#include "standardinterfaces/RadioMetaData_u.h"
 
 #include "ossie/Resource_impl.h"
-class DataComparator_i;
 
 class DataComparator_i : public virtual Resource_impl
@@ -70,6 +68,6 @@
         
         //list components provides and uses ports
-        standardInterfaces_i::realChar_p *dataIn_0; // data block
-        standardInterfaces_i::realChar_p *dataIn_1; // control block
+        standardInterfaces_i::realChar_p *dataIn; // data block
+        standardInterfaces_i::RadioMetaData_u *metadataOut;
 
         // algorithm variables
@@ -80,4 +78,6 @@
         unsigned int control_data_length;
 
+        standardInterfaces::MetaData *metadata;
+
 };
 #endif
Index: /experimental/components/DataComparator/branches/DataComparator-metadata/DataComparator.scd.xml
===================================================================
--- /experimental/components/DataComparator/branches/DataComparator-metadata/DataComparator.scd.xml	(revision 2744)
+++ /experimental/components/DataComparator/branches/DataComparator-metadata/DataComparator.scd.xml	(revision 4700)
@@ -14,7 +14,7 @@
         <supportsinterface supportsname="TestableObject" repid="IDL:CF/TestableObject:1.0"/>
         <ports>
-            <provides providesname="control_bits_in" repid="IDL:standardInterfaces/realChar:1.0">
+            <uses usesname="metadata_out" repid="IDL:standardInterfaces/RadioMetaData:1.0">
                 <porttype type="data"/>
-            </provides>
+            </uses>
             <provides providesname="data_bits_in" repid="IDL:standardInterfaces/realChar:1.0">
                 <porttype type="data"/>
@@ -34,4 +34,5 @@
         </interface>
         <interface name="realChar" repid="IDL:standardInterfaces/realChar:1.0"/>
+        <interface name="RadioMetaData" repid="IDL:standardInterfaces/RadioMetaData:1.0"/>
     </interfaces>
 </softwarecomponent>
