get rid of the source limiting; wasn't used, only overhead
This commit is contained in:
parent
fee7b32974
commit
b31a05c41e
@ -263,26 +263,6 @@ void DataEngine::addSource(DataContainer *source)
|
|||||||
scheduleSourcesUpdated();
|
scheduleSourcesUpdated();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DataEngine::setMaxSourceCount(uint limit)
|
|
||||||
{
|
|
||||||
if (d->limit == limit) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
d->limit = limit;
|
|
||||||
|
|
||||||
if (d->limit > 0) {
|
|
||||||
d->trimQueue();
|
|
||||||
} else {
|
|
||||||
d->sourceQueue.clear();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
uint DataEngine::maxSourceCount() const
|
|
||||||
{
|
|
||||||
return d->limit;
|
|
||||||
}
|
|
||||||
|
|
||||||
void DataEngine::setMinimumPollingInterval(int minimumMs)
|
void DataEngine::setMinimumPollingInterval(int minimumMs)
|
||||||
{
|
{
|
||||||
d->minPollingInterval = minimumMs;
|
d->minPollingInterval = minimumMs;
|
||||||
@ -308,19 +288,6 @@ void DataEngine::removeSource(const QString &source)
|
|||||||
SourceDict::iterator it = d->sources.find(source);
|
SourceDict::iterator it = d->sources.find(source);
|
||||||
if (it != d->sources.end()) {
|
if (it != d->sources.end()) {
|
||||||
DataContainer *s = it.value();
|
DataContainer *s = it.value();
|
||||||
|
|
||||||
// remove it from the limit queue if we're keeping one
|
|
||||||
if (d->limit > 0) {
|
|
||||||
QQueue<DataContainer*>::iterator it = d->sourceQueue.begin();
|
|
||||||
while (it != d->sourceQueue.end()) {
|
|
||||||
if (*it == s) {
|
|
||||||
d->sourceQueue.erase(it);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
++it;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
s->d->store();
|
s->d->store();
|
||||||
s->disconnect(this);
|
s->disconnect(this);
|
||||||
s->deleteLater();
|
s->deleteLater();
|
||||||
@ -519,7 +486,6 @@ DataEnginePrivate::DataEnginePrivate(DataEngine *e, const KPluginInfo &info)
|
|||||||
checkSourcesTimerId(0),
|
checkSourcesTimerId(0),
|
||||||
updateTimerId(0),
|
updateTimerId(0),
|
||||||
minPollingInterval(-1),
|
minPollingInterval(-1),
|
||||||
limit(0),
|
|
||||||
valid(true),
|
valid(true),
|
||||||
script(0),
|
script(0),
|
||||||
package(0),
|
package(0),
|
||||||
@ -616,17 +582,6 @@ DataContainer *DataEnginePrivate::source(const QString &sourceName, bool createW
|
|||||||
DataEngine::SourceDict::const_iterator it = sources.constFind(sourceName);
|
DataEngine::SourceDict::const_iterator it = sources.constFind(sourceName);
|
||||||
if (it != sources.constEnd()) {
|
if (it != sources.constEnd()) {
|
||||||
DataContainer *s = it.value();
|
DataContainer *s = it.value();
|
||||||
if (limit > 0) {
|
|
||||||
QQueue<DataContainer*>::iterator it = sourceQueue.begin();
|
|
||||||
while (it != sourceQueue.end()) {
|
|
||||||
if (*it == s) {
|
|
||||||
sourceQueue.erase(it);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
++it;
|
|
||||||
}
|
|
||||||
sourceQueue.enqueue(s);
|
|
||||||
}
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -642,10 +597,6 @@ DataContainer *DataEnginePrivate::source(const QString &sourceName, bool createW
|
|||||||
QObject::connect(s, SIGNAL(updateRequested(DataContainer*)),
|
QObject::connect(s, SIGNAL(updateRequested(DataContainer*)),
|
||||||
q, SLOT(internalUpdateSource(DataContainer*)));
|
q, SLOT(internalUpdateSource(DataContainer*)));
|
||||||
|
|
||||||
if (limit > 0) {
|
|
||||||
trimQueue();
|
|
||||||
sourceQueue.enqueue(s);
|
|
||||||
}
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -733,16 +684,6 @@ DataContainer *DataEnginePrivate::requestSource(const QString &sourceName, bool
|
|||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DataEnginePrivate::trimQueue()
|
|
||||||
{
|
|
||||||
uint queueCount = sourceQueue.count();
|
|
||||||
while (queueCount >= limit && !sourceQueue.isEmpty()) {
|
|
||||||
DataContainer *punted = sourceQueue.dequeue();
|
|
||||||
q->removeSource(punted->objectName());
|
|
||||||
queueCount = sourceQueue.count();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// put all setup routines for script here. at this point we can assume that
|
// put all setup routines for script here. at this point we can assume that
|
||||||
// package exists and that we have a script engine
|
// package exists and that we have a script engine
|
||||||
void DataEnginePrivate::setupScriptSupport()
|
void DataEnginePrivate::setupScriptSupport()
|
||||||
|
17
dataengine.h
17
dataengine.h
@ -215,14 +215,6 @@ NoAlignment) const;
|
|||||||
*/
|
*/
|
||||||
bool isEmpty() const;
|
bool isEmpty() const;
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the maximum number of sources this DataEngine will have
|
|
||||||
* at any given time.
|
|
||||||
*
|
|
||||||
* @return the maximum number of sources; zero means no limit.
|
|
||||||
*/
|
|
||||||
uint maxSourceCount() const;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the name of the icon for this data engine; and empty string
|
* @return the name of the icon for this data engine; and empty string
|
||||||
* is returned if there is no associated icon.
|
* is returned if there is no associated icon.
|
||||||
@ -366,15 +358,6 @@ NoAlignment) const;
|
|||||||
**/
|
**/
|
||||||
void addSource(DataContainer *source);
|
void addSource(DataContainer *source);
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets an upper limit on the number of data sources to keep in this engine.
|
|
||||||
* If the limit is exceeded, then the oldest data source, as defined by last
|
|
||||||
* update, is dropped.
|
|
||||||
*
|
|
||||||
* @param limit the maximum number of sources to keep active
|
|
||||||
**/
|
|
||||||
void setMaxSourceCount(uint limit);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the minimum amount of time, in milliseconds, that must pass between
|
* Sets the minimum amount of time, in milliseconds, that must pass between
|
||||||
* successive updates of data. This can help prevent too many updates happening
|
* successive updates of data. This can help prevent too many updates happening
|
||||||
|
@ -20,7 +20,6 @@
|
|||||||
#ifndef DATAENGINE_P_H
|
#ifndef DATAENGINE_P_H
|
||||||
#define DATAENGINE_P_H
|
#define DATAENGINE_P_H
|
||||||
|
|
||||||
#include <QQueue>
|
|
||||||
#include <QTime>
|
#include <QTime>
|
||||||
|
|
||||||
#include <kplugininfo.h>
|
#include <kplugininfo.h>
|
||||||
@ -41,7 +40,6 @@ class DataEnginePrivate
|
|||||||
void connectSource(DataContainer *s, QObject *visualization, uint pollingInterval,
|
void connectSource(DataContainer *s, QObject *visualization, uint pollingInterval,
|
||||||
Plasma::IntervalAlignment align, bool immediateCall = true);
|
Plasma::IntervalAlignment align, bool immediateCall = true);
|
||||||
DataContainer *requestSource(const QString &sourceName, bool *newSource = 0);
|
DataContainer *requestSource(const QString &sourceName, bool *newSource = 0);
|
||||||
void trimQueue();
|
|
||||||
void internalUpdateSource(DataContainer*);
|
void internalUpdateSource(DataContainer*);
|
||||||
void setupScriptSupport();
|
void setupScriptSupport();
|
||||||
|
|
||||||
@ -109,9 +107,7 @@ class DataEnginePrivate
|
|||||||
int minPollingInterval;
|
int minPollingInterval;
|
||||||
QTime updateTimestamp;
|
QTime updateTimestamp;
|
||||||
DataEngine::SourceDict sources;
|
DataEngine::SourceDict sources;
|
||||||
QQueue<DataContainer*> sourceQueue;
|
|
||||||
QString icon;
|
QString icon;
|
||||||
uint limit;
|
|
||||||
bool valid;
|
bool valid;
|
||||||
DataEngineScript *script;
|
DataEngineScript *script;
|
||||||
QString engineName;
|
QString engineName;
|
||||||
|
@ -130,13 +130,6 @@ void DataEngineScript::removeData(const QString &source, const QString &key)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DataEngineScript::setMaxSourceCount(uint limit)
|
|
||||||
{
|
|
||||||
if (d->dataEngine) {
|
|
||||||
d->dataEngine->setMaxSourceCount(limit);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void DataEngineScript::setMinimumPollingInterval(int minimumMs)
|
void DataEngineScript::setMinimumPollingInterval(int minimumMs)
|
||||||
{
|
{
|
||||||
if (d->dataEngine) {
|
if (d->dataEngine) {
|
||||||
|
@ -130,7 +130,6 @@ protected:
|
|||||||
|
|
||||||
void removeAllData(const QString &source);
|
void removeAllData(const QString &source);
|
||||||
void removeData(const QString &source, const QString &key);
|
void removeData(const QString &source, const QString &key);
|
||||||
void setMaxSourceCount(uint limit);
|
|
||||||
void setMinimumPollingInterval(int minimumMs);
|
void setMinimumPollingInterval(int minimumMs);
|
||||||
int minimumPollingInterval() const;
|
int minimumPollingInterval() const;
|
||||||
void setPollingInterval(uint frequency);
|
void setPollingInterval(uint frequency);
|
||||||
|
Loading…
Reference in New Issue
Block a user