interface/object/POIObject.inl
changeset 0 c316ab048e9d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/interface/object/POIObject.inl	Fri Jun 25 12:50:05 2010 +0200
@@ -0,0 +1,96 @@
+/*
+ * Name        : POIObject.inl
+ * Description : ECOM interface definition
+ * Project     : This file is part of OpenMAR, an Open Mobile Augmented Reality browser
+ * Website     : http://OpenMAR.org
+ *
+ * Copyright (c) 2010 David Caabeiro
+ *
+ * All rights reserved. This program and the accompanying materials are made available 
+ * under the terms of the Eclipse Public License v1.0 which accompanies this 
+ * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ */
+
+inline CPOIObject* CPOIObject::NewL(const TDesC8& aMatch, const CPOIProvider& aProvider)
+{
+    const TUid KCPOIRendererInterfaceUid = { KObjectInterfaceUidValue };
+
+    TAny* param = const_cast<CPOIProvider*>(&aProvider);
+
+    TEComResolverParams resolverParams;
+    resolverParams.SetDataType(aMatch);
+    resolverParams.SetWildcardMatch(ETrue);
+
+    TAny* interface = REComSession::CreateImplementationL(KCPOIRendererInterfaceUid,
+        _FOFF(CPOIObject, iDtor_ID_Key), param, resolverParams);
+
+    return reinterpret_cast <CPOIObject*>(interface);
+}
+
+inline CPOIObject* CPOIObject::NewL(const TUid aImplementationUid, const CPOIProvider& aProvider)
+{
+    TAny* param = const_cast<CPOIProvider*>(&aProvider);
+
+    TAny* interface = REComSession::CreateImplementationL(aImplementationUid, 
+        _FOFF(CPOIObject, iDtor_ID_Key), param);
+
+    return reinterpret_cast <CPOIObject*>(interface);
+}
+
+inline CPOIObject::~CPOIObject()
+{
+    REComSession::DestroyedImplementation(iDtor_ID_Key);
+}
+
+inline CPOIObject::CPOIObject(const CPOIProvider& aProvider)
+    : iProvider(aProvider)
+{}
+
+inline const TCoordinate& CPOIObject::GetCoordinate() const
+{
+    return iCoordinate;
+}
+
+inline void CPOIObject::SetCoordinate(const TCoordinate& aCoordinate)
+{
+    iCoordinate = aCoordinate;
+}
+
+inline const Vector3d& CPOIObject::GetPosition() const
+{
+    return iPosition;
+}
+
+inline void CPOIObject::SetPosition(const Vector3d& aPosition)
+{
+    iPosition = aPosition;
+}
+
+inline TUint32 CPOIObject::GetIdentifier() const
+{
+    return iIdentifier;
+}
+
+inline void CPOIObject::SetIdentifier(TUint32 aIdentifier)
+{
+    iIdentifier = aIdentifier;
+}
+
+inline const TDesC& CPOIObject::GetName() const
+{
+    return iName? *iName : KNullDesC();
+}
+
+inline void CPOIObject::SetNameL(const TDesC& aName)
+{
+    delete iName;
+    iName = 0;
+
+    iName = aName.AllocL();
+}
+
+inline TBool CPOIObject::IdentityRelation(const CPOIObject& aLeft, const CPOIObject& aRight)
+{
+    return aLeft.GetIdentifier() == aRight.GetIdentifier();
+}