*
*/
-#ifndef __FSTREAM_HELPER__
-#define __FSTREAM_HELPER__
-
-#include <fstream>
+#ifndef SECURITY_SERVER_FSTREAM_ACCESSORS_H
+#define SECURITY_SERVER_FSTREAM_ACCESSORS_H
namespace DPL {
* physical device [fsync(int fd) - syscall] on opened fstream object
*/
-struct FstreamHelper : std::fstream::__filebuf_type {
- template<typename T>
- static int getFd(T &strm) {
- return static_cast<FstreamHelper *>(strm.rdbuf())->_M_file.fd();
+template<typename T>
+class FstreamAccessors : T::__filebuf_type {
+ typedef FstreamAccessors<T> MyType;
+public:
+ static int GetFd(T &strm) {
+ return static_cast<MyType *>(strm.rdbuf())->_M_file.fd();
}
};
} // namespace DPL
-#endif // __FSTREAM_HELPER__
+#endif // SECURITY_SERVER_FSTREAM_ACCESSORS_H
#include <dpl/log/audit-smack-log.h>
#include <dpl/log/log.h>
-#include <dpl/fstream-helper.h>
+#include <dpl/fstream_accessors.h>
#define UNUSED __attribute__((unused))
std::string("] ") << function << std::string("(): ") <<
message << std::endl;
- fsync(DPL::FstreamHelper::getFd(m_outputStream)); // flush kernel space buffer
+ fsync(DPL::FstreamAccessors<std::ofstream>::GetFd(m_outputStream)); // flush kernel space buffer
}
int AuditSmackLog::CreateLogFile()
#include <iterator>
#include <dpl/log/log.h>
-#include <dpl/fstream-helper.h>
+#include <dpl/fstream_accessors.h>
#include <security-server.h>
#include <password-exception.h>
}
file.flush();
- fsync(DPL::FstreamHelper::getFd(file)); // flush kernel space buffer
+ fsync(DPL::FstreamAccessors<std::ofstream>::GetFd(file)); // flush kernel space buffer
file.close();
}
#include <openssl/sha.h>
#include <dpl/log/log.h>
-#include <dpl/fstream-helper.h>
+#include <dpl/fstream_accessors.h>
#include <security-server.h>
#include <protocols.h>
}
attemptFile.flush();
- fsync(DPL::FstreamHelper::getFd(attemptFile)); // flush kernel space buffer
+ fsync(DPL::FstreamAccessors<std::ofstream>::GetFd(attemptFile)); // flush kernel space buffer
attemptFile.close();
}