CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
edm::storage Namespace Reference

Namespaces

 IOFlags
 

Classes

class  DavixFile
 
class  DavixStorageMaker
 
class  DCacheFile
 
class  DCacheStorageMaker
 
class  File
 
class  GsiFTPStorageMaker
 
class  HttpStorageMaker
 
class  IOBuffer
 
struct  IOPosBuffer
 
class  LocalCacheFile
 
class  LocalFileSystem
 
class  LocalStorageMaker
 
class  LStoreFile
 
class  LStoreStorageMaker
 
class  RemoteFile
 
class  StatisticsSenderService
 
class  Storage
 
class  StorageAccount
 
class  StorageAccountProxy
 
class  StorageFactory
 
class  StorageMaker
 
class  StormLcgGtStorageMaker
 
class  StormStorageMaker
 
class  XrdFile
 
class  XrdStorageMaker
 

Typedefs

typedef int IOFD
 
typedef int64_t IOOffset
 
typedef size_t IOSize
 
typedef
edmplugin::PluginFactory
< StorageMaker *()> 
StorageMakerFactory
 

Enumerations

enum  IOMask {
  IORead = 0x01, IOWrite = 0x02, IOUrgent = 0x04, IOAccept = 0x08,
  IOConnect = 0x10
}
 

Functions

IOSize IOSized (IOOffset n)
 

Variables

constexpr int EDM_IOFD_INVALID = -1
 
constexpr int PREFETCH_PROBE_LENGTH = 4096
 

Detailed Description

Proxy class that wraps SEAL's #Storage class with one that ticks #StorageAccount counters for significant operations. The returned #Storage objects from #StorageMaker are automatically wrapped with this class.

Future improvement would be to implement more methods so that the wrapper itself doesn't cause peroformance degradation if the base storage does actually implement "sophisticated" features.

Typedef Documentation

typedef int edm::storage::IOFD

Type the system uses for channel descriptors.

Definition at line 23 of file IOTypes.h.

typedef int64_t edm::storage::IOOffset

Type for file offsets for I/O operations, including file sizes. This type is always compatible with large files (64-bit offsets) whether the system supports them or not. This type is signed.

Definition at line 20 of file IOTypes.h.

typedef size_t edm::storage::IOSize

Type for buffer sizes in I/O operations. It measures units in memory: buffer sizes, amounts to read and write, etc., and is unsigned. Never use IOSize to measure file offsets, as it is most likely smaller than the file offset type on your system!

Definition at line 15 of file IOTypes.h.

Definition at line 7 of file StorageMakerFactory.h.

Enumeration Type Documentation

I/O operation mask.

Enumerator
IORead 
IOWrite 
IOUrgent 
IOAccept 
IOConnect 

Definition at line 26 of file IOTypes.h.

26  {
27  IORead = 0x01, //< Read
28  IOWrite = 0x02, //< Write
29  IOUrgent = 0x04, //< Exceptional or urgent condition
30  IOAccept = 0x08, //< Socket accept
31  IOConnect = 0x10 //< Socket connect
32  };

Function Documentation

IOSize edm::storage::IOSized ( IOOffset  n)
inline

Safely convert IOOffset n into a IOSize quantity. If n is larger than what IOSize can hold, it is truncated to maximum value that can be held in IOSize.

Definition at line 37 of file IOTypes.h.

37  {
38  // If IOSize and IOOffset are the same size, largest positive value
39  // is half of maximum IOSize. Otherwise all bits of IOSize work.
40  IOOffset largest = (sizeof(IOOffset) == sizeof(IOSize) ? ~IOSize(0) / 2 : ~IOSize(0));
41  return IOSize(n > largest ? largest : n);
42  }
int64_t IOOffset
Definition: IOTypes.h:20
size_t IOSize
Definition: IOTypes.h:15

Variable Documentation

constexpr int edm::storage::EDM_IOFD_INVALID = -1
constexpr int edm::storage::PREFETCH_PROBE_LENGTH = 4096

Definition at line 18 of file Storage.h.

Referenced by TStorageFactoryFile::ReadBufferAsync().