#pragma once
#include "expatxmlparser.h"
#include "Workspace.h"


/*!
	PropFindのリクエストパーサ
*/
class CDAVPropfindReqParser :
	protected CExpatXmlParser
{
public:
	CDAVPropfindReqParser(void);
	virtual ~CDAVPropfindReqParser(void);

	//!	パースを実行
	int ParsePropfind(CBinaryData &xml, CWorkspaceAccess propertys);

protected:
	/////////////////////////////////////////////////////////////////////////////////////
	//	実装
	/////////////////////////////////////////////////////////////////////////////////////
	//!	開始タグ
	virtual void OnStartTag(LPCSTR tag, LPCSTR *atts, int attsCount);

	//!	終了タグ
	virtual void OnEndTag(LPCSTR tag);

	//!	データ
	virtual void OnData(const char *data, int len);

	/////////////////////////////////////////////////////////////////////////////////////
	//	メンバ変数
	/////////////////////////////////////////////////////////////////////////////////////
	//!	プロパティリスト
	CWorkspaceAccess	m_propertys;

	//!	Propfindタグの中
	int					m_inPropfind;

	//!	Propタグの中
	int					m_inProp;
};
