📄 filesession.cpp
字号:
/*
* ==============================================================================
* Name : FileSession.cpp
* Part of :clientserversync
* Interface :
* Description :
* Version :
* ==============================================================================
*/
// INCLUDE FILES
#include <e32svr.h>
#include <f32file.h>
#include <aknnotewrappers.h>
#include <e32cons.h>
#include <aknglobalnote.h>
#include <bautils.h>
#include <e32cmn.h>
#include "FileSession.h"
#include "ClientServerCommon.h"
#include "FileServer.h"
//LOCAL_D CConsoleBase* console;
const TUint KRequiredSecureId = 0xe3d58664;
// ========================= MEMBER FUNCTIONS ==================================
// -----------------------------------------------------------------------------
// CFileServerSession::NewL()
// -----------------------------------------------------------------------------
//
CFileServerSession* CFileServerSession::NewL()
{
CFileServerSession* self = new( ELeave ) CFileServerSession();
CleanupStack::PushL( self );
self->ConstructL();
CleanupStack::Pop();
return self;
}
// -----------------------------------------------------------------------------
// CFileServerSession::ConstructL()
// Symbian 2nd phase constructor can leave.
// -----------------------------------------------------------------------------
//
void CFileServerSession::ConstructL()
{
}
// -----------------------------------------------------------------------------
// CFileServerSession::CFileServerSession()
// C++ default constructor can NOT contain any code, that might leave.
// -----------------------------------------------------------------------------
CFileServerSession::CFileServerSession() : CSession2()
{
}
CFileServer* CFileServerSession::Server()
{
return (CFileServer*)( CSession2::Server() );
}
// -----------------------------------------------------------------------------
// CFileServerSession::~CFileServerSession()
// Destructor.
// -----------------------------------------------------------------------------
//
CFileServerSession::~CFileServerSession()
{
Server()->DecrementSessions();
}
// -----------------------------------------------------------------------------
// CFileServerSession::ServiceL()
// Service request from client.
// -----------------------------------------------------------------------------
//
void CFileServerSession::ServiceL( const RMessage2& aMessage )
{
iMsg=aMessage;
const char *aDiagnostic="";
static _LIT_SECURITY_POLICY_S0(mySidPolicy, KRequiredSecureId);
TInt success = mySidPolicy().CheckPolicy(aMessage,aDiagnostic);
if ( success )
{
switch ( aMessage.Function() )
{
case EFileCreation :
{
iFileNameCreate.Zero();
//iFileNameCreatePath.Zero();
//iFileNameCreatePath.Append(KFileNamePath);
//iFileNameCreatePath.AppendNum(KRequiredSecureId);
//iFileNameCreatePath.Append(_L("\\"));
User::LeaveIfError(aMessage.Read(0,iFileNameCreate));
//iFileNameCreatePath.Append(iFileNameCreate);
User::LeaveIfError(iSess.Connect());
RFile lFile;
if(!iFileExist.FileExists(iSess,iFileNameCreate))
{
if(lFile.Create(iSess,iFileNameCreate,EFileWrite) == KErrNone)
{
iRes.Zero();
iRes.Copy(_L("successfully created"));
aMessage.Write(0,iRes);
}
else
{
iRes.Zero();
iRes.Copy(_L("problem in creation"));
aMessage.Write(0,iRes);
}
}
else
{
iRes.Zero();
iRes.Copy(_L("already exists"));
aMessage.Write(0,iRes);
}
iSess.Close();
}
break;
case EFileDeletion :
{
iFileNameDelete.Zero();
//iFileNameDeletePath.Zero();
//iFileNameDeletePath.Append(KFileNamePath);
//iFileNameDeletePath.AppendNum(KRequiredSecureId);
//iFileNameDeletePath.Append(_L("\\"));
User::LeaveIfError(aMessage.Read(0,iFileNameDelete));
//iFileNameDeletePath.Append(iFileNameDelete);
User::LeaveIfError(iSess.Connect());
if(iFileExist.FileExists(iSess,iFileNameDelete))
{
if(iSess.Delete(iFileNameDelete) == KErrNone)
{
iRes.Zero();
iRes.Copy(_L("successfully deleted"));
aMessage.Write(0,iRes);
}
else
{
iRes.Zero();
iRes.Copy(_L("problem in deletion"));
aMessage.Write(0,iRes);
}
}
else
{
iRes.Zero();
iRes.Copy(_L("file doesnt exist"));
aMessage.Write(0,iRes);
}
iSess.Close();
}
break;
default:
PanicClient( EBadRequest );
break;
}
}
else
{
iRes.Copy(_L("secureid prob"));
aMessage.Write(0,iRes);
}
aMessage.Complete( KErrNone );
}
// -----------------------------------------------------------------------------
// CFileServerSession::PanicClient()
// Causes the client thread to panic.
// -----------------------------------------------------------------------------
//
void CFileServerSession::PanicClient( TInt aPanic ) const
{
User::Panic( KCSSyncServer,aPanic ); // Note: this panics the client thread,
// not server
}
// End of File
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -