text: /**
  	* \file WdbePlhfpga_blks.cpp
  	* invocation / return data blocks for operation pack WdbePlhfpga (implementation)
  	* \copyright (C) 2016-2020 MPSI Technologies GmbH
  	* \author Alexander Wirthmueller (auto-generation)
  	* \date created: 28 Nov 2020
    */
  // IP header --- ABOVE
  
  #include "WdbePlhfpga_blks.h"
  
  using namespace std;
  using namespace Sbecore;
  using namespace Xmlio;
  
  /******************************************************************************
   class DpchInvWdbePlhfpgaCmdinv
   ******************************************************************************/
  
  DpchInvWdbePlhfpgaCmdinv::DpchInvWdbePlhfpgaCmdinv(
  			const ubigint oref
  			, const ubigint jref
  			, const ubigint refWdbeMModule
  		) :
  			DpchInvWdbe(VecWdbeVDpch::DPCHINVWDBEPLHFPGACMDINV, oref, jref)
  		{
  	this->refWdbeMModule = refWdbeMModule;
  };
  
  void DpchInvWdbePlhfpgaCmdinv::readXML(
  			xmlXPathContext* docctx
  			, string basexpath
  			, bool addbasetag
  		) {
  	clear();
  
  	bool basefound;
  
  	if (addbasetag)
  		basefound = checkUclcXPaths(docctx, basexpath, basexpath, "DpchInvWdbePlhfpgaCmdinv");
  	else
  		basefound = checkXPath(docctx, basexpath);
  
  	if (basefound) {
  		if (extractStringUclc(docctx, basexpath, "scrOref", "", scrOref)) add(SCROREF);
  		if (extractStringUclc(docctx, basexpath, "scrJref", "", scrJref)) add(SCRJREF);
  		if (extractUbigintUclc(docctx, basexpath, "refWdbeMModule", "", refWdbeMModule)) add(REFWDBEMMODULE);
  	};
  };
  
  void DpchInvWdbePlhfpgaCmdinv::writeXML(
  			xmlTextWriter* wr
  		) {
  	xmlTextWriterStartElement(wr, BAD_CAST "DpchInvWdbePlhfpgaCmdinv");
  	xmlTextWriterWriteAttribute(wr, BAD_CAST "xmlns", BAD_CAST "http://www.mpsitech.com/wdbe");
  		writeString(wr, "scrOref", Scr::scramble(oref));
  		writeString(wr, "scrJref", Scr::scramble(jref));
  		writeUbigint(wr, "refWdbeMModule", refWdbeMModule);
  	xmlTextWriterEndElement(wr);
  };
  
  /******************************************************************************
   class DpchRetWdbePlhfpgaCmdinv
   ******************************************************************************/
  
  DpchRetWdbePlhfpgaCmdinv::DpchRetWdbePlhfpgaCmdinv(
  			const string& scrOref
  			, const string& scrJref
  			, const uint ixOpVOpres
  			, const utinyint pdone
  			, const vector<string>& keys
  			, const vector<string>& vals
  		) :
  			DpchRetWdbe(VecWdbeVDpch::DPCHRETWDBEPLHFPGACMDINV, scrOref, scrJref, ixOpVOpres, pdone)
  		{
  	this->keys = keys;
  	this->vals = vals;
  };
  
  void DpchRetWdbePlhfpgaCmdinv::readXML(
  			xmlXPathContext* docctx
  			, string basexpath
  			, bool addbasetag
  		) {
  	clear();
  
  	string srefIxOpVOpres;
  
  	bool basefound;
  
  	if (addbasetag)
  		basefound = checkUclcXPaths(docctx, basexpath, basexpath, "DpchRetWdbePlhfpgaCmdinv");
  	else
  		basefound = checkXPath(docctx, basexpath);
  
  	if (basefound) {
  		if (extractStringUclc(docctx, basexpath, "scrOref", "", scrOref)) {
  			oref = Scr::descramble(scrOref);
  			add(OREF);
  		};
  		if (extractStringUclc(docctx, basexpath, "scrJref", "", scrJref)) {
  			jref = Scr::descramble(scrJref);
  			add(JREF);
  		};
  		if (extractStringUclc(docctx, basexpath, "srefIxOpVOpres", "", srefIxOpVOpres)) {
  			ixOpVOpres = VecOpVOpres::getIx(srefIxOpVOpres);
  			add(IXOPVOPRES);
  		};
  		if (extractUtinyintUclc(docctx, basexpath, "pdone", "", pdone)) add(PDONE);
  		if (extractStringvecUclc(docctx, basexpath, "keys", "", keys)) add(KEYS);
  		if (extractStringvecUclc(docctx, basexpath, "vals", "", vals)) add(VALS);
  	};
  };
  
  void DpchRetWdbePlhfpgaCmdinv::writeXML(
  			xmlTextWriter* wr
  		) {
  	xmlTextWriterStartElement(wr, BAD_CAST "DpchRetWdbePlhfpgaCmdinv");
  	xmlTextWriterWriteAttribute(wr, BAD_CAST "xmlns", BAD_CAST "http://www.mpsitech.com/wdbe");
  		writeString(wr, "scrOref", scrOref);
  		writeString(wr, "scrJref", scrJref);
  		writeString(wr, "srefIxOpVOpres", VecOpVOpres::getSref(ixOpVOpres));
  		writeUtinyint(wr, "pdone", pdone);
  		writeStringvec(wr, "keys", keys);
  		writeStringvec(wr, "vals", vals);
  	xmlTextWriterEndElement(wr);
  };
  
  /******************************************************************************
   class DpchInvWdbePlhfpgaCmdret
   ******************************************************************************/
  
  DpchInvWdbePlhfpgaCmdret::DpchInvWdbePlhfpgaCmdret(
  			const ubigint oref
  			, const ubigint jref
  			, const ubigint refWdbeMModule
  		) :
  			DpchInvWdbe(VecWdbeVDpch::DPCHINVWDBEPLHFPGACMDRET, oref, jref)
  		{
  	this->refWdbeMModule = refWdbeMModule;
  };
  
  void DpchInvWdbePlhfpgaCmdret::readXML(
  			xmlXPathContext* docctx
  			, string basexpath
  			, bool addbasetag
  		) {
  	clear();
  
  	bool basefound;
  
  	if (addbasetag)
  		basefound = checkUclcXPaths(docctx, basexpath, basexpath, "DpchInvWdbePlhfpgaCmdret");
  	else
  		basefound = checkXPath(docctx, basexpath);
  
  	if (basefound) {
  		if (extractStringUclc(docctx, basexpath, "scrOref", "", scrOref)) add(SCROREF);
  		if (extractStringUclc(docctx, basexpath, "scrJref", "", scrJref)) add(SCRJREF);
  		if (extractUbigintUclc(docctx, basexpath, "refWdbeMModule", "", refWdbeMModule)) add(REFWDBEMMODULE);
  	};
  };
  
  void DpchInvWdbePlhfpgaCmdret::writeXML(
  			xmlTextWriter* wr
  		) {
  	xmlTextWriterStartElement(wr, BAD_CAST "DpchInvWdbePlhfpgaCmdret");
  	xmlTextWriterWriteAttribute(wr, BAD_CAST "xmlns", BAD_CAST "http://www.mpsitech.com/wdbe");
  		writeString(wr, "scrOref", Scr::scramble(oref));
  		writeString(wr, "scrJref", Scr::scramble(jref));
  		writeUbigint(wr, "refWdbeMModule", refWdbeMModule);
  	xmlTextWriterEndElement(wr);
  };
  
  /******************************************************************************
   class DpchRetWdbePlhfpgaCmdret
   ******************************************************************************/
  
  DpchRetWdbePlhfpgaCmdret::DpchRetWdbePlhfpgaCmdret(
  			const string& scrOref
  			, const string& scrJref
  			, const uint ixOpVOpres
  			, const utinyint pdone
  			, const vector<string>& keys
  			, const vector<string>& vals
  		) :
  			DpchRetWdbe(VecWdbeVDpch::DPCHRETWDBEPLHFPGACMDRET, scrOref, scrJref, ixOpVOpres, pdone)
  		{
  	this->keys = keys;
  	this->vals = vals;
  };
  
  void DpchRetWdbePlhfpgaCmdret::readXML(
  			xmlXPathContext* docctx
  			, string basexpath
  			, bool addbasetag
  		) {
  	clear();
  
  	string srefIxOpVOpres;
  
  	bool basefound;
  
  	if (addbasetag)
  		basefound = checkUclcXPaths(docctx, basexpath, basexpath, "DpchRetWdbePlhfpgaCmdret");
  	else
  		basefound = checkXPath(docctx, basexpath);
  
  	if (basefound) {
  		if (extractStringUclc(docctx, basexpath, "scrOref", "", scrOref)) {
  			oref = Scr::descramble(scrOref);
  			add(OREF);
  		};
  		if (extractStringUclc(docctx, basexpath, "scrJref", "", scrJref)) {
  			jref = Scr::descramble(scrJref);
  			add(JREF);
  		};
  		if (extractStringUclc(docctx, basexpath, "srefIxOpVOpres", "", srefIxOpVOpres)) {
  			ixOpVOpres = VecOpVOpres::getIx(srefIxOpVOpres);
  			add(IXOPVOPRES);
  		};
  		if (extractUtinyintUclc(docctx, basexpath, "pdone", "", pdone)) add(PDONE);
  		if (extractStringvecUclc(docctx, basexpath, "keys", "", keys)) add(KEYS);
  		if (extractStringvecUclc(docctx, basexpath, "vals", "", vals)) add(VALS);
  	};
  };
  
  void DpchRetWdbePlhfpgaCmdret::writeXML(
  			xmlTextWriter* wr
  		) {
  	xmlTextWriterStartElement(wr, BAD_CAST "DpchRetWdbePlhfpgaCmdret");
  	xmlTextWriterWriteAttribute(wr, BAD_CAST "xmlns", BAD_CAST "http://www.mpsitech.com/wdbe");
  		writeString(wr, "scrOref", scrOref);
  		writeString(wr, "scrJref", scrJref);
  		writeString(wr, "srefIxOpVOpres", VecOpVOpres::getSref(ixOpVOpres));
  		writeUtinyint(wr, "pdone", pdone);
  		writeStringvec(wr, "keys", keys);
  		writeStringvec(wr, "vals", vals);
  	xmlTextWriterEndElement(wr);
  };
  
  /******************************************************************************
   class DpchInvWdbePlhfpgaEhostif
   ******************************************************************************/
  
  DpchInvWdbePlhfpgaEhostif::DpchInvWdbePlhfpgaEhostif(
  			const ubigint oref
  			, const ubigint jref
  			, const ubigint refWdbeMModule
  		) :
  			DpchInvWdbe(VecWdbeVDpch::DPCHINVWDBEPLHFPGAEHOSTIF, oref, jref)
  		{
  	this->refWdbeMModule = refWdbeMModule;
  };
  
  void DpchInvWdbePlhfpgaEhostif::readXML(
  			xmlXPathContext* docctx
  			, string basexpath
  			, bool addbasetag
  		) {
  	clear();
  
  	bool basefound;
  
  	if (addbasetag)
  		basefound = checkUclcXPaths(docctx, basexpath, basexpath, "DpchInvWdbePlhfpgaEhostif");
  	else
  		basefound = checkXPath(docctx, basexpath);
  
  	if (basefound) {
  		if (extractStringUclc(docctx, basexpath, "scrOref", "", scrOref)) add(SCROREF);
  		if (extractStringUclc(docctx, basexpath, "scrJref", "", scrJref)) add(SCRJREF);
  		if (extractUbigintUclc(docctx, basexpath, "refWdbeMModule", "", refWdbeMModule)) add(REFWDBEMMODULE);
  	};
  };
  
  void DpchInvWdbePlhfpgaEhostif::writeXML(
  			xmlTextWriter* wr
  		) {
  	xmlTextWriterStartElement(wr, BAD_CAST "DpchInvWdbePlhfpgaEhostif");
  	xmlTextWriterWriteAttribute(wr, BAD_CAST "xmlns", BAD_CAST "http://www.mpsitech.com/wdbe");
  		writeString(wr, "scrOref", Scr::scramble(oref));
  		writeString(wr, "scrJref", Scr::scramble(jref));
  		writeUbigint(wr, "refWdbeMModule", refWdbeMModule);
  	xmlTextWriterEndElement(wr);
  };
  
  /******************************************************************************
   class DpchRetWdbePlhfpgaEhostif
   ******************************************************************************/
  
  DpchRetWdbePlhfpgaEhostif::DpchRetWdbePlhfpgaEhostif(
  			const string& scrOref
  			, const string& scrJref
  			, const uint ixOpVOpres
  			, const utinyint pdone
  			, const vector<string>& keys
  			, const vector<string>& vals
  		) :
  			DpchRetWdbe(VecWdbeVDpch::DPCHRETWDBEPLHFPGAEHOSTIF, scrOref, scrJref, ixOpVOpres, pdone)
  		{
  	this->keys = keys;
  	this->vals = vals;
  };
  
  void DpchRetWdbePlhfpgaEhostif::readXML(
  			xmlXPathContext* docctx
  			, string basexpath
  			, bool addbasetag
  		) {
  	clear();
  
  	string srefIxOpVOpres;
  
  	bool basefound;
  
  	if (addbasetag)
  		basefound = checkUclcXPaths(docctx, basexpath, basexpath, "DpchRetWdbePlhfpgaEhostif");
  	else
  		basefound = checkXPath(docctx, basexpath);
  
  	if (basefound) {
  		if (extractStringUclc(docctx, basexpath, "scrOref", "", scrOref)) {
  			oref = Scr::descramble(scrOref);
  			add(OREF);
  		};
  		if (extractStringUclc(docctx, basexpath, "scrJref", "", scrJref)) {
  			jref = Scr::descramble(scrJref);
  			add(JREF);
  		};
  		if (extractStringUclc(docctx, basexpath, "srefIxOpVOpres", "", srefIxOpVOpres)) {
  			ixOpVOpres = VecOpVOpres::getIx(srefIxOpVOpres);
  			add(IXOPVOPRES);
  		};
  		if (extractUtinyintUclc(docctx, basexpath, "pdone", "", pdone)) add(PDONE);
  		if (extractStringvecUclc(docctx, basexpath, "keys", "", keys)) add(KEYS);
  		if (extractStringvecUclc(docctx, basexpath, "vals", "", vals)) add(VALS);
  	};
  };
  
  void DpchRetWdbePlhfpgaEhostif::writeXML(
  			xmlTextWriter* wr
  		) {
  	xmlTextWriterStartElement(wr, BAD_CAST "DpchRetWdbePlhfpgaEhostif");
  	xmlTextWriterWriteAttribute(wr, BAD_CAST "xmlns", BAD_CAST "http://www.mpsitech.com/wdbe");
  		writeString(wr, "scrOref", scrOref);
  		writeString(wr, "scrJref", scrJref);
  		writeString(wr, "srefIxOpVOpres", VecOpVOpres::getSref(ixOpVOpres));
  		writeUtinyint(wr, "pdone", pdone);
  		writeStringvec(wr, "keys", keys);
  		writeStringvec(wr, "vals", vals);
  	xmlTextWriterEndElement(wr);
  };
  
  /******************************************************************************
   class DpchInvWdbePlhfpgaFwdctr
   ******************************************************************************/
  
  DpchInvWdbePlhfpgaFwdctr::DpchInvWdbePlhfpgaFwdctr(
  			const ubigint oref
  			, const ubigint jref
  			, const ubigint refWdbeMModule
  		) :
  			DpchInvWdbe(VecWdbeVDpch::DPCHINVWDBEPLHFPGAFWDCTR, oref, jref)
  		{
  	this->refWdbeMModule = refWdbeMModule;
  };
  
  void DpchInvWdbePlhfpgaFwdctr::readXML(
  			xmlXPathContext* docctx
  			, string basexpath
  			, bool addbasetag
  		) {
  	clear();
  
  	bool basefound;
  
  	if (addbasetag)
  		basefound = checkUclcXPaths(docctx, basexpath, basexpath, "DpchInvWdbePlhfpgaFwdctr");
  	else
  		basefound = checkXPath(docctx, basexpath);
  
  	if (basefound) {
  		if (extractStringUclc(docctx, basexpath, "scrOref", "", scrOref)) add(SCROREF);
  		if (extractStringUclc(docctx, basexpath, "scrJref", "", scrJref)) add(SCRJREF);
  		if (extractUbigintUclc(docctx, basexpath, "refWdbeMModule", "", refWdbeMModule)) add(REFWDBEMMODULE);
  	};
  };
  
  void DpchInvWdbePlhfpgaFwdctr::writeXML(
  			xmlTextWriter* wr
  		) {
  	xmlTextWriterStartElement(wr, BAD_CAST "DpchInvWdbePlhfpgaFwdctr");
  	xmlTextWriterWriteAttribute(wr, BAD_CAST "xmlns", BAD_CAST "http://www.mpsitech.com/wdbe");
  		writeString(wr, "scrOref", Scr::scramble(oref));
  		writeString(wr, "scrJref", Scr::scramble(jref));
  		writeUbigint(wr, "refWdbeMModule", refWdbeMModule);
  	xmlTextWriterEndElement(wr);
  };
  
  /******************************************************************************
   class DpchRetWdbePlhfpgaFwdctr
   ******************************************************************************/
  
  DpchRetWdbePlhfpgaFwdctr::DpchRetWdbePlhfpgaFwdctr(
  			const string& scrOref
  			, const string& scrJref
  			, const uint ixOpVOpres
  			, const utinyint pdone
  			, const vector<string>& keys
  			, const vector<string>& vals
  		) :
  			DpchRetWdbe(VecWdbeVDpch::DPCHRETWDBEPLHFPGAFWDCTR, scrOref, scrJref, ixOpVOpres, pdone)
  		{
  	this->keys = keys;
  	this->vals = vals;
  };
  
  void DpchRetWdbePlhfpgaFwdctr::readXML(
  			xmlXPathContext* docctx
  			, string basexpath
  			, bool addbasetag
  		) {
  	clear();
  
  	string srefIxOpVOpres;
  
  	bool basefound;
  
  	if (addbasetag)
  		basefound = checkUclcXPaths(docctx, basexpath, basexpath, "DpchRetWdbePlhfpgaFwdctr");
  	else
  		basefound = checkXPath(docctx, basexpath);
  
  	if (basefound) {
  		if (extractStringUclc(docctx, basexpath, "scrOref", "", scrOref)) {
  			oref = Scr::descramble(scrOref);
  			add(OREF);
  		};
  		if (extractStringUclc(docctx, basexpath, "scrJref", "", scrJref)) {
  			jref = Scr::descramble(scrJref);
  			add(JREF);
  		};
  		if (extractStringUclc(docctx, basexpath, "srefIxOpVOpres", "", srefIxOpVOpres)) {
  			ixOpVOpres = VecOpVOpres::getIx(srefIxOpVOpres);
  			add(IXOPVOPRES);
  		};
  		if (extractUtinyintUclc(docctx, basexpath, "pdone", "", pdone)) add(PDONE);
  		if (extractStringvecUclc(docctx, basexpath, "keys", "", keys)) add(KEYS);
  		if (extractStringvecUclc(docctx, basexpath, "vals", "", vals)) add(VALS);
  	};
  };
  
  void DpchRetWdbePlhfpgaFwdctr::writeXML(
  			xmlTextWriter* wr
  		) {
  	xmlTextWriterStartElement(wr, BAD_CAST "DpchRetWdbePlhfpgaFwdctr");
  	xmlTextWriterWriteAttribute(wr, BAD_CAST "xmlns", BAD_CAST "http://www.mpsitech.com/wdbe");
  		writeString(wr, "scrOref", scrOref);
  		writeString(wr, "scrJref", scrJref);
  		writeString(wr, "srefIxOpVOpres", VecOpVOpres::getSref(ixOpVOpres));
  		writeUtinyint(wr, "pdone", pdone);
  		writeStringvec(wr, "keys", keys);
  		writeStringvec(wr, "vals", vals);
  	xmlTextWriterEndElement(wr);
  };
  
  // IP cust --- INSERT
  