qtinternetradio/irqsettings/src/irqsettings.cpp
changeset 11 f683e24efca3
parent 3 ee64f059b8e1
child 14 896e9dbc5f19
equal deleted inserted replaced
8:3b03c28289e6 11:f683e24efca3
    29     IRQSettings* irqsettings =
    29     IRQSettings* irqsettings =
    30                            reinterpret_cast<IRQSettings*>(Dll::Tls());
    30                            reinterpret_cast<IRQSettings*>(Dll::Tls());
    31 
    31 
    32     if (NULL == irqsettings)
    32     if (NULL == irqsettings)
    33     {
    33     {
    34         TRAPD(error, irqsettings = createInstanceL());
    34         irqsettings = createInstance();
    35         if (KErrNone != error)
       
    36         {
       
    37             delete irqsettings;
       
    38             irqsettings = NULL;
       
    39             Dll::SetTls(NULL);
       
    40         }
       
    41     }
    35     }
    42     else
    36     else
    43     {
    37     {
    44         irqsettings->iSingletonInstances++;
    38         irqsettings->iSingletonInstances++;
    45     }
    39     }
   364 // IRQSettings::createInstanceL()
   358 // IRQSettings::createInstanceL()
   365 // Creates IRQSettings instance
   359 // Creates IRQSettings instance
   366 // @return IRQSettings*
   360 // @return IRQSettings*
   367 // ---------------------------------------------------------------------------
   361 // ---------------------------------------------------------------------------
   368 //
   362 //
   369 IRQSettings* IRQSettings::createInstanceL()
   363 IRQSettings* IRQSettings::createInstance()
   370 {
   364 {
   371     IRQSettings* irqsettings = new (ELeave) IRQSettings();
   365     IRQSettings* irqsettings = new IRQSettings();
   372     irqsettings->constructL();
   366     
   373     User::LeaveIfError(Dll::SetTls(irqsettings));
   367     TRAPD(leaveCode, doCreateInstanceL(irqsettings));
   374     irqsettings->iSingletonInstances = 1;
   368     if (KErrNone != leaveCode)
   375 
   369     {
   376     return irqsettings;
   370         delete irqsettings;
   377 }
   371         irqsettings = NULL;
   378 
   372         return NULL;
       
   373     }
       
   374     else
       
   375     {
       
   376         irqsettings->iSingletonInstances = 1;
       
   377         return irqsettings;
       
   378     }
       
   379 }
       
   380 
       
   381 // ---------------------------------------------------------------------------
       
   382 // IRQSettings::doCreateInstanceL()
       
   383 // Creates IRQSettings instance
       
   384 // @return IRQSettings*
       
   385 // ---------------------------------------------------------------------------
       
   386 //
       
   387 void IRQSettings::doCreateInstanceL(IRQSettings * aQsettings)
       
   388 {
       
   389     aQsettings->constructL();
       
   390     Dll::SetTls(aQsettings);
       
   391 
       
   392 }
   379 // ---------------------------------------------------------------------------
   393 // ---------------------------------------------------------------------------
   380 // IRQSettings::constructL()
   394 // IRQSettings::constructL()
   381 // Two-Phase Constructor.
   395 // Two-Phase Constructor.
   382 // ---------------------------------------------------------------------------
   396 // ---------------------------------------------------------------------------
   383 //
   397 //