summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-07-03 07:04:21 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-07-03 07:04:21 +0000
commitc17ea509fabd2e85259c7b407e8bbb73c2c37dcd (patch)
treebe9a4848be1d10fbe46a685f35b566349a5a050b
parent4382fb71fc0e02a3d7782efe5a1a8d6134702b0b (diff)
downloadATCD-c17ea509fabd2e85259c7b407e8bbb73c2c37dcd.tar.gz
ChangeLogTag:Fri Jul 03 02:03:23 1998 Carlos O'Ryan <coryan@JIG>
-rw-r--r--TAO/ChangeLog-98c19
-rw-r--r--TAO/orbsvcs/orbsvcs.dsw24
-rw-r--r--TAO/orbsvcs/tests/EC_Throughput/ECT_Consumer.cpp14
-rw-r--r--TAO/orbsvcs/tests/EC_Throughput/ECT_Consumer.dsp163
-rw-r--r--TAO/orbsvcs/tests/EC_Throughput/ECT_Data.cpp54
-rw-r--r--TAO/orbsvcs/tests/EC_Throughput/ECT_Data.h37
-rw-r--r--TAO/orbsvcs/tests/EC_Throughput/ECT_Supplier.cpp13
-rw-r--r--TAO/orbsvcs/tests/EC_Throughput/ECT_Supplier.dsp167
-rw-r--r--TAO/orbsvcs/tests/EC_Throughput/EC_Throughput.dsw41
-rw-r--r--TAO/orbsvcs/tests/EC_Throughput/data.idl2
-rw-r--r--TAO/tao/CDR.h2
11 files changed, 527 insertions, 9 deletions
diff --git a/TAO/ChangeLog-98c b/TAO/ChangeLog-98c
index b89583f46da..8d54d7f891a 100644
--- a/TAO/ChangeLog-98c
+++ b/TAO/ChangeLog-98c
@@ -1,3 +1,22 @@
+Fri Jul 03 02:03:23 1998 Carlos O'Ryan <coryan@JIG>
+
+ * orbsvcs/tests/EC_Throughput/ECT_Data.h:
+ * orbsvcs/tests/EC_Throughput/ECT_Data.cpp:
+ * orbsvcs/tests/EC_Throughput/data.idl:
+ * orbsvcs/tests/EC_Throughput/ECT_Consumer.cpp:
+ * orbsvcs/tests/EC_Throughput/ECT_Supplier.cpp:
+ Added an example on how to send C++ data across the wire.
+
+ * orbsvcs/orbsvcs.dsw:
+ * orbsvcs/tests/EC_Throughput/EC_Throughput.dsw:
+ * orbsvcs/tests/EC_Throughput/ECT_Supplier.dsp:
+ * orbsvcs/tests/EC_Throughput/ECT_Consumer.dsp:
+ Added MSVC++ project files for the new test.
+
+ * tao/CDR.h:
+ Fixed typo in a extraction operator for InputCDR and strings, it
+ was declared as operator>>.
+
Fri Jul 3 00:39:03 1998 Seth Benjamin Widoff <sbw1@waltz.cs.wustl.edu>
* orbsvcs/orbsvcs/Trader/Constraint_Interpreter.{h,cpp}:
diff --git a/TAO/orbsvcs/orbsvcs.dsw b/TAO/orbsvcs/orbsvcs.dsw
index 4d27565602a..b15cc86ea05 100644
--- a/TAO/orbsvcs/orbsvcs.dsw
+++ b/TAO/orbsvcs/orbsvcs.dsw
@@ -18,6 +18,30 @@ Package=<4>
###############################################################################
+Project: "ECT_Consumer"=.\tests\EC_Throughput\ECT_Consumer.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "ECT_Supplier"=.\tests\EC_Throughput\ECT_Supplier.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
Project: "EC_Multiple"=.\tests\EC_Multiple\EC_Multiple.dsp - Package Owner=<4>
Package=<5>
diff --git a/TAO/orbsvcs/tests/EC_Throughput/ECT_Consumer.cpp b/TAO/orbsvcs/tests/EC_Throughput/ECT_Consumer.cpp
index 923784a647b..ad163acebf6 100644
--- a/TAO/orbsvcs/tests/EC_Throughput/ECT_Consumer.cpp
+++ b/TAO/orbsvcs/tests/EC_Throughput/ECT_Consumer.cpp
@@ -12,7 +12,7 @@
#include "orbsvcs/Sched/Config_Scheduler.h"
#include "orbsvcs/Event/Event_Channel.h"
#include "ECT_Consumer.h"
-#include "dataC.h"
+#include "ECT_Data.h"
int
main (int argc, char *argv [])
@@ -225,15 +225,21 @@ Driver::push_consumer (void* consumer_cookie,
TAO_InputCDR cdr (mb, byte_order);
- ECT_Data::Info info;
- cdr.decode (ECT_Data::_tc_Info, &info, 0, _env);
+ ECT_IDLData::Info info;
+ cdr.decode (ECT_IDLData::_tc_Info, &info, 0, _env);
if (_env.exception () != 0) return;
+ ECT_Data other;
+ cdr >> other;
+
CORBA::ULong n = info.trajectory.length ();
ACE_DEBUG ((LM_DEBUG, "Payload contains <%d> elements\n", n));
+ ACE_DEBUG ((LM_DEBUG, "Inventory contains <%d> elements\n",
+ other.inventory.current_size ()));
+
for (CORBA::ULong i = 0; i < n; ++i)
{
- ECT_Data::Point& p = info.trajectory[i];
+ ECT_IDLData::Point& p = info.trajectory[i];
if (p.x != i || p.y != i*i)
{
ACE_DEBUG ((LM_DEBUG,
diff --git a/TAO/orbsvcs/tests/EC_Throughput/ECT_Consumer.dsp b/TAO/orbsvcs/tests/EC_Throughput/ECT_Consumer.dsp
new file mode 100644
index 00000000000..7c4ef27c62e
--- /dev/null
+++ b/TAO/orbsvcs/tests/EC_Throughput/ECT_Consumer.dsp
@@ -0,0 +1,163 @@
+# Microsoft Developer Studio Project File - Name="ECT_Consumer" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 5.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=ECT_Consumer - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "ECT_Consumer.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "ECT_Consumer.mak" CFG="ECT_Consumer - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "ECT_Consumer - Win32 Release" (based on\
+ "Win32 (x86) Console Application")
+!MESSAGE "ECT_Consumer - Win32 Debug" (based on\
+ "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "ECT_Consumer - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+
+!ELSEIF "$(CFG)" == "ECT_Consumer - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir ""
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../.." /I "../../.." /I "../../../.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 orbsvcs.lib tao.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\orbsvcs" /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace"
+
+!ENDIF
+
+# Begin Target
+
+# Name "ECT_Consumer - Win32 Release"
+# Name "ECT_Consumer - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\dataC.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\dataS.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\ECT_Consumer.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\ECT_Data.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\dataS.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ECT_Consumer.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ECT_Data.h
+# End Source File
+# End Group
+# Begin Group "IDL Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\data.idl
+
+!IF "$(CFG)" == "ECT_Consumer - Win32 Release"
+
+!ELSEIF "$(CFG)" == "ECT_Consumer - Win32 Debug"
+
+# Begin Custom Build - Invoking TAO_IDL compiler
+InputPath=.\data.idl
+InputName=data
+
+BuildCmds= \
+ ..\..\..\TAO_IDL\tao_idl $(InputName).idl
+
+"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/TAO/orbsvcs/tests/EC_Throughput/ECT_Data.cpp b/TAO/orbsvcs/tests/EC_Throughput/ECT_Data.cpp
new file mode 100644
index 00000000000..2c41da67022
--- /dev/null
+++ b/TAO/orbsvcs/tests/EC_Throughput/ECT_Data.cpp
@@ -0,0 +1,54 @@
+// $Id$
+
+#include "ECT_Data.h"
+
+TAO_OutputCDR&
+operator<< (TAO_OutputCDR& cdr, ECT_Data& x)
+{
+ // We are a little careless about error checking in this routine,
+ // because one the CDR gets the error bit on it is never disabled.
+ CORBA::ULong count = x.inventory.current_size ();
+ cdr << x.description.in ()
+ << count;
+ for (ECT_Data::Inventory::ITERATOR i = x.inventory.begin ();
+ i != x.inventory.end ();
+ ++i)
+ {
+ const ECT_Data::Inventory::ENTRY& v = *i;
+ cdr << v.ext_id_
+ << v.int_id_;
+ }
+ return cdr;
+}
+
+TAO_InputCDR&
+operator>> (TAO_InputCDR& cdr, ECT_Data& x)
+{
+ // We are a little careless about error checking in this routine,
+ // because one the CDR gets the error bit on it is never disabled.
+ CORBA::ULong count;
+ cdr >> x.description.out ()
+ >> count;
+ for (CORBA::ULong i = 0; i < count && cdr.good_bit (); ++i)
+ {
+ CORBA::ULong ext_id;
+ CORBA::Double int_id;
+ cdr >> ext_id
+ >> int_id;
+ if (cdr.good_bit ())
+ x.inventory.bind (ext_id, int_id);
+ }
+ return cdr;
+}
+
+#if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
+template class ACE_Hash_Map_Manager<CORBA::ULong,CORBA::Double,ACE_NULL_MUTEX>;
+template class ACE_Hash_Map_Entry<CORBA::ULong,CORBA::Double,ACE_NULL_MUTEX>;
+template class ACE_Hash_Map_Iterator_Base<CORBA::ULong,CORBA::Double,ACE_NULL_MUTEX>;
+template class ACE_Hash_Map_Reverse_Iterator<CORBA::ULong,CORBA::Double,ACE_NULL_MUTEX>;
+#elif defined(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
+#pragma instantiate ACE_Hash_Map_Manager<CORBA::ULong,CORBA::Double,ACE_NULL_MUTEX>
+#pragma instantiate ACE_Hash_Map_Entry<CORBA::ULong,CORBA::Double,ACE_NULL_MUTEX>
+#pragma instantiate ACE_Hash_Map_Iterator_Base<CORBA::ULong,CORBA::Double,ACE_NULL_MUTEX>
+#pragma instantiate ACE_Hash_Map_Reverse_Iterator<CORBA::ULong,CORBA::Double,ACE_NULL_MUTEX>
+#endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */
diff --git a/TAO/orbsvcs/tests/EC_Throughput/ECT_Data.h b/TAO/orbsvcs/tests/EC_Throughput/ECT_Data.h
new file mode 100644
index 00000000000..2817d2bb32a
--- /dev/null
+++ b/TAO/orbsvcs/tests/EC_Throughput/ECT_Data.h
@@ -0,0 +1,37 @@
+/* -*- C++ -*- */
+// $Id$
+//
+// ============================================================================
+//
+// = DESCRIPTION
+// Simple C++ data to show how custom marshalling can be used for
+// non-IDL types.
+//
+// ============================================================================
+
+#if !defined (ECT_DATA_H)
+#define ECT_DATA_H
+
+#include "ace/Map_Manager.h"
+#include "dataC.h"
+
+struct ECT_Data
+{
+ typedef ACE_Map_Manager<CORBA::ULong,CORBA::Double,ACE_Null_Mutex> Inventory;
+ // Yes, an STL type could be used here and yes, we could write
+ // generic algorithms for marshalling and demarshalling using
+ // iterators.
+ // But ACE (and TAO) must be ported to platforms whose C++ compilers
+ // will crash and burn when faced with an STL construct.
+
+ CORBA::String_var description;
+ Inventory inventory;
+};
+
+extern TAO_OutputCDR&
+operator<< (TAO_OutputCDR& cdr, ECT_Data& x);
+
+extern TAO_InputCDR&
+operator>> (TAO_InputCDR& cdr, ECT_Data& x);
+
+#endif /* ECT_SUPPLIER_H */
diff --git a/TAO/orbsvcs/tests/EC_Throughput/ECT_Supplier.cpp b/TAO/orbsvcs/tests/EC_Throughput/ECT_Supplier.cpp
index 19b50e8f67c..87dfe3c5935 100644
--- a/TAO/orbsvcs/tests/EC_Throughput/ECT_Supplier.cpp
+++ b/TAO/orbsvcs/tests/EC_Throughput/ECT_Supplier.cpp
@@ -12,7 +12,7 @@
#include "orbsvcs/Sched/Config_Scheduler.h"
#include "orbsvcs/Event/Event_Channel.h"
#include "ECT_Supplier.h"
-#include "dataC.h"
+#include "ECT_Data.h"
int
main (int argc, char *argv [])
@@ -191,15 +191,19 @@ ECTS_Driver::supplier_task (Test_Supplier *supplier,
CORBA::ULong n = this->event_count_;
- ECT_Data::Info info;
+ ECT_IDLData::Info info;
info.mobile_name = CORBA::string_copy ("test");
info.mobile_speed = 1;
info.trajectory.length (n);
+ ECT_Data other;
+ other.description = CORBA::string_copy ("some data");
+
for (int j = 0; j < n; ++j)
{
info.trajectory[j].x = j;
info.trajectory[j].y = j*j;
+ other.inventory.bind (j, j + 1);
}
// We have to make it big enough so we get a contiguous block,
@@ -213,9 +217,12 @@ ECTS_Driver::supplier_task (Test_Supplier *supplier,
// general the CDR interface is not specified).
// @@ TODO once the compiled marshalling approach is in place
// this will read: cdr << info;
- cdr.encode (ECT_Data::_tc_Info, &info, 0, TAO_TRY_ENV);
+ cdr.encode (ECT_IDLData::_tc_Info, &info, 0, TAO_TRY_ENV);
TAO_CHECK_ENV;
+ // Here we marshall a non-IDL type.
+ cdr << other;
+
const ACE_Message_Block* mb = cdr.begin ();
CORBA::ULong mblen = cdr.length ();
diff --git a/TAO/orbsvcs/tests/EC_Throughput/ECT_Supplier.dsp b/TAO/orbsvcs/tests/EC_Throughput/ECT_Supplier.dsp
new file mode 100644
index 00000000000..9032685a989
--- /dev/null
+++ b/TAO/orbsvcs/tests/EC_Throughput/ECT_Supplier.dsp
@@ -0,0 +1,167 @@
+# Microsoft Developer Studio Project File - Name="ECT_Supplier" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 5.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=ECT_Supplier - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "ECT_Supplier.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "ECT_Supplier.mak" CFG="ECT_Supplier - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "ECT_Supplier - Win32 Release" (based on\
+ "Win32 (x86) Console Application")
+!MESSAGE "ECT_Supplier - Win32 Debug" (based on\
+ "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "ECT_Supplier - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+
+!ELSEIF "$(CFG)" == "ECT_Supplier - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir ""
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "../.." /I "../../.." /I "../../../.." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 orbsvcs.lib tao.lib aced.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\orbsvcs" /libpath:"..\..\..\tao" /libpath:"..\..\..\..\ace"
+
+!ENDIF
+
+# Begin Target
+
+# Name "ECT_Supplier - Win32 Release"
+# Name "ECT_Supplier - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\dataC.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\dataS.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\ECT_Data.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\ECT_Supplier.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\dataC.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\dataS.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ECT_Data.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\ECT_Supplier.h
+# End Source File
+# End Group
+# Begin Group "IDL Files"
+
+# PROP Default_Filter ".idl"
+# Begin Source File
+
+SOURCE=.\data.idl
+
+!IF "$(CFG)" == "ECT_Supplier - Win32 Release"
+
+!ELSEIF "$(CFG)" == "ECT_Supplier - Win32 Debug"
+
+# Begin Custom Build - Invoking TAO_IDL compiler
+InputPath=.\data.idl
+InputName=data
+
+BuildCmds= \
+ ..\..\..\TAO_IDL\tao_idl $(InputName).idl
+
+"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/TAO/orbsvcs/tests/EC_Throughput/EC_Throughput.dsw b/TAO/orbsvcs/tests/EC_Throughput/EC_Throughput.dsw
new file mode 100644
index 00000000000..61eaca0a35d
--- /dev/null
+++ b/TAO/orbsvcs/tests/EC_Throughput/EC_Throughput.dsw
@@ -0,0 +1,41 @@
+Microsoft Developer Studio Workspace File, Format Version 5.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "ECT_Consumer"=.\ECT_Consumer.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "ECT_Supplier"=.\ECT_Supplier.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/TAO/orbsvcs/tests/EC_Throughput/data.idl b/TAO/orbsvcs/tests/EC_Throughput/data.idl
index 87c70dfa13d..97ac1f7881b 100644
--- a/TAO/orbsvcs/tests/EC_Throughput/data.idl
+++ b/TAO/orbsvcs/tests/EC_Throughput/data.idl
@@ -2,7 +2,7 @@
// $Id$
//
-module ECT_Data
+module ECT_IDLData
{
// Some simple data types to show how the Events can carry its
// payload in the octet sequence.
diff --git a/TAO/tao/CDR.h b/TAO/tao/CDR.h
index aeacf71dee7..66b26684126 100644
--- a/TAO/tao/CDR.h
+++ b/TAO/tao/CDR.h
@@ -624,7 +624,7 @@ extern TAO_Export TAO_InputCDR& operator>> (TAO_InputCDR& cdr,
CORBA::Char &x);
extern TAO_Export TAO_InputCDR& operator>> (TAO_InputCDR& cdr,
CORBA::WChar &x);
-extern TAO_Export TAO_InputCDR& operator<< (TAO_InputCDR& cdr,
+extern TAO_Export TAO_InputCDR& operator>> (TAO_InputCDR& cdr,
CORBA::Char*& x);
#endif /* __ACE_INLINE */