void child_process(int sock, int number) { char fd_buff[16]; char buff[1024]; while (true) { // get fd int fd; socket_fd_read(sock, fd_buff, sizeof(fd_buff), &fd); if (fd == -1) continue; // Work with income socket ssize_t size = recv(fd, buff, sizeof(buff), MSG_NOSIGNAL); if (size == 0) break; buff[size] = '\0'; FILE *log = fopen("/home/box/error.log", "w"); std::string url = parseHttpGet(buff, size); fprintf(log, "URL1: %s\n", url.c_str()); url = parseUrl(url); fprintf(log, "URL2: %s\n", url.c_str()); fprintf(log, "URL3: %s\n", getPostfix(url).c_str()); std::string response; if (getPostfix(url) != "html") { response = HttpResponse404(); } else { std::string filename = directory + url; fprintf(log, "FILE: %s\n", filename.c_str()); if (checkFile(filename)) { std::string content = readFile(filename); response = HttpResponse200(content.c_str(), content.size()); } else { response = HttpResponse404(); } } fprintf(log, "RESPONSE: %s\n", response.c_str()); send(fd, response.c_str(), response.length(), MSG_NOSIGNAL); close(fd); } close(sock); }
void Logger::log( const char *s , LogOutputMode mode , Logger::LogLevel p_logLevel ) { // check needs to be excluded if( settings == NULL ) attachRoot(); if( settings -> isExcluded( s ) ) return; AIEngine& engine = AIEngine::getInstance(); EngineThreadHelper *logTail = EngineThreadHelper::getThreadObject(); LogManager *logManager = engine.getLogManager(); if( logTail == NULL ) { logManager -> add( &s , 1 , p_logLevel , getPostfix() ); return; } // release old String& w = logTail -> lastMsg; if( logTail -> remains ) if( mode == Logger::LogStart || mode == Logger::LogDefault ) { const char *p = w; logManager -> add( &p , 1 , p_logLevel , getPostfix() ); logTail -> remains = false; w.clear(); } w += s; if( mode == Logger::LogLine || mode == Logger::LogStart ) w += "\n"; if( mode == Logger::LogStop || mode == Logger::LogDefault ) { const char *p = w; logManager -> add( &p , 1 , p_logLevel , getPostfix() ); logTail -> remains = false; w.clear(); } else logTail -> remains = true; }
void Logger::logObject( const char *prompt , Object *obj , Logger::LogLevel p_logLevel ) { if( settings == NULL ) attachRoot(); if( settings -> logDisabled( p_logLevel ) ) return; const char *lines[2]; String p = "%s: "; p += prompt; lines[ 0 ] = p; SerializeObject *so = obj -> getSerializeObject(); Object::serialize( obj , *so ); String data = so -> getDataStringNameToValue(); lines[ 1 ] = data; LogManager *logManager = AIEngine::getInstance().getLogManager(); logManager -> add( lines , 2 , p_logLevel , getPostfix() ); }
int main(){ Node* head=NULL; string nifix; int op1; int op2; string tempop=""; bool hasTemp=false; int result; cout<<"enter the nifix expression\n"; getline(cin,nifix); string postfix=getPostfix(nifix); cout<<"postfix:"<<postfix<<endl; int size=postfix.size(); for(int i=0;i<size;i++){ char in=postfix[i]; switch(in){ case '+':op2=Pop(head); op1=Pop(head); result=op1+op2; Push(head,result); break; case '-':op2=Pop(head); op1=Pop(head); result=op1-op2; Push(head,result); break; case '*':op2=Pop(head); op1=Pop(head); result=op1*op2; Push(head,result); break; case '/':op2=Pop(head); op1=Pop(head); if(op2==0) { cout<<"divid 0\n"; exit(-1); } result=op1/op2; Push(head,result); break; case '%':op2=Pop(head); op1=Pop(head); if(op2==0) { cout<<"divid 0\n"; exit(-1); } result=op1%op2; Push(head,result); break; case ' ': if(hasTemp){ hasTemp=false; op1=stoi(tempop); cout<<"digit:"<<op1<<endl; tempop=""; Push(head,op1); } break; default: hasTemp=true; tempop.push_back(in); break; } } cout<<"result: "<<head->data<<endl;; return 0; }