00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef IMN_PIM
00021 #include "BasicUsageEnvironment.hh"
00022 #include <stdlib.h>
00023 #include <stdio.h>
00024
00026
00027 #if defined(__WIN32__) || defined(_WIN32)
00028 extern "C" int initializeWinsockIfNecessary();
00029 #endif
00030
00031 BasicUsageEnvironment::BasicUsageEnvironment(TaskScheduler& taskScheduler)
00032 : BasicUsageEnvironment0(taskScheduler) {
00033 #if defined(__WIN32__) || defined(_WIN32)
00034 if (!initializeWinsockIfNecessary()) {
00035 setResultErrMsg("Failed to initialize 'winsock': ");
00036 reportBackgroundError();
00037 exit(1);
00038 }
00039 #endif
00040 }
00041
00042 BasicUsageEnvironment::~BasicUsageEnvironment() {
00043 }
00044
00045 BasicUsageEnvironment*
00046 BasicUsageEnvironment::createNew(TaskScheduler& taskScheduler) {
00047 return new BasicUsageEnvironment(taskScheduler);
00048 }
00049
00050 int BasicUsageEnvironment::getErrno() const {
00051 #if defined(__WIN32__) || defined(_WIN32)
00052 #ifndef _WIN32_WCE
00053 if (errno == 0) {
00054 errno = WSAGetLastError();
00055 }
00056 #endif
00057 #endif
00058 #if defined(_WIN32_WCE)
00059 return WSAGetLastError();
00060 #else
00061 return errno;
00062 #endif
00063 }
00064
00065 UsageEnvironment& BasicUsageEnvironment::operator<<(char const* str) {
00066 fprintf(stderr, "%s", str);
00067 return *this;
00068 }
00069
00070 UsageEnvironment& BasicUsageEnvironment::operator<<(int i) {
00071 fprintf(stderr, "%d", i);
00072 return *this;
00073 }
00074
00075 UsageEnvironment& BasicUsageEnvironment::operator<<(unsigned u) {
00076 fprintf(stderr, "%u", u);
00077 return *this;
00078 }
00079
00080 UsageEnvironment& BasicUsageEnvironment::operator<<(double d) {
00081 fprintf(stderr, "%f", d);
00082 return *this;
00083 }
00084
00085 UsageEnvironment& BasicUsageEnvironment::operator<<(void* p) {
00086 fprintf(stderr, "%p", p);
00087 return *this;
00088 }
00089 #endif
00090