bluetooth/btstack/avdtp/avdtpLocalSEP.h
changeset 0 29b1cd4cb562
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bluetooth/btstack/avdtp/avdtpLocalSEP.h	Fri Jan 15 08:13:17 2010 +0200
@@ -0,0 +1,161 @@
+// Copyright (c) 2004-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 avdtp local SEP class
+// 
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+
+#ifndef AVDTPLOCALSEP_H
+#define AVDTPLOCALSEP_H
+
+#include <bluetoothav.h>
+#include "gavdpinterface.h"
+#include "avdtpAllocators.h"
+
+class CAVStream;
+class CAvdtpProtocol;
+class MAvdtpStreamNotify;
+
+NONSHARABLE_CLASS(CLocalSEP) : public CBase
+	{
+public:
+	static CLocalSEP* NewL(TAvdtpSEPInfo& aSEPInfo, TSEIDManager& aSEIDManager);
+	inline TSEID SEID() const;
+	inline TAvdtpSEPInfo Info() const;
+
+	void AddCapability(const TAvdtpServiceCapability* aCapability); //transfers ownership
+	inline TAvdtpServiceCategories Categories() const;
+	TInt CheckConfigurationState(TBool aIsReconfig) const;
+	TInt SetPendingConfiguration(const RBuf8& aConfigurationProtocolDomain, TBool aIsReconfig);
+	void SetRemoteSEID(TSEID aSEID);
+	inline TPtrC8 PendingConfiguration() const;
+	void SetSecurityControl(const HBufC8* aSecurityControl);
+	inline TPtrC8 SecurityControl() const;
+	void CommitPendingConfigurationL(TBool aSuccess, TBool aReconfig);
+	inline const TCapabilitiesArray& Configuration() const; // returns in non-protocol domain
+	inline const TCapabilitiesArray& Capabilities() const; // returns in non-protocol domain	
+	void SetInUse(TBool aInUse);
+	inline TBool InUse() const;
+	void PrepareInitialConfiguration();
+	inline TBool PreConfigured() const;
+	TBool MultiplexingConfigured() const;
+	
+	~CLocalSEP();
+	
+	CAVStream& CreateStreamL(const TAvdtpSockAddr& aAddr,
+							 MAvdtpStreamNotify& aStreamNotify,
+							 CAvdtpProtocol& aProtocol);
+							 
+	void ExpectStreamL(const TBTDevAddr& aBTAddr,
+						MAvdtpStreamNotify& aStreamNotify,
+						CAvdtpProtocol& aProtocol);
+							 
+	inline void StreamDestroyed(const CAVStream& aStream);
+	inline CAVStream* Stream() const;
+public:
+	TDblQueLink		iSignallingSessionLink;
+private:
+	void ConstructL(TAvdtpSEPInfo& aSEPInfo, TSEIDManager& aSEIDManager);
+	CLocalSEP();
+private:
+	RSEID			iLocalSEID;
+	TAvdtpSEPInfo	iInfo;
+	
+	TCapabilitiesArray iCapabilities;
+	TCapabilitiesArray iConfiguration;
+
+	RBuf8	iPendingConfigurationProtocolDomain;	
+	const HBufC8*	iSecurityControl;
+	
+	TAvdtpServiceCategories iCapabilityCategories;
+	CAVStream*	iStream; // the stream we may or may not end up in, owned
+	TSEID	iRemoteSEID;
+	TBool	iPreConfigured;
+	};
+
+inline TBool CLocalSEP::PreConfigured() const
+	{
+	return iPreConfigured;
+	}
+
+inline TSEID CLocalSEP::SEID() const
+	{
+	return iInfo.SEID();
+	}
+		
+inline TAvdtpSEPInfo CLocalSEP::Info() const
+	{
+	return iInfo;
+	}
+	
+inline const TCapabilitiesArray& CLocalSEP::Capabilities() const
+	{
+	return iCapabilities;
+	}
+
+inline const TCapabilitiesArray& CLocalSEP::Configuration() const
+	{
+	return iConfiguration;
+	}
+	
+inline TAvdtpServiceCategories CLocalSEP::Categories() const
+	{
+	return iCapabilityCategories;
+	}
+
+inline TBool CLocalSEP::InUse() const
+	{
+	return iInfo.InUse();
+	}
+	
+inline CAVStream* CLocalSEP::Stream() const
+	{
+	// doesn't return ownership
+	return iStream;
+	}
+	
+inline TPtrC8 CLocalSEP::PendingConfiguration() const
+	{
+	return iPendingConfigurationProtocolDomain;
+	}
+	
+inline TPtrC8 CLocalSEP::SecurityControl() const
+	{
+	return *iSecurityControl;
+	}
+
+#endif //AVDTPLOCALSEP
+
+#ifndef _AVDTPLOCALSEPSTREAM
+#define _AVDTPLOCALSEPSTREAM
+#include "avdtpStream.h"
+
+#ifdef _DEBUG
+inline void CLocalSEP::StreamDestroyed(const CAVStream& aStream)
+#else
+inline void CLocalSEP::StreamDestroyed(const CAVStream& /*aStream*/)
+#endif
+	{
+	if (iStream) __ASSERT_DEBUG(&aStream == iStream, User::Panic(_L("avdtplocalsep.h"), __LINE__));
+	iStream = NULL;
+	SetInUse(EFalse);
+	}
+
+#endif // _AVDTPLOCALSEPSTREAM
+