mirror of https://github.com/QMCPACK/qmcpack.git
Add OhmmsXPathObject constructor that can be used with the current xml node.
It is expensive and don't abuse it. OhmmsXPathObject det("//determinant",cur); git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@6054 e5b18d87-469d-4833-9cc0-8cdfa06e9491
This commit is contained in:
parent
709fe7329a
commit
c5a6c2f4d2
|
@ -20,7 +20,7 @@
|
|||
#include "Utilities/Timer.h"
|
||||
#include <fstream>
|
||||
|
||||
OhmmsXPathObject::OhmmsXPathObject(): NumObjects(0), result(NULL)
|
||||
OhmmsXPathObject::OhmmsXPathObject(): NumObjects(0), result(NULL),m_context(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -30,12 +30,23 @@ OhmmsXPathObject::OhmmsXPathObject(const char* expression,
|
|||
put(expression, context);
|
||||
}
|
||||
|
||||
OhmmsXPathObject::OhmmsXPathObject(const char* expression, xmlNodePtr cur) :NumObjects(0), result(NULL)
|
||||
{
|
||||
m_context= xmlXPathNewContext(cur->doc);
|
||||
put(expression, m_context);
|
||||
}
|
||||
|
||||
OhmmsXPathObject::~OhmmsXPathObject()
|
||||
{
|
||||
if(result != NULL)
|
||||
{
|
||||
xmlXPathFreeObject(result);
|
||||
}
|
||||
|
||||
if(m_context != NULL)
|
||||
{
|
||||
xmlXPathFreeContext(m_context);
|
||||
}
|
||||
}
|
||||
|
||||
void OhmmsXPathObject::put(const char* expression, xmlXPathContextPtr context)
|
||||
|
@ -54,6 +65,7 @@ void OhmmsXPathObject::put(const char* expression, xmlXPathContextPtr context)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
Libxml2Document::Libxml2Document(): m_doc(NULL), m_root(NULL),
|
||||
m_context(NULL) { }
|
||||
|
||||
|
|
|
@ -32,6 +32,14 @@ struct OhmmsXPathObject
|
|||
*/
|
||||
OhmmsXPathObject(const char* expression, xmlXPathContextPtr context);
|
||||
|
||||
/** constructor
|
||||
* @param expression xpath expression
|
||||
* @param cur xmlNodePtr
|
||||
*
|
||||
* Create m_context
|
||||
*/
|
||||
OhmmsXPathObject(const char* expression, xmlNodePtr cur);
|
||||
|
||||
~OhmmsXPathObject();
|
||||
|
||||
/** evaluate the expression and create the object
|
||||
|
@ -64,6 +72,7 @@ struct OhmmsXPathObject
|
|||
|
||||
int NumObjects;
|
||||
xmlXPathObjectPtr result;
|
||||
xmlXPathContextPtr m_context;
|
||||
};
|
||||
|
||||
/** class that handles xmlDoc
|
||||
|
|
Loading…
Reference in New Issue