Esempio n. 1
0
void UploadQueue::processEvent(const SyncEvent* _event) {
  Backend *backend = BackendManager::getActiveBackend();
  if(backend == nullptr) {
    LOG(DEBUG)<<"No active backend";
    return;
  }
  //accessing _event->node is dangerous it may be deleted from main thread!
  switch (_event->type) {
    case SyncEventType::DELETE:
      if(!checkEventValidity(*_event)) break;
      LOG(DEBUG)<<"Event:DELETE fullpath:"<<_event->fullPathBuffer;
      backend->remove(_event);
      break;
    case SyncEventType::RENAME:
      if(!checkEventValidity(*_event)) break;
      //LOG(DEBUG)<<"Event:RENAME from:"<<_event->fullPathBuffer<<" to:"<<_event->node->getFullPath();
      backend->move(_event);
      break;
    case SyncEventType::UPDATE_CONTENT:
      if(!checkEventValidity(*_event)) break;
      //log_msg("Event:UPDATE_CONTENT file:%s\n",_event->node->getFullPath().c_str());
      backend->put(_event);
      break;
    case SyncEventType::UPDATE_METADATA:
      if(!checkEventValidity(*_event)) break;
      //log_msg("Event:UPDATE_METADATA file:%s\n",_event->node->getFullPath().c_str());
      backend->put_metadata(_event);
      break;
    default:
      LOG(ERROR)<<"INVALID Event: file:"<<_event->fullPathBuffer<<" TYPE:"<<
      SyncEvent::getEnumString(_event->type);
  }
}