All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Analyzer.cpp File Reference
#include <iostream>
#include <boost/foreach.hpp>
#include <boost/lexical_cast.hpp>
#include <boost/format.hpp>
#include "Analyzer.h"
#include "Parser.h"
#include "Messages.h"
#include "Catalog.h"
#include "Units.h"
#include "PragmaOptions.h"
#include "Node.h"
#include "IncludedFiles.h"
#include "PropertyName.h"
#include "PropertyValue.h"
#include "GaudiKernel/Environment.h"
Include dependency graph for Analyzer.cpp:

Go to the source code of this file.

Functions

bool Unreference (gp::Catalog &catalog, gp::Messages *messages)
 

Function Documentation

bool Unreference ( gp::Catalog &  catalog,
gp::Messages *  messages 
)

Definition at line 413 of file Analyzer.cpp.

413  {
414  bool unreference_result = true;
415  BOOST_FOREACH(gp::Catalog::value_type& client, catalog) {
416  for (gp::Catalog::CatalogSet::mapped_type::iterator current
417  = client.second.begin(); current != client.second.end();
418  ++current) {
419  if (current->IsReference()) {
420  gp::PropertyValue& value = current->property_value();
421  std::vector<std::string> names = value.Vector();
422 
423  gp::Property* property = catalog.Find(names[0], names[1]);
424  if (NULL == property) {
425  messages->AddError(value.position(),
426  "Could not unreference " + current->ValueAsString());
427  unreference_result = false;
428  }else{
429  value = property->property_value();
430  }
431  }
432  }
433  }
434  return unreference_result;
435 }
std::string names[100]
Definition: Node.cpp:19