base
This commit is contained in:
@@ -0,0 +1,161 @@
|
||||
/***************************************************************************
|
||||
Parser Class Header ( Parser.h )
|
||||
-----------------------------------------
|
||||
|
||||
begin : 2013/02/19
|
||||
copyright : (C) 2013 Solbox Inc.
|
||||
author : Development 1 Team
|
||||
- 2013/02/19 - 1st dadamin
|
||||
email : dev1@solbox.com
|
||||
version : 3.2.0
|
||||
|
||||
CopyRight(C) 2005 Solbox Inc. All Rights reserved.
|
||||
Redistribution and use in source and binary forms, with or with out
|
||||
modification, are not permitted in outside of Solbox Inc.
|
||||
***************************************************************************/
|
||||
#ifndef __PARSER_H__
|
||||
#define __PARSER_H__
|
||||
|
||||
// XML
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
#include <libxml++/libxml++.h>
|
||||
|
||||
#include "Protocol.h"
|
||||
|
||||
///< BYTE ŸÀÔ Á¤ÀÇ
|
||||
#ifndef _BYTE_DEFINED
|
||||
#define _BYTE_DEFINED
|
||||
typedef unsigned char BYTE;
|
||||
#endif // _BYTE_DEFINED
|
||||
|
||||
class CServiceInfo;
|
||||
class CSocketControl;
|
||||
|
||||
// Parser Class
|
||||
class CParser
|
||||
{
|
||||
public:
|
||||
CParser();
|
||||
virtual ~CParser();
|
||||
|
||||
int SetSocket(int sfd, SSL* ssl);
|
||||
virtual int ReadHeader() = 0;
|
||||
virtual int ReadBody() = 0;
|
||||
|
||||
virtual int ConvertJobData(void *pData) = 0;
|
||||
|
||||
virtual int WriteHeader(int32_t bodylen = 0) = 0;
|
||||
virtual int WriteBoad(int32_t bodylen = 0) = 0;
|
||||
|
||||
virtual int ConvertClient(void *pData, int nCode = 0) = 0;
|
||||
protected:
|
||||
CSocketControl * m_sock;
|
||||
int32_t m_resp;
|
||||
private:
|
||||
|
||||
};
|
||||
|
||||
class CXMLParser : public CParser
|
||||
{
|
||||
public:
|
||||
CXMLParser();
|
||||
virtual ~CXMLParser();
|
||||
|
||||
virtual int ReadHeader() ;
|
||||
virtual int ReadBody();
|
||||
|
||||
virtual int ConvertJobData(void *pData);
|
||||
|
||||
virtual int WriteHeader(int32_t bodylen = 0);
|
||||
virtual int WriteBoad(int32_t bodylen = 0);
|
||||
|
||||
virtual int ConvertClient(void *pData, int nCode = 0);
|
||||
|
||||
xmlpp::Node* GetXMLJobNode() { return m_Job; }
|
||||
protected:
|
||||
bool GetXMJobLNode();
|
||||
int Parsering(const char * pstrxml);
|
||||
|
||||
private:
|
||||
MgeHeaderXML m_header;
|
||||
BYTE* m_pBodyData;
|
||||
|
||||
xmlpp::DomParser m_xmlparser;
|
||||
//xmlpp::Node::NodeList m_reqList;
|
||||
xmlpp::Node* m_Job;
|
||||
};
|
||||
|
||||
class CSDKParser : public CParser
|
||||
{
|
||||
public:
|
||||
CSDKParser();
|
||||
virtual ~CSDKParser();
|
||||
|
||||
virtual int ReadHeader();
|
||||
virtual int ReadBody();
|
||||
|
||||
virtual int ConvertJobData(void *pData);
|
||||
|
||||
virtual int WriteHeader(int32_t bodylen = 0);
|
||||
virtual int WriteBoad(int32_t bodylen = 0);
|
||||
|
||||
virtual int ConvertClient(void *pData, int nCode = 0);
|
||||
protected:
|
||||
|
||||
private:
|
||||
MgeHeaderSDK m_header;
|
||||
BYTE* m_pBodyData;
|
||||
};
|
||||
|
||||
class CEtcParser : public CParser
|
||||
{
|
||||
public:
|
||||
CEtcParser();
|
||||
virtual ~CEtcParser();
|
||||
|
||||
virtual int ReadHeader();
|
||||
virtual int ReadBody();
|
||||
|
||||
virtual int ConvertJobData(void *pData);
|
||||
|
||||
virtual int WriteHeader(int32_t bodylen = 0);
|
||||
virtual int WriteBoad(int32_t bodylen = 0);
|
||||
|
||||
virtual int ConvertClient(void *pData, int nCode = 0);
|
||||
protected:
|
||||
|
||||
private:
|
||||
MgeHeaderEtc m_header;
|
||||
BYTE* m_pBodyData;
|
||||
};
|
||||
|
||||
class CStrXMLParser : public CXMLParser
|
||||
{
|
||||
public:
|
||||
CStrXMLParser();
|
||||
virtual ~CStrXMLParser();
|
||||
|
||||
virtual int ReadHeader();
|
||||
virtual int ReadBody();
|
||||
|
||||
virtual int ConvertJobData(void *pData);
|
||||
|
||||
virtual int WriteHeader(int32_t bodylen = 0);
|
||||
virtual int WriteBoad(int32_t bodylen = 0);
|
||||
|
||||
virtual int ConvertClient(void *pData, int nCode = 0);
|
||||
protected:
|
||||
|
||||
private:
|
||||
string m_readdata;
|
||||
};
|
||||
|
||||
// Abstract Factory returning a Parser
|
||||
class CParserFactory
|
||||
{
|
||||
public:
|
||||
CParser* CreateParser(CServiceInfo &info);
|
||||
};
|
||||
#endif // __PARSER_H__
|
||||
Reference in New Issue
Block a user