--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/linklayercontrol/networkinterfacemgr/agentprcore/inc/agentmessages.h Tue Jan 26 15:23:49 2010 +0200
@@ -0,0 +1,223 @@
+// Copyright (c) 2006-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:
+// Support for sending provisioning information, retrieved from Agent, to the CFProtocol
+//
+//
+
+/**
+ @file
+ @internalTechnology
+ @prototype
+*/
+
+
+#ifndef SYMBIAN_AGENTMESSAGES_H
+#define SYMBIAN_AGENTMESSAGES_H
+
+#include <comms-infras/ss_tiermanagerutils.h>
+#include <comms-infras/linkmessages.h>
+#include <comms-infras/nifprvar.h>
+#include <comms-infras/agentprconst.h>
+#include <comms-infras/metadata.h>
+#include <cdblen.h>
+#include <nifman.h>
+
+#include <comms-infras/nifprvar_internal.h>
+
+class CAgentSubConnectionProvider;
+class CCredentialsConfig;
+class CAgentAdapter;
+
+
+
+/**
+Base class for notification handlers for Agents
+*/
+class CAgentNotificationHandler : public CBase
+ {
+ friend class CAgentSubConnectionProvider;
+
+public:
+ void Initialise (CAgentSubConnectionProvider* aAgentSCPr);
+
+ // Upcalls from the agent
+ IMPORT_C virtual void ConnectCompleteL ();
+ IMPORT_C virtual TInt NotificationFromAgent (TAgentToFlowEventType aEvent, TAny* aInfo);
+ IMPORT_C virtual void ServiceStarted ();
+
+ // Notification received from the flow, bound for the agent
+ IMPORT_C virtual TInt NotificationFromFlow (TFlowToAgentEventType aEvent);
+
+protected:
+ IMPORT_C CAgentNotificationHandler ();
+ IMPORT_C void AppendExtensionL(const Meta::SMetaData* aExtension);
+ IMPORT_C const Meta::SMetaData* GetExtension(const Meta::STypeId& aType) const;
+
+
+ // Utility calls to the agent
+ IMPORT_C TInt ReadPortName (TDes& aPortName);
+ IMPORT_C TInt ReadIfParams (TDes& aIfParams);
+ IMPORT_C TInt ReadIfNetworks (TDes& aIfNetworks);
+ IMPORT_C TInt ReadExcessData (TDes8& aBuffer);
+ IMPORT_C TInt ReadNifName (TDes& aNifName);
+ IMPORT_C TInt QueryIsDialIn();
+ IMPORT_C TInt NotificationToAgent (TFlowToAgentEventType aEvent, TAny* aInfo);
+
+ // Utility calls for posting messages
+ IMPORT_C TInt PostMessageToFlow(const Messages::TRuntimeCtxId& aSender, Messages::TSignatureBase& aMessage);
+ IMPORT_C TInt AnonPostMessageToFlow(const Messages::TSignatureBase& aMessage);
+
+private:
+ static CAgentNotificationHandler* NewL(); // Only for use by the AgentSCPr
+ CAgentSubConnectionProvider* iAgentSCPr;
+ };
+
+
+
+/**
+Information to be provisioned to Agent SCPr's by MCPr's
+*/
+class CAgentProvisionInfo : public CBase, public Meta::SMetaData
+ {
+public:
+ /**
+ EPromptForReconnect - When the link is lost unexpectedly with the possibility to
+ reconnect prompt the user to make the decision
+
+ EDoNotAttemptReconnect - When the link is lost unexpectedly with the possibility to
+ reconnect never attempt reconnection and Error the Cpr
+
+ EAttemptReconnect - When the link is lost unexpectedly with the possibility to
+ reconnect always perform the reconnection.
+ */
+ enum TAgentReconnectOption
+ {
+ EPromptForReconnect = -1,
+ EDoNotAttemptReconnect = 0,
+ EAttemptReconnect = 1,
+ };
+
+public:
+ enum
+ {
+ EUid = 0x10281E07,
+ ETypeId = 1,
+ };
+
+ IMPORT_C ~CAgentProvisionInfo();
+
+ inline CAgentProvisionInfo()
+ : iAgentNotificationHandler(NULL),
+ iAgentAdapter(NULL),
+ iCredentials(NULL),
+ iIapId(0),
+ iBearerSet(0),
+ iReconnectOption(EPromptForReconnect), // this is the same as the legacy behaviour
+ iReconnectAttempts(0)
+ {
+ }
+
+ inline const TDesC& AgentName () const;
+ inline TInt SetAgentName (const TDesC& aAgentName);
+
+ inline TUint32 IapId() const;
+ inline void SetIapId(TUint32 aIap);
+
+ inline TUint32 NetworkId() const;
+ inline void SetNetworkId(TUint32 aNetId);
+
+ inline TInt BearerSet() const;
+ inline void SetBearerSet(TUint32 aBearerSet);
+
+ inline CAgentNotificationHandler* AgentNotificationHandler() const;
+ inline void SetAgentNotificationHandler (CAgentNotificationHandler* aAgentNotificationHandler);
+
+ inline CCredentialsConfig* Credentials() const;
+ inline void SetCredentials (CCredentialsConfig* aCredentials);
+
+ inline CAgentAdapter* AgentAdapter() const;
+ inline void SetAgentAdapter (CAgentAdapter* aAgentAdapter);
+
+ inline CAgentProvisionInfo::TAgentReconnectOption ReconnectOption() const;
+ inline void SetReconnectOption(CAgentProvisionInfo::TAgentReconnectOption aOption);
+
+ inline TUint32 ReconnectAttempts() const;
+ inline void SetReconnectAttempts(TUint32 aAttempts);
+
+private:
+ RBuf iAgentName;
+ CAgentNotificationHandler* iAgentNotificationHandler;
+ CAgentAdapter* iAgentAdapter;
+
+ // iCredentials pointer contains information associated with an
+ // AuthenticationResponse message sent to the Flow.
+ CCredentialsConfig* iCredentials;
+ TUint32 iIapId;
+ TUint32 iNetworkId;
+ TUint32 iBearerSet;
+ TAgentReconnectOption iReconnectOption;
+ TUint32 iReconnectAttempts;
+
+public:
+ DATA_VTABLE
+ };
+
+
+class CCredentialsConfig : public CBase, public Meta::SMetaData
+/**
+
+@internalTechnology
+@released Since 9.4
+*/
+ {
+public:
+ enum
+ {
+ EUid = 0x10281E07,
+ ETypeId = 2,
+ };
+
+ inline TInt Initialise(const TDesC& aUserName, const TDesC& aPassword, TInt aResult);
+ static IMPORT_C CCredentialsConfig* NewLC(ESock::CCommsDatIapView* aIapView);
+ inline ~CCredentialsConfig();
+
+ //getters
+ inline const TDesC& GetUserName() const;
+ inline const TDesC& GetPassword() const;
+ inline TInt GetResult() const;
+
+ //setters
+ inline TInt SetUserName(const TDesC& aUserName);
+ inline void SetUserName(HBufC* aUserName);
+ inline TInt SetPassword(const TDesC& aPassword);
+ inline void SetPassword(HBufC* aUserName);
+ inline void SetResult(TInt aResult);
+
+protected:
+ inline CCredentialsConfig();
+
+ RBuf iUserName;
+ RBuf iPassword;
+ TInt iResult;
+public:
+ DATA_VTABLE
+};
+
+#include <comms-infras/agentmessages.inl>
+
+#endif
+// SYMBIAN_AGENTMESSAGES_H
+
+
+