8 #ifndef GAUDISVC_FILEMGR_H
9 #define GAUDISVC_FILEMGR_H 1
11 #include "GaudiKernel/IFileMgr.h"
12 #include "GaudiKernel/Service.h"
13 #include "GaudiKernel/IIncidentListener.h"
14 #include "GaudiKernel/ClassID.h"
15 #include "GaudiKernel/MsgStream.h"
16 #include "GaudiKernel/StatusCode.h"
50 int getFileAttr(
const std::string&, std::vector<const FileAttr*>&)
const override;
59 int getFiles(std::vector<std::string>&,
bool onlyOpen=
true)
const override;
60 int getFiles(std::vector<const Io::FileAttr*>&,
61 bool onlyOpen=
true)
const override;
63 bool onlyOpen=
true)
const override;
65 bool onlyOpen=
true)
const override;
67 std::vector<std::string>&,
bool onlyOpen=
true)
const override;
69 std::vector<const Io::FileAttr*>&,
70 bool onlyOpen=
true)
const override;
72 int getFd(std::vector<Fd>&)
const override;
75 std::vector<Io::Fd> &)
const override;
78 const std::string&
fname(
const Io::Fd&)
const override;
79 const std::string&
fname(
void*)
const override;
82 Io::Fd fd(
const std::string&)
const override;
85 void*
fptr(
const std::string&)
const override;
93 const std::string& fname,
95 const std::string& desc=
"",
96 const bool shared=
false)
override;
100 const std::string& fname,
102 const std::string& desc=
"",
103 const bool shared=
false)
override;
107 const std::string& fname,
109 const std::string& desc=
"",
110 const bool shared=
false)
override;
117 const std::string& caller)
override;
119 const std::string& caller)
override;
123 const std::string& desc=
"")
override;
125 const Io::IoTech&,
const std::string& desc=
"")
override;
137 const std::string& fname,
const std::string& desc,
142 typedef std::map<Io::Action, std::list<bfcn_desc_t> >
actionMap;
145 const actionMap&
m)
const;
148 bool strict=
false)
const;
152 typedef std::multimap<std::string, FileAttr*>
fileMap;
157 std::vector<std::unique_ptr<FileAttr>>
m_attr;
163 typedef std::map<std::string, int>
supMap;
169 std::unique_ptr<RootFileHandler>
m_rfh;
170 std::unique_ptr<POSIXFileHandler>
m_pfh;
std::vector< std::unique_ptr< FileAttr > > m_attr
StatusCode regHandler(FileHdlr) override
StatusCode getHandler(const IoTech &, FileHdlr &) const override
Io::Fd fd(const std::string &) const override
Definition of the MsgStream class used to transmit messages.
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
std::function< StatusCode(FILEMGR_CALLBACK_ARGS) > bfcn_action_t
Io::open_t open(const Io::IoTech &, const std::string &caller, const std::string &fname, const Io::IoFlags &, Io::Fd &fd, void *&ptr, const std::string &desc="", const bool shared=false) override
void suppressAction(const std::string &) override
std::map< Io::Action, std::list< bfcn_desc_t > > actionMap
int getLastError(std::string &) const override
StatusCode deregHandler(const IoTech &) override
StatusCode execAction(Io::FileAttr *, const std::string &, const Io::Action &) const
std::map< Fd, FileAttr * > m_descriptors
StatusCode hasHandler(const IoTech &) const override
bool accessMatch(const Io::IoFlags &, const Io::IoFlags &, bool strict=false) const
std::unique_ptr< RootFileHandler > m_rfh
virtual void listActions() const
std::map< IoTech, FileHdlr > m_handlers
void handle(const Incident &) override
This class is used for returning status codes from appropriate routines.
Io::reopen_t reopen(const Fd, const IoFlags &, const std::string &caller) override
StatusCode execActs(Io::FileAttr *, const std::string &, const Io::Action &, const actionMap &m) const
BooleanProperty m_printSummary
std::pair< Io::bfcn_action_t, std::string > bfcn_desc_t
Io::close_t close(const Fd, const std::string &caller) override
std::unique_ptr< POSIXFileHandler > m_pfh
int getFileAttr(const std::string &, std::vector< const FileAttr * > &) const override
StatusCode regAction(Io::bfcn_action_t, const Io::Action &, const std::string &desc="") override
FileMgr(const std::string &name, ISvcLocator *svc)
std::multimap< std::string, FileAttr * > fileMap
BooleanProperty m_loadRootHandler
std::vector< FileAttr * > m_oldFiles
const std::string & fname(const Io::Fd &) const override
BooleanProperty m_loadPosixHandler
Base class used to extend a class implementing other interfaces.
virtual void listSuppression() const
void * fptr(const std::string &) const override
StringProperty m_ssl_cert
Base class for all Incidents (computing events).
bool isShareable(const std::string &filename, const Io::IoFlags &) const
int getFiles(std::vector< std::string > &, bool onlyOpen=true) const override
void listFiles() const override
StringProperty m_ssl_proxy
void listHandlers() const override
int getFd(std::vector< Fd > &) const override
StatusCode finalize() override
StatusCode initialize() override
std::map< IoTech, actionMap > m_actions
std::map< std::string, int > supMap