#pragma once
#include "normalresponse.h"
#include "alias.h"
#import <msxml.dll>

class CDAVPropfindResponse :
	public CNormalResponse
{
public:
	CDAVPropfindResponse(CServer *server,CConfigAccess context,CRequest request,CAlias alias);
	virtual ~CDAVPropfindResponse(void);

	virtual void PreCreateResponse() {};			//	1:レスポンス生成準備		
	virtual void SetNextData(CBuffer &data);		//	2:受信データの設定(繰り返し)
	virtual void CreateResponse();					//	3:レスポンスの生成
	virtual __int64 GetResponseSize();				//	4:レスポンスサイズの取得
//	virtual CConfigAccess GetResponseInfo();		//	5:レスポンス情報を取得
	virtual int GetNextData(CBuffer &data);			//	6:レスポンスの取得

	void FindAll(MSXML::IXMLDOMDocumentPtr doc,MSXML::IXMLDOMElementPtr res);
	void FindFiles(MSXML::IXMLDOMDocumentPtr doc,MSXML::IXMLDOMElementPtr res,CString url,CString path);
	void AddInfo(MSXML::IXMLDOMDocumentPtr doc,MSXML::IXMLDOMElementPtr res,CFileFind &find,CString url);
	void AddVolumeInfo(MSXML::IXMLDOMDocumentPtr doc,MSXML::IXMLDOMElementPtr res,CString volume,CString url);
	void AddAttr(MSXML::IXMLDOMDocumentPtr doc,MSXML::IXMLDOMElementPtr res,CString attr,CString text);

	CString EncodeUrl(CString url);

	CString	m_body;
};
