--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/linklayercontrol/networkinterfacemgr/agentprcore/inc/agentscpr.h Tue Jan 26 15:23:49 2010 +0200
@@ -0,0 +1,141 @@
+// 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:
+//
+
+/**
+ @file
+ @internalTechnology
+ @prototype
+*/
+
+
+#ifndef SYMBIAN_AGENTSCPR_H
+#define SYMBIAN_AGENTSCPR_H
+
+#include <comms-infras/corescpr.h>
+#include <comms-infras/nifprvar.h>
+#include <comms-infras/ss_metaconnprov.h>
+#include <comms-infras/agentmessages.h>
+#include <cdblen.h>
+#include <nifman.h>
+
+#include <comms-infras/nifprvar_internal.h>
+#include <nifman_internal.h>
+
+
+
+class CAgentAdapter;
+class CAgentNotificationHandler;
+
+namespace AgentSCprStates
+{
+ class TSendBindTo;
+ class TJoinAgent;
+ class TStartAgent;
+ class TStopAgent;
+ class TSendAuthenticate;
+ class TAwaitingAuthenticateComplete;
+ class TSendAuthenticateComplete;
+ class TNotifyAgent;
+ class TProcessDataClientGoneDown;
+ class TNoTagOrProviderStopped;
+ class TNoTagOrProviderStarted;
+ class TSendDataClientGoneDown;
+ class TSendError;
+ class TSendDataClientStarted;
+ class TAwaitingDataClientStop;
+} // AgentSCprStates
+
+
+class CAgentSubConnectionProvider : public CCoreSubConnectionProvider
+ {
+ friend class CAgentNotificationHandler;
+ friend class AgentSCprStates::TSendBindTo;
+ friend class AgentSCprStates::TJoinAgent;
+ friend class AgentSCprStates::TStartAgent;
+ friend class AgentSCprStates::TStopAgent;
+ friend class AgentSCprStates::TSendAuthenticate;
+ friend class AgentSCprStates::TAwaitingAuthenticateComplete;
+ friend class AgentSCprStates::TSendAuthenticateComplete;
+ friend class AgentSCprStates::TNotifyAgent;
+ friend class AgentSCprStates::TProcessDataClientGoneDown;
+ friend class AgentSCprStates::TNoTagOrProviderStopped;
+ friend class AgentSCprStates::TNoTagOrProviderStarted;
+ friend class AgentSCprStates::TSendDataClientGoneDown;
+ friend class AgentSCprStates::TSendError;
+ friend class AgentSCprStates::TSendDataClientStarted;
+ friend class AgentSCprStates::TAwaitingDataClientStop;
+ friend class CAgentAdapter;
+
+public:
+ IMPORT_C static CAgentSubConnectionProvider* NewL(ESock::CSubConnectionProviderFactoryBase& aFactory);
+ IMPORT_C ~CAgentSubConnectionProvider();
+ void StartAgentL();
+ void StopAgent(TInt aReason);
+
+protected:
+ IMPORT_C CAgentSubConnectionProvider(ESock::CSubConnectionProviderFactoryBase& aFactory,
+ const MeshMachine::TNodeActivityMap& aActivityMap);
+ IMPORT_C void CleanupProvisioningInfo ();
+
+ // Messages::ANode Interface
+ IMPORT_C virtual void ReceivedL(const Messages::TRuntimeCtxId& aSender, const Messages::TNodeId& aRecipient, Messages::TSignatureBase& aMessage);
+
+ IMPORT_C const CAgentProvisionInfo* AgentProvisionInfo () const;
+
+ IMPORT_C void ConnectAgent (TAgentConnectType aConnectType);
+ IMPORT_C TInt NotificationToAgent (TFlowToAgentEventType aEvent, TAny* aInfo);
+
+private:
+ // Methods that are called from the CAgentAdapter
+ void ServiceStarted();
+ void ConnectionUpL();
+ void ConnectionDownL();
+ void AuthenticateCompleteL(TInt aStatus);
+ void PromptForReconnectComplete(TInt aStatus);
+ void ProgressL(TInt aStage);
+ void Error (const Elements::TStateChange& aProgress);
+ void NetworkAdaptorEvent(TNetworkAdaptorEventType aEventType, TUint aEvent, const TDesC8& aEventData, TAny* aSource=NULL);
+ TInt NotificationFromAgent(TAgentToFlowEventType aEvent, TAny* aInfo=NULL);
+
+private:
+ void NotificationFromFlow(TFlowToAgentEventType aEvent);
+ void ProvisionAgentInfoL();
+ TInt PostMessageToFlow(const Messages::TRuntimeCtxId& aSender, const Messages::TSignatureBase& aMessage);
+ inline void SetActivityIdForAdapter(TUint aActivityId);
+ void CancelStartOrSendStopToSelf(TInt aError);
+
+
+private:
+ TBool iScprOwnedNotificationHandler;
+ TBool iAuthenticateInProgress;
+ TBool iStopRequested; // ETrue means an agent stop has been requested - not that the SCPr has received a TCFDataClient::TStop
+ TInt iStoppingReason;
+
+ Elements::TStateChange iLastProgress;
+ TBuf<KCommsDbSvrMaxUserIdPassLength> iUsername;
+ TBuf<KCommsDbSvrMaxUserIdPassLength> iPassword;
+ TUint iActivityIdForAdapter;
+ };
+
+
+inline void CAgentSubConnectionProvider::SetActivityIdForAdapter(TUint aActivityId)
+ {
+ iActivityIdForAdapter = aActivityId;
+ }
+
+
+#endif
+// SYMBIAN_AGENTSCPR_H
+