void SoftReset() { BYTE ipl_backup = SRbits.IPL; SRbits.IPL = 7; // disable interrupts log_printf("SoftReset()"); ucReset(); // stop uJVM TimersInit(); PinsInit(); PWMInit(); ADCInit(); UARTInit(); SPIInit(); I2CInit(); InCapInit(); ucInit(); // restart uJVM // TODO: reset all peripherals! SRbits.IPL = ipl_backup; // enable interrupts }
int main(int argc, char *argv[]) { char *encoding = NULL; bool doHash = false; if (argc < 2){ fprintf(stderr, "Usage: %s [ -e encoding ] filename [ [ -e encoding] filename2 ] ...\n", argv[0]); exit(1); } ucInit(); if ( ! hashinit() ) { log("db: Failed to init hashtable." ); return 1; } // . hashinit() calls srand() w/ a fixed number // . let's mix it up again srand ( time(NULL) ); int i; int flag = flNone; void (*parser)(char*,int,bool,char*) = NULL; char *parser_str = ""; for (i=1;i<argc;i++){ // Read cmdline args if (argv[i][0] == '-'){ if (gbstrlen(argv[i])<2){ fprintf(stderr, "Unknown argument: %s\n", argv[i]); exit(1); } switch(argv[i][1]){ case 'e': flag = flEncoding; break; case 'p': flag = flParser; break; case 'h': flag = flHash; break; case 's': flag = flFilterSpaces; break; default: fprintf(stderr, "Unknown flag: %s\n", argv[i]); exit(1); } continue; //next arg } // Switch default encoding if (flag == flEncoding){ encoding = argv[i]; flag=flNone; fprintf(stderr, "Using encoding: %s\n", encoding); continue; } // switch parser if (flag == flParser){ if (!strncmp(argv[i], "icu", 3)){ parser = parse_doc_icu; parser_str = "ICU BreakIterator"; } else { parser = parse_doc_8859_1; parser_str = "iso-8859-1"; } flag=flNone; fprintf(stderr, "Using parser: %s\n", parser_str); continue; } if (flag == flHash){ if ((!strncmp(argv[i], "0", 1)) || (!strncmp(argv[i], "f", 1))){ doHash = false; } else{ doHash = true; } flag = flNone; continue; } if (flag == flFilterSpaces){ if ((!strncmp(argv[i], "0", 1)) || (!strncmp(argv[i], "f", 1))){ doFilterSpaces = false; } else{ doFilterSpaces = true; } flag = flNone; continue; } char * filename = argv[i]; fprintf(stderr, "Reading \"%s\"\n", filename); FILE *fp = fopen(filename,"r"); if (!fp){ fprintf(stderr, "Error: could not open file \"%s\"\n", filename); continue; } // Get File size size_t file_size; fseek(fp, 0L, SEEK_END); file_size = (size_t)ftell(fp); fseek(fp, 0L, SEEK_SET); char *file_buf = (char*)malloc(file_size+1); size_t nread = fread(file_buf, (size_t)1,file_size, fp); fclose(fp); if (nread != file_size){ fprintf(stderr, "Warning: wanted %d chars, but read %d\n", file_size, nread); } file_buf[nread] = '\0'; //struct timeval tv1, tv2; //struct timezone tz1, tz2; long usec_elapsed; // int testnum; char ucBuf[128*1024]; long ucLen = ucToUnicode((UChar*)ucBuf,128*1024, file_buf,nread+1,"utf-8", 10); ucLen <<= 1; usec_elapsed = time_parser(parser, file_buf,nread,doHash, encoding, NUM_TEST_RUNS); fprintf(stderr,"Document parsed (%s, hash=%s, filterSpaces=%s): %ld usec\n", parser_str, doHash?"true":"false", doFilterSpaces?"true":"false", usec_elapsed); } fprintf(stderr, "Done\n"); return 0; }
int main(int argc, char **argv) { if (argc < 3) { print_usage(argv[0]); return 1; } if (strcmp(argv[1], "--h") == 0 || strcmp(argv[1], "--help") == 0 ) { print_usage(argv[0]); return 1; } g_log.m_disabled = true; // initialize library g_mem.init(); hashinit(); // current dir char path[PATH_MAX]; realpath(argv[1], path); size_t pathLen = strlen(path); if (path[pathLen] != '/') { strcat(path, "/"); } g_hostdb.init(-1, NULL, false, false, path); g_conf.init(path); ucInit(); // initialize rdbs g_loop.init(); g_collectiondb.loadAllCollRecs(); g_statsdb.init(); g_posdb.init(); g_titledb.init(); g_tagdb.init(); g_spiderdb.init(); g_doledb.init(); g_spiderCache.init(); g_clusterdb.init(); g_linkdb.init(); g_collectiondb.addRdbBaseToAllRdbsForEachCollRec(); g_log.m_disabled = false; g_log.m_logPrefix = false; uint64_t docId = strtoul(argv[2], NULL, 10); logf(LOG_TRACE, "Getting titlerec for docId=%" PRIu64, docId); Msg5 msg5; RdbList list; key96_t startKey = Titledb::makeFirstKey(docId); key96_t endKey = Titledb::makeLastKey(docId); msg5.getList(RDB_TITLEDB, 0, &list, startKey, endKey, 500000000, true, 0, 0, -1, NULL, NULL, 0, true, NULL, 0, -1, -1LL, false, true); if (list.getNumRecs() != 1) { logf(LOG_TRACE, "Unable to find titlerec for docId=%" PRIu64, docId); cleanup(); exit(1); } XmlDoc xmlDoc; if (!xmlDoc.set2(list.getCurrentRec(), list.getCurrentRecSize(), "main", NULL, 0)) { logf(LOG_TRACE, "Unable to set XmlDoc for docId=%" PRIu64, docId); cleanup(); exit(1); } logf(LOG_TRACE, "XmlDoc info"); logf(LOG_TRACE, "\tfirstUrl : %.*s", xmlDoc.size_firstUrl, xmlDoc.ptr_firstUrl); logf(LOG_TRACE, "\tredirUrl : %.*s", xmlDoc.size_redirUrl, xmlDoc.ptr_redirUrl); logf(LOG_TRACE, "\trootTitle : %.*s", xmlDoc.size_rootTitleBuf, xmlDoc.ptr_rootTitleBuf); // logf(LOG_TRACE, "\timageData :"); logf(LOG_TRACE, "\t"); loghex(LOG_TRACE, xmlDoc.ptr_utf8Content, xmlDoc.size_utf8Content, "\tutf8Content:"); logf(LOG_TRACE, "\tsite : %.*s", xmlDoc.size_site, xmlDoc.ptr_site); logf(LOG_TRACE, "\tlinkInfo"); LinkInfo* linkInfo = xmlDoc.getLinkInfo1(); logf(LOG_TRACE, "\t\tm_numGoodInlinks : %d", linkInfo->m_numGoodInlinks); logf(LOG_TRACE, "\t\tm_numInlinksInternal : %d", linkInfo->m_numInlinksInternal); logf(LOG_TRACE, "\t\tm_numStoredInlinks : %d", linkInfo->m_numStoredInlinks); int i = 0; for (Inlink *inlink = linkInfo->getNextInlink(NULL); inlink; inlink = linkInfo->getNextInlink(inlink)) { logf(LOG_TRACE, "\t\tinlink #%d", i++); logf(LOG_TRACE, "\t\t\tdocId : %" PRIu64, inlink->m_docId); logf(LOG_TRACE, "\t\t\turl : %s", inlink->getUrl()); logf(LOG_TRACE, "\t\t\tlinktext : %s", inlink->getLinkText()); logf(LOG_TRACE, "\t\t\tcountry : %s", getCountryCode(inlink->m_country)); logf(LOG_TRACE, "\t\t\tlanguage : %s", getLanguageAbbr(inlink->m_language)); } loghex(LOG_TRACE, xmlDoc.ptr_linkdbData, xmlDoc.size_linkdbData, "\tlinkdbData"); logf(LOG_TRACE, "\ttagRec"); TagRec *tagRec = xmlDoc.getTagRec(); for (Tag *tag = tagRec->getFirstTag(); tag; tag = tagRec->getNextTag(tag)) { SafeBuf sb; tag->printDataToBuf(&sb); logf(LOG_TRACE, "\t\t%-12s: %s", getTagStrFromType(tag->m_type), sb.getBufStart()); } logf(LOG_TRACE, "\t"); logf(LOG_TRACE, "Links info"); g_log.m_disabled = true; Links *links = xmlDoc.getLinks(); g_log.m_disabled = false; for (int i = 0; i < links->getNumLinks(); ++i) { logf(LOG_TRACE, "\tlink : %.*s", links->getLinkLen(i), links->getLinkPtr(i)); } cleanup(); return 0; }