Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1996 Microsoft Corporation
Module Name :
link.cpp
Abstract:
Link data class and link data class link list implementation. It encapsulates all the informations about a web link.
Author:
Michael Cheuk (mcheuk)
Project:
Link Checker
Revision History:
--*/
#include "stdafx.h"
#include "link.h"
#include "lcmgr.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif
CLink::CLink( const CString& strURL, const CString& strBase, const CString& strRelative, BOOL fLocalLink ): /*++
Routine Description:
Constructor.
Arguments:
strURL - URL strBase - Base URL strRelative - Relative URL fLocalLink - Is local link?
Return Value:
N/A
--*/ m_strURL(strURL), m_strBase(strBase), m_strRelative(strRelative), m_fLocalLink(fLocalLink) { m_LinkState = eUnit; m_ContentType = eBinary; m_nStatusCode = 0;
PreprocessURL();
} // CLink::CLink
void CLink::SetURL( const CString& strURL ) /*++
Routine Description:
Set the URL.
Arguments:
strURL - URL
Return Value:
N/A
--*/ { m_strURL = strURL; PreprocessURL();
} // CLink::SetURL
void CLink::PreprocessURL( ) /*++
Routine Description:
Preprocess the m_strURL to clean up "\r\n" and change '\' to '/'
Arguments:
N/A
Return Value:
N/A
--*/ { // Change '\' to '\'
CLinkCheckerMgr::ChangeBackSlash(m_strURL);
// Remove all "\r\n" in the URL
int iIndex = m_strURL.Find(_T("\r\n")); while(iIndex != -1) { m_strURL = m_strURL.Left(iIndex) + m_strURL.Mid(iIndex + _tcslen(_T("\r\n"))); iIndex = m_strURL.Find(_T("\r\n")); }
} // CLink::PreprocessURL
CLinkPtrList::~CLinkPtrList( ) /*++
Routine Description:
Destructor. Clean up all the object in link list.
Arguments:
N/A
Return Value:
N/A
--*/ { if(!IsEmpty()) { POSITION Pos = GetHeadPosition(); do { CLink* pLink = GetNext(Pos); delete pLink; } while(Pos != NULL); }
} // CLinkPtrList::~CLinkPtrList
void CLinkPtrList::AddLink( const CString& strURL, const CString& strBase, const CString& strRelative, BOOL fLocalLink) /*++
Routine Description:
Add link object to list
Arguments:
strURL - URL strBase - Base URL strRelative - Relative URL fLocalLink - Is local link?
Return Value:
N/A
--*/ { CLink* pLink = new CLink(strURL, strBase, strRelative, fLocalLink); if(pLink) { try { AddTail(pLink); } catch(CMemoryException* pEx) { pEx->Delete(); } }
} // CLinkPtrList::AddLink
|