• CTianwangFile


     1 #ifndef _TIANWANG_FILE_H_031104_
     2 #define _TIANWANG_FILE_H_031104_
     3 
     4 #include "Tse.h"
     5 #include "Url.h"
     6 #include "Page.h"
     7 #include "FileEngine.h"
     8 
     9 class CTianwangFile : public CFileEngine
    10 {
    11 public:
    12     CTianwangFile(string str);
    13     CTianwangFile();
    14     virtual ~CTianwangFile();
    15 
    16     inline int GetFileType() { return TIANWANG; }
    17 
    18     virtual bool Write(void *arg);
    19 };
    20 
    21 #endif /* _TIANWANG_FILE_H_031104_ */
     1 #include "TianwangFile.h"
     2 
     3 extern map<string,string> mapCacheHostLookup;
     4 
     5 CTianwangFile::CTianwangFile()
     6 {
     7 }
     8 
     9 CTianwangFile::CTianwangFile(string str) : CFileEngine(str)
    10 {
    11 }
    12 
    13 CTianwangFile::~CTianwangFile()
    14 {
    15     m_ofsFile.close();
    16 }
    17 
    18 bool CTianwangFile::Write(void * arg)
    19 {
    20     if( !arg || !m_ofsFile ){
    21         return false;
    22     }
    23 
    24     file_arg *pFile = (file_arg *)arg;
    25 
    26     CUrl *iUrl = pFile->pUrl;
    27     CPage *iPage = pFile->pPage;
    28 
    29     char strDownloadTime[128];
    30     time_t tDate;
    31 
    32     memset(strDownloadTime, 0, 128);
    33     time(&tDate);
    34     strftime(strDownloadTime, 128, "%a, %d %b %Y %H:%M:%S GMT", gmtime(&tDate));
    35 
    36     m_ofsFile << "version: 1.0\n";
    37     if( iPage->m_sLocation.length() == 0 ){//没有重定向
    38         m_ofsFile << "url: " << iUrl->m_sUrl;
    39     } else {//重定向了
    40         m_ofsFile << "url: " << iPage->m_sLocation;
    41         m_ofsFile << "\norigin: " << iUrl->m_sUrl;
    42     }
    43 
    44     m_ofsFile << "\ndate: " << strDownloadTime;//记录下下载时间
    45 
    46     //保存IP地址信息
    47     if( mapCacheHostLookup.find(iUrl->m_sHost) == mapCacheHostLookup.end() ){
    48         m_ofsFile << "\nip: " << iUrl->m_sHost;
    49     } else {
    50         m_ofsFile << "\nip: " << ( *(mapCacheHostLookup.find(iUrl->m_sHost)) ).second;
    51     }
    52 
    53     //保存网页长度
    54     m_ofsFile << "\nlength: " << iPage->m_nLenContent + iPage->m_nLenHeader + 1
    55         << "\n\n" << iPage->m_sHeader << "\n";
    56 
    57     m_ofsFile.write( iPage->m_sContent.c_str(), iPage->m_nLenContent );
    58     m_ofsFile << endl;
    59 
    60     return true;
    61 }
  • 相关阅读:
    计算panel的靶向区段长度
    interval的排序,合并,取样等功能
    Bait 和 target的区别
    R 数据拆分到列
    制作annovar注释依赖的cosmic数据库
    制作适用于annovar的COSMIC数据库
    痘痘机理
    属性、域、元组、关系、候选码、主键、外键、关系代数
    how to install emacs25 in ubuntu 14
    Centos Install Emacs
  • 原文地址:https://www.cnblogs.com/kakamilan/p/2580727.html
Copyright © 2020-2023  润新知