You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
3.4 KiB
C
116 lines
3.4 KiB
C
|
5 years ago
|
/******************************************************************************
|
||
|
|
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
|