zoukankan      html  css  js  c++  java
  • CLink4SEFile

     1 #ifndef _LINK4SE_FILE_H_031208_
     2 #define _LINK4SE_FILE_H_031208_
     3 
     4 #include "Tse.h"
     5 #include "Url.h"
     6 #include "Page.h"
     7 #include "FileEngine.h"
     8 
     9 class CLink4SEFile : public CFileEngine
    10 {
    11 public:
    12     CLink4SEFile(string str);
    13     CLink4SEFile();
    14     virtual ~CLink4SEFile();
    15 
    16     inline int GetFileType() { return LINK4SE; }
    17 
    18     virtual bool Write(void *arg);
    19 };
    20 
    21 #endif /* _LINK4SE_FILE_H_031208_ */
     1 #include "Link4SEFile.h"
     2 
     3 extern map<string,string> mapCacheHostLookup;
     4 extern vector<string> vsParsedLinks;
     5 
     6 CLink4SEFile::CLink4SEFile()
     7 {
     8 }
     9 
    10 CLink4SEFile::CLink4SEFile(string str) : CFileEngine(str)
    11 {
    12 }
    13 
    14 CLink4SEFile::~CLink4SEFile()
    15 {
    16     m_ofsFile.close();
    17 }
    18 
    19 bool CLink4SEFile::Write(void * arg)
    20 {
    21     if (!arg || !m_ofsFile) return false;
    22 
    23     if (vsParsedLinks.size()==0) return false;
    24 
    25     file_arg *pFile = (file_arg *)arg;
    26 
    27     CUrl *iUrl = pFile->pUrl;
    28     CPage *iPage = pFile->pPage;
    29 
    30     char strDownloadTime[128];
    31     time_t tDate;
    32 
    33     memset(strDownloadTime, 0, 128);
    34     time(&tDate);
    35     strftime(strDownloadTime, 128, "%a, %d %b %Y %H:%M:%S GMT", gmtime(&tDate));
    36 
    37     string links;
    38     vector<string>::iterator it;
    39     for (it=vsParsedLinks.begin(); it!=vsParsedLinks.end(); ++it)
    40     {
    41         links = links + *it + "\n";
    42     }
    43 
    44     m_ofsFile << "version: 1.0\n";
    45     if( iPage->m_sLocation.length() == 0 ){
    46         m_ofsFile << "url: " << iUrl->m_sUrl;
    47     } else {
    48         m_ofsFile << "url: " << iPage->m_sLocation;
    49         m_ofsFile << "\norigin: " << iUrl->m_sUrl;
    50     }
    51 
    52     m_ofsFile << "\ndate: " << strDownloadTime;
    53     if( mapCacheHostLookup.find(iUrl->m_sHost) == mapCacheHostLookup.end() ){
    54         m_ofsFile << "\nip: " << iUrl->m_sHost;
    55     } else {
    56         m_ofsFile << "\nip: " << ( *(mapCacheHostLookup.find(iUrl->m_sHost)) ).second;
    57     }
    58 
    59     m_ofsFile << "\noutdegree: " << vsParsedLinks.size();
    60     m_ofsFile << "\nlength: " << links.size() + iPage->m_nLenHeader + 1 
    61         << "\n\n" << iPage->m_sHeader << "\n";
    62 
    63     m_ofsFile << links;
    64     m_ofsFile << endl;
    65 
    66     return true;
    67 }
  • 相关阅读:
    strstr 函数的实现
    函数模板与模板函数
    内核态和用户态
    最短路径算法(跟新SPFA,Ford)
    P1042 乒乓球
    P2347 砝码称重
    P1087 FBI树
    P1540 机器翻译
    P1028 数的计算
    P1067 多项式输出
  • 原文地址:https://www.cnblogs.com/kakamilan/p/2580719.html
Copyright © 2011-2022 走看看