00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #include <e32base.h>
00017
00018
00019 const TUint KDefaultHeapSize=0x10000;
00020
00021
00022 enum TCountServPanic
00023 {
00024 EBadRequest = 1,
00025 EBadDescriptor,
00026 EMainSchedulerError,
00027 ESvrCreateServer,
00028 ESvrStartServer,
00029 ECreateTrapCleanup,
00030 ENotImplementedYet,
00031 };
00032
00033
00034
00035
00036
00043 class CCountServServer : public CServer2
00044 {
00045 public:
00046
00047
00048
00049 CSession2* NewSessionL(const TVersion& aVersion,const RMessage2& aMessage) const;
00050 public :
00051
00052 static TInt ThreadFunction(TAny* aStarted);
00053
00054 static void PanicServer(TCountServPanic aPanic);
00055
00056 protected:
00057 CCountServServer(CActive::TPriority aActiveObjectPriority);
00058 };
00059
00060
00061
00062
00063
00068 class CCountServSession : public CSession2
00069 {
00070 public:
00071 CCountServSession();
00072
00073
00074 void ServiceL(const RMessage2& aMessage);
00075 void DispatchMessageL(const RMessage2& aMessage);
00076
00077
00078 void SetFromStringL(const RMessage2& aMessage);
00079 void Increase();
00080 void Decrease();
00081 void IncreaseBy(const RMessage2& aMessage);
00082 void DecreaseBy(const RMessage2& aMessage);
00083 void CounterValueL(const RMessage2& aMessage);
00084 void Reset();
00085
00086 protected:
00087
00088 void PanicClient(const RMessage2& aMessage,TInt aPanic) const;
00089
00090 private:
00091 TInt iCount;
00092 };
00093
00094