summaryrefslogtreecommitdiff
path: root/CIAO/connectors/dds4ccm/impl/ndds/StringSeq.h
diff options
context:
space:
mode:
Diffstat (limited to 'CIAO/connectors/dds4ccm/impl/ndds/StringSeq.h')
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/StringSeq.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/StringSeq.h b/CIAO/connectors/dds4ccm/impl/ndds/StringSeq.h
new file mode 100644
index 00000000000..6f75683fd3f
--- /dev/null
+++ b/CIAO/connectors/dds4ccm/impl/ndds/StringSeq.h
@@ -0,0 +1,43 @@
+/**
+ * @author Marcel Smit <msmit@remedy.nl>
+ * @author Johnny Willemsen <jwillemsen@remedy.nl>
+ *
+ * $Id$
+ *
+ */
+
+#ifndef DDS4CCM_STRINGSEQ_T_H
+#define DDS4CCM_STRINGSEQ_T_H
+
+#if defined (CIAO_DDS4CCM_OPENDDS) && (CIAO_DDS4CCM_OPENDDS==1)
+typedef ::DDS::StringSeq DDS_StringSeq;
+typedef long DDS_Long;
+#endif
+
+#if defined (CIAO_DDS4CCM_NDDS) && (CIAO_DDS4CCM_NDDS==1)
+inline void
+operator<<= (::DDS::StringSeq & string_seq, const ::DDS_StringSeq & dds_string_seq)
+{
+ string_seq.length (dds_string_seq.length ());
+ for (::DDS_Long i = 0 ; i < dds_string_seq.length(); ++i)
+ {
+ string_seq[i] = CORBA::string_dup (dds_string_seq[i]);
+ }
+}
+
+inline void
+operator<<= (::DDS_StringSeq & dds_string_seq, const ::DDS::StringSeq & string_seq)
+{
+ const char** parameterlist = new const char*[string_seq.length ()];
+
+ for (CORBA::ULong i = 0; i < string_seq.length (); ++i)
+ {
+ parameterlist[i] = string_seq[i].in ();
+ }
+ dds_string_seq.length (string_seq.length ());
+ dds_string_seq.from_array (parameterlist, string_seq.length ());
+ delete [] parameterlist;
+}
+#endif
+
+#endif /* DDS4CCM_STRINGSEQ_T_H */