commit ad459e485b6885ae2700d0e1be7c94d4715a1257
parent adc0fa753999bc7416d3fffb106d453f9e0eba30
Author: Mark McCurry <mark.d.mccurry@gmail.com>
Date: Sat, 6 Jun 2009 11:18:05 -0400
Began to change char*'s to strings in XMLwrapper
Diffstat:
2 files changed, 50 insertions(+), 53 deletions(-)
diff --git a/src/Misc/XMLwrapper.C b/src/Misc/XMLwrapper.C
@@ -28,6 +28,8 @@
#include "../globals.h"
#include "Util.h"
+using namespace std;
+
int xml_k=0;
char tabs[STACKSIZE+2];
@@ -162,19 +164,13 @@ bool XMLwrapper::checkfileinformation(const char *filename){
/* SAVE XML members */
-int XMLwrapper::saveXMLfile(const char *filename){
+int XMLwrapper::saveXMLfile(const string &filename){
char *xmldata=getXMLdata();
if (xmldata==NULL) return(-2);
int compression=config.cfg.GzipCompression;
+ int result=dosavefile(filename.c_str(),compression,xmldata);
- int fnsize=strlen(filename)+100;
- char *filenamenew=new char [fnsize];
- snprintf(filenamenew,fnsize,"%s",filename);
-
- int result=dosavefile(filenamenew,compression,xmldata);
-
- delete []filenamenew;
free(xmldata);
return(result);
};
@@ -221,34 +217,34 @@ int XMLwrapper::dosavefile(const char *filename,int compression,const char *xmld
-void XMLwrapper::addpar(const char *name,int val){
- addparams2("par","name",name,"value",int2str(val));
+void XMLwrapper::addpar(const string &name,int val){
+ addparams2("par","name",name.c_str(),"value",int2str(val));
};
-void XMLwrapper::addparreal(const char *name,REALTYPE val){
- addparams2("par_real","name",name,"value",real2str(val));
+void XMLwrapper::addparreal(const string &name,REALTYPE val){
+ addparams2("par_real","name",name.c_str(),"value",real2str(val));
};
-void XMLwrapper::addparbool(const char *name,int val){
- if (val!=0) addparams2("par_bool","name",name,"value","yes");
- else addparams2("par_bool","name",name,"value","no");
+void XMLwrapper::addparbool(const string &name,int val){
+ if (val!=0) addparams2("par_bool","name",name.c_str(),"value","yes");
+ else addparams2("par_bool","name",name.c_str(),"value","no");
};
-void XMLwrapper::addparstr(const char *name,const char *val){
+void XMLwrapper::addparstr(const string &name,const string &val){
mxml_node_t *element=mxmlNewElement(node,"string");
- mxmlElementSetAttr(element,"name",name);
- mxmlNewText(element,0,val);
+ mxmlElementSetAttr(element,"name",name.c_str());
+ mxmlNewText(element,0,val.c_str());
};
-void XMLwrapper::beginbranch(const char *name){
+void XMLwrapper::beginbranch(const string &name){
push(node);
- node=addparams0(name);
+ node=addparams0(name.c_str());
};
-void XMLwrapper::beginbranch(const char *name,int id){
+void XMLwrapper::beginbranch(const string &name,int id){
push(node);
- node=addparams1(name,"id",int2str(id));
+ node=addparams1(name.c_str(),"id",int2str(id));
};
void XMLwrapper::endbranch(){
@@ -259,7 +255,7 @@ void XMLwrapper::endbranch(){
/* LOAD XML members */
-int XMLwrapper::loadXMLfile(const char *filename){
+int XMLwrapper::loadXMLfile(const string &filename){
if (tree!=NULL) mxmlDelete(tree);
tree=NULL;
@@ -268,7 +264,7 @@ int XMLwrapper::loadXMLfile(const char *filename){
stackpos=0;
- const char *xmldata=doloadfile(filename);
+ const char *xmldata=doloadfile(filename.c_str());
if (xmldata==NULL) return(-1);//the file could not be loaded or uncompressed
root=tree=mxmlLoadString(NULL,xmldata,MXML_OPAQUE_CALLBACK);
@@ -289,12 +285,12 @@ int XMLwrapper::loadXMLfile(const char *filename){
};
-char *XMLwrapper::doloadfile(const char *filename){
+char *XMLwrapper::doloadfile(const string &filename){
char *xmldata=NULL;
int filesize=-1;
//try get filesize as gzip data (first)
- gzFile gzfile=gzopen(filename,"rb");
+ gzFile gzfile=gzopen(filename.c_str(),"rb");
if (gzfile!=NULL){//this is a gzip file
// first check it's size
while(!gzeof(gzfile)) {
@@ -317,7 +313,7 @@ char *XMLwrapper::doloadfile(const char *filename){
return (xmldata);
} else {//this is not a gzip file
notgzip:
- FILE *file=fopen(filename,"rb");
+ FILE *file=fopen(filename.c_str(),"rb");
if (file==NULL) return(NULL);
fseek(file,0,SEEK_END);
filesize=ftell(file);
@@ -357,17 +353,17 @@ bool XMLwrapper::putXMLdata(const char *xmldata){
-int XMLwrapper::enterbranch(const char *name){
- node=mxmlFindElement(peek(),peek(),name,NULL,NULL,MXML_DESCEND_FIRST);
+int XMLwrapper::enterbranch(const string &name){
+ node=mxmlFindElement(peek(),peek(),name.c_str(),NULL,NULL,MXML_DESCEND_FIRST);
if (node==NULL) return(0);
push(node);
return(1);
};
-int XMLwrapper::enterbranch(const char *name,int id){
+int XMLwrapper::enterbranch(const string &name,int id){
snprintf(tmpstr,TMPSTR_SIZE,"%d",id);
- node=mxmlFindElement(peek(),peek(),name,"id",tmpstr,MXML_DESCEND_FIRST);
+ node=mxmlFindElement(peek(),peek(),name.c_str(),"id",tmpstr,MXML_DESCEND_FIRST);
if (node==NULL) return(0);
push(node);
@@ -390,8 +386,8 @@ int XMLwrapper::getbranchid(int min, int max){
return(id);
};
-int XMLwrapper::getpar(const char *name,int defaultpar,int min,int max){
- node=mxmlFindElement(peek(),peek(),"par","name",name,MXML_DESCEND_FIRST);
+int XMLwrapper::getpar(const string &name,int defaultpar,int min,int max){
+ node=mxmlFindElement(peek(),peek(),"par","name",name.c_str(),MXML_DESCEND_FIRST);
if (node==NULL) return(defaultpar);
const char *strval=mxmlElementGetAttr(node,"value");
@@ -404,12 +400,12 @@ int XMLwrapper::getpar(const char *name,int defaultpar,int min,int max){
return(val);
};
-int XMLwrapper::getpar127(const char *name,int defaultpar){
+int XMLwrapper::getpar127(const string &name,int defaultpar){
return(getpar(name,defaultpar,0,127));
};
-int XMLwrapper::getparbool(const char *name,int defaultpar){
- node=mxmlFindElement(peek(),peek(),"par_bool","name",name,MXML_DESCEND_FIRST);
+int XMLwrapper::getparbool(const string &name,int defaultpar){
+ node=mxmlFindElement(peek(),peek(),"par_bool","name",name.c_str(),MXML_DESCEND_FIRST);
if (node==NULL) return(defaultpar);
const char *strval=mxmlElementGetAttr(node,"value");
@@ -419,9 +415,9 @@ int XMLwrapper::getparbool(const char *name,int defaultpar){
else return(0);
};
-void XMLwrapper::getparstr(const char *name,char *par,int maxstrlen){
+void XMLwrapper::getparstr(const string &name,char *par,int maxstrlen){
ZERO(par,maxstrlen);
- node=mxmlFindElement(peek(),peek(),"string","name",name,MXML_DESCEND_FIRST);
+ node=mxmlFindElement(peek(),peek(),"string","name",name.c_str(),MXML_DESCEND_FIRST);
if (node==NULL) return;
if (node->child==NULL) return;
diff --git a/src/Misc/XMLwrapper.h b/src/Misc/XMLwrapper.h
@@ -21,6 +21,7 @@
*/
#include <mxml.h>
+#include <string>
#ifndef REALTYPE
#define REALTYPE float
#endif
@@ -43,26 +44,26 @@ class XMLwrapper{
/********************************/
//returns 0 if ok or -1 if the file cannot be saved
- int saveXMLfile(const char *filename);
+ int saveXMLfile(const std::string &filename);
//returns the new allocated string that contains the XML data (used for clipboard)
//the string is NULL terminated
char *getXMLdata();
//add simple parameter (name and value)
- void addpar(const char *name,int val);
- void addparreal(const char *name,REALTYPE val);
+ void addpar(const std::string &name,int val);
+ void addparreal(const std::string &name,REALTYPE val);
//add boolean parameter (name and boolean value)
//if the value is 0 => "yes", else "no"
- void addparbool(const char *name,int val);
+ void addparbool(const std::string &name,int val);
//add string parameter (name and string)
- void addparstr(const char *name,const char *val);
+ void addparstr(const std::string &name,const std::string &val);
//add a branch
- void beginbranch(const char *name);
- void beginbranch(const char *name, int id);
+ void beginbranch(const std::string &name);
+ void beginbranch(const std::string &name, int id);
//this must be called after each branch (nodes that contains child nodes)
void endbranch();
@@ -72,19 +73,19 @@ class XMLwrapper{
/********************************/
//returns 0 if ok or -1 if the file cannot be loaded
- int loadXMLfile(const char *filename);
+ int loadXMLfile(const std::string &filename);
//used by the clipboard
bool putXMLdata(const char *xmldata);
//enter into the branch
//returns 1 if is ok, or 0 otherwise
- int enterbranch(const char *name);
+ int enterbranch(const std::string &name);
//enter into the branch with id
//returns 1 if is ok, or 0 otherwise
- int enterbranch(const char *name, int id);
+ int enterbranch(const std::string &name, int id);
//exits from a branch
void exitbranch();
@@ -98,14 +99,14 @@ class XMLwrapper{
//it returns the parameter and limits it between min and max
//if min==max==0, it will not limit it
//if no parameter will be here, the defaultpar will be returned
- int getpar(const char *name,int defaultpar,int min,int max);
+ int getpar(const std::string &name,int defaultpar,int min,int max);
//the same as getpar, but the limits are 0 and 127
- int getpar127(const char *name,int defaultpar);
+ int getpar127(const std::string &name,int defaultpar);
- int getparbool(const char *name,int defaultpar);
+ int getparbool(const std::string &name,int defaultpar);
- void getparstr(const char *name,char *par,int maxstrlen);
+ void getparstr(const std::string &name,char *par,int maxstrlen);
REALTYPE getparreal(const char *name,REALTYPE defaultpar);
REALTYPE getparreal(const char *name,REALTYPE defaultpar,REALTYPE min,REALTYPE max);
@@ -122,7 +123,7 @@ class XMLwrapper{
private:
int dosavefile(const char *filename,int compression,const char *xmldata);
- char *doloadfile(const char *filename);
+ char *doloadfile(const std::string &filename);
mxml_node_t *tree;//all xml data