/****************************************************************************** Copyright(C):2015~2018 hzleaper FileName:spider.h Author:zhikun wu Email:zk.wu@hzleaper.com Tools:vs2010 pc on company Created:2015/04/23 History:23:4:2015 17:00 *******************************************************************************/ #ifndef __SPIDER_H_2015 #define __SPIDER_H_2015 #include "syswin/sysSpider.h" #define _USE_SPIDER_DLL // typedef struct tagSPIDER_INIT_PARAM{ // char* logPath; // char* redisIp; // int redisPort; // }SPIDER_INIT_PARAM; enum emSpiderType { SPIDER_BASE, SPIDER_REDIS, SPIDER_FILE, SPIDER_HTTP, SPIDER_SQLITE, SPIDER_VERSION_UPDATE, SPIDER_DATA_UPLOAD, }; /* enum emSpiderSettingType { SP_SETTING_TYPE_DATA = 0, SP_SETTING_TYPE_FILE = 1 }; */ typedef struct tagSPIDER_INI_SETTING { //in parameters emSpiderType spiderType;//@in // char szIp[64]; // int nPort; // char *szString;//log path or other strings, e.g."http://wwww.hzleaper.com"; file name, e.g "log.txt" // char *szMainPath; // char *szUserName; // char *szPassword; //json text char* jsonText;//@in //out parameters bool bNewCreates;//@out } SPIDER_INI_SETTING; //json text keys #define SPIDER_JSON_KEY_HTTP "http" #define SPIDER_JSON_KEY_HTTP_USER "http_user" #define SPIDER_JSON_KEY_HTTP_PASSWORD "http_pw" #define SPIDER_JSON_KEY_MAIN_PATH "main_path" #define SPIDER_JSON_KEY_REDIS_IP "redis_ip" #define SPIDER_JSON_KEY_REDIS_PORT "redis_port" #define SPIDER_JSON_KEY_REDIS_USER "redis_user" #define SPIDER_JSON_KEY_REDIS_PASSWORD "redis_pw" #define SPIDER_JSON_KEY_SQLITE_NAME "sqlite_db" #define SPIDER_JSON_KEY_SQLITE_ROOT "sqlite_root" #define SPIDER_JSON_KEY_SQLITE_PASSWORD "sqlite_pw" #define SPIDER_JSON_KEY_FILE_NAME "file_name" // class ISpiderConnect { public: ISpiderConnect() {} virtual ~ISpiderConnect() {} virtual emSpiderType SpiderType() = 0; // virtual int RedisList(const char* command, const char* key, const char* values) = 0; virtual bool QueueString(const char* key, const char* value) = 0; virtual bool AppendCommand(void* func, char *szFormatCmd) = 0; virtual bool QueuePicture(const char* name, const ZImage* pImage, const char* format = "PNG") = 0; // virtual char* RedisFormatCommand(const char *format, ...) = 0; // virtual void* AllocMem(int nSize) = 0; // virtual void FreeMem(void* pMem) = 0; virtual bool HttpGet(const char* szTextUrl, class IHttpCallback* pHttpCb) = 0; enum emHttpType { GET, POST, PUT, }; virtual bool HttpPost(const char* szTextUrl, class IHttpCallback* pHttpCb) { return false; } }; //typedef ISpiderConnect ISpider; #define ISpider ISpiderConnect class IHttpCallback { public: IHttpCallback() {} virtual ~IHttpCallback() {} virtual void OnTotalSize(INT64 nSize) = 0;// virtual void OnReadReady(ZReply* pDevice) = 0; virtual void OnFinished() = 0; virtual void OnError(int nError) = 0; enum emInputType { INPUT_TYPE_NO, INPUT_TYPE_RAWDATA, INPUT_TYPE_QBYTEARRAY, INPUT_TYPE_ZIODEVICE, INPUT_TYPE_QHTTPMULTIPART, }; virtual emInputType GetInputType() { return INPUT_TYPE_NO; } virtual void* GetInputData(INT64& nSize) { return NULL; } }; #endif