TEST_F( OpenDDLExportTest, handleNodeTest ) { OpenDDLExport myExport; bool success( true ); success = myExport.handleNode( m_root ); EXPECT_TRUE( success ); }
bool OpenDDLParser::exportContext( Context *ctx, const std::string &filename ) { if( ddl_nullptr == ctx ) { return false; } OpenDDLExport myExporter; return myExporter.exportContext( ctx, filename ); }
int main( int argc, char *argv[] ) { if( argc < 3 ) { showhelp(); return Error; } char *filename( ddl_nullptr ), *exportFilename( ddl_nullptr ); bool dump( false ), exportToFile( false ); for ( int i = 1; i < argc; i++) { if (0 == strncmp(FileOption, argv[i], strlen(FileOption))) { if ((i + 1) >= argc) { std::cerr << "No filename specified" << std::endl; return Error; } filename = argv[ i+1 ]; } if (0 == strncmp(DumpOption, argv[ i ], strlen( DumpOption) ) ) { dump = true; } if( 0==strncmp(ExportOption, argv[i], strlen(ExportOption ) ) ) { if ((i + 1) >= argc) { std::cerr << "No filename for export specified" << std::endl; return Error; } else { exportToFile = true; exportFilename = argv[i+1]; } } } std::cout << "file to import: " << filename << std::endl; if(ddl_nullptr == filename ) { std::cerr << "Invalid filename." << std::endl; return Error; } FILE *fileStream = fopen( filename, "rb+" ); if(ddl_nullptr == fileStream ) { std::cerr << "Cannot open file " << filename << std::endl; return Error; } // obtain file size: fseek( fileStream, 0, SEEK_END ); const size_t size( ftell( fileStream ) ); ::rewind( fileStream ); if( size > 0 ) { char *buffer = new char[ size ]; const size_t readSize( fread( buffer, sizeof( char ), size, fileStream ) ); assert( readSize == size ); OpenDDLParser theParser; theParser.setBuffer( buffer, size ); const bool result( theParser.parse() ); if( !result ) { std::cerr << "Error while parsing file " << filename << "." << std::endl; } else { DDLNode *root = theParser.getRoot(); if ( dump ) { dumpDDLNodeTree(root); } if ( exportToFile ) { OpenDDLExport theExporter; theExporter.exportContext( theParser.getContext(), exportFilename ); } } } return 0; }