CMS 3D CMS Logo

Public Member Functions

StorageMaker Class Reference

#include <StorageMaker.h>

Inheritance diagram for StorageMaker:
DCacheStorageMaker GsiFTPStorageMaker HttpStorageMaker LocalStorageMaker LStoreStorageMaker RFIOStorageMaker StormLcgGtStorageMaker StormStorageMaker XrdStorageMaker

List of all members.

Public Member Functions

virtual bool check (const std::string &proto, const std::string &path, IOOffset *size=0)
virtual Storageopen (const std::string &proto, const std::string &path, int mode)=0
virtual void setTimeout (unsigned int timeout)
virtual void stagein (const std::string &proto, const std::string &path)
 StorageMaker (void)
virtual ~StorageMaker (void)

Detailed Description

Definition at line 8 of file StorageMaker.h.


Constructor & Destructor Documentation

StorageMaker::StorageMaker ( void  )

Definition at line 6 of file StorageMaker.cc.

{}
StorageMaker::~StorageMaker ( void  ) [virtual]

Definition at line 9 of file StorageMaker.cc.

{}

Member Function Documentation

bool StorageMaker::check ( const std::string &  proto,
const std::string &  path,
IOOffset size = 0 
) [virtual]

Reimplemented in DCacheStorageMaker, LStoreStorageMaker, RFIOStorageMaker, LocalStorageMaker, StormLcgGtStorageMaker, StormStorageMaker, and XrdStorageMaker.

Definition at line 22 of file StorageMaker.cc.

References newFWLiteAna::found, mode, open(), IOFlags::OpenRead, IOFlags::OpenUnbuffered, and asciidump::s.

{
  // Fallback method is to open the file and check its
  // size.  Because grid jobs run in a directory where
  // there is usually more space than in /tmp, and that
  // directory is automatically cleaned up, open up the
  // temporary files in the current directory.  If the
  // file is downloaded, it will delete itself in the
  // destructor or close method.
  bool found = false;
  int mode = IOFlags::OpenRead | IOFlags::OpenUnbuffered;
  if (Storage *s = open (proto, path, mode))
  {
    if (size)
      *size = s->size ();

    s->close ();
    delete s;

    found = true;
  }

  return found;
}
virtual Storage* StorageMaker::open ( const std::string &  proto,
const std::string &  path,
int  mode 
) [pure virtual]
void StorageMaker::setTimeout ( unsigned int  timeout) [virtual]

Reimplemented in DCacheStorageMaker.

Definition at line 18 of file StorageMaker.cc.

{}
void StorageMaker::stagein ( const std::string &  proto,
const std::string &  path 
) [virtual]

Reimplemented in DCacheStorageMaker, RFIOStorageMaker, and XrdStorageMaker.

Definition at line 13 of file StorageMaker.cc.

{}