The Gaudi Framework  master (594c33fa)
IFileAccess Class Referenceabstract

#include <GaudiKernel/IFileAccess.h>

Inheritance diagram for IFileAccess:
Collaboration diagram for IFileAccess:

Public Member Functions

 DeclareInterfaceID (IFileAccess, 3, 1)
 InterfaceID. More...
 
virtual std::unique_ptr< std::istreamopen (std::string const &url)=0
 Find the URL and returns a unique_ptr to an input stream interface of an object that can be used to read from the file the URL is pointing to. More...
 
virtual std::optional< std::stringread (std::string const &url)
 Find the URL and returns an optional<string> to the content of the file the URL is pointing to. More...
 
virtual const std::vector< std::string > & protocols () const =0
 Protocols supported by the instance. More...
 
- Public Member Functions inherited from IInterface
virtual void * i_cast (const InterfaceID &) const =0
 main cast function More...
 
virtual std::vector< std::stringgetInterfaceNames () const =0
 Returns a vector of strings containing the names of all the implemented interfaces. More...
 
virtual unsigned long addRef ()=0
 Increment the reference count of Interface instance. More...
 
virtual unsigned long release ()=0
 Release Interface instance. More...
 
virtual unsigned long refCount () const =0
 Current reference count. More...
 
virtual StatusCode queryInterface (const InterfaceID &ti, void **pp)=0
 Set the void** to the pointer to the requested interface of the instance. More...
 
virtual ~IInterface ()=default
 Virtual destructor. More...
 

Additional Inherited Members

- Public Types inherited from IInterface
enum  Status : StatusCode::code_t {
  Status::FAILURE = 0, Status::SUCCESS = 1, Status::NO_INTERFACE, Status::VERSMISMATCH,
  Status::LAST_ERROR
}
 Return status. More...
 
using iid = Gaudi::InterfaceId< IInterface, 0, 0 >
 Interface ID. More...
 
using ext_iids = Gaudi::interface_list< iid >
 Extra interfaces. More...
 
- Static Public Member Functions inherited from IInterface
static const InterfaceIDinterfaceID ()
 Return an instance of InterfaceID identifying the interface. More...
 

Detailed Description

Abstract interface for a service or tool implementing a read access to files.

Author
Marco Clemencic
Date
2008-01-18

Definition at line 29 of file IFileAccess.h.

Member Function Documentation

◆ DeclareInterfaceID()

IFileAccess::DeclareInterfaceID ( IFileAccess  ,
,
 
)

◆ open()

virtual std::unique_ptr<std::istream> IFileAccess::open ( std::string const &  url)
pure virtual

Find the URL and returns a unique_ptr to an input stream interface of an object that can be used to read from the file the URL is pointing to.

Returns an empty pointer if the URL cannot be resolved.

◆ protocols()

virtual const std::vector<std::string>& IFileAccess::protocols ( ) const
pure virtual

Protocols supported by the instance.

◆ read()

virtual std::optional<std::string> IFileAccess::read ( std::string const &  url)
inlinevirtual

Find the URL and returns an optional<string> to the content of the file the URL is pointing to.

Returns an 'unengaged' optional if the URL cannot be resolved.

Definition at line 42 of file IFileAccess.h.

42  {
43  auto is = open( url );
44  if ( !is || !is->good() ) return std::nullopt;
46  }

The documentation for this class was generated from the following file:
std::string
STL class.
std::istreambuf_iterator
IFileAccess::open
virtual std::unique_ptr< std::istream > open(std::string const &url)=0
Find the URL and returns a unique_ptr to an input stream interface of an object that can be used to r...