Beispiel #1
0
        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
 }