Files
interactive/rcts/rc_mngd/src/Parser.h
T
2026-08-07 17:38:18 +09:00

162 lines
3.2 KiB
C++

/***************************************************************************
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__