Exemplo n.º 1
0
void KWDWriter::appendKWordVariable(QDomDocument& doc, QDomElement& format,
                                    const QString& text, const QString& key, int type, QDomElement& child)
{

    QDomElement variableElement(doc.createElement("VARIABLE"));

    QDomElement typeElement(doc.createElement("TYPE"));
    typeElement.setAttribute("key", key);
    typeElement.setAttribute("type", type);
    typeElement.setAttribute("text", text);
    variableElement.appendChild(typeElement); //Append to <VARIABLE>

    variableElement.appendChild(child); //Append to <VARIABLE>

    format.appendChild(variableElement);
}
Exemplo n.º 2
0
void BrowseRequestHandler::dataChanged(const VariablePtr changedData){
	PVSSTRACE(TRACEIN,"BrowseRequestHandler::dataChanged");
	std::vector<SString>	fieldNames; 
	std::vector<int> dipFieldTypes; 
	std::vector<SString> childNames;
	std::vector<int> childTypes;


	TextVar * name = (TextVar *)changedData;
	if (!name){
		return;
	}

	// the overloaded const const char *() operator for TextVAR does not seem to
	// work - so I get a char string by going though the intermediate CharString
	// var
	CharString & charStr = name->getString(); 
	SString nodeName = (const char *)charStr;
	PVSSINFO("Browse request for " << nodeName.getString());
	int nodeType = browser.getNodeInfo(nodeName,fieldNames,dipFieldTypes,childNames,childTypes);

	DpIdValueList *listOfValuesToSend = new DpIdValueList();
	{
		DynVar * fieldNameArray = new DynVar(TEXT_VAR);
		DynVar * pvssFieldTypeArray = new DynVar(INTEGER_VAR);  // holds equiv. PVSS types 
		PVSSINFO("Fields");
		for (unsigned i=0; i < fieldNames.size(); i++){
			TextVar nameElement(fieldNames[i]);
			fieldNameArray->append(nameElement);
			const TConv * converter = TMap::findDipToDpeConverterFor(dipFieldTypes[i]);
			IntegerVar typeElement(converter->getDPEtypeID());
			pvssFieldTypeArray->append(typeElement);
			PVSSINFO((const char *)nameElement << " data type " << (longlong)typeElement.getValue());
		}
		listOfValuesToSend->appendItem(fieldNameDpeID, fieldNameArray);
		listOfValuesToSend->appendItem(fieldTypeDpeID, pvssFieldTypeArray);
	}
		
	{
		DynVar * childNameArray = new DynVar(TEXT_VAR);
		DynVar * childTypeArray = new DynVar(INTEGER_VAR);  // indicates branch/node
		PVSSINFO("Children");
		for (unsigned i=0; i < childNames.size(); i++){
			TextVar nameElement(childNames[i]);
			childNameArray->append(nameElement);
			IntegerVar typeElement(childTypes[i]);
			childTypeArray->append(typeElement);
			PVSSINFO((const char *)nameElement << " node type " << (longlong)typeElement.getValue());
		}
		listOfValuesToSend->appendItem(childNameDpeID, childNameArray);
		listOfValuesToSend->appendItem(childTypeDpeID, childTypeArray);
	}
	
	{
		IntegerVar status(nodeType);
		listOfValuesToSend->appendItem(browseStatusDpeID, status);
	}

	BC_CTime tmpTime;  // gives me current time in seconds
	TimeVar pvssFormatTime(tmpTime,0);
	
	TimeVar currentTime;
	BC_CTime timeSeconds;
	short timeMSec;
	currentTime.getValue(timeSeconds, timeMSec); 
	DipLong timeInMs = ((DipLong)timeSeconds.ElapsedSeconds() * 1000) + timeMSec;

	apiManager.queueDPEDataReadyForUpdate(listOfValuesToSend, timeInMs); // can't return values from inside handler - so we queue it to be processed later

	PVSSTRACE(TRACEOUT,"BrowseRequestHandler::dataChanged");
}
Exemplo n.º 3
0
std::string VCardSerializer::serializePayload(boost::shared_ptr<VCard> vcard)  const {
	XMLElement queryElement("vCard", "vcard-temp");
	if (!vcard->getVersion().empty()) {
		boost::shared_ptr<XMLElement> versionElement(new XMLElement("VERSION"));
		versionElement->addNode(boost::shared_ptr<XMLTextNode>(new XMLTextNode(vcard->getVersion())));
		queryElement.addNode(versionElement);
	}
	if (!vcard->getFullName().empty()) {
		boost::shared_ptr<XMLElement> fullNameElement(new XMLElement("FN"));
		fullNameElement->addNode(boost::shared_ptr<XMLTextNode>(new XMLTextNode(vcard->getFullName())));
		queryElement.addNode(fullNameElement);
	}
	if (!vcard->getGivenName().empty() || !vcard->getFamilyName().empty() || !vcard->getMiddleName().empty() || !vcard->getPrefix().empty() || !vcard->getSuffix().empty()) {
		boost::shared_ptr<XMLElement> nameElement(new XMLElement("N"));
		if (!vcard->getFamilyName().empty()) {
			boost::shared_ptr<XMLElement> familyNameElement(new XMLElement("FAMILY"));
			familyNameElement->addNode(boost::shared_ptr<XMLTextNode>(new XMLTextNode(vcard->getFamilyName())));
			nameElement->addNode(familyNameElement);
		}
		if (!vcard->getGivenName().empty()) {
			boost::shared_ptr<XMLElement> givenNameElement(new XMLElement("GIVEN"));
			givenNameElement->addNode(boost::shared_ptr<XMLTextNode>(new XMLTextNode(vcard->getGivenName())));
			nameElement->addNode(givenNameElement);
		}
		if (!vcard->getMiddleName().empty()) {
			boost::shared_ptr<XMLElement> middleNameElement(new XMLElement("MIDDLE"));
			middleNameElement->addNode(boost::shared_ptr<XMLTextNode>(new XMLTextNode(vcard->getMiddleName())));
			nameElement->addNode(middleNameElement);
		}
		if (!vcard->getPrefix().empty()) {
			boost::shared_ptr<XMLElement> prefixElement(new XMLElement("PREFIX"));
			prefixElement->addNode(boost::shared_ptr<XMLTextNode>(new XMLTextNode(vcard->getPrefix())));
			nameElement->addNode(prefixElement);
		}
		if (!vcard->getSuffix().empty()) {
			boost::shared_ptr<XMLElement> suffixElement(new XMLElement("SUFFIX"));
			suffixElement->addNode(boost::shared_ptr<XMLTextNode>(new XMLTextNode(vcard->getSuffix())));
			nameElement->addNode(suffixElement);
		}
		queryElement.addNode(nameElement);
	}
	foreach(const VCard::EMailAddress& emailAddress, vcard->getEMailAddresses()) {
		boost::shared_ptr<XMLElement> emailElement(new XMLElement("EMAIL"));
		boost::shared_ptr<XMLElement> userIDElement(new XMLElement("USERID"));
		userIDElement->addNode(boost::shared_ptr<XMLTextNode>(new XMLTextNode(emailAddress.address)));
		emailElement->addNode(userIDElement);
		if (emailAddress.isHome) {
			emailElement->addNode(boost::shared_ptr<XMLElement>(new XMLElement("HOME")));
		}
		if (emailAddress.isWork) {
			emailElement->addNode(boost::shared_ptr<XMLElement>(new XMLElement("WORK")));
		}
		if (emailAddress.isInternet) {
			emailElement->addNode(boost::shared_ptr<XMLElement>(new XMLElement("INTERNET")));
		}
		if (emailAddress.isPreferred) {
			emailElement->addNode(boost::shared_ptr<XMLElement>(new XMLElement("PREF")));
		}
		if (emailAddress.isX400) {
			emailElement->addNode(boost::shared_ptr<XMLElement>(new XMLElement("X400")));
		}
		queryElement.addNode(emailElement);
	}
	if (!vcard->getNickname().empty()) {
		boost::shared_ptr<XMLElement> nickElement(new XMLElement("NICKNAME"));
		nickElement->addNode(boost::shared_ptr<XMLTextNode>(new XMLTextNode(vcard->getNickname())));
		queryElement.addNode(nickElement);
	}
	if (!vcard->getPhoto().isEmpty() || !vcard->getPhotoType().empty()) {
		XMLElement::ref photoElement(new XMLElement("PHOTO"));
		if (!vcard->getPhotoType().empty()) {
			XMLElement::ref typeElement(new XMLElement("TYPE"));
			typeElement->addNode(XMLTextNode::ref(new XMLTextNode(vcard->getPhotoType())));
			photoElement->addNode(typeElement);
		}
		if (!vcard->getPhoto().isEmpty()) {
			XMLElement::ref binvalElement(new XMLElement("BINVAL"));
			binvalElement->addNode(XMLTextNode::ref(new XMLTextNode(Base64::encode(vcard->getPhoto()))));
			photoElement->addNode(binvalElement);
		}
		queryElement.addNode(photoElement);
	}
	if (!vcard->getUnknownContent().empty()) {
		queryElement.addNode(boost::shared_ptr<XMLRawTextNode>(new XMLRawTextNode(vcard->getUnknownContent())));
	}
	return queryElement.serialize();
}