mirror of https://github.com/tongzx/nt5src
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.
111 lines
3.5 KiB
111 lines
3.5 KiB
/******************************************************************************
|
|
|
|
Copyright (c) 2000 Microsoft Corporation
|
|
|
|
Module Name:
|
|
Client.h
|
|
|
|
Abstract:
|
|
This file contains the declaration of the MPCClient class,
|
|
that describes a client's state.
|
|
|
|
Revision History:
|
|
Davide Massarenti (Dmassare) 04/20/99
|
|
created
|
|
|
|
******************************************************************************/
|
|
|
|
#if !defined(__INCLUDED___ULSERVER___CLIENT_H___)
|
|
#define __INCLUDED___ULSERVER___CLIENT_H___
|
|
|
|
|
|
#include <Wrapper.h>
|
|
|
|
|
|
#define CLIENT_DB_VERSION 0xDB000003
|
|
|
|
#define CLIENT_CONST__DB_EXTENSION L".db"
|
|
|
|
|
|
class MPCClient : public MPCPersist
|
|
{
|
|
public:
|
|
typedef UploadLibrary::Signature Sig;
|
|
typedef std::list<MPCSession> List;
|
|
typedef List::iterator Iter;
|
|
typedef List::const_iterator IterConst;
|
|
|
|
private:
|
|
MPCServer* m_mpcsServer;
|
|
MPC::wstring m_szFile; // For direct access.
|
|
|
|
Sig m_sigID;
|
|
List m_lstActiveSessions;
|
|
SYSTEMTIME m_stLastUsed;
|
|
DWORD m_dwLastSession;
|
|
|
|
mutable bool m_fDirty;
|
|
mutable HANDLE m_hfFile;
|
|
|
|
static const DWORD c_dwVersion = CLIENT_DB_VERSION;
|
|
|
|
//////////////////////////////////////////////////////////////////
|
|
|
|
HRESULT IDtoPath( /*[out]*/ MPC::wstring& szStr ) const;
|
|
|
|
//////////////////////////////////////////////////////////////////
|
|
|
|
public:
|
|
MPCClient( /*[in]*/ MPCServer* mpcsServer, /*[in]*/ const Sig& sigID );
|
|
MPCClient( /*[in]*/ MPCServer* mpcsServer, /*[in]*/ const MPC::wstring& szFile );
|
|
virtual ~MPCClient();
|
|
|
|
MPCServer* GetServer();
|
|
|
|
/////////////////////////////////////////////
|
|
|
|
virtual bool IsDirty() const;
|
|
|
|
virtual HRESULT Load( /*[in]*/ MPC::Serializer& streamIn );
|
|
virtual HRESULT Save( /*[in]*/ MPC::Serializer& streamOut ) const;
|
|
|
|
/////////////////////////////////////////////
|
|
|
|
bool operator==( /*[in]*/ const UploadLibrary::Signature& rhs );
|
|
|
|
bool Find ( /*[in]*/ const MPC::wstring& szJobID, /*[out]*/ Iter& it );
|
|
void Erase( /*[in] */ Iter& it );
|
|
|
|
/////////////////////////////////////////////
|
|
|
|
HRESULT GetInstance( /*[out]*/ CISAPIinstance*& isapiInstance, /*[out]*/ bool& fFound ) const;
|
|
HRESULT GetInstance( /*[out]*/ MPC::wstring& szURL ) const;
|
|
|
|
/////////////////////////////////////////////
|
|
|
|
HRESULT BuildClientPath( /*[out]*/ MPC::wstring& szPath ) const;
|
|
HRESULT GetFileName ( /*[out]*/ MPC::wstring& szFile ) const;
|
|
HRESULT GetFileSize ( /*[out]*/ DWORD& dwSize ) const;
|
|
HRESULT FormatID ( /*[out]*/ MPC::wstring& szID ) const;
|
|
|
|
bool CheckSignature() const;
|
|
|
|
/////////////////////////////////////////////
|
|
|
|
HRESULT OpenStorage ( /*[in]*/ bool fCheckFreeSpace );
|
|
HRESULT InitFromDisk( /*[in]*/ bool fCheckFreeSpace );
|
|
HRESULT SaveToDisk ( );
|
|
HRESULT SyncToDisk ( );
|
|
|
|
HRESULT GetSessions( /*[out]*/ Iter& itBegin, /*[out]*/ Iter& itEnd );
|
|
|
|
/////////////////////////////////////////////
|
|
|
|
Iter NewSession( /*[in]*/ UploadLibrary::ClientRequest_OpenSession& crosReq );
|
|
|
|
HRESULT AppendData( /*[in]*/ MPCSession& mpcsSession, /*[in]*/ MPC::Serializer& streamConn, /*[in]*/ DWORD dwSize );
|
|
|
|
HRESULT CheckQuotas( /*[in]*/ MPCSession& mpcsSession, /*[out]*/ bool& fServerBusy, /*[out]*/ bool& fAccessDenied, /*[out]*/ bool& fExceeded );
|
|
};
|
|
|
|
#endif // !defined(__INCLUDED___ULSERVER___CLIENT_H___)
|