Пример #1
0
string InterfaceGenerator::generateMethod(Method & m) {
	string tmp = TEMPLATE_INTERFACE_METHOD;

	//set methodname
	replaceAll(tmp, "<methodName>", m.name);
	replaceAll(tmp, "<methodComment>", "[method] " + m.name + ": " + m.comment);

	std::stringstream aliases;

	std::stringstream pcom;
	for (Argument::List::iterator a = m.inArguments.begin(); a != m.inArguments.end(); a++) {
		pcom << tab << tab << "  * [in] " << argType(*a) << " " << a->name << ": " << a->comment << endl;
		if (!a->alias.empty()){
			aliases << tab << tab << "typedef " << argType(*a) << " " << a->alias << ";" << endl;
		}
	}
	for (Argument::List::iterator a = m.outArguments.begin(); a != m.outArguments.end(); a++) {
		pcom << tab << tab << "  * [out] " << argType(*a) << " " << a->name << ": " << a->comment << endl;
		if (!a->alias.empty()){
			aliases << tab << tab << "typedef " << argType(*a) << " " << a->alias << ";" << endl;
		}
	}
	replaceAll(tmp, "<paramsComments>", pcom.str());

	replaceAll(tmp, "<aliases>", aliases.str());

	replaceAll(tmp, "<returnType>", returnType(m, true));
	replaceAll(tmp, "<parameters>", methodArgDefinition(m, true));
	return tmp;
}
Пример #2
0
string InterfaceGenerator::generateSignal(Signal & s) {
	std::string stypedef = "";
	if (s.arguments.size() > 1) {
		stypedef += "struct " + eventArgType(s) + " { \n";
		int i = 0;
		for (Argument::List::iterator a = s.arguments.begin(); a != s.arguments.end(); a++, i++) {
			stypedef += argType(*a) + " " + a->name + ";\n";
		}
		stypedef += "}";
	} else {
		stypedef += "typedef " + this->argType(s.arguments.front()) + " " + eventArgType(s);
	}
	string tmp = TEMPLATE_INTERFACE_SIGNAL;
	replaceAll(tmp, "<signalName>", s.name);
	replaceAll(tmp, "<signalTypeDefinition>", stypedef);
	replaceAll(tmp, "<signalType>", eventArgType(s));
	return tmp;
}
QVariant QGpgMECryptoConfigEntry::stringToValue( const QString& str, bool unescape ) const
{
  const bool isString = isStringType();

  if ( isList() ) {
    if ( argType() == ArgType_None ) {
        bool ok = true;
        const QVariant v = str.isEmpty() ? 0U : str.toUInt( &ok ) ;
        if ( !ok )
            kWarning(5150) << "list-of-none should have an unsigned int as value:" << str;
        return v;
    }
    QList<QVariant> lst;
    QStringList items = str.split( ',', QString::SkipEmptyParts );
    for( QStringList::const_iterator valit = items.constBegin(); valit != items.constEnd(); ++valit ) {
      QString val = *valit;
      if ( isString ) {
        if ( val.isEmpty() ) {
          lst << QVariant( QString() );
          continue;
        }
        else if ( unescape ) {
          if( val[0] != '"' ) // see README.gpgconf
            kWarning(5150) <<"String value should start with '\"' :" << val;
          val = val.mid( 1 );
        }
      }
      lst << QVariant( unescape ? gpgconf_unescape( val ) : val );
    }
    return lst;
  } else { // not a list
    QString val( str );
    if ( isString ) {
      if ( val.isEmpty() )
        return QVariant( QString() ); // not set  [ok with lists too?]
      else if ( unescape ) {
        if( val[0] != '"' ) // see README.gpgconf
          kWarning(5150) <<"String value should start with '\"' :" << val;
        val = val.mid( 1 );
      }
    }
    return QVariant( unescape ? gpgconf_unescape( val ) : val );
  }
}
Пример #4
0
string InterfaceGenerator::generateStruct(Interface & i, Struct &s) {
	string tmp = TEMPLATE_STRUCTS;

	replaceAll(tmp, "<namespaceStart>", generateNamespaceStart(i.namesp));
	replaceAll(tmp, "<namespaceEnd>", generateNamespaceEnd(i.namesp));

	replaceAll(tmp, "<structName>", s.name);

	std::string ms;
	//methods
	for (Argument::List::iterator m = s.members.begin(); m != s.members.end(); m++) {
		std::string member;
		member = "\t\t" + argType(*m) + " " + m->name + ";\n";
		ms.append(member);
	}
	replaceAll(tmp, "<members>", ms);

	std::cout << "tmp: " << tmp;
	std::cout << "members: " << ms;
	return tmp;
}