X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpPluginsBase%2FRawFileWriter.cxx;fp=lib%2FcpPluginsBase%2FRawFileWriter.cxx;h=bd761759158c8b39e78b28b9708f2c630fcb134d;hb=2e142df11d6f312a2a2b5097b8da73571ed523e8;hp=0000000000000000000000000000000000000000;hpb=61b3659afe961ed248f30e26f9ca8f28fcfafddc;p=cpPlugins.git diff --git a/lib/cpPluginsBase/RawFileWriter.cxx b/lib/cpPluginsBase/RawFileWriter.cxx new file mode 100644 index 0000000..bd76175 --- /dev/null +++ b/lib/cpPluginsBase/RawFileWriter.cxx @@ -0,0 +1,53 @@ +// ========================================================================= +// @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co) +// ========================================================================= + +#include +#include +#include + +// ------------------------------------------------------------------------- +cpPluginsBase::RawFileWriter:: +RawFileWriter( ) + : Superclass( ) +{ +} + +// ------------------------------------------------------------------------- +cpPluginsBase::RawFileWriter:: +~RawFileWriter( ) +{ +} + +// ------------------------------------------------------------------------- +void cpPluginsBase::RawFileWriter:: +_Configure( ) +{ + this->ConfigureInValue< std::string >( "FileName" ); + this->_ConfigureInput< cpPluginsBase::RawData >( "Input", true, false ); +} + +// ------------------------------------------------------------------------- +void cpPluginsBase::RawFileWriter:: +_GenerateData( ) +{ + typedef cpPluginsBase::RawData _TData; + + const _TData* input = this->_GetInput< _TData >( "Input" ); + const char* buffer = input->GetBuffer( ); + std::size_t size = input->GetSize( ); + std::string fname = std::string( this->GetInValue( "FileName" ) ); + + std::ofstream oStr( fname.c_str( ), std::ios::binary | std::ios::out ); + if( oStr ) + { + oStr.write( buffer, size ); + oStr.close( ); + } + else + cpPluginsErrorMacro( + this, << "Could not save file \"" << fname << "\"" + ); +} + +// eof - $RCSfile$