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

ushortBuilder.cxx

Go to the documentation of this file.
00001 
00002 // $Id: ushortBuilder.cxx,v 1.1 2007/02/09 04:44:14 fmwk Exp $
00003 //
00005 //
00006 // messier@indiana.edu
00008 #include "XMLInterface/ushortBuilder.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::ushortBuilder gsBuilder("ushort");
00017 
00018 //......................................................................
00019 
00020 xmli::ushortBuilder::ushortBuilder(const char* tag) : xmli::Builder(tag) { }
00021 
00022 //......................................................................
00023 
00024 void xmli::ushortBuilder::Build(const xmli::AttributeList& /*attr*/, 
00025                                 const std::string& buffer) 
00026 {
00027 //======================================================================
00028 // Build a vector<int> and place it on the XMLIStack
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<unsigned 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 = (unsigned short)i;
00047     vsh.push_back(s);
00048   }
00049   
00050   // Add this vector of unsigned short values into the "global" stack
00051   xmli::Stack<std::vector<unsigned short> >::Instance().push(vsh);
00052 }
00053 

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