trick/trick_source/sim_services/Message/MessageLCout.cpp
Alex Lin 19025d77ad Standardize directory names
Reorganized.  Created a new top level include directory that will hold all of Trick's header files. Moved all of the Trick headers to this directory.  Created a libexec directory that holds all of the executables that users don't need to execute directly.  Changed all of the executables remaining in bin to start with "trick-".  In the sim_services directories changed all source files to find the Trick headers in their new location.  Since all of the include files are gone in sim_services, removed the src directories as well, moving all of the source files up a level.  Moved the makefiles, docs, man, and other architecture independent files into a top level share directory.  Renamed lib_${TRICK_HOST_CPU} to lib64 or lib depending on the platform we're currently on.

refs #63
2015-06-09 08:44:42 -05:00

71 lines
2.2 KiB
C++

#include <string.h>
#include <sstream>
#include "trick/MessageLCout.hh"
Trick::MessageLCout::MessageLCout() {
enabled = 1 ;
subs['a'] = "4" ;
subs['e'] = "3" ;
subs['f'] = "ph" ;
subs['g'] = "9" ;
subs['l'] = "1" ;
subs['o'] = "0" ;
subs['s'] = "5" ;
subs['t'] = "7" ;
seed = 0 ;
name = "lcout" ;
}
void Trick::MessageLCout::update( unsigned int level , std::string header , std::string message ) {
if (!enabled) {
return;
}
if ( level == 1337 ) {
std::string in_string ;
std::string temp_string ;
unsigned int ii , jj ;
in_string = header + message ;
for ( ii = 0 ; ii < in_string.size() ; ii++ ) {
seed += in_string[ii] * ii ;
}
srandom(seed) ;
for ( ii = 0 ; ii < in_string.size() ; ii++ ) {
if ( random() < RAND_MAX * 0.3 ) {
if ( subs.find((char)tolower(in_string[ii])) != subs.end()) {
//temp_string += subs[(char)tolower(in_string[ii])] ;
std::string replace_str = subs[(char)tolower(in_string[ii])] ;
for ( jj = 0 ; jj < replace_str.size() ; jj++ ) {
if ( random() < RAND_MAX * 0.5 ) {
temp_string += toupper(replace_str[jj]) ;
} else {
temp_string += tolower(replace_str[jj]) ;
}
}
} else {
temp_string += in_string[ii] ;
}
} else {
if ( random() < RAND_MAX * 0.3 ) {
temp_string += toupper(in_string[ii]) ;
} else {
temp_string += tolower(in_string[ii]) ;
}
}
}
std::cout << temp_string << std::flush ;
} else if ( level < 100 ) {
// Building the final string in a temporary stream ensures an automic call to cout, which prevents
// multithreaded sims from interleaving header and message elements.
std::ostringstream oss;
oss << header << message ;
std::cout << oss.str() << std::flush ;
}
}