summaryrefslogtreecommitdiff
path: root/ACE/TAO/TAO_IDL/util/utl_tmpl/utl_strlist.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/TAO/TAO_IDL/util/utl_tmpl/utl_strlist.cpp')
-rw-r--r--ACE/TAO/TAO_IDL/util/utl_tmpl/utl_strlist.cpp152
1 files changed, 152 insertions, 0 deletions
diff --git a/ACE/TAO/TAO_IDL/util/utl_tmpl/utl_strlist.cpp b/ACE/TAO/TAO_IDL/util/utl_tmpl/utl_strlist.cpp
new file mode 100644
index 00000000000..76461aaaad2
--- /dev/null
+++ b/ACE/TAO/TAO_IDL/util/utl_tmpl/utl_strlist.cpp
@@ -0,0 +1,152 @@
+// $Id$
+
+/*
+ *======================================================================
+ *
+ *Copyright 1992 Sun Microsystems, Inc.
+ *
+ *The Interface Definition Language Compiler Front End (CFE) is made
+ *available for use provided that this legend is included on all media and
+ *documentation and as a part of the software program in whole or part.
+ *Users may copy and extend functionality (but may not remove
+ *functionality) of the Interface Definition Language CFE without charge,
+ *but are not authorized to license or distribute it to anyone else except
+ *as part of a product or program developed by the user or with the express
+ *written consent of Sun Microsystems, Inc.
+ *
+ *The names of Sun Microsystems, Inc. and any of its subsidiaries may not
+ *be used in advertising or publicity pertaining to distribution of
+ *Interface Definition Language CFE as permitted herein.
+ *
+ *The Interface Definition Language CFE may not be exported outside the
+ *United States without first obtaining the appropriate government
+ *approvals.
+ *
+ *INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES
+ *OF ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND
+ *FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A
+ *COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+ *
+ *Interface Definition Language CFE is provided with no support and
+ *without any obligation on the part of Sun Microsystems, Inc. or any of
+ *its subsidiaries or affiliates to assist in its use, correction,
+ *modification or enhancement.
+ *
+ *SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL
+ *HAVE NO LIABILITY WITH RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE
+ *SECRETS OR ANY PATENTS BY INTERFACE DEFINITION LANGUAGE CFE OR ANY PART
+ *THEREOF.
+ *
+ *IN NO EVENT WILL SUN MICROSYSTEMS, INC. OR ANY OF ITS SUBSIDIARIES OR
+ *AFFILIATES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL,
+ *INDIRECT AND CONSEQUENTIAL DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE
+ *POSSIBILITY OF SUCH DAMAGES.
+ *
+ *SunSoft, Inc.
+ *2550 Garcia Avenue
+ *Mountain View, California 94043
+ *
+ *
+ *
+ *
+ *======================================================================
+ */
+
+// utl_strlist.cc
+//
+// Implementation of a list of utl_string nodes
+
+#include <idl.hh>
+#include <idl_extern.hh>
+
+ACE_RCSID(utl_tmpl, utl_strlist, "$Id$")
+
+/*
+ * Constructor(s)
+ */
+
+UTL_StrList::UTL_StrList(String *s, UTL_StrList *cdr)
+ : UTL_List<UTL_StrList, String>(s, cdr)
+{
+}
+
+/*
+ * Private operations
+ */
+
+/*
+ * Public operations
+ */
+
+// Get last item of this list
+String *
+UTL_StrList::last_component()
+{
+ if (tail() == 0)
+ return head();
+ return tail()->last_component();
+}
+
+// AST Dumping
+void
+UTL_StrList::dump (ACE_OSTREAM_TYPE &o)
+{
+ char *s = 0;;
+ UTL_StrlistActiveIterator *i = new UTL_StrlistActiveIterator (this);
+ long first = true;
+ long second = false;
+
+ for (UTL_StrlistActiveIterator (this); !i.is_done(); i.next ())
+ {
+ if (!first)
+ {
+ o << "::";
+ }
+ else if (second)
+ {
+ first = second = false;
+ }
+
+ s = i.item ()->get_string ();
+ o << s;
+
+ if (first)
+ {
+ if (ACE_OS::strcmp (s, "::") != 0)
+ {
+ first = false;
+ }
+ else
+ {
+ second = true;
+ }
+ }
+ }
+}
+
+/*
+ * Redefinition of inherited virtual operations
+ */
+
+// UTL_StrList active iterator
+
+/*
+ * Constructor
+ */
+
+UTL_StrlistActiveIterator::UTL_StrlistActiveIterator(UTL_StrList *s)
+ : UTL_ListActiveIterator<UTL_StrList, String>(s)
+{
+}
+
+/*
+ * Private operations
+ */
+
+/*
+ * Public operations
+ */
+
+/*
+ * Redefinition of inherited virtual operations
+ */