/* Entry point for sharing file with a user*/ public void shareFileWithUser(string clientId, string filename, string sharedWithUser) { Logger.Debug("Sharing file " + filename + " owned by user " + clientId + " with user " + sharedWithUser); UserFileSystem fs = getUserFSFromMapSynchronized(clientId); bool filepresent = fs.isFilePresentSynchronized(filename); if (!filepresent) { throw new FileNotFoundException("File not present in memory for client : " + filename + " for client : " + clientId); } fs.addSharedUserToFileSynchronized(filename, sharedWithUser); UserFileSystem sharedFS = getUserFSFromMapSynchronized(sharedWithUser); bool added = sharedFS.addSharedFileSynchronized(new SharedFile(clientId, filename)); if (!added) { Logger.Debug("Shared file was already present, skipping"); } }
/* Entry point for un-sharing file with a user*/ public void unShareFileWithUser(string clientId, string filename, string sharedWithUser) { Logger.Debug("Un Sharing file " + filename + " owned by user " + clientId + " with user " + sharedWithUser); UserFileSystem fs = getUserFSFromMapSynchronized(clientId); bool filepresent = fs.isFilePresentSynchronized(filename); fs.removeSharedUserFromFileSynchronized(filename, sharedWithUser); if (!filepresent) { throw new FileNotFoundException("File not present in memory for client : " + filename + " for client : " + clientId); } UserFileSystem sharedFS = getUserFSFromMapSynchronized(sharedWithUser); bool deleted = sharedFS.deleteSharedFileSynchronized(new SharedFile(clientId, filename)); if (!deleted) { Logger.Debug("Shared file was not present , skipping deletion"); } }