Fix implementation and rename FstreamHelper to FstreamAccessros.
authorBartlomiej Grzelewski <b.grzelewski@samsung.com>
Wed, 12 Feb 2014 14:19:50 +0000 (15:19 +0100)
committerBartlomiej Grzelewski <b.grzelewski@samsung.com>
Wed, 12 Feb 2014 18:09:40 +0000 (19:09 +0100)
[Issue#]    N/A
[Bug]       FstreamHelper always inherited from fstream::__filebuf but it gets
            as param ofstream and should inherits from
            ofstream::__filebuf.
[Cause]     Name FstreamHelper was miningless.
[Solution]  N/A

[Verfication] Build, run tests.

Change-Id: I2a884860032d84f7cac05084dab4d3e3a2a5bbe9

src/server/dpl/core/include/dpl/fstream_accessors.h [moved from src/server/dpl/core/include/dpl/fstream-helper.h with 77% similarity]
src/server/dpl/log/src/audit-smack-log.cpp
src/server/service/password-file-buffer.cpp
src/server/service/password-file.cpp

  *
  */
 
-#ifndef __FSTREAM_HELPER__
-#define __FSTREAM_HELPER__
-
-#include <fstream>
+#ifndef SECURITY_SERVER_FSTREAM_ACCESSORS_H
+#define SECURITY_SERVER_FSTREAM_ACCESSORS_H
 
 namespace DPL {
 
@@ -36,13 +34,15 @@ 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
index dbd328e..d3a704c 100644 (file)
@@ -39,7 +39,7 @@
 
 #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))
 
@@ -136,7 +136,7 @@ void AuditSmackLog::HandleWrite(const char *message,
         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()
index 4172071..8ce8ade 100644 (file)
@@ -28,7 +28,7 @@
 #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>
@@ -85,7 +85,7 @@ namespace SecurityServer
         }
 
         file.flush();
-        fsync(DPL::FstreamHelper::getFd(file)); // flush kernel space buffer
+        fsync(DPL::FstreamAccessors<std::ofstream>::GetFd(file)); // flush kernel space buffer
         file.close();
     }
 
index 960c523..79cc549 100644 (file)
@@ -37,7 +37,7 @@
 #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>
@@ -362,7 +362,7 @@ namespace SecurityServer
         }
 
         attemptFile.flush();
-        fsync(DPL::FstreamHelper::getFd(attemptFile)); // flush kernel space buffer
+        fsync(DPL::FstreamAccessors<std::ofstream>::GetFd(attemptFile)); // flush kernel space buffer
         attemptFile.close();
     }