#include <lib/base/object.h>
#include <lib/service/iservice.h>
-class eServiceCenter: public virtual iServiceHandler, public virtual iObject
+class eServiceCenter;
+
+typedef ePtr<eServiceCenter> eServiceCenterPtr;
+
+class eServiceCenter: public iServiceHandler
{
-DECLARE_REF;
+DECLARE_REF(eServiceCenter);
private:
- std::map<int,ePtr<iServiceHandler> > handler;
+ std::map<int,iServiceHandlerPtr> handler;
static eServiceCenter *instance;
+#ifdef SWIG
+ eServiceCenter();
+ ~eServiceCenter();
+#endif
public:
+#ifndef SWIG
eServiceCenter();
virtual ~eServiceCenter();
-
+#endif
// iServiceHandler
- RESULT play(const eServiceReference &, ePtr<iPlayableService> &ptr);
- RESULT record(const eServiceReference &, ePtr<iRecordableService> &ptr);
- RESULT list(const eServiceReference &, ePtr<iListableService> &ptr);
+ RESULT play(const eServiceReference &, iPlayableServicePtr &ptr);
+ RESULT record(const eServiceReference &, iRecordableServicePtr &ptr);
+ RESULT list(const eServiceReference &, iListableServicePtr &ptr);
+ RESULT info(const eServiceReference &, ePtr<iStaticServiceInformation> &ptr);
+ RESULT offlineOperations(const eServiceReference &, ePtr<iServiceOfflineOperations> &ptr);
// eServiceCenter
- static RESULT getInstance(ePtr<eServiceCenter> &ptr) { ptr = instance; return 0; }
+ static RESULT getPrivInstance(eServiceCenterPtr &ptr) { ptr = instance; return 0; }
+ static SWIG_VOID(RESULT) getInstance(iServiceHandlerPtr &SWIG_NAMED_OUTPUT(ptr)) { ptr = instance; return 0; }
RESULT addServiceFactory(int id, iServiceHandler *hnd);
RESULT removeServiceFactory(int id);
};