Go to the documentation of this file.00001
00009
00010
00011
00012
00013 #include <iostream>
00014 #include <string>
00015 #include <ecl/devices/console.hpp>
00016 #include <ecl/streams/text_stream.hpp>
00017 #include <ecl/streams/console_streams.hpp>
00018 #include <ecl/streams/manipulators/end_of_line.hpp>
00019
00020
00021
00022
00023
00024 using std::string;
00025 using ecl::OConsole;
00026 using ecl::IConsole;
00027 using ecl::endl;
00028 using ecl::TextStream;
00029 using ecl::IConsoleStream;
00030 using ecl::OConsoleStream;
00031
00032
00033
00034
00035
00036 int main(int argc, char** argv) {
00037
00038 bool test_istreams = false;
00039
00040 std::cout << std::endl;
00041 std::cout << "***********************************************************" << std::endl;
00042 std::cout << " OConsole Stream" << std::endl;
00043 std::cout << "***********************************************************" << std::endl;
00044 std::cout << std::endl;
00045
00046 std::cout << "These can't really be tested very easily by google tests, so" << std::endl;
00047 std::cout << "it's just provided here as a demo, but functionally is a" << std::endl;
00048 std::cout << "unit test (requiring human approval)." << std::endl;
00049 std::cout << std::endl;
00050
00051 OConsoleStream ostream;
00052
00053 std::cout << "Streaming char." << std::endl;
00054 ostream << 'c' << '\n';
00055 std::cout << "Streaming char string." << std::endl;
00056 ostream << "Dude\n";
00057 std::cout << "Streaming string." << std::endl;
00058 string dude("dude_string\n");
00059 ostream << dude;
00060 std::cout << "Streaming integers." << std::endl;
00061 short si = 1;
00062 ostream << si << '\n';
00063 int i = 2;
00064 ostream << i << '\n';
00065 long l = 3;
00066 ostream << l << '\n';
00067 long long ll = 4;
00068 ostream << ll << '\n';
00069 unsigned short us = 5;
00070 ostream << us << '\n';
00071 unsigned int ui = 6;
00072 ostream << ui << '\n';
00073 unsigned long ul = 77;
00074 ostream << ul << '\n';
00075 unsigned long long ull = 8888;
00076 ostream << ull << '\n';
00077 std::cout << "Streaming temporary integers." << std::endl;
00078 ostream << 77 << '\n';
00079 std::cout << "Streaming a boolean." << std::endl;
00080 bool test = true;
00081 ostream << test << '\n';
00082 ostream << false << '\n';
00083 std::cout << "Streaming floating point values." << std::endl;
00084 float f = 32.1;
00085 double d = -33.3;
00086 ostream << f << '\n';
00087 ostream << d << '\n';
00088
00089 std::cout << "Flushing" << std::endl;
00090 ostream.flush();
00091
00092 std::cout << std::endl;
00093 std::cout << "***********************************************************" << std::endl;
00094 std::cout << " OConsole Manipulators" << std::endl;
00095 std::cout << "***********************************************************" << std::endl;
00096 std::cout << std::endl;
00097
00098 ostream << "dude with an ecl::endl" << endl;
00099
00100 if ( test_istreams ) {
00101 std::cout << std::endl;
00102 std::cout << "***********************************************************" << std::endl;
00103 std::cout << " IConsole Stream" << std::endl;
00104 std::cout << "***********************************************************" << std::endl;
00105 std::cout << std::endl;
00106
00107 char c;
00108 string response;
00109 IConsoleStream istream;
00110
00111
00112 std::cout << "Enter a char." << std::endl;
00113 istream >> c;
00114 std::cout << "Char read: " << c << std::endl;
00115 std::cout << "Enter a word." << std::endl;
00116 istream >> response;
00117 std::cout << "Word read: " << response << std::endl;
00118 std::cout << "Enter a short: " << std::endl;
00119 istream >> si;
00120 if ( istream.fail() ) {
00121 std::cout << "Short read failed: " << istream.errorStatus().what() << std::endl;
00122 } else {
00123 std::cout << "Short read: " << si << std::endl;
00124 }
00125 std::cout << "Enter a bool: " << std::endl;
00126 istream >> test;
00127 if ( istream.fail() ) {
00128 std::cout << "Bool read failed: " << istream.errorStatus().what() << std::endl;
00129 } else {
00130 std::cout << "Bool read: ";
00131 if ( test ) {
00132 std::cout << "true" << std::endl;
00133 } else {
00134 std::cout << "false" << std::endl;
00135 }
00136 }
00137 std::cout << "Enter a double:" << std::endl;
00138 istream >> d;
00139 if ( istream.fail() ) {
00140 std::cout << "Double read failed: " << istream.errorStatus().what() << std::endl;
00141 } else {
00142 std::cout << "Double read: " << d << std::endl;
00143 }
00144 }
00145 std::cout << std::endl;
00146 std::cout << "***********************************************************" << std::endl;
00147 std::cout << " Passed" << std::endl;
00148 std::cout << "***********************************************************" << std::endl;
00149 std::cout << std::endl;
00150
00151 return 0;
00152 }