cCiAdapter Class Reference

#include <ci.h>

Inheritance diagram for cCiAdapter:

Inheritance graph
[legend]
Collaboration diagram for cCiAdapter:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 cCiAdapter (void)
virtual ~cCiAdapter ()
 The derived class must call Cancel(3) in its destructor.
virtual bool Ready (void)
 Returns 'true' if all present CAMs in this adapter are ready.

Protected Member Functions

virtual void Action (void)
virtual int Read (uint8_t *Buffer, int MaxLength)=0
virtual void Write (const uint8_t *Buffer, int Length)=0
 Writes Length bytes of the given Buffer.
virtual bool Reset (int Slot)=0
virtual eModuleStatus ModuleStatus (int Slot)=0
 Returns the status of the CAM in the given Slot.
virtual bool Assign (cDevice *Device, bool Query=false)=0

Private Member Functions

void AddCamSlot (cCamSlot *CamSlot)
 Adds the given CamSlot to this CI adapter.

Private Attributes

cDeviceassignedDevice
cCamSlotcamSlots [MAX_CAM_SLOTS_PER_ADAPTER]

Friends

class cCamSlot


Detailed Description

Definition at line 79 of file ci.h.


Constructor & Destructor Documentation

cCiAdapter::cCiAdapter ( void   ) 

Definition at line 1467 of file ci.c.

References assignedDevice, camSlots, and MAX_CAM_SLOTS_PER_ADAPTER.

cCiAdapter::~cCiAdapter (  )  [virtual]

The derived class must call Cancel(3) in its destructor.

Definition at line 1475 of file ci.c.

References camSlots, cThread::Cancel(), and MAX_CAM_SLOTS_PER_ADAPTER.

Here is the call graph for this function:


Member Function Documentation

void cCiAdapter::AddCamSlot ( cCamSlot CamSlot  )  [private]

Adds the given CamSlot to this CI adapter.

Definition at line 1482 of file ci.c.

References camSlots, esyslog, MAX_CAM_SLOTS_PER_ADAPTER, and cCamSlot::slotIndex.

Referenced by cCamSlot::cCamSlot().

void cCiAdapter::Action ( void   )  [protected, virtual]

Handles the attached CAM slots in a separate thread. The derived class must call the Start() function to actually start CAM handling.

Implements cThread.

Definition at line 1505 of file ci.c.

References cTPDU::Buffer(), camSlots, cTPDU::Dump(), MAX_CAM_SLOTS_PER_ADAPTER, cTPDU::MaxSize(), cCamSlot::Process(), Read(), cThread::Running(), cTPDU::SetSize(), cTPDU::Slot(), and cCamSlot::SlotNumber().

Here is the call graph for this function:

virtual int cCiAdapter::Read ( uint8_t *  Buffer,
int  MaxLength 
) [protected, pure virtual]

Reads one chunk of data into the given Buffer, up to MaxLength bytes. If no data is available immediately, wait for up to CAM_READ_TIMEOUT. Returns the number of bytes read (in case of an error it will also return 0).

Implemented in cDvbCiAdapter.

Referenced by Action().

virtual void cCiAdapter::Write ( const uint8_t *  Buffer,
int  Length 
) [protected, pure virtual]

Writes Length bytes of the given Buffer.

Implemented in cDvbCiAdapter.

Referenced by cCamSlot::Write().

virtual bool cCiAdapter::Reset ( int  Slot  )  [protected, pure virtual]

Resets the CAM in the given Slot. Returns true if the operation was successful.

Implemented in cDvbCiAdapter.

Referenced by cCamSlot::Reset().

virtual eModuleStatus cCiAdapter::ModuleStatus ( int  Slot  )  [protected, pure virtual]

Returns the status of the CAM in the given Slot.

Implemented in cDvbCiAdapter.

Referenced by cCamSlot::ModuleStatus().

virtual bool cCiAdapter::Assign ( cDevice Device,
bool  Query = false 
) [protected, pure virtual]

Assigns this adapter to the given Device, if this is possible. If Query is 'true', the adapter only checks whether it can be assigned to the Device, but doesn't actually assign itself to it. Returns true if the adapter can be assigned to the Device. If Device is NULL, the adapter will be unassigned from any device it was previously assigned to. The value of Query is ignored in that case, and this function always returns 'true'.

Implemented in cDvbCiAdapter.

Referenced by cCamSlot::Assign().

bool cCiAdapter::Ready ( void   )  [virtual]

Returns 'true' if all present CAMs in this adapter are ready.

Definition at line 1496 of file ci.c.

References camSlots, and MAX_CAM_SLOTS_PER_ADAPTER.

Referenced by cDvbDevice::Ready().


Friends And Related Function Documentation

friend class cCamSlot [friend]

Definition at line 80 of file ci.h.

Referenced by cDvbCiAdapter::cDvbCiAdapter().


Member Data Documentation

Definition at line 82 of file ci.h.

Referenced by cCamSlot::Assign(), cCiAdapter(), and cCamSlot::Device().

cCamSlot* cCiAdapter::camSlots[MAX_CAM_SLOTS_PER_ADAPTER] [private]

Definition at line 83 of file ci.h.

Referenced by Action(), AddCamSlot(), cCiAdapter(), Ready(), and ~cCiAdapter().


The documentation for this class was generated from the following files:

Generated on Tue Jan 13 14:27:32 2009 for VDR by  doxygen 1.5.6