From 4230479f59fed910cecfdff5c1d291f902fd57ac Mon Sep 17 00:00:00 2001 From: Andrey Paskal Date: Mon, 14 Jul 2008 10:19:36 +0400 Subject: [PATCH] CVS HEAD sync. Added access to rc file values from ananas-script. Usage example. service = new Service(); sys.Message(0,"File of business-scheme is '"+service.GetRcValue('configfile') + "'"); sys.Message(0,"Name of used rc file is '"+service.GetRcFileName() + "'"); --- src/extensions/service/aextservice.cpp | 56 ++++++++++++++++++++++++++++++++ src/extensions/service/aextservice.h | 7 +++- src/lib/acfgrc.cpp | 16 ++++++++- src/lib/acfgrc.h | 4 ++- 4 files changed, 79 insertions(+), 4 deletions(-) diff --git a/src/extensions/service/aextservice.cpp b/src/extensions/service/aextservice.cpp index fab928c..808664f 100644 --- a/src/extensions/service/aextservice.cpp +++ b/src/extensions/service/aextservice.cpp @@ -1,5 +1,8 @@ #include "aservice.h" #include "aextservice.h" +#include "adatabase.h" +#include "alog.h" + #include aExtSERVICE::aExtSERVICE() @@ -75,6 +78,59 @@ QString aExtSERVICE::Generate() const #endif } +/* + * \ru + * \brief Возвращает имя используемого rc файла с полным путем. + * + * Враппер. Вызывает аналогичный метод класса aCfgRc. + * \see aCfgRc.getRcFileName() + * Пример использования + * \code + * service = new Service(); + * sys.Message(0,"Name of used rc file is '"+service.GetRcFileName() + "'"); + * \endcode + * + * \_ru + */ +QString +aExtSERVICE::GetRcFileName() const +{ + return db->cfg.rc.getRcFileName(); +}; + +/* + * \ru + * \brief Возвращает значение указанного параметра, хранящегося в rc файле. + * + * \param paramName - имя параметра, значение которого требуется получить из файла ресурсов. + * \return значение параметра в случае успеха; пустую строку в случае неудачи. Пишет в лог сообщения о возникающих ошибках. + * Пример использования + * \code + * service = new Service(); + * sys.Message(0,"File of business-scheme is '"+service.GetRcValue('configfile') + "'"); + * \endcode + * + * \_ru + */ +QString +aExtSERVICE::GetRcValue( QString paramName ) const +{ + if ( !paramName || paramName.isNull() ) + { + aLog::print(aLog::MT_ERROR, tr("Empty rc file parameter name. Can't read such parameter from rc file.")); + return ""; + } + QString paramValue = db->cfg.rc.value( paramName ); + if ( !paramValue || paramValue.isEmpty() ) + { + aLog::print(aLog::MT_ERROR,tr("rc file parameter '%1' not found or empty.").arg(paramName)); + return ""; + } + return paramValue; +} + + + #include typedef AExtensionPlugin aExtSERVICEPlugin; diff --git a/src/extensions/service/aextservice.h b/src/extensions/service/aextservice.h index 11aef00..4b2c762 100644 --- a/src/extensions/service/aextservice.h +++ b/src/extensions/service/aextservice.h @@ -14,7 +14,10 @@ public: public slots: QString GetOffice() const; - QString Generate() const; + QString Generate() const; + + QString GetRcFileName() const; + QString GetRcValue( QString paramName ) const; }; -#endif \ No newline at end of file +#endif diff --git a/src/lib/acfgrc.cpp b/src/lib/acfgrc.cpp index 52fed4d..cc92b78 100644 --- a/src/lib/acfgrc.cpp +++ b/src/lib/acfgrc.cpp @@ -1,5 +1,5 @@ /**************************************************************************** -** $Id: acfgrc.cpp,v 1.9 2007/07/02 08:20:40 app Exp $ +** $Id: acfgrc.cpp,v 1.10 2008/07/14 06:13:24 app Exp $ ** ** Code file of the recorse work file of Ananas ** Designer and Engine applications @@ -88,6 +88,7 @@ unsetMessageHandler() aCfgRc::aCfgRc() { values.setAutoDelete( TRUE ); + filename = QString::null; } /** @@ -235,3 +236,16 @@ aCfgRc::count() { return ( int ) values.count(); } + +/** + * \ru + * \brief Возвращает имя используемого rc файла с полным путем. + * \_ru + */ +QString +aCfgRc::getRcFileName() +{ + return filename; +} + + diff --git a/src/lib/acfgrc.h b/src/lib/acfgrc.h index cfc3255..bd43d87 100644 --- a/src/lib/acfgrc.h +++ b/src/lib/acfgrc.h @@ -1,5 +1,5 @@ /**************************************************************************** -** $Id: acfgrc.h,v 1.7 2008/01/21 06:42:56 app Exp $ +** $Id: acfgrc.h,v 1.8 2008/07/14 06:13:25 app Exp $ ** ** Header file of the recorse work file of Ananas ** Designer and Engine applications @@ -59,6 +59,8 @@ public: QString value(const QString &name); void setValue(const QString &name, const QString &value); int count(); + QString getRcFileName(); + private: QString filename; QDict values; -- 1.7.1