private string doDelete(string line) { if (!isLoggedIn()) { return(MESSAGES.ERR); } int idx = line.IndexOf(path_sep); //String filePath = line.Substring(idx + 1); if (idx == -1) { return(doDeleteContainer(line)); } if (idx != line.LastIndexOf(path_sep)) { return(MESSAGES.ERR); } else { string lockstr = makeAbsPath(this.loggedInUsername, line); if (srv.getLocks().acquireWriteLock(lockstr)) { try { srv.getAzureLink().deleteFileFromContainer(this.loggedInUsername, line); return(MESSAGES.OK); //return srv.getAzureLink().downloadWithSAS(this.loggedInUserid, line); } catch (DBLikeExceptions.CloudContainerNotFoundException) { return(MESSAGES.E_NOFOLDER); } catch (DBLikeExceptions.CloudBlobNotFoundException) { return(MESSAGES.E_NOFILE); } catch (DBLikeExceptions.UnauthorizedAccessException) { return(MESSAGES.E_NOACCESS); } finally { srv.getLocks().releaseWriteLock(lockstr); } } else { return(MESSAGES.E_LOCK); } } }
private DBTransferManager(DBServer srv) { this.azureLink = srv.getAzureLink(); this.globalLocks = srv.getLocks(); pendingUploads = new Dictionary <string, UPLOAD_INFO>(); listenSocket = new TcpListener(IPAddress.Any, DBServer.SERVER_CONTROL_PORT + 1); listenSocket.Start(); new Thread(new ThreadStart(listen)).Start(); //control returns to DBServerWorker }