MCPcopy Create free account
hub / github.com/Kitware/VTK / TestMySQLTableReadWrite

Function TestMySQLTableReadWrite

IO/MySQL/Testing/Cxx/TestMySQLTableReadWrite.cxx:21–91  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

19#include <iostream>
20
21int TestMySQLTableReadWrite(int argc, char* argv[])
22{
23 if (argc <= 1)
24 {
25 std::cerr << "Usage: " << argv[0] << " <.vtk table file>" << std::endl;
26 return 1;
27 }
28 std::cerr << "reading a vtkTable from file" << std::endl;
29 vtkSmartPointer<vtkTableReader> tableFileReader = vtkSmartPointer<vtkTableReader>::New();
30 tableFileReader->SetFileName(argv[1]);
31 vtkTable* table = tableFileReader->GetOutput();
32 tableFileReader->Update();
33
34 std::cerr << "opening a MySQL database connection" << std::endl;
35
36 vtkMySQLDatabase* db =
37 vtkMySQLDatabase::SafeDownCast(vtkSQLDatabase::CreateFromURL(VTK_MYSQL_TEST_URL));
38 bool status = db->Open();
39
40 if (!status)
41 {
42 std::cerr << "Couldn't open database.\n";
43 return 1;
44 }
45
46 std::cerr << "creating a MySQL table from a vtkTable" << std::endl;
47 vtkSmartPointer<vtkTableToMySQLWriter> writerToTest =
48 vtkSmartPointer<vtkTableToMySQLWriter>::New();
49
50 writerToTest->SetInputData(table);
51 writerToTest->SetDatabase(db);
52 writerToTest->SetTableName("tableTest");
53 writerToTest->Update();
54
55 std::cerr << "converting it back to a vtkTable" << std::endl;
56 vtkSmartPointer<vtkMySQLToTableReader> readerToTest =
57 vtkSmartPointer<vtkMySQLToTableReader>::New();
58
59 readerToTest->SetDatabase(db);
60 readerToTest->SetTableName("tableTest");
61 readerToTest->Update();
62
63 std::cerr << "writing the table out to disk" << std::endl;
64 vtkSmartPointer<vtkTableWriter> tableFileWriter = vtkSmartPointer<vtkTableWriter>::New();
65 tableFileWriter->SetFileName("TestMySQLTableReadWrite.vtk");
66 tableFileWriter->SetInputConnection(readerToTest->GetOutputPort());
67 tableFileWriter->Update();
68
69 std::cerr << "verifying that it's the same as what we started with...";
70 int result = 0;
71 if (vtksys::SystemTools::FilesDiffer(argv[1], "TestMySQLTableReadWrite.vtk"))
72 {
73 std::cerr << "it's not." << std::endl;
74 result = 1;
75 }
76 else
77 {
78 std::cerr << "it is!" << std::endl;

Callers

nothing calls this directly

Calls 14

DeleteMethod · 0.65
NewFunction · 0.50
SetFileNameMethod · 0.45
GetOutputMethod · 0.45
UpdateMethod · 0.45
OpenMethod · 0.45
SetInputDataMethod · 0.45
SetDatabaseMethod · 0.45
SetTableNameMethod · 0.45
SetInputConnectionMethod · 0.45
GetOutputPortMethod · 0.45
GetQueryInstanceMethod · 0.45

Tested by

no test coverage detected