Exemplo n.º 1
0
 internal static int OpenExisting(
     uint nodeId,
     string filename,
     FileAccess access,
     FileShare share,
     FileMode mode,
     FileOptions options,
     WorkspaceLocalFiles tmpStorage)
 {
     return(tmpStorage.OpenFile(
                nodeId,
                filename,
                access,
                share,
                mode,
                options));
 }
Exemplo n.º 2
0
 internal PlasticFileSystem(
     WorkspaceContent content,
     string cachePath,
     PlasticAPI plasticApi,
     FileHandles handles,
     WorkspaceLocalFiles tempStorage,
     VirtualFiles virtualFiles)
 {
     mWorkspaceContent      = content;
     mChangesTreeOperations = new ChangesTreeOperations(content);
     mLocalFilesPath        = cachePath;
     mFileCache             = new FileCache(mLocalFilesPath);
     mPlasticApi            = plasticApi;
     mHandles      = handles;
     mLocalFiles   = tempStorage;
     mVirtualFiles = virtualFiles;
 }
Exemplo n.º 3
0
            internal static int CreateNew(
                string filename,
                FileAccess access,
                FileShare share,
                FileMode mode,
                FileOptions options,
                Node tree,
                WorkspaceLocalFiles localFiles,
                out int error)
            {
                // it is a private file, just create it
                Node parent = WalkTree.Find(tree, Path.GetDirectoryName(filename));

                if (parent == null || !parent.IsDirectory())
                {
                    error = -DokanNet.ERROR_PATH_NOT_FOUND;
                    return(0);
                }

                if (!IsCreateMode(mode))
                {
                    error = -DokanNet.ERROR_FILE_NOT_FOUND;
                    return(0);
                }

                Node newNode = parent.CreateChild();

                newNode.InitPrivate(
                    DateTime.Now,
                    Path.GetFileName(filename),
                    FileAttributes.Normal);

                error = 0;

                return(localFiles.CreateNewFile(
                           newNode.GetNodeId(),
                           filename,
                           access,
                           share,
                           mode,
                           options));
            }
Exemplo n.º 4
0
            static internal int Create(
                string filename,
                FileAccess access,
                FileShare share,
                FileMode mode,
                FileOptions options,
                Node tree,
                FileCache fileCache,
                FileHandles fileHandles,
                PlasticAPI api,
                WorkspaceLocalFiles localFiles,
                Dynamic.HistoryDirectory historyDir,
                out bool bIsDirectory,
                out int error)
            {
                error        = 0;
                bIsDirectory = false;

                int handle = Dynamic.SpecNode.CreateFile(
                    filename, access, share, mode, options,
                    tree, fileCache, fileHandles, api);

                if (handle != -1)
                {
                    return(handle);
                }

                if (historyDir.CreateNewDir(
                        filename, access, tree, api))
                {
                    bIsDirectory = true;
                    return(-1);
                }

                return(LocalFile.CreateNew(
                           filename, access, share, mode, options, tree, localFiles, out error));
            }