summaryrefslogtreecommitdiffstats
path: root/src/daemon/jsondbview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/daemon/jsondbview.cpp')
-rw-r--r--src/daemon/jsondbview.cpp33
1 files changed, 13 insertions, 20 deletions
diff --git a/src/daemon/jsondbview.cpp b/src/daemon/jsondbview.cpp
index 4ca6e24..4adc5d6 100644
--- a/src/daemon/jsondbview.cpp
+++ b/src/daemon/jsondbview.cpp
@@ -159,18 +159,13 @@ void JsonDbView::createMapDefinition(QJsonObject mapDefinition)
qDebug() << "createMapDefinition" << uuid << targetType << "{";
JsonDbOwner *owner = new JsonDbOwner(this);
- owner->setOwnerCapabilities(mapDefinition.value(JsonDbString::kOwnerStr).toString(), mPartition);
+ owner->setAllowAll(true);
JsonDbMapDefinition *def = new JsonDbMapDefinition(owner, mPartition, mapDefinition, this);
+ def->initIndexes();
+
QStringList sourceTypes = def->sourceTypes();
for (int i = 0; i < sourceTypes.size(); i++) {
const QString sourceType = sourceTypes[i];
- if (mMapDefinitionsBySource.contains(sourceType)) {
- qWarning() << QString("Duplicate Map definition on source %1 and target %2")
- .arg(sourceType).arg(targetType);
- def->setError(QString("Duplicate Map definition on source %1 and target %2")
- .arg(sourceType).arg(targetType));
- return;
- }
mMapDefinitionsBySource.insert(sourceType, def);
}
mMapDefinitions.insert(def->uuid(), def);
@@ -192,7 +187,6 @@ void JsonDbView::removeMapDefinition(QJsonObject mapDefinition)
const QStringList &sourceTypes = def->sourceTypes();
for (int i = 0; i < sourceTypes.size(); i++)
mMapDefinitionsBySource.remove(sourceTypes[i]);
-
break;
}
}
@@ -210,14 +204,9 @@ void JsonDbView::createReduceDefinition(QJsonObject reduceDefinition)
qDebug() << "createReduceDefinition" << sourceType << targetType << sourceType << "{";
JsonDbOwner *owner = new JsonDbOwner(this);
- owner->setOwnerCapabilities(reduceDefinition.value(JsonDbString::kOwnerStr).toString(), mPartition);
+ owner->setAllowAll(true);
JsonDbReduceDefinition *def = new JsonDbReduceDefinition(owner, mPartition, reduceDefinition, this);
- if (mReduceDefinitionsBySource.contains(sourceType)) {
- def->setError(QString("Duplicate Reduce definition on source %1 and target %2")
- .arg(sourceType).arg(targetType));
- return;
- }
-
+ def->initIndexes();
mReduceDefinitionsBySource.insert(sourceType, def);
mReduceDefinitions.insert(def->uuid(), def);
@@ -381,6 +370,8 @@ void JsonDbView::updateView(quint32 desiredStateNumber)
if (jsondbSettings->performanceLog())
qDebug() << "updateView" << mViewType << timer.elapsed() << "ms";
mUpdating = false;
+
+ emit updated(mViewType);
}
bool JsonDbView::processUpdatedDefinitions(const QString &viewType, quint32 targetStateNumber,
@@ -431,10 +422,12 @@ bool JsonDbView::processUpdatedDefinitions(const QString &viewType, quint32 targ
}
definitionUuid = after.value(JsonDbString::kUuidStr).toString();
QString definitionType = after.value(JsonDbString::kTypeStr).toString();
- if (definitionType == JsonDbString::kMapTypeStr)
- mMapDefinitions.value(definitionUuid)->definitionCreated();
- else
- mReduceDefinitions.value(definitionUuid)->definitionCreated();
+ if (!after.contains(JsonDbString::kActiveStr) || after.value(JsonDbString::kActiveStr).toBool()) {
+ if (definitionType == JsonDbString::kMapTypeStr)
+ mMapDefinitions.value(definitionUuid)->definitionCreated();
+ else
+ mReduceDefinitions.value(definitionUuid)->definitionCreated();
+ }
}
}
if (!definitionUuid.isEmpty())