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

xmlBase::EResolver Class Reference

#include <EResolver.h>

List of all members.

Public Member Functions

void clean ()
void clean ()
 EResolver ()
 EResolver ()
virtual XERCES_CPP_NAMESPACE_QUALIFIER
InputSource * 
resolveEntity (XERCES_CPP_NAMESPACE_QUALIFIER XMLResourceIdentifier *xmlRI)
virtual XERCES_CPP_NAMESPACE_QUALIFIER
InputSource * 
resolveEntity (XERCES_CPP_NAMESPACE_QUALIFIER XMLResourceIdentifier *xmlRI)
virtual ~EResolver ()
virtual ~EResolver ()

Private Member Functions

XERCES_CPP_NAMESPACE_QUALIFIER
InputSource * 
translateEnv (const XMLCh *id, const XMLCh *baseURI)
XERCES_CPP_NAMESPACE_QUALIFIER
InputSource * 
translateEnv (const XMLCh *id, const XMLCh *baseURI)

Private Attributes

std::vector< std::string * > m_entities
std::vector< std::string * > m_entities
unsigned m_nEntity


Constructor & Destructor Documentation

XERCES_CPP_NAMESPACE_USE xmlBase::EResolver::EResolver  ) 
 

00021                        : m_nEntity(0) {
00022     m_entities.clear();
00023   }

xmlBase::EResolver::~EResolver  )  [virtual]
 

00086                         {
00087     clean();
00088   }

xmlBase::EResolver::EResolver  ) 
 

virtual xmlBase::EResolver::~EResolver  )  [virtual]
 


Member Function Documentation

void xmlBase::EResolver::clean  ) 
 

void xmlBase::EResolver::clean  ) 
 

00078                         {
00079     for (unsigned i = 0; i < m_entities.size(); i++) {
00080       delete m_entities[i];
00081     }
00082     m_entities.clear();
00083     m_nEntity = 0;
00084   }

virtual XERCES_CPP_NAMESPACE_QUALIFIER InputSource* xmlBase::EResolver::resolveEntity XERCES_CPP_NAMESPACE_QUALIFIER XMLResourceIdentifier *  xmlRI  )  [virtual]
 

InputSource * xmlBase::EResolver::resolveEntity XERCES_CPP_NAMESPACE_QUALIFIER XMLResourceIdentifier *  xmlRI  )  [virtual]
 

00038                                                                                       {
00039     const XMLCh* publicId = xmlRI->getPublicId();
00040     const XMLCh* systemId = xmlRI->getSystemId();
00041     const XMLCh* baseURI = xmlRI->getBaseURI();
00042     if (publicId != 0) {
00043       if (XMLString::stringLen(publicId) > 0) {
00044         return translateEnv(publicId, baseURI); 
00045       }    
00046     }
00047     return translateEnv(systemId, baseURI);
00048   }

XERCES_CPP_NAMESPACE_QUALIFIER InputSource* xmlBase::EResolver::translateEnv const XMLCh *  id,
const XMLCh *  baseURI
[private]
 

InputSource * xmlBase::EResolver::translateEnv const XMLCh *  id,
const XMLCh *  baseURI
[private]
 

00051   {
00052     // Make a std::string out of the spec we're passed
00053     char* chId = XMLString::transcode(id);  
00054     std::string *idStr = new std::string(chId);
00055     XMLString::release(&chId);
00056     int nSub = facilities::Util::expandEnvVar(idStr);
00057 
00058     m_entities.push_back(idStr);
00059     
00060     if (!nSub) return 0;     
00061     else if (nSub < 0) {
00062       std::cout << "Bad entity name " << idStr << std::endl;
00063       return 0;
00064     }
00065 
00066     // Otherwise something really did get translated, so make
00067     // a new InputSource
00068     XMLCh* realName = XMLString::transcode(idStr->c_str());
00069 
00070     // Apparently the InputSource already gets deleted by somebody else,
00071     // so we don't have to keep track of it
00072     LocalFileInputSource*  src = new LocalFileInputSource(baseURI, realName);
00073     XMLString::release(&realName);
00074     return src;
00075 
00076   }


Member Data Documentation

std::vector<std::string*> xmlBase::EResolver::m_entities [private]
 

std::vector<std::string*> xmlBase::EResolver::m_entities [private]
 

unsigned xmlBase::EResolver::m_nEntity [private]
 


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 19:24:50 2011 for BOSS6.5.5 by  doxygen 1.3.9.1