class eDVBCICAManagerSession;
class eDVBCIMMISession;
class eDVBServicePMTHandler;
+class eDVBCISlot;
class eDVBCISlot: public iObject, public Object
{
enum {stateRemoved, stateInserted};
uint8_t prev_sent_capmt_version;
public:
+ int use_count;
+
eDVBCISlot(eMainloop *context, int nr);
~eDVBCISlot();
struct CIPmtHandler
{
eDVBServicePMTHandler *pmthandler;
- eDVBCISlot *usedby;
+ eDVBCISlot *cislot;
CIPmtHandler()
- :pmthandler(NULL), usedby(NULL)
+ :pmthandler(NULL), cislot(NULL)
{}
CIPmtHandler( const CIPmtHandler &x )
- :pmthandler(x.pmthandler), usedby(x.usedby)
+ :pmthandler(x.pmthandler), cislot(x.cislot)
{}
CIPmtHandler( eDVBServicePMTHandler *ptr )
- :pmthandler(ptr), usedby(NULL)
+ :pmthandler(ptr), cislot(NULL)
{}
- bool operator<(const CIPmtHandler &x) const { return x.pmthandler < pmthandler; }
+ bool operator==(const CIPmtHandler &x) const { return x.pmthandler == pmthandler; }
};
-typedef std::set<CIPmtHandler> PMTHandlerSet;
+typedef std::list<CIPmtHandler> PMTHandlerList;
class eDVBCIInterfaces
{
eSmartPtrList<eDVBCISlot> m_slots;
eDVBCISlot *getSlot(int slotid);
- PMTHandlerSet m_pmt_handlers;
+ PMTHandlerList m_pmt_handlers;
public:
eDVBCIInterfaces();
~eDVBCIInterfaces();