package org.societies.android.platform.pubsub;
import org.societies.android.api.pubsub.IPubsubService;
import org.societies.android.api.utilities.RemoteServiceHandler;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.Messenger;
import android.util.Log;
/**
* Remote Pubsub service wrapper for {@link PubsubServiceBase} methods
*/
public class ServicePlatformPubsubRemote extends Service {
private static final String LOG_TAG = ServicePlatformPubsubRemote.class.getName();
private Messenger inMessenger;
@Override
public void onCreate () {
PubsubServiceBase serviceBase = new PubsubServiceBase(this, getAndroidCommsMgr(), true);
this.inMessenger = new Messenger(new RemoteServiceHandler(serviceBase.getClass(), serviceBase, IPubsubService.methodsArray));
Log.d(LOG_TAG, "ServicePlatformPubsubRemote creation");
}
@Override
public IBinder onBind(Intent intent) {
Log.d(LOG_TAG, "ServicePlatformPubsubRemote onBind");
return inMessenger.getBinder();
}
@Override
public void onDestroy() {
Log.i(LOG_TAG, "ServicePlatformPubsubRemote terminating");
}
/**
* Get a Android Comms helper object suitably configured.
* Assumes that user has already configured and logged into the XMPP server.
*
* @return ClientCommunicationMgr
*/
private PubsubCommsMgr getAndroidCommsMgr() {
return new PubsubCommsMgr(this);
}
}