================
Comment at: lib/Basic/VirtualFileSystem.cpp:62-83
@@ +61,24 @@
+
+ErrorOr<AbstractFileSystem::Status>
+AbstractFileSystem::status(AbstractFileSystem::FileDescriptor FD) {
+ // FIXME: when we support virtual files, use information from the FD to
lookup
+ // which AbstractFileSystem to perform this operation on.
+ return getRealFileSystem()->statusOfOpenFile(FD);
+}
+
+error_code AbstractFileSystem::getBufferForFile(
+ FileDescriptor FD, const llvm::Twine &Name,
+ llvm::OwningPtr<llvm::MemoryBuffer> &Result, int64_t FileSize,
+ bool RequiresNullTerminator) {
+ // FIXME: when we support virtual files, use information from the FD to
lookup
+ // which AbstractFileSystem to perform this operation on.
+ return getRealFileSystem()->getBufferForOpenFile(FD, Name, Result, FileSize,
+ RequiresNullTerminator);
+}
+
+error_code AbstractFileSystem::close(AbstractFileSystem::FileDescriptor FD) {
+ // FIXME: when we support virtual files, use information from the FD to
lookup
+ // which AbstractFileSystem to perform this operation on.
+ return getRealFileSystem()->closeOpenFile(FD);
+}
+
----------------
Ben Langmuir wrote:
> Manuel Klimek wrote:
> > I'd have expected this->*OpenFile(...) calls in those methods.
> These methods take a file descriptor as a parameter, so the file is already
> open.
Oh sorry, I think I misunderstood your comment.
The reason we don't call this->*OpenFile in here is that the FileDescriptor
object (when we create one) should give us the AbstractFileSystem that we need
to call the method on. If we have a virtual file system composed of several
AbstractFileSystems overlaid on top of each other, we shouldn't have to search
for which file system owns the open file, since by opening it we already
figured that out and can save it in the file descriptor.
http://llvm-reviews.chandlerc.com/D2745
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits