| class CHsContentPublisher : public CBase |
ECom plug-in interface that Homescreen plug-ins must implement. It is used to control plug-in life cycle: load/destroy plug-ins; suspend/resume plug-in execution.
| Public Member Functions | |
|---|---|
| ~CHsContentPublisher () | |
| void | ConfigureL ( RAiSettingsItemArray &) |
| TAny * | Extension ( TUid ) |
| TAny * | GetProperty ( TProperty ) |
| void | HandleEvent ( TInt , const TDesC &) |
| void | HandleEvent (const TDesC &, const TDesC &) |
| TBool | HasMenuItem (const TDesC &) |
| CHsContentPublisher * | NewL (const THsPublisherInfo &) |
| const THsPublisherInfo & | PublisherInfo () |
| void | Resume ( TResumeReason ) |
| void | SetOffline () |
| void | SetOnline () |
| void | SetProperty ( TProperty , TAny *) |
| void | Start ( TStartReason ) |
| void | Stop ( TStopReason ) |
| void | SubscribeL ( MAiContentObserver &) |
| void | Suspend ( TSuspendReason ) |
| Public Member Enumerations | |
|---|---|
| enum |
TProperty
{
EPublisherContent = 1, EPublisherResources , EPublisherEvents , EContentRequest , EResourceRequest , EPluginName , ECpsCmdBuffer } |
| enum | TResumeReason { EForeground = 1 } |
| enum | TStartReason { ESystemStartup = 1, EPageStartup , EPluginStartup } |
| enum | TStopReason { ESystemShutdown = 1, EPageShutdown , EPluginShutdown } |
| enum | TSuspendReason { EBackground = 1, EBackupRestore , EGeneralThemeChange } |
| Private Attributes | |
|---|---|
| TUid | iDestructKey |
| THsPublisherInfo | iPublisherInfo |
| ~CHsContentPublisher | ( | ) | [inline] |
Destroys instance of the plug-in. Called by the framework during plug-in destruction phase.
| void | ConfigureL | ( | RAiSettingsItemArray & | aSettings | ) | [pure virtual] |
Configures the plug-in.
for( TInt i = 0; i < aSettings.Count(); ++i )
{
MAiPluginSettingsItem& item = (aSettings[i])->AiPluginSettingsItem();
TInt32 value = 0;
if( ParseInt( value, item.Value() ) != KErrNone )
{
continue;
}
if( value < 0 )
{
continue; // All our settings are counts, skip bad settings
}
if( item.Key() == EMySettingMaxUsers )
{
iEngine->SetMaxUsers( value );
continue;
}
else if( item.Key() == EMySettingNumItems )
{
iNumItems = value;
continue;
}
}
// aSettings ownership is passed to the plug-in, destroy array.
aSettings.ResetAndDestroy();
| RAiSettingsItemArray & aSettings | setting items defined in the UI definition. This plugin takes ownership of the MAiPluginSettings objects in the array. If this method leaves the caller will handle the cleanup. |
| TAny * | Extension | ( | TUid | aUid | ) | [inline, virtual] |
Returns interface extension. In S60 5.2 extensions are not provided.
return NULL; // Requested extension not supported
| TUid aUid | - UID of the extension interface to access. |
| TAny * | GetProperty | ( | TProperty | aProperty | ) | [inline, virtual] |
Gets property value.
void CMyPlugin::ConstructL()
{
iContent = AiUtility::CreateContentItemArrayIteratorL( KMyPluginContent );
iResources = AiUtility::CreateContentItemArrayIteratorL( KMyPluginResources );
iEvents = AiUtility::CreateContentItemArrayIteratorL( KMyPluginEvents );
}
TAny* CMyPlugin::GetPropertyL( TProperty aProperty )
{
switch( aProperty )
{
case EPublisherContent:
return iContent;
case EPublisherResources:
return iResources;
case EPublisherEvents:
return iEvents;
}
return NULL;
}
| TProperty aProperty | - identification of property. |
| void | HandleEvent | ( | TInt | aEvent, |
| const TDesC & | aParam | |||
| ) | [inline, virtual] | |||
Invoked by the framework when the plug-in must handle an event.
| TInt aEvent | - unique identifier of event from plug-in content model. |
| const TDesC & aParam | - parameters associated with event. Each UI Definition declares events in the format: <event name>="">(<event params>="">), where <event name>=""> is mapped by the framework to unique identifier supplied in aEvent, <event params>=""> are provided to plug-in as-is in the descriptor. |
| void | HandleEvent | ( | const TDesC & | aEventName, |
| const TDesC & | aParam | |||
| ) | [inline, virtual] | |||
Invoked by the framework when the plug-in must handle an event.
| const TDesC & aEventName | - name of the event from plug-in content model. |
| const TDesC & aParam | - parameters associated with event. Each UI Definition declares events in the format: <event name>="">(<event params>="">), where <event name>=""> mapping to unique identifier supplied by event is failed by the frame work then the <event name>=""> and <event params>=""> are provied to plug-in as-is in the descriptor. |
| TBool | HasMenuItem | ( | const TDesC & | aMenuItem | ) | [inline, virtual] |
Invoked by the framework to query whether the plug-in has a menu item.
| const TDesC & aMenuItem | menu item name |
| CHsContentPublisher * | NewL | ( | const THsPublisherInfo & | aPublisherInfo | ) | [static, inline] |
Creates a new plug-in instance based on implementation UID.
| const THsPublisherInfo & aPublisherInfo | This plug-in's publisher info. |
| const THsPublisherInfo & | PublisherInfo | ( | ) | const [inline] |
Gets plug-in's publisher info.
| void | Resume | ( | TResumeReason | aReason | ) | [pure virtual] |
This method transits the plug-in into "Alive" state.
In this state the plug-in is allowed to actively publish data to its observers, and it can consume memory and CPU resources.
if( !MyEngineCreated() )
{
CreateEngine();
StartEngine();
}
else
{
// Publish only changed data!
RefreshData();
}
| TResumeReason aReason | reason for state change, see TResumeReason. |
| void | SetOffline | ( | ) | [inline, virtual] |
This method transits the plug-in into "Offline" sub-state. In this state plugin is not allowed to use network connections.
| void | SetOnline | ( | ) | [inline, virtual] |
This method transits the plug-in into "Online" sub-state. In this state plugin is allowed to use network connections.
| void | SetProperty | ( | TProperty | aProperty, |
| TAny * | aAny | |||
| ) | [inline, virtual] | |||
Sets property value.
void CMyPlugin::SetPropertyL( TInt TProperty, TAny* aValue )
{
if( !aValue )
{
return;
}
// Save the property here to a member variable
}
| void | Start | ( | TStartReason | aReason | ) | [pure virtual] |
This method transits the plug-in into "Idle" state. Parameter aReason explains the plug-in's startup reason. Based on THsStartReason plug-in may decide its startup behavior.
This method is called by the framework after plugin is constructed and configured.
| TStartReason aReason | startup reason, see TStartReason. |
| void | Stop | ( | TStopReason | aReason | ) | [pure virtual] |
This method transits the plug-in into its final state. Parameter aReason explains the plug-in's shutdwon reason. Based on THsStopReason plug-in may prepare itself for next startup.
This method is called by the framework before plugin is destroyed.
| TStopReason aReason | reason for state change, see TStopReason. |
| void | SubscribeL | ( | MAiContentObserver & | aObserver | ) | [pure virtual] |
Adds the content observer / subscriber to the plug-in. The plug-in must maintain a registry of subscribers and publish data to all of them when new content is available in "Alive" state.
if( !ObserverAlreadyAdded( aObserver ) )
{
iMyContentObservers.AppendL( aObserver );
}
...
// Engine reports data changed in "Alive" state
const TDesC& data = iEngine->LatestData();
for( TInt i = 0; i < iMyContentObservers.Count(); ++i )
{
iMyContentObservers[i].Publish( data );
}
| MAiContentObserver & aObserver | content observer to register. |
| void | Suspend | ( | TSuspendReason | aReason | ) | [pure virtual] |
This method transits the plug-in into "Suspended" state.
In this state the plug-in is not allowed to publish data to its observers. CPU resource usage must be minimal, e.g. timers must be stopped, outstanding asynchronous operations must be canceled, etc.
SuspendEngine();
| TSuspendReason aReason | reason for state change, see TSuspendReason. |
CHsContentPublisher properties.
| EPublisherContent = 1 |
Enables read-only access to iterator of content selectors. GetProperty must return instance of MAiContentItemIterator for content selectors. |
| EPublisherResources |
Enables read-only access to iterator of content references. GetProperty must return instance of MAiContentItemIterator for content references. |
| EPublisherEvents |
Enables read-only access to iterator of events supported by plug-in. GetProperty must return instance of MAiContentItemIterator for events. |
| EContentRequest |
Provides access to MAiContentRequest interface for refreshing a content item. EPublisherContent |
| EResourceRequest |
Provides access to MAiContentRequest interface for refreshing a resource item. EPublisherResources |
| EPluginName |
Provides access to localized plugin name if supported. HBufC* EPublisherResources |
| ECpsCmdBuffer |
Provides access to CPS command buffer. |
CHsContentPublisher resume reason.
| EForeground = 1 |
Homescreen is visible. |
CHsContentPublisher start-up reason.
| ESystemStartup = 1 | |
| EPageStartup | |
| EPluginStartup |
CHsContentPublisher shutdown reason.
| ESystemShutdown = 1 | |
| EPageShutdown | |
| EPluginShutdown |
CHsContentPublisher suspend reason.
| EBackground = 1 |
Homescreen is invisible. |
| EBackupRestore |
Backup/Restore is ongoing. The plug-in must realease all its resources which affects to backup/restore operation. |
| EGeneralThemeChange |
General Theme is changed. The plug-in must re-create any data which is themeable. |
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.