QTrk
Classes | Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
outputter Class Reference

#include <testutils.h>

Classes

struct  outputModes
 

Public Member Functions

 outputter (int mode=1)
 
 ~outputter ()
 
void outputString (std::string out, bool ConsoleOnly=false)
 
void outputImage (ImageData img, std::string filename="UsedImage")
 
template<typename T >
void outputArray (T *arr, int size)
 
void newFile (std::string filename, const char *mode="a")
 

Public Attributes

std::string folder
 

Private Member Functions

void init (int mode)
 

Private Attributes

outputModes modes
 
FILE * outputFile
 

Detailed Description

Definition at line 21 of file testutils.h.

Constructor & Destructor Documentation

§ outputter()

outputter::outputter ( int  mode = 1)

Definition at line 63 of file testutils.cpp.

63 { init(mode); }
void init(int mode)
Definition: testutils.cpp:109

§ ~outputter()

outputter::~outputter ( )

Definition at line 65 of file testutils.cpp.

65  {
66  if(modes.File && outputFile != NULL)
67  fclose(outputFile);
68 }
FILE * outputFile
Definition: testutils.h:48
outputModes modes
Definition: testutils.h:47

Member Function Documentation

§ init()

void outputter::init ( int  mode)
private

Definition at line 109 of file testutils.cpp.

109  {
110  modes.Console = (mode & Console) != 0;
111  modes.File = (mode & Files) != 0;
112  modes.Images = (mode & Images) != 0;
113 
114  outputFile = NULL;
115 
116  if(!modes.Console && !modes.File){
117  modes.Console = true;
118  printf_s("No output mode selected, using console by default.\n");
119  }
120 
121  if(modes.File || modes.Images){
122  char date[14];
124  folder = "D:\\TestImages\\TestOutput\\" + std::string(date) + "\\";
125  if(!CreateDirectory((LPCTSTR)folder.c_str(),NULL)){
126  printf_s("Error creating output folder");
127  throw("");
128  }
129  }
130 }
void GetFormattedTimeString(char *output)
Definition: utils.cpp:38
std::string folder
Definition: testutils.h:39
FILE * outputFile
Definition: testutils.h:48
outputModes modes
Definition: testutils.h:47

§ newFile()

void outputter::newFile ( std::string  filename,
const char *  mode = "a" 
)

Definition at line 89 of file testutils.cpp.

89  {
90  if(modes.File){
91  if(outputFile)
92  fclose(outputFile);
93  std::string outfile = folder + filename + ".txt";
94  while(fopen(outfile.c_str(),"r")){
95  std::cout << "Output file " << filename << " already exists, please specify new filename:\n";
96  std::cin >> filename;
97  outfile = folder + filename + ".txt";
98  }
99  outputFile = fopen(outfile.c_str(),mode);
100  while(!outputFile){
101  std::cout << "Error creating output file "<< outfile << "\n\n";
102  std::cout << "Error " << outfile << " already exists, please specify new file path:\n";
103  std::cin >> outfile;
104  outputFile = fopen(outfile.c_str(),mode);
105  }
106  }
107 }
std::string folder
Definition: testutils.h:39
FILE * outputFile
Definition: testutils.h:48
outputModes modes
Definition: testutils.h:47

§ outputArray()

template<typename T >
void outputter::outputArray ( T *  arr,
int  size 
)
inline

Definition at line 29 of file testutils.h.

29  {
30  std::ostringstream out;
31  for(int ii=0;ii<size;ii++){
32  out << "[" << ii << "] : " << arr[ii] << "\n";
33  }
34  outputString(out.str());
35  }
void outputString(std::string out, bool ConsoleOnly=false)
Definition: testutils.cpp:70

§ outputImage()

void outputter::outputImage ( ImageData  img,
std::string  filename = "UsedImage" 
)

Definition at line 82 of file testutils.cpp.

82  {
83  if(modes.Images){
84  std::string file = folder + filename + ".jpg";
85  FloatToJPEGFile(file.c_str(),img.data,img.w,img.h);
86  }
87 }
std::string folder
Definition: testutils.h:39
outputModes modes
Definition: testutils.h:47
int h
Definition: utils.h:81
void FloatToJPEGFile(const char *name, const float *d, int w, int h)
Definition: fastjpg.cpp:189
int w
Definition: utils.h:81
T * data
Definition: utils.h:80

§ outputString()

void outputter::outputString ( std::string  out,
bool  ConsoleOnly = false 
)

Definition at line 70 of file testutils.cpp.

70  {
71  if(modes.Console || ConsoleOnly){
72  std::cout << out << std::endl;
73  }
74 
75  if(modes.File && !ConsoleOnly){
76  if(!outputFile)
77  newFile("OutputFile");
78  fprintf_s(outputFile,"%s\n",out.c_str());
79  }
80 }
FILE * outputFile
Definition: testutils.h:48
outputModes modes
Definition: testutils.h:47
void newFile(std::string filename, const char *mode="a")
Definition: testutils.cpp:89

Member Data Documentation

§ folder

std::string outputter::folder

Definition at line 39 of file testutils.h.

§ modes

outputModes outputter::modes
private

Definition at line 47 of file testutils.h.

§ outputFile

FILE* outputter::outputFile
private

Definition at line 48 of file testutils.h.


The documentation for this class was generated from the following files: