00001 #ifndef STORAGE_FACTORY_REMOTE_FILE_H 00002 # define STORAGE_FACTORY_REMOTE_FILE_H 00003 00004 # include "Utilities/StorageFactory/interface/File.h" 00005 # include <string> 00006 00007 class RemoteFile : protected File 00008 { 00009 public: 00010 ~RemoteFile (void) { remove (); } 00011 00012 static int local (const std::string &tmpdir, std::string &temp); 00013 static Storage *get (int localfd, const std::string &name, 00014 char **cmd, int mode); 00015 00016 protected: 00017 virtual void close (void); 00018 virtual void abort (void); 00019 00020 private: 00021 RemoteFile (IOFD fd, const std::string &name); 00022 void remove (void); 00023 std::string name_; 00024 }; 00025 00026 #endif // STORAGE_FACTORY_REMOTE_FILE_H