[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-devel
Subject: Re: KDE 2.2beta1
From: Sergio Moretti <sermore () libero ! it>
Date: 2001-03-28 19:41:16
[Download RAW message or body]
On Wednesday 28 March 2001 06:40, Waldo Bastian wrote:
> Hiya,
>
> I especially would like to hear about the status of the following
> issues:
>
> * new kio-slave configuration
oops, I was waiting for you, anyway, here the patch for kio directory,
plus two file for slave's manager. It compiles, but I haven't tested
it, it's more like a draft proposal. I have removed the call to
needConfiguration method in slavebase.cpp, as I think it's better to
insert it directly in slave code, maybe in constructor. What is left to
do is to map KProtocolManager methods to slaveManager, and to move some
slave code to new system. If you think that this is the right way, I
will try to convince the ftp slave to follow it, and I will make some
test.
cheers,
Sergio
["slavemanager.h" (text/x-c++)]
/* This file is part of the KDE libraries
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License version 2 as published by the Free Software Foundation.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#ifndef __slavemanager_h__
#define __slavemanager_h__
#include <qstring.h>
#include <kconfig.h>
#include <qdict.h>
#include <kio/global.h>
namespace KIO {
class SlaveManager;
/**
* Factory for SlaveManager objects.
* Read its state from a desktop-wide config file.
* For every slave type there must be a group named as the slave's protocol.
* The group can contain directly the config entries for the slave, or an
* entry named "configFile", which points to a config file dedicated to a
* single slave type.
* If is created with localConfig pointing to the global KConfig object, and
* globalConfig null, then it creates "global" managers, i.e. managers
* that read/modify only desktop-wide settings.
*/
class SlaveManagerFactory
{
public:
/**
* constructor
* @param localConfig application-wide configuration
* @param globalConfig desktop-wide configuration
*/
SlaveManagerFactory(KConfig *localConfig, KConfig *globalConfig);
~SlaveManagerFactory();
/**
* create a new manager for protocol
* For either global and local config,
* parse group <protocol> in config, if an entry "configFile file"
* is found, then open a new KConfig object pointing at "file", otherwise
* pass current KConfig instances
*/
SlaveManager * manager(const QString &protocol);
private:
KConfig *_glbCfg;
KConfig *_lclCfg;
};
/**
* Manager for slave's configuration.
* Act as desktop-level manager if global is null.
* Act as application-level manager if global and local are defined.
* Entries are grouped, a group is the minimal set of data sent to / received
* from slave, to permit to distinguish between different kind of entries.
*/
class SlaveManager
{
friend class SlaveManagerFactory;
public:
~SlaveManager();
/**
* query, for key, local and (if defined) global confs, in this order.
* If key is found, the associated value is returned
*/
QString entry(const QString &group, const QString &key) const;
/**
* create (or update) key, value pair in local config
*/
void setEntry(const QString &group, const QString &key,
const QString &value);
/**
* remove the entry associated with key from local config
*/
void removeEntry(const QString &group, const QString &key);
/**
* pack entries to metadata
*/
MetaData data(const QString &group) const;
/**
* unpack and merge entries from metadata
*/
void setData(const QString &group, const MetaData &data);
protected:
/**
* constructor
* If group is null, then a new KConfig is passed to object, for which
* this object has the responsibility to delete it.
* If group is not null, the KConfig object passed is shared amongs
* sibling managers and factory.
*/
SlaveManager(KConfig *local, KConfig *global, const QString &group);
/**
* build real group name
*/
QString group(const QString &group) const;
private:
KConfig *_lclCfg, *_glbCfg;
QString _grp;
};
/**
* Factory for SlaveManager objects.
* Handle created managers internally,
* extending the set/get interface to manager's entries with a parameter to
* specify the protocol.
*/
class SlaveManagerGlobal : public SlaveManagerFactory
{
public:
/**
* constructor
* @param localConfig application-wide configuration
* @param globalConfig desktop-wide configuration
*/
SlaveManagerGlobal(KConfig *localConfig, KConfig *globalConfig);
~SlaveManagerGlobal();
/**
* retrieve or create if not existent a new manager for protocol
*/
SlaveManager * manager(const QString &protocol);
/**
* Query manager associate to protocol, creating it if it is not existent.
*/
QString entry(const QString &protocol, const QString &group,
const QString &key);
/**
* Set key, value pair in manager associate to protocol, creating it if it
* is not existent.
*/
void setEntry(const QString &protocol, const QString &group,
const QString &key, const QString &value);
/**
* remove the entry associated with key
*/
void removeEntry(const QString &protocol, const QString &group,
const QString &key);
private:
QDict<SlaveManager> _managers;
};
}; // namespace KIO
#endif
["slavemanager.cpp" (text/x-c)]
/* This file is part of the KDE libraries
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License version 2 as published by the Free Software Foundation.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#include "slavemanager.h"
using namespace KIO;
SlaveManagerFactory::SlaveManagerFactory(KConfig *localConfig,
KConfig *globalConfig)
: _glbCfg(globalConfig), _lclCfg(localConfig)
{
}
SlaveManagerFactory::~SlaveManagerFactory()
{
}
SlaveManager * SlaveManagerFactory::manager(const QString &proto)
{
QString grp;
KConfig *lclCfg, *glbCfg;
// if the protocol is unknown, automatically create a new entry for it
_glbCfg->setGroup(proto);
_lclCfg->setGroup(proto);
if (_glbCfg->hasKey("configFile"))
{
// config for this protocol is contained in a separate file
glbCfg = new KConfig(_glbCfg->readEntry("configFile"));
lclCfg = new KConfig(_lclCfg->readEntry("configFile"));
grp = QString::null;
}
else
{
// config data is contained in main config
glbCfg = _glbCfg;
lclCfg = _lclCfg;
grp = proto;
}
return new SlaveManager(lclCfg, glbCfg, grp);
}
///////////////////////////////////////////////////////////////////////
SlaveManager::SlaveManager(KConfig *local, KConfig *global, const QString &group)
: _lclCfg(local), _glbCfg(global), _grp(group)
{
}
SlaveManager::~SlaveManager()
{
if (_grp.isEmpty())
{
delete _lclCfg;
delete _glbCfg;
}
}
QString SlaveManager::group(const QString &grp) const
{
if (grp.isEmpty())
return _grp;
if (_grp.isEmpty())
return grp;
return QString("%1 %2").arg(_grp).arg(grp);
}
QString SlaveManager::entry(const QString &grp, const QString &key) const
{
QString g = group(grp);
_lclCfg->setGroup(g);
if (_lclCfg->hasKey(key))
return _lclCfg->readEntry(key);
_glbCfg->setGroup(g);
if (_glbCfg->hasKey(key))
return _glbCfg->readEntry(key);
return QString::null;
}
void SlaveManager::setEntry(const QString &grp, const QString &key,
const QString &value)
{
_lclCfg->setGroup(group(grp));
_lclCfg->writeEntry(key, value);
}
void SlaveManager::removeEntry(const QString &, const QString &)
{
// why there isn't a deleteEntry method in KConfig?
// some hack to perform this, as is needed to pass from local to global
// mapping.
}
MetaData SlaveManager::data(const QString &grp) const
{
QString g = group(grp);
//MetaData metadata = _lclCfg->entryMap(g); add an operator= to MetaData
MetaData metadata;
QMap<QString, QString> map = _lclCfg->entryMap(g);
for (QMap<QString, QString>::ConstIterator it = map.begin();
it != map.end(); ++it)
metadata.insert(it.key(), it.data());
// add the global entries not contained in local
map = _glbCfg->entryMap(g);
for (QMap<QString, QString>::ConstIterator it = map.begin();
it != map.end(); ++it)
if (!metadata.contains(it.key()))
metadata.insert(it.key(), it.data());
return metadata;
}
void SlaveManager::setData(const QString &grp, const MetaData &data)
{
QString g = group(grp);
_lclCfg->setGroup(g);
for (QMap<QString, QString>::ConstIterator it = data.begin();
it != data.end(); ++it)
_lclCfg->writeEntry(it.key(), it.data());
}
/////////////////////////////////////////////////////////////////////////
SlaveManagerGlobal::SlaveManagerGlobal(KConfig *localConfig,
KConfig *globalConfig)
: SlaveManagerFactory(localConfig, globalConfig)
{
}
SlaveManagerGlobal::~SlaveManagerGlobal()
{
_managers.setAutoDelete(true);
}
SlaveManager * SlaveManagerGlobal::manager(const QString &protocol)
{
SlaveManager *m = _managers.find(protocol);
if (m == 0)
{
m = SlaveManagerFactory::manager(protocol);
_managers.insert(protocol, m);
}
return m;
}
QString SlaveManagerGlobal::entry(const QString &protocol, const QString &group,
const QString &key)
{
return manager(protocol)->entry(group, key);
}
void SlaveManagerGlobal::setEntry(const QString &protocol, const QString &group,
const QString &key, const QString &value)
{
manager(protocol)->setEntry(group, key, value);
}
void SlaveManagerGlobal::removeEntry(const QString &protocol,
const QString &group, const QString &key)
{
manager(protocol)->removeEntry(group, key);
}
["kiopatch" (text/plain)]
? slavemanager.h
? slavemanager.cpp
Index: Makefile.am
===================================================================
RCS file: /home/kde/kdelibs/kio/Makefile.am,v
retrieving revision 1.145
diff -u -3 -p -r1.145 Makefile.am
--- Makefile.am 2001/03/14 14:16:45 1.145
+++ Makefile.am 2001/03/28 16:04:32
@@ -60,7 +60,11 @@ include_HEADERS = ksycoca.h ksycocaentry
progressbase.h defaultprogress.h statusbarprogress.h \
kimageio.h kdirnotify.h kdirnotify_stub.h \
kurlpixmapprovider.h kprotocolinfo.h kprotocolmanager.h \
+<<<<<<< Makefile.am
+ kfilterbase.h kfilterdev.h kemailsettings.h
+=======
kfilterbase.h kfilterdev.h kemailsettings.h kscan.h
+>>>>>>> 1.145
libkio_la_LDFLAGS = -version-info 3:0 -no-undefined $(all_libraries)
libkio_la_LIBADD = ../kdeui/libkdeui.la ../kdesu/libkdesu.la $(LIBZ) $(LIBFAM) $(LIBVOLMGT)
@@ -79,7 +83,12 @@ libkio_la_SOURCES = \
statusbarprogress.cpp \
kdirnotify.cpp kdirnotify.skel kdirnotify.stub \
observer.cpp uiserver.stub observer.skel \
+<<<<<<< Makefile.am
+ kmdcodec.cpp kemailsettings.cpp authinfo.cpp \
+ slavemanager.cpp
+=======
kemailsettings.cpp authinfo.cpp
+>>>>>>> 1.145
kio_uiserver_SOURCES = dummy.cpp
kio_uiserver_LDADD = kio_uiserver.la
@@ -101,7 +110,12 @@ kioinclude_HEADERS = connection.h \
statusbarprogress.h uiserver.h uiserver_stub.h tcpslavebase.h \
renamedlg.h skipdlg.h slave.h \
observer.h chmodjob.h \
+<<<<<<< Makefile.am
+ kpac.h kmdbase.h kmdcodec.h authinfo.h \
+ slavemanager.h
+=======
kpac.h kmdbase.h authinfo.h
+>>>>>>> 1.145
# Internal
noinst_HEADERS = ksycocafactory.h kservicetypefactory.h kservicefactory.h \
Index: job.cpp
===================================================================
RCS file: /home/kde/kdelibs/kio/job.cpp,v
retrieving revision 1.246
diff -u -3 -p -r1.246 job.cpp
--- job.cpp 2001/03/28 11:09:09 1.246
+++ job.cpp 2001/03/28 16:04:39
@@ -59,6 +59,7 @@ extern "C" {
#include <kdirnotify_stub.h>
+
using namespace KIO;
template class QList<KIO::Job>;
@@ -106,6 +107,9 @@ void Job::addSubjob(Job *job)
connect( job, SIGNAL(result(KIO::Job*)),
SLOT(slotResult(KIO::Job*)) );
+ connect( job, SIGNAL(needConfiguration(KIO::Job*, const MetaData&)),
+ SLOT(slotNeedConfiguration(KIO::Job*, const MetaData&)) );
+
// Forward information from that subjob.
connect( job, SIGNAL(speed( KIO::Job*, unsigned long )),
SLOT(slotSpeed(KIO::Job*, unsigned long)) );
@@ -179,6 +183,11 @@ void Job::kill( bool quietly )
}
}
+void Job::slotNeedConfiguration( Job *, const MetaData &data )
+{
+ emit needConfiguration(this, data);
+}
+
void Job::slotResult( Job *job )
{
// Did job have an error ?
@@ -235,10 +244,23 @@ QWidget *Job::window() const
return m_window;
}
+
+SlaveManagerGlobal * SimpleJob::m_slaveManager = 0;
+
+SlaveManagerGlobal * SimpleJob::managerInstance()
+{
+ if (m_slaveManager == 0)
+ {
+ KConfig *globalConfig = 0; // define here the location for global config
+ m_slaveManager = new SlaveManagerGlobal(globalConfig, 0);
+ }
+ return m_slaveManager;
+}
+
SimpleJob::SimpleJob(const KURL& url, int command, const QByteArray &packedArgs,
bool showProgressInfo )
: Job(showProgressInfo), m_slave(0), m_packedArgs(packedArgs),
- m_url(url), m_command(command), m_totalSize(0)
+ m_url(url), m_command(command), m_totalSize(0), m_configurationSent(false)
{
if (m_url.isMalformed())
{
@@ -327,6 +349,9 @@ void SimpleJob::start(Slave *slave)
connect( slave, SIGNAL( needProgressId() ),
SLOT( slotNeedProgressId() ) );
+ connect( slave, SIGNAL( needConfiguration( const MetaData& ) ),
+ SLOT( slotSlaveNeedConfiguration(const MetaData& ) ) );
+
if (!m_subUrl.isEmpty())
{
KIO_ARGS << m_subUrl;
@@ -342,6 +367,29 @@ void SimpleJob::slaveDone()
disconnect(m_slave); // Remove all signals between slave and job
Scheduler::jobFinished( this, m_slave );
m_slave = 0;
+}
+
+void SimpleJob::sendConfiguration(const MetaData &metadata)
+{
+ m_configurationSent = true;
+ KIO_ARGS << metadata;
+ m_slave->connection()->send( CMD_CONFIG, packedArgs);
+}
+
+void SimpleJob::slotSlaveNeedConfiguration( const MetaData &data )
+{
+ m_configurationSent = false;
+ emit needConfiguration(this, data);
+ //FIXME waiting for some virtual methods
+ // if the app don't handle configuration, we have to do it here
+ // this way is valid only if the sendConfiguration method is called in the
+ // slot connected to needConfiguration signal.
+ if (!m_configurationSent)
+ {
+ QString proto = url().protocol();
+ SlaveManager *mngr = managerInstance()->manager(proto);
+ sendConfiguration(mngr->data(data["Group"]));
+ }
}
void SimpleJob::slotFinished( )
Index: jobclasses.h
===================================================================
RCS file: /home/kde/kdelibs/kio/jobclasses.h,v
retrieving revision 1.75
diff -u -3 -p -r1.75 jobclasses.h
--- jobclasses.h 2001/02/07 00:06:48 1.75
+++ jobclasses.h 2001/03/28 16:04:41
@@ -35,6 +35,8 @@
#include <kio/global.h>
+#include <kio/slavemanager.h>
+
class Observer;
class QTimer;
@@ -187,6 +189,11 @@ namespace KIO {
*/
void speed( KIO::Job *, unsigned long bytes_per_second );
+ /**
+ * Emitted on slave's configuration request
+ */
+ void needConfiguration( KIO::Job *, const MetaData &);
+
protected slots:
/**
* Called whenever a subjob finishes.
@@ -197,6 +204,12 @@ namespace KIO {
virtual void slotResult( KIO::Job *job );
/**
+ * Called whenever a slave connected to a subjob send a
+ * configuration's request
+ */
+ void slotNeedConfiguration(KIO::Job *job, const MetaData &data);
+
+ /**
* Forward signal from subjob
*/
void slotSpeed( KIO::Job*, unsigned long bytes_per_second );
@@ -315,6 +328,20 @@ namespace KIO {
*/
int command() { return m_command; }
+ /**
+ * Send configuration to slave.
+ * You have to use this method from the slot connected to needConnection
+ * signal, because after the slave has emitted needConfiguration, it
+ * expects that its configuration has been updated, and the job-subjob
+ * structure needs this too.
+ */
+ void sendConfiguration(const MetaData &);
+
+ /**
+ * global instance for manager's managements
+ */
+ static SlaveManagerGlobal * managerInstance();
+
protected slots:
/**
* Called when the slave marks the job
@@ -351,6 +378,15 @@ namespace KIO {
*/
void slotSpeed( unsigned long bytes_per_second );
+ /**
+ * Called when the slave needs configuration data. Emit
+ * needConfiguration signal, and send global config if no data has been
+ * sent (i.e. if needConfiguration signal of main job is not handled).
+ * To select the "group" of entries needed, the slave use the key
+ * "Group".
+ */
+ void slotSlaveNeedConfiguration( const MetaData &data );
+
public slots:
/**
* @internal
@@ -372,6 +408,10 @@ namespace KIO {
KURL m_subUrl;
int m_command;
unsigned long m_totalSize;
+ bool m_configurationSent;
+
+ private:
+ static SlaveManagerGlobal *m_slaveManager;
};
// Stat Job
Index: slavebase.cpp
===================================================================
RCS file: /home/kde/kdelibs/kio/slavebase.cpp,v
retrieving revision 1.73
diff -u -3 -p -r1.73 slavebase.cpp
--- slavebase.cpp 2001/03/23 11:35:59 1.73
+++ slavebase.cpp 2001/03/28 16:04:44
@@ -59,6 +59,7 @@ namespace KIO {
class SlaveBasePrivate {
public:
QString slaveid;
+ MetaData configuration;
bool resume:1;
bool needSendCanResume:1;
};
@@ -93,6 +94,8 @@ SlaveBase::SlaveBase( const QCString &pr
d->slaveid += QString::number(getpid());
d->resume = false;
d->needSendCanResume = false;
+ // set initial configuration
+ //d->configuration = ??;
}
SlaveBase::~SlaveBase()
@@ -246,6 +249,12 @@ void SlaveBase::needSubURLData()
m_pConnection->send( MSG_NEED_SUBURL_DATA );
}
+void SlaveBase::needConfiguration(const MetaData &meta_data)
+{
+ KIO_DATA << meta_data;
+ m_pConnection->send( MSG_NEED_CONFIG, data );
+}
+
void SlaveBase::slaveStatus( const QString &host, bool connected )
{
pid_t pid = getpid();
@@ -310,6 +319,7 @@ void SlaveBase::mimeType( const QString
}
if ( (cmd == CMD_REPARSECONFIGURATION) ||
(cmd == CMD_META_DATA) ||
+ (cmd == CMD_CONFIG) || //FIXME is this correct?
(cmd == CMD_SUBURL) )
{
dispatch( cmd, data );
@@ -458,6 +468,17 @@ void SlaveBase::setHost(QString const &h
kdDebug( 7019 ) << "setHost( host = " << host << ")" << endl;
}
+void SlaveBase::setConfiguration(const MetaData &metadata)
+{
+ // save metadata to local
+ d->configuration = metadata;
+}
+
+MetaData SlaveBase::configuration() const
+{
+ return d->configuration;
+}
+
void SlaveBase::openConnection(void)
{ error( ERR_UNSUPPORTED_ACTION, "open" ); }
void SlaveBase::closeConnection(void)
@@ -494,6 +515,9 @@ void SlaveBase::slave_status()
void SlaveBase::reparseConfiguration()
{
+ // fill with infos for job
+ MetaData data;
+ needConfiguration(data);
}
bool SlaveBase::dispatch()
@@ -640,9 +664,14 @@ void SlaveBase::dispatch( int command, c
slave_status();
break;
case CMD_REPARSECONFIGURATION:
- KProtocolManager::reparseConfiguration();
+ //KProtocolManager::reparseConfiguration(); to remove
reparseConfiguration();
break;
+ case CMD_CONFIG: {
+ MetaData meta_data;
+ stream >> meta_data;
+ setConfiguration(meta_data);
+ }
case CMD_GET: {
stream >> url;
get( url );
Index: slavebase.h
===================================================================
RCS file: /home/kde/kdelibs/kio/slavebase.h,v
retrieving revision 1.52
diff -u -3 -p -r1.52 slavebase.h
--- slavebase.h 2001/03/23 11:35:59 1.52
+++ slavebase.h 2001/03/28 16:04:46
@@ -59,6 +59,12 @@ public:
Connection *connection() const { return m_pConnection; }
+ /**
+ * get slave's configuration
+ * FIXME maybe it's better to define this as protected
+ */
+ MetaData configuration() const;
+
///////////
// Message Signals to send to the job
///////////
@@ -100,6 +106,13 @@ public:
void needSubURLData();
/**
+ * Call to signal a request for slave configuration data
+ * @param data informations for job to know the slave's state
+ * to select the "group" of entries needed, use the key "Group".
+ */
+ void needConfiguration(const MetaData &data);
+
+ /**
* Used to report the status of the slave.
* @param host the slave is currently connected to. (Should be
* empty if not connected)
@@ -230,6 +243,11 @@ public:
// Commands sent by the job, the slave has to override what it wants to implement
///////////
+ /**
+ * Set the slave config
+ */
+ void setConfiguration(const MetaData &data);
+
/**
* Set the host
* @param host
Index: slaveinterface.cpp
===================================================================
RCS file: /home/kde/kdelibs/kio/slaveinterface.cpp,v
retrieving revision 1.50
diff -u -3 -p -r1.50 slaveinterface.cpp
--- slaveinterface.cpp 2001/03/23 11:35:59 1.50
+++ slaveinterface.cpp 2001/03/28 16:04:47
@@ -125,7 +125,6 @@ bool SlaveInterface::dispatch( int _cmd,
case MSG_CONNECTED:
emit connected();
break;
-
case INF_TOTAL_SIZE:
stream >> ul;
emit totalSize( ul );
@@ -212,6 +211,12 @@ bool SlaveInterface::dispatch( int _cmd,
emit needSubURLData();
break;
}
+ case MSG_NEED_CONFIG: {
+ MetaData meta_data;
+ stream >> meta_data;
+ emit needConfiguration(meta_data);
+ break;
+ }
case MSG_AUTH_KEY: {
bool keep;
QCString key, group;
@@ -254,6 +259,14 @@ void SlaveInterface::sendResumeAnswer( b
{
kdDebug(7007) << "SlaveInterface::sendResumeAnswer ok for resuming :" << resume << endl;
m_pConnection->sendnow( resume ? CMD_RESUMEANSWER : CMD_NONE, QByteArray() );
+}
+
+void SlaveInterface::sendConfiguration( const MetaData &data )
+{
+ QByteArray packedArgs;
+ QDataStream stream( packedArgs, IO_WriteOnly );
+ stream << data;
+ m_pConnection->sendnow(CMD_CONFIG, packedArgs);
}
void SlaveInterface::openPassDlg( const QString& prompt, const QString& user, bool readOnly )
Index: slaveinterface.h
===================================================================
RCS file: /home/kde/kdelibs/kio/slaveinterface.h,v
retrieving revision 1.47
diff -u -3 -p -r1.47 slaveinterface.h
--- slaveinterface.h 2001/03/23 11:35:59 1.47
+++ slaveinterface.h 2001/03/28 16:04:48
@@ -65,7 +65,8 @@ class SlaveInterfacePrivate;
CMD_SYMLINK = 'Q', // 81
CMD_SUBURL = 'R', // 82 Inform the slave about the url it is streaming on.
CMD_MESSAGEBOXANSWER = 'S', // 83
- CMD_RESUMEANSWER = 'T' // 84
+ CMD_RESUMEANSWER = 'T', // 84
+ CMD_CONFIG = 'U' // 85
// Add new ones here once a release is done, to avoid breaking binary compatibility.
// Note that protocol-specific commands shouldn't be added here, but should use special.
};
@@ -109,8 +110,13 @@ class SlaveInterfacePrivate;
MSG_NET_DROP,
MSG_NEED_SUBURL_DATA,
MSG_CANRESUME,
+<<<<<<< slaveinterface.h
MSG_AUTH_KEY,
+ MSG_NEED_CONFIG
+=======
+ MSG_AUTH_KEY,
MSG_DEL_AUTH_KEY
+>>>>>>> 1.47
// add new ones here once a release is done, to avoid breaking binary compatibility
};
@@ -139,6 +145,11 @@ public:
// (to tell the "put" job whether to resume or not)
void sendResumeAnswer( bool resume );
+ /**
+ * Send configuration to slave
+ */
+ void sendConfiguration(const MetaData &);
+
signals:
///////////
// Messages sent by the slave
@@ -154,6 +165,7 @@ signals:
void statEntry( const KIO::UDSEntry& );
void needSubURLData();
void needProgressId();
+ void needConfiguration(const KIO::MetaData &);
void canResume( unsigned long ) ;
>> Visit http://master.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic