]> Creatis software - cpPlugins.git/blob - lib/cpPluginsBase/RawFileWriter.cxx
Moved to version 1.0
[cpPlugins.git] / lib / cpPluginsBase / RawFileWriter.cxx
1 // =========================================================================
2 // @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
3 // =========================================================================
4
5 #include <fstream>
6 #include <cpPluginsBase/RawFileWriter.h>
7 #include <cpPluginsBase/RawData.h>
8
9 // -------------------------------------------------------------------------
10 cpPluginsBase::RawFileWriter::
11 RawFileWriter( )
12   : Superclass( )
13 {
14 }
15
16 // -------------------------------------------------------------------------
17 cpPluginsBase::RawFileWriter::
18 ~RawFileWriter( )
19 {
20 }
21
22 // -------------------------------------------------------------------------
23 void cpPluginsBase::RawFileWriter::
24 _Configure( )
25 {
26   this->ConfigureInValue< std::string >( "FileName" );
27   this->_ConfigureInput< cpPluginsBase::RawData >( "Input", true, false );
28 }
29
30 // -------------------------------------------------------------------------
31 void cpPluginsBase::RawFileWriter::
32 _GenerateData( )
33 {
34   typedef cpPluginsBase::RawData _TData;
35
36   const _TData* input = this->_GetInput< _TData >( "Input" );
37   const char* buffer = input->GetBuffer( );
38   std::size_t size = input->GetSize( );
39   std::string fname = std::string( this->GetInValue( "FileName" ) );
40
41   std::ofstream oStr( fname.c_str( ), std::ios::binary | std::ios::out );
42   if( oStr )
43   {
44     oStr.write( buffer, size );
45     oStr.close( );
46   }
47   else
48     cpPluginsErrorMacro(
49       this, << "Could not save file \"" << fname << "\""
50       );
51 }
52
53 // eof - $RCSfile$