Skip to content

Commit 0281ce5

Browse files
committed
Fix add/delete processors via HTTP server
1 parent 092c25f commit 0281ce5

1 file changed

Lines changed: 27 additions & 17 deletions

File tree

Source/Utils/OpenEphysHttpServer.h

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -506,7 +506,7 @@ class OpenEphysHttpServer : juce::Thread {
506506
return;
507507
}
508508

509-
std::string procId;
509+
int procId;
510510
if (!request_json.contains("id")) {
511511
LOGD( "No 'id' element found." );
512512
res.set_content("Request must contain processor id.", "text/plain");
@@ -518,7 +518,7 @@ class OpenEphysHttpServer : juce::Thread {
518518
LOGD( "Found a processor id." );
519519
}
520520

521-
auto processor = find_processor(procId);
521+
auto processor = find_processor(String(procId).toStdString());
522522
if (processor == nullptr) {
523523
LOGD( "Could not find processor" );
524524
res.status = 404;
@@ -533,9 +533,11 @@ class OpenEphysHttpServer : juce::Thread {
533533
String processorName = processor->getDisplayName();
534534

535535
processorNodes.add(processor);
536+
537+
const MessageManagerLock mml;
536538
graph_->deleteNodes(processorNodes);
537539

538-
return_msg = processorName + " [" + procId + "] deleted successfully";
540+
return_msg = processorName + " [" + String(procId) + "] deleted successfully";
539541
} else {
540542
return_msg = "Cannot delete processors while acquisition is active.";
541543
}
@@ -572,10 +574,11 @@ class OpenEphysHttpServer : juce::Thread {
572574
}
573575
else {
574576
procName = request_json["name"];
575-
LOGD( "Found a processor name." );
577+
LOGD( "Found processor name: ", procName);
576578
}
577579

578-
std::string sourceNodeId, destNodeId;
580+
int sourceNodeId = 0;
581+
int destNodeId = 0;
579582
if (!request_json.contains("source_id") && !request_json.contains("dest_id")) {
580583
LOGD( "No 'source_id' or 'dest_id' element found." );
581584
res.set_content("Request must contain source or destination processor node id.", "text/plain");
@@ -615,24 +618,31 @@ class OpenEphysHttpServer : juce::Thread {
615618
{
616619
auto description = AccessClass::getProcessorList()->getItemDescriptionfromList(procName);
617620

618-
GenericProcessor *sourceProcessor, *destProcessor;
619-
if(sourceNodeId.empty())
621+
GenericProcessor* sourceProcessor = nullptr;
622+
GenericProcessor* destProcessor = nullptr;
623+
624+
if(sourceNodeId == 0)
620625
{
621-
destProcessor = graph_->getProcessorWithNodeId(std::stoi(destNodeId));
622-
sourceProcessor = destProcessor->getSourceNode();
623-
sourceNodeId = std::to_string(sourceProcessor->getNodeId());
626+
destProcessor = graph_->getProcessorWithNodeId(destNodeId);
624627
}
625628
else
626629
{
627-
sourceProcessor = graph_->getProcessorWithNodeId(std::stoi(sourceNodeId));
628-
destProcessor = sourceProcessor->getDestNode();
630+
sourceProcessor = graph_->getProcessorWithNodeId(sourceNodeId);
629631
}
630-
631-
graph_->createProcessor(description,
632-
sourceProcessor,
633-
destProcessor);
634632

635-
return_msg = procName + " added after node " + sourceNodeId + " successfully";
633+
if (sourceProcessor == nullptr && destProcessor == nullptr)
634+
{
635+
return_msg = "Neither source node ID nor dest node ID could be found.";
636+
}
637+
else {
638+
const MessageManagerLock mml;
639+
graph_->createProcessor(description,
640+
sourceProcessor,
641+
destProcessor);
642+
643+
return_msg = procName + " added successfully";
644+
}
645+
636646
} else {
637647
return_msg = "Cannot add processors while acquisition is active.";
638648
}

0 commit comments

Comments
 (0)