CVS HEAD sync.
authorAndrey Paskal <apaskal@gmail.com>
Mon, 14 Jul 2008 06:19:36 +0000 (10:19 +0400)
committerAndrey Paskal <apaskal@gmail.com>
Mon, 14 Jul 2008 06:19:36 +0000 (10:19 +0400)
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
src/extensions/service/aextservice.h
src/lib/acfgrc.cpp
src/lib/acfgrc.h

index fab928c..808664f 100644 (file)
@@ -1,5 +1,8 @@
 #include "aservice.h"
 #include "aextservice.h"
+#include "adatabase.h"
+#include "alog.h"
+
 #include <quuid.h>
 
 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 <aextensionplugin.h>
 typedef AExtensionPlugin<aExtSERVICE> aExtSERVICEPlugin;
index 11aef00..4b2c762 100644 (file)
@@ -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
index 52fed4d..cc92b78 100644 (file)
@@ -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;
+}
+
+
index cfc3255..bd43d87 100644 (file)
@@ -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 <QString> values;