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.
87 lines
2.1 KiB
87 lines
2.1 KiB
//=========== Copyright Valve Corporation, All rights reserved. ===============// |
|
// |
|
// Purpose: |
|
//=============================================================================// |
|
|
|
#ifndef UIFILERESOURCE_H |
|
#define UIFILERESOURCE_H |
|
|
|
|
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include "tier1/utlstring.h" |
|
|
|
namespace panorama |
|
{ |
|
|
|
// |
|
// A file reference container, you pass in an opaque string and it interprets what kind of reference is it |
|
// Supports local file and HTTP url right now |
|
// |
|
class CFileResource |
|
{ |
|
public: |
|
CFileResource(); |
|
CFileResource( const char *pchUTF8Path ); |
|
CFileResource( const CFileResource &src) { operator=(src); } |
|
~CFileResource(); |
|
|
|
bool BIsValid() const; |
|
bool BIsHTTPURL() const; |
|
bool BIsLocalPath() const; |
|
bool BIsSMBShare() const; |
|
const CUtlVector<CUtlString> &GetCookieHeadersForHTTPURL() const; |
|
|
|
const CUtlString &GetReferencePath() const; |
|
CUtlString &GetReferencePathForModify(); |
|
|
|
void Set( const char *pchUTF8Path ); |
|
CFileResource &operator=( const CFileResource & src); |
|
bool operator<( const CFileResource &left ) const; |
|
bool operator==( const CFileResource &left); |
|
#ifdef DBGFLAG_VALIDATE |
|
void Validate( CValidator &validator, const tchar *pchName ) |
|
{ |
|
VALIDATE_SCOPE(); |
|
ValidateObj( m_sReference ); |
|
ValidateObj( m_vecCookieHeaders ); |
|
FOR_EACH_VEC( m_vecCookieHeaders, iVec ) |
|
ValidateObj( m_vecCookieHeaders[iVec] ); |
|
} |
|
#endif |
|
private: |
|
|
|
enum EReferenceType |
|
{ |
|
eNone, |
|
eHTTPURL, |
|
eFile, |
|
eSMB, |
|
eSource2Relative |
|
}; |
|
EReferenceType m_eRefType; |
|
CUtlString m_sReference; |
|
|
|
// Only used for eHTTPURL type |
|
CUtlVector<CUtlString> m_vecCookieHeaders; |
|
}; |
|
|
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: ResourceImage types |
|
//----------------------------------------------------------------------------- |
|
enum EResourceImageType |
|
{ |
|
k_EResourceImageTypeUnknown = 0, |
|
k_EResourceImageTypeImage, |
|
k_EResourceImageTypeMovie |
|
}; |
|
|
|
// Function to determine resource type for a file resource |
|
EResourceImageType DetermineResourceType( const CFileResource &resource ); |
|
|
|
} // namespace panorama |
|
|
|
#endif // UIFILERESOURCE_H
|