standard.cpp

Go to the documentation of this file.
00001 
00012 #include <stdio.h>
00013 #include <stdarg.h>
00014 #include <windows.h>
00015 
00016 #include <stdexcept>
00017 using std::runtime_error;
00018 using std::logic_error;
00019 using std::invalid_argument;
00020 
00021 
00023 exception Error(const char *format, ...)
00024 {
00025         va_list args; 
00026         char    buffer[512];
00027         va_start(args,format);
00028         _vsnprintf(buffer,sizeof(buffer)-1,format,args);
00029     va_end(args);
00030     return exception(buffer);    
00031 }
00032 
00034 exception DiskError(FILE *fp, const char *format, ...)
00035 {
00036         va_list args; 
00037         char    buffer[512];
00038         va_start(args,format);
00039         _vsnprintf(buffer,sizeof(buffer)-1,format,args);
00040     va_end(args);
00041 
00042     std::string str;
00043     str = buffer;
00044     if (!fp) str += ": file i/o error (null file pointer)";
00045     else if (feof(fp)) str += ": reached end of file.";
00046     else if (ferror(fp)) str += ": error reading file.";
00047     else str += ": unknown error";
00048 
00049     return exception(str.c_str());
00050 }
00051 
00053 logic_error LogicError (const char *format, ...)
00054 {
00055         va_list args; 
00056         char    buffer[512];
00057         va_start(args,format);
00058         _vsnprintf(buffer,sizeof(buffer)-1,format,args);
00059     va_end(args);
00060     return logic_error(buffer);    
00061 }
00062 
00064 runtime_error RuntimeError (const char *format, ...)
00065 {
00066         va_list args; 
00067         char    buffer[512];
00068         va_start(args,format);
00069         _vsnprintf(buffer,sizeof(buffer)-1,format,args);
00070     va_end(args);
00071     return runtime_error(buffer);    
00072 }
00073 
00075 invalid_argument ArgError (const char *format, ...)
00076 {
00077         va_list args; 
00078         char    buffer[512];
00079         va_start(args,format);
00080         _vsnprintf(buffer,sizeof(buffer)-1,format,args);
00081     va_end(args);
00082     return invalid_argument(buffer);    
00083 }
00084 
00086 exception DiskError (const char *format, ...)
00087 {
00088         va_list args; 
00089         char    buffer[512];
00090         va_start(args,format);
00091         _vsnprintf(buffer,sizeof(buffer)-1,format,args);
00092     va_end(args);
00093     return exception(buffer);    
00094 }
00095 
00096  
00098 void Message(const char *format, ...)
00099 {
00100         va_list args; 
00101         char    buffer[512];
00102         va_start(args,format);
00103         _vsnprintf(buffer,sizeof(buffer)-1,format,args);
00104     va_end(args);
00105         MessageBox(0, buffer, "", MB_OK);
00106 }
00107 
00109 void printDebugString(const char *format, ...)
00110 {
00111         va_list args; 
00112         char    buffer[512];
00113         va_start(args,format);
00114         _vsnprintf(buffer,sizeof(buffer)-1,format,args);
00115     va_end(args);
00116     ::OutputDebugString(buffer);
00117 }
00118 
00119 // Formats and returns a static string.
00120 char *fmtString(const char *format, ...) 
00121 {
00122         va_list args;
00123         __declspec( thread ) static char buffer[512];
00124         va_start(args,format);
00125         _vsnprintf(buffer,sizeof(buffer)-1,format,args);
00126     va_end(args);
00127         return buffer;
00128 }
00129 
00130 
00131 
00132 
00133 
00134 
00135 
00136 

Generated on Tue May 21 03:34:51 2002 for Archimedes by doxygen1.2.15