Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

shortBuilder.cxx

Go to the documentation of this file.
00001 
00002 // $Id: shortBuilder.cxx,v 1.1 2007/02/09 04:44:14 fmwk Exp $
00003 //
00005 //
00006 // messier@indiana.edu
00008 #include "XMLInterface/shortBuilder.h"
00009 #include "XMLInterface/Stack.h"
00010 #include "XMLInterface/ChString.h"
00011 #include <cstdlib>
00012 #include <cstring>
00013 #include <vector>
00014 
00015 // Create and instance to be used by the XML parser
00016 static xmli::shortBuilder gsBuilder("short");
00017 
00018 //......................................................................
00019 
00020 xmli::shortBuilder::shortBuilder(const char* tag) : xmli::Builder(tag) { }
00021 
00022 //......................................................................
00023 
00024 void xmli::shortBuilder::Build(const xmli::AttributeList& /*attr*/, 
00025                                const std::string& buffer) 
00026 {
00027 //======================================================================
00028 // Build a vector<int> and place it on the xmli::Stack
00029 //   attr - list of attributes (none used...)
00030 //   buffer - space separated integers
00031 //======================================================================
00032   int                      i;
00033   int                      s;
00034   std::vector<std::string> vs;
00035   std::vector<short>       vsh;
00036 
00037   // Split the string in to sub fields and extra the values from each
00038   // sub-field
00039   xmli::ChString::Split(buffer.c_str()," ,\n\t\r",vs);
00040   std::vector<std::string>::iterator itr(vs.begin());  
00041   std::vector<std::string>::iterator itrEnd(vs.end());
00042   for (; itr!=itrEnd; ++itr) {
00043     const char* c1 = itr->c_str();
00044     char*       c2 = 0;
00045     i = strtol(c1,&c2,0);
00046     s = (short)i;
00047     vsh.push_back(s);
00048   }
00049   
00050   // Add this vector of short values into the "global" stack
00051   xmli::Stack<std::vector<short> >::Instance().push(vsh);
00052 }
00053 

Generated on Thu Sep 4 02:05:28 2008 for NOvA Offline by doxygen 1.3.5