Fixed Send Message Default Handler routines according to Dejana's request.
Removed some unnecessary funtions.
// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
// All rights reserved.
// This component and the accompanying materials are made available
// under the terms of "Eclipse Public License v1.0"
// which accompanies this distribution, and is available
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
//
// Initial Contributors:
// Nokia Corporation - initial contribution.
//
// Contributors:
//
// Description:
// Defines the CRawIPNifMain class, which provides a central point for the NIF
// to communicate with NifMan and the BCA controller. This class creates an
// interface to the IPv4 protocol when it is required.
//
//
/**
@file
*/
#ifndef RAWIPNIFMAIN_H
#define RAWIPNIFMAIN_H
#include <comms-infras/nifif.h>
#include <networking/packetlogger.h>
#include <in_sock.h>
#include "ProtocolIfBase.h"
#include "BcaIoController.h"
#include "MControllerObserver.h"
#include "bttlog.h"
#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
#include <comms-infras/nifprvar_internal.h>
#endif
class CBttLogger;
class CPacketLogger;
class CRawIPNifMain : public CNifIfLink, public MControllerObserver
{
public:
CRawIPNifMain(CNifIfFactory& aFactory, MNifIfNotify* aNotify, CBttLogger* aTheLogger);
~CRawIPNifMain();
void ConstructL(const TDesC& aName);
// Used to be :Pure virtuals inherited from MContextSmObserver
CBcaIoController* GetBcaController();
void UpdateContextState(RPacketContext::TContextStatus aState,
TInt aError);
void UpdateContextConfig(
RPacketContext::TContextConfigGPRS aConfig);
public: // Pure virtuals inherited from CNifIfBase
virtual void Info(TNifIfInfo&) const;
virtual TInt Send(RMBufChain& aPdu, TAny* aSource=0);
virtual TInt Notification(TAgentToNifEventType aEvent, void * aInfo);
public: // Virtuals inherited from CNifIfBase
virtual void BindL(TAny *aId);
virtual TInt Control(TUint aLevel, TUint aName, TDes8& aOption,
TAny* aSource);
virtual TInt State();
public: // Pure virtuals inherited from CNifIfLink
virtual TInt Start();
virtual void Stop(TInt aReason,MNifIfNotify::TAction aAction);
virtual CNifIfBase* GetBinderL(const TDesC& aName);
virtual void Restart(CNifIfBase* aIf);
public: // Virtuals inherited from CNifIfLink
virtual void AuthenticateComplete(TInt aResult);
public: // Pure virtuals inherited from MRawIPNifObserverBase
virtual void InitialiseL(TInitialisationState aState, TInt aError);
virtual void ShutDown(TInitialisationState aState, TInt aError);
virtual MNifIfNotify* GetAgent();
virtual CProtocolIfBase* GetProtocolIf();
public: // Pure virtuals inherited from MControllerObserver
// Data going upstack
virtual void Process(RMBufChain& aPdu, TUint16 aProtocolCode);
// Flow Control unblocked
virtual void ResumeSending();
public: // Inherited from MNifIfNotify
// Notify that link is Up/Down
virtual void LinkLayerUp();
virtual void LinkLayerDown(TInt aError);
public: // Send data to CBcaIoController
TInt SendPacket(RMBufChain& aPdu, TAny* /*aSource=0*/,
TUint16 /*aType=KIp4FrameType*/);
public: // Context status retrieval.
inline RPacketContext::TContextStatus GetContextStatus();
private:// Unowned
/** networking packet logger for debugging packets */
__PACKETLOG_DECLARATION_MEMBER;
CBttLogger* iTheLogger;
// Upstack bound protocol reference
CProtocolBase* iProtocol;
// The protocol to use (IPv4).Note: This is not owned by this class.
CProtocolIfBase* iProtocolIf;
private:// Owned
TInt iInitError;
TIfStatus iState; // One of EIfPending, EIfUp, EIfBusy or EIfDown.
RPacketContext::TContextStatus iContextStatus;
RPacketContext::TContextConfigGPRS iContextConfig;
CBcaIoController* iBcaController;
};
inline RPacketContext::TContextStatus CRawIPNifMain::GetContextStatus()
/**
* Returns Context status
*
* @return iContextStatus The context status
*/
{
return iContextStatus;
}
#endif // RAWIPNIFMAIN_H