📄 server.h
字号:
// Server.h
//
// Copyright (c) 1999-2007 Symbian Software Ltd. All rights reserved.
//
// $Change: 937687 $
#ifndef SERVER_H
#define SERVER_H
// SYSTEM HEADERS
#include <e32base.h>
// needed for creating server thread.
const TUint KDefaultHeapSize = 0x10000;
// reasons for server panic
enum TCountServPanic
{
EBadRequest,
EBadDescriptor,
EMainSchedulerError,
ESvrCreateServer,
ESvrStartServer,
ECreateTrapCleanup,
ENotImplementedYet,
};
//**********************************
//CCountServServer
//**********************************
//The server class; an active object.
//Contains an instance of RServer; a handle to the kernel server representation which is used
//to receive messages.
class CCountServServer : public CServer2
{
public:
enum {EPriority = 950};
public:
static void New();
virtual CSession2 *NewSessionL(const TVersion &aVersion, const RMessage2& aMessage) const;
static TInt ThreadFunction(TAny* aStarted);
protected:
CCountServServer(TInt aPriority);
private:
TInt iActive;
};
//**********************************
//CCountServSession
//**********************************
//This class represents a session in the server.
//CSession::Client() returns the client thread.
//Functions are provided to respond appropriately to client messages.
class CCountServSession : public CSession2
{
public:
// construct/destruct
CCountServSession(CCountServServer* aServer);
static CCountServSession* NewL(CCountServServer* aServer);
~CCountServSession();
//service request
virtual void ServiceL(const RMessage2& aMessage);
void DispatchMessageL(const RMessage2& aMessage);
//services available to initialize/increase/decrease/reset and return the counter value.
void Increase();
void Decrease();
void IncreaseBy(TInt aValue);
void DecreaseBy(TInt aValue);
void CounterValue(const RMessage2& aMessage);
void Reset();
protected:
// panic the client
void PanicClient(const RMessage2& aMessage, TInt aPanic) const;
// safewrite between client and server
void Write(const RMessage2& aMessage, const TDesC8& aDes, TInt anOffset = 0);
private:
CCountServServer* iCountSvr;
TInt iCount;
};
//**********************************
//global functions
//**********************************
// function to panic the server
GLREF_C void PanicServer(TCountServPanic aPanic);
// thread function for server
GLREF_C TInt CountServerThread(TAny *);
#endif // SERVER_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -