locationtriggering/ltcontainer/src/lbtcontainercompfilter.cpp
branchRCL_3
changeset 44 2b4ea9893b66
parent 0 667063e416a2
child 45 6b6920c56e2f
equal deleted inserted replaced
42:02ba3f1733c6 44:2b4ea9893b66
    86 	TInt isFilterPresent = 0;
    86 	TInt isFilterPresent = 0;
    87 	TBool isEntryRequested = EFalse;
    87 	TBool isEntryRequested = EFalse;
    88 	TInt i;
    88 	TInt i;
    89 	if(contExtInfo!=NULL)
    89 	if(contExtInfo!=NULL)
    90              	{
    90              	{
    91                  if((isFilterPresent>0 && isEntryRequested && iHystRadiusArray.Count()>0) || (iHystRadiusArray.Count()>0 && isFilterPresent==0 ))  
    91                  if( iHystRadiusArray.Count()>0)  
    92                     {
    92                     {
    93                     isFilterPresent++;
    93                     isFilterPresent++;
    94                     isEntryRequested=EFalse;
    94                     isEntryRequested=EFalse;
    95                     for(i=0;i<iHystRadiusArray.Count();i++)
    95                     for(i=0;i<iHystRadiusArray.Count();i++)
    96                 	    {
    96                 	    {
   102                         
   102                         
   103                 	    }
   103                 	    }
   104                     }
   104                     }
   105                      
   105                      
   106                     
   106                     
   107                     if((isFilterPresent>0 && isEntryRequested && iTriggerFiredArray.Count()>0) || (iTriggerFiredArray.Count()>0 && isFilterPresent==0 ))  
   107                     if((isFilterPresent>0 && isEntryRequested  ) ||  isFilterPresent==0 )  
   108                         {
   108                         {
       
   109                         	if(iTriggerFiredArray.Count()>0)
       
   110                         		{
   109                         isFilterPresent++;
   111                         isFilterPresent++;
   110                         isEntryRequested=EFalse;
   112                         isEntryRequested=EFalse;
   111                         for(i=0;i<iTriggerFiredArray.Count();i++)
   113                         for(i=0;i<iTriggerFiredArray.Count();i++)
   112                     	    {
   114                     	    {
   113                     	    if(contExtInfo->IsTriggerFired()==iTriggerFiredArray[i])
   115                     	    if(contExtInfo->IsTriggerFired()==iTriggerFiredArray[i])
   115                                 isEntryRequested=ETrue;
   117                                 isEntryRequested=ETrue;
   116                         
   118                         
   117                     		    }
   119                     		    }
   118                    		    }
   120                    		    }
   119                         }
   121                         }
       
   122                       }
   120                         
   123                         
   121                      if((isFilterPresent>0 && isEntryRequested && iSidArray.Count()>0) || (iSidArray.Count()>0 && isFilterPresent==0 ))  
   124                      if((isFilterPresent>0 && isEntryRequested && iSidArray.Count()>0) || (iSidArray.Count()>0 && isFilterPresent==0 ))  
   122                         {
   125                         {
   123                         isFilterPresent++;
   126                         isFilterPresent++;
   124                         isEntryRequested=EFalse;
   127                         isEntryRequested=EFalse;
   180         	switch(filter->Type())
   183         	switch(filter->Type())
   181         		{
   184         		{
   182     		    case CLbtTriggerFilterBase::EFilterByAttribute:
   185     		    case CLbtTriggerFilterBase::EFilterByAttribute:
   183     				{
   186     				{
   184     				CLbtContainerAttrFilter* attrFilter = CLbtContainerAttrFilter::NewL(filter,NULL);
   187     				CLbtContainerAttrFilter* attrFilter = CLbtContainerAttrFilter::NewL(filter,NULL);
   185 					iFilterArray.Append(attrFilter);
   188     				CleanupStack::PushL( attrFilter );
       
   189 					iFilterArray.AppendL(attrFilter);
       
   190 					CleanupStack::Pop( attrFilter );
   186 					break;
   191 					break;
   187     				}
   192     				}
   188     			case CLbtTriggerFilterBase::EFilterByArea:
   193     			case CLbtTriggerFilterBase::EFilterByArea:
   189     				{
   194     				{
   190     				CLbtContainerAreaFilter* areaFilter = CLbtContainerAreaFilter::NewL(filter,NULL);
   195     				CLbtContainerAreaFilter* areaFilter = CLbtContainerAreaFilter::NewL(filter,NULL);
   191     				iFilterArray.Append(areaFilter);
   196     				CleanupStack::PushL( areaFilter );
       
   197     				iFilterArray.AppendL(areaFilter);
       
   198     				CleanupStack::Pop( areaFilter );
   192     				break;
   199     				break;
   193     				}
   200     				}
   194     			case CLbtTriggerFilterBase::EFilterComposite:
   201     			case CLbtTriggerFilterBase::EFilterComposite:
   195     				{
   202     				{
   196     				CLbtContainerCompFilter* compFilter = CLbtContainerCompFilter::NewL(filter,NULL);
   203     				CLbtContainerCompFilter* compFilter = CLbtContainerCompFilter::NewL(filter,NULL);
   197     				iFilterArray.Append(compFilter);
   204     				CleanupStack::PushL( compFilter );
       
   205     				iFilterArray.AppendL(compFilter);
       
   206     				CleanupStack::Pop( compFilter );
   198     				break;
   207     				break;
   199     				}
   208     				}
   200         		}
   209         		}
   201         	CleanupStack::Pop(filter); // ownership taken by the container filters
   210         	CleanupStack::Pop(filter); // ownership taken by the container filters
   202         	}        
   211         	}