S60 3rd Edition SDK for Symbian OS
Example Applications Guide

TSIPExState Class Reference

#include <SIPExState.h>

Inheritance diagram for TSIPExState:

TSIPExStateAcceptingSIP TSIPExStateConnecting TSIPExStateIdle TSIPExStateInviting TSIPExStateLocal TSIPExStateRegistered TSIPExStateRegistering TSIPExStateRemote List of all members.

Public Member Functions

void ChangeState (CSIPExEngine *aContext, TSIPExState *aNewState)
void Info (CSIPExEngine *aContext, const TDesC &aText)
void StatusInfo (CSIPExEngine *aContext, const TDesC &aText)
void CombineAndShowInfoL (CSIPExEngine *aContext, const TDesC &aText, TInt aNum)
virtual void InviteReceived (CSIPExEngine *aContext, const TDesC8 &aFrom, const TUint32 aIapId)
virtual void InviteAcceptedByRemote (CSIPExEngine *aContext, const TInetAddr &aIPAddress, const TUint32 aIapId)
virtual void InviteDeclinedByRemote (CSIPExEngine *aContext, const TInt aResponse)
virtual void InviteReceivedByRemote (CSIPExEngine *aContext, const TInt aResponse)
virtual void InviteAcceptedByUs (CSIPExEngine *aContext)
virtual void InvitationCancelled (CSIPExEngine *aContext)
virtual void CancelFailed (CSIPExEngine *aContext)
virtual void ProfileEnabled (CSIPExEngine *aContext, TUint32 aSIPProfileId)
virtual void IMReceived (CSIPExEngine *aContext, const TDesC8 &aFrom, const TDesC8 &aMessage)
virtual void SessionEnded (CSIPExEngine *aContext)
virtual void ConnectionLost (CSIPExEngine *aContext)
virtual void ProfileError (CSIPExEngine *aContext, TInt aError)
void EngineError (CSIPExEngine *aContext, TInt aError)
virtual void SocketState (CSIPExEngine *aContext, TInt aNewState)
virtual void SocketData (CSIPExEngine *aContext, TDesC8 &aData)
virtual void InviteL (CSIPExEngine *aContext, const TDesC &aAddress)
virtual TBool DrawCursor ()
virtual TBool DrawBoard ()
virtual TInt CalculatePos (CSIPExEngine *aContext)
virtual TInt IsWin (CSIPExEngine *aContext, const TInt aX, const TInt aY)
virtual void EnableProfileL (CSIPExEngine *aContext)
virtual void DisableProfileL (CSIPExEngine *aContext)
virtual void CursorPressed (CSIPExEngine *aContext)
virtual void CursorRight (CSIPExEngine *aContext)
virtual void CursorLeft (CSIPExEngine *aContext)
virtual void MoveCursorL (CSIPExEngine *aContext, const TInt aNewPosition)
virtual void SendInstantMsgL (CSIPExEngine *aContext, const TDesC &aAddress, const TDesC &aMsg)
virtual void EndGameL (CSIPExEngine *aContext)

Detailed Description

The abstract base class for all states.

Definition at line 31 of file SIPExState.h.


Member Function Documentation

void TSIPExState::ChangeState (  CSIPExEngine *  aContext,
TSIPExState *  aNewState
) 
 

ChangeState Changing the active state.

Parameters:
aContext The pointer to the game engine.
aNewState The new active state.

Definition at line 26 of file SIPExState.cpp.

References CSIPExEngine::ChangeState().

00027     {
00028     aContext->ChangeState( *aNewState );
00029     }

void TSIPExState::Info (  CSIPExEngine *  aContext,
const TDesC &  aText
) 
 

Info Non leaving function for setting info text.

Parameters:
aContext The pointer to the game engine.
aText A text to set to the info

Definition at line 36 of file SIPExState.cpp.

References CSIPExEngine::InfoL().

00037     {
00038     TRAPD( ignore, aContext->InfoL( aText ) );
00039     }

void TSIPExState::StatusInfo (  CSIPExEngine *  aContext,
const TDesC &  aText
) 
 

StatusInfo Non leaving function for setting status info text.

Parameters:
aContext The pointer to the game engine.
aText A text to set to the info

Definition at line 46 of file SIPExState.cpp.

00047     {
00048     TRAPD( ignore, aContext->StatusInfoL( aText ) );
00049     }

void TSIPExState::CombineAndShowInfoL (  CSIPExEngine *  aContext,
const TDesC &  aText,
TInt  aNum
) 
 

CombineAndShowInfoL Combines a descriptor and a number value as one descriptor. The result descriptor is set to info view. The max length of the new desc is 64.

Parameters:
aContext The pointer to the game engine.
aText A text part.
aNum A number part.

Definition at line 56 of file SIPExState.cpp.

References Info().

00060     {
00061     HBufC* buf = HBufC::NewLC( 64 );
00062     buf->Des().Append( aText );
00063     buf->Des().AppendNum( aNum );
00064     Info( aContext, *buf );
00065     CleanupStack::PopAndDestroy( buf );
00066     }

void TSIPExState::InviteReceived (  CSIPExEngine *  aContext,
const TDesC8 &  aFrom,
const TUint32  aIapId
)  [virtual]
 

InviteReceived From MSIPExSIPEngineObserver.

Reimplemented in TSIPExStateIdle, and TSIPExStateRegistered.

Definition at line 73 of file SIPExState.cpp.

00075     { 
00076     }

void TSIPExState::InviteAcceptedByRemote (  CSIPExEngine *  aContext,
const TInetAddr &  aIPAddress,
const TUint32  aIapId
)  [virtual]
 

InviteAcceptedByRemote From MSIPExSIPEngineObserver.

Reimplemented in TSIPExStateInviting.

Definition at line 83 of file SIPExState.cpp.

00087     { 
00088     }

void TSIPExState::InviteDeclinedByRemote (  CSIPExEngine *  aContext,
const TInt  aResponse
)  [virtual]
 

InviteDeclinedByRemote From MSIPExSIPEngineObserver.

Reimplemented in TSIPExStateInviting.

Definition at line 95 of file SIPExState.cpp.

00098     { 
00099     }

void TSIPExState::InviteReceivedByRemote (  CSIPExEngine *  aContext,
const TInt  aResponse
)  [virtual]
 

InviteReceivedByRemote From MSIPExSIPEngineObserver.

Definition at line 467 of file SIPExState.cpp.

References CombineAndShowInfoL().

00469     {
00470     TRAPD( ignore, CombineAndShowInfoL( aContext, KProvResponse(), aResponse ) );
00471     }

void TSIPExState::InviteAcceptedByUs (  CSIPExEngine *  aContext  )  [virtual]
 

InviteAcceptedByUs From MSIPExSIPEngineObserver.

Definition at line 479 of file SIPExState.cpp.

References Info().

00480     { 
00481     Info( aContext, KAckReceived() ); 
00482     }

void TSIPExState::InvitationCancelled (  CSIPExEngine *  aContext  )  [virtual]
 

InvitationCancelled From MSIPExSIPEngineObserver.

Reimplemented in TSIPExStateAcceptingSIP, and TSIPExStateInviting.

Definition at line 106 of file SIPExState.cpp.

00107     { 
00108     }

void TSIPExState::CancelFailed (  CSIPExEngine *  aContext  )  [virtual]
 

CancelFailed From MSIPExSIPEngineObserver.

Definition at line 115 of file SIPExState.cpp.

00116     { 
00117     }

void TSIPExState::ProfileEnabled (  CSIPExEngine *  aContext,
TUint32  aSIPProfileId
)  [virtual]
 

ProfileEnabled From MSIPExSIPEngineObserver.

Reimplemented in TSIPExStateRegistering.

Definition at line 124 of file SIPExState.cpp.

00127     { 
00128     }

void TSIPExState::IMReceived (  CSIPExEngine *  aContext,
const TDesC8 &  aFrom,
const TDesC8 &  aMessage
)  [virtual]
 

IMReceived From MSIPExSIPEngineObserver.

Definition at line 440 of file SIPExState.cpp.

References CSIPExEngine::GameObserver(), and MSIPExGameObserver::IMReceivedL().

00444     {
00445     TRAPD( ignore, aContext->GameObserver().IMReceivedL( aFrom, aMessage ) );
00446     }

void TSIPExState::SessionEnded (  CSIPExEngine *  aContext  )  [virtual]
 

SessionEnded From MSIPExSIPEngineObserver.

Reimplemented in TSIPExStateIdle, and TSIPExStateRegistered.

Definition at line 399 of file SIPExState.cpp.

References ChangeState(), CSIPExEngine::DestroySocketEngine(), Info(), CSIPExEngine::iStateRegistered, CSIPExEngine::SocketEngineL(), StatusInfo(), and CSIPExSocketEngine::Stop().

00400     {
00401     ChangeState( aContext, aContext->iStateRegistered );
00402     Info( aContext, KSessionEnded() );
00403     StatusInfo( aContext, KGameOver() );
00404     TRAPD( ignore, aContext->SocketEngineL()->Stop() );
00405     aContext->DestroySocketEngine();
00406     }

void TSIPExState::ConnectionLost (  CSIPExEngine *  aContext  )  [virtual]
 

ConnectionLost From MSIPExSIPEngineObserver.

Definition at line 414 of file SIPExState.cpp.

References ChangeState(), Info(), CSIPExEngine::iStateIdle, and StatusInfo().

00415     {
00416     ChangeState( aContext, aContext->iStateIdle );
00417     Info( aContext, KConnectionLost() );
00418     StatusInfo( aContext, KGameOver() );
00419     }

void TSIPExState::ProfileError (  CSIPExEngine *  aContext,
TInt  aError
)  [virtual]
 

ProfileError From MSIPExSIPEngineObserver.

Reimplemented in TSIPExStateRegistering.

Definition at line 427 of file SIPExState.cpp.

References ChangeState(), CombineAndShowInfoL(), CSIPExEngine::iStateIdle, and StatusInfo().

00428     {
00429     ChangeState( aContext, aContext->iStateIdle );
00430     TRAPD( ignore, CombineAndShowInfoL( aContext, KProfileError(), aError ) );
00431     StatusInfo( aContext, KGameOver() );
00432     }

void TSIPExState::EngineError (  CSIPExEngine *  aContext,
TInt  aError
) 
 

EngineError From MSIPExSIPEngineObserver.

Definition at line 454 of file SIPExState.cpp.

References ChangeState(), CombineAndShowInfoL(), and StatusInfo().

00455     {
00456     ChangeState( aContext, aContext->iStateIdle );
00457     TRAPD( ignore, CombineAndShowInfoL( aContext, KErrorInSIPEngine(), aError ) );
00458     StatusInfo( aContext, KGameOver() );
00459     }

void TSIPExState::SocketState (  CSIPExEngine *  aContext,
TInt  aNewState
)  [virtual]
 

SocketState From MSIPExSocketEngineObserver.

Reimplemented in TSIPExStateAcceptingSIP, TSIPExStateConnecting, and TSIPExStateRegistered.

Definition at line 135 of file SIPExState.cpp.

00136     { 
00137     }

void TSIPExState::SocketData (  CSIPExEngine *  aContext,
TDesC8 &  aData
)  [virtual]
 

SocketData From MSIPExSocketEngineObserver.

Reimplemented in TSIPExStateRemote.

Definition at line 144 of file SIPExState.cpp.

00145     { 
00146     }

void TSIPExState::InviteL (  CSIPExEngine *  aContext,
const TDesC &  aAddress
)  [virtual]
 

InviteL Called when user invites the remote user to the game.

Reimplemented in TSIPExStateLocal, and TSIPExStateRegistered.

Definition at line 230 of file SIPExState.cpp.

00231     {
00232     }

TBool TSIPExState::DrawCursor (   )  [virtual]
 

DrawCursor Tells whether we should draw the cursor or not.

Reimplemented in TSIPExStateLocal.

Definition at line 239 of file SIPExState.cpp.

00240     {
00241     return EFalse;
00242     }

TBool TSIPExState::DrawBoard (   )  [virtual]
 

DrawBoard Tells whether we should draw the board or not.

Definition at line 249 of file SIPExState.cpp.

00250     { 
00251     return ETrue; 
00252     }

TInt TSIPExState::CalculatePos (  CSIPExEngine *  aContext  )  [virtual]
 

CalculatePos Calculates the next free place in cursor's column.

Definition at line 259 of file SIPExState.cpp.

References CSIPExEngine::BoardValue(), and CSIPExEngine::Cursor().

00260     {
00261     TInt y( KErrNotFound );
00262 
00263         for ( TInt i = KBoxCountX - 1; i >= 0; i-- ) 
00264         {
00265                 if ( aContext->BoardValue( aContext->Cursor(), i ) == -1 ) 
00266             {
00267                         y = i;
00268                         return y;
00269                     }
00270             }
00271 
00272         return y;
00273     }

TInt TSIPExState::IsWin (  CSIPExEngine *  aContext,
const TInt  aX,
const TInt  aY
)  [virtual]
 

IsWin Checks the if the move is winning move.

Definition at line 280 of file SIPExState.cpp.

References CSIPExEngine::BoardValue().

00281     {
00282         TInt ret = -1;
00283 
00284         TInt player = aContext->BoardValue( aX, aY );
00285         TInt line1 = 1;
00286         TInt line2 = 1;
00287         TInt line3 = 1;
00288         TInt line4 = 1;
00289 
00290         TInt i = 0;
00291         TInt j = 0;
00292 
00293         for (i = aX + 1; i < 8; i ++) 
00294         {
00295                 if ( aContext->BoardValue( i, aY ) == player )
00296                         line1 ++;
00297                 else
00298                         break;
00299             }
00300 
00301         for (i = aX - 1; i >= 0; i --) 
00302         {
00303                 if ( aContext->BoardValue( i, aY ) == player )
00304                         line1 ++;
00305                 else
00306                         break;
00307             }
00308 
00309         if (line1 >= 4)
00310                 return player;
00311 
00312         for (i = aY + 1; i < 8; i ++) 
00313         {
00314                 if ( aContext->BoardValue( aX, i ) == player )
00315                         line2 ++;
00316                 else
00317                         break;
00318             }
00319 
00320         for (i = aY - 1; i >= 0; i --)
00321         {
00322                 if ( aContext->BoardValue( aX, i ) == player )
00323                         line2 ++;
00324                 else
00325                         break;
00326             }
00327 
00328         if (line2 >= 4)
00329                 return player;
00330 
00331 
00332         j = aY;
00333         for (i = aX + 1; i < 8; i ++) 
00334         {
00335                 j = j + 1;
00336                 if (j > 7)
00337                         break;
00338 
00339                 if ( aContext->BoardValue( i, j ) == player )
00340                         line3 ++;
00341                 else
00342                         break;
00343             }
00344 
00345         j = aY;
00346         for (i = aX - 1; i >= 0; i --) 
00347         {
00348                 j = j - 1;
00349                 if (j < 0)
00350                         break;
00351 
00352                 if ( aContext->BoardValue( i, j ) == player )
00353                         line3 ++;
00354                 else
00355                         break;
00356             }
00357 
00358         if (line3 >= 4)
00359                 return player;
00360 
00361         j = aY;
00362         for (i = aX + 1; i < 8; i ++) 
00363         {
00364                 j = j - 1;
00365                 if (j < 0)
00366                         break;
00367 
00368                 if ( aContext->BoardValue( i, j ) == player )
00369                         line4 ++;
00370                 else
00371                         break;
00372             }
00373 
00374         j = aY;
00375         for (i = aX - 1; i >= 0; i --) 
00376         {
00377                 j = j + 1;
00378                 if (j > 7)
00379                         break;
00380 
00381                 if ( aContext->BoardValue( i, j ) == player )
00382                         line4 ++;
00383                 else
00384                         break;
00385             }
00386 
00387         if (line4 >= 4)
00388                 return player;
00389 
00390         return ret;
00391     }

void TSIPExState::EnableProfileL (  CSIPExEngine *  aContext  )  [virtual]
 

EnableProfile Virtual function.

Reimplemented in TSIPExStateIdle.

Definition at line 153 of file SIPExState.cpp.

00154     { 
00155     }

void TSIPExState::DisableProfileL (  CSIPExEngine *  aContext  )  [virtual]
 

DisableProfile Virtual function.

Reimplemented in TSIPExStateLocal, TSIPExStateRegistered, and TSIPExStateRemote.

Definition at line 162 of file SIPExState.cpp.

00163     { 
00164     }

void TSIPExState::CursorPressed (  CSIPExEngine *  aContext  )  [virtual]
 

CursorPressed Virtual function.

Reimplemented in TSIPExStateLocal.

Definition at line 171 of file SIPExState.cpp.

00172     { 
00173     }

void TSIPExState::CursorRight (  CSIPExEngine *  aContext  )  [virtual]
 

CursorRight Virtual function.

Reimplemented in TSIPExStateLocal.

Definition at line 180 of file SIPExState.cpp.

00181     { 
00182     }

void TSIPExState::CursorLeft (  CSIPExEngine *  aContext  )  [virtual]
 

CursorLeft Virtual function.

Reimplemented in TSIPExStateLocal.

Definition at line 189 of file SIPExState.cpp.

00190     { 
00191     }

void TSIPExState::MoveCursorL (  CSIPExEngine *  aContext,
const TInt  aNewPosition
)  [virtual]
 

MoveCursorL Virtual function

Reimplemented in TSIPExStateLocal.

Definition at line 198 of file SIPExState.cpp.

00201     { 
00202     }

void TSIPExState::SendInstantMsgL (  CSIPExEngine *  aContext,
const TDesC &  aAddress,
const TDesC &  aMsg
)  [virtual]
 

SendInstantMsgL Virtual function.

Reimplemented in TSIPExStateLocal, TSIPExStateRegistered, and TSIPExStateRemote.

Definition at line 209 of file SIPExState.cpp.

00213     { 
00214     }

void TSIPExState::EndGameL (  CSIPExEngine *  aContext  )  [virtual]
 

EndGameL Virtual function.

Reimplemented in TSIPExStateAcceptingSIP, TSIPExStateConnecting, TSIPExStateInviting, TSIPExStateLocal, and TSIPExStateRemote.

Definition at line 221 of file SIPExState.cpp.

00222     { 
00223     }


© Nokia 2006

Back to top