Disk Class Reference

#include <DiskMgr.h>

Private Member Functions

 Disk (DiskMgr *mgr, SNode *node)
 ~Disk ()
void SendStorageNode (EventStorageRequest *event)
int DoIO ()
int GetnBlocks ()
void GetServiceTime (EventStorageRequest *event)
unsigned int GetNumberOfFreeBlocks ()
int GetName (char *DiskName)

Private Attributes

char d_DiskName [MaxPathSize]
int d_diskid
unsigned int d_ntot
int d_status
int d_diskseq
BitMap d_BitMap
Diskd_link
DiskMgrd_mgr
SNoded_node

Static Private Attributes

static const int STAT_READ = 0x01
static const int STAT_WRITE = 0x02
static const int STAT_ALLOC = 0x04

Friends

class DiskMgr
class SNode

Detailed Description

Definition at line 304 of file DiskMgr.h.


Constructor & Destructor Documentation

Disk::Disk ( DiskMgr mgr,
SNode node 
) [private]

Definition at line 2602 of file DiskMgr.cpp.

02603 {
02604     // ### need to add to m_disk and m_diska too ??
02605     d_mgr       = mgr;
02606     d_diskid    = 0;
02607     d_ntot      = 0;
02608     d_link      = 0;
02609     d_status    = 0;
02610     d_node      = node;
02611     d_diskseq   = 0;
02612     // d_BitMap does not need to be initialized
02613     memset( d_DiskName, 0, MaxPathSize ); // Mudanca para usar um caminho com
02614                                           // o tamanho maximo (e nao 40).
02615 
02616     Disk *disklast = VIRTORG( mgr->m_disklist, Disk, d_link );
02617     while( disklast->d_link != 0 )
02618     {
02619         disklast = disklast->d_link;
02620     }
02621     disklast->d_link = this;
02622 }

Disk::~Disk (  )  [private]

Definition at line 2624 of file DiskMgr.cpp.

02625 {
02626     // ### need to remove from m_disk and m_diska too ??
02627     Disk *disk = VIRTORG( d_mgr->m_disklist, Disk, d_link );
02628 
02629     while( disk->d_link != 0 )
02630     {
02631         if( disk->d_link == this )
02632         {
02633             disk->d_link = this->d_link;
02634             break;
02635         }
02636     }
02637 }


Member Function Documentation

int Disk::DoIO (  )  [private]
int Disk::GetName ( char *  DiskName  )  [private]

Definition at line 2665 of file DiskMgr.cpp.

02666 {
02667     strcpy( DiskName, d_DiskName );
02668     return 0;
02669 }

int Disk::GetnBlocks (  )  [private]
unsigned int Disk::GetNumberOfFreeBlocks (  )  [private]

Definition at line 2659 of file DiskMgr.cpp.

02660 {
02661     return d_BitMap.nFree();
02662 }

void Disk::GetServiceTime ( EventStorageRequest event  )  [private]

Definition at line 2648 of file DiskMgr.cpp.

02649 {
02650     #ifdef RIO_DEBUG2
02651     RioErr << "Disk:GetDiskServiceTime "<< d_diskseq <<endl;
02652     #endif
02653     
02654     d_node->GetDiskServiceTime( event, d_diskseq );
02655 }

void Disk::SendStorageNode ( EventStorageRequest event  )  [private]

Definition at line 2641 of file DiskMgr.cpp.

02642 {
02643     d_node->SendStorageNode( event, d_diskseq );
02644 }


Friends And Related Function Documentation

friend class DiskMgr [friend]

Definition at line 339 of file DiskMgr.h.

friend class SNode [friend]

Definition at line 340 of file DiskMgr.h.


Field Documentation

Definition at line 330 of file DiskMgr.h.

int Disk::d_diskid [private]

Definition at line 326 of file DiskMgr.h.

char Disk::d_DiskName[MaxPathSize] [private]

Definition at line 318 of file DiskMgr.h.

int Disk::d_diskseq [private]

Definition at line 329 of file DiskMgr.h.

Disk* Disk::d_link [private]

Definition at line 331 of file DiskMgr.h.

DiskMgr* Disk::d_mgr [private]

Definition at line 332 of file DiskMgr.h.

SNode* Disk::d_node [private]

Definition at line 333 of file DiskMgr.h.

unsigned int Disk::d_ntot [private]

Definition at line 327 of file DiskMgr.h.

int Disk::d_status [private]

Definition at line 328 of file DiskMgr.h.

const int Disk::STAT_ALLOC = 0x04 [static, private]

Definition at line 337 of file DiskMgr.h.

const int Disk::STAT_READ = 0x01 [static, private]

Definition at line 335 of file DiskMgr.h.

const int Disk::STAT_WRITE = 0x02 [static, private]

Definition at line 336 of file DiskMgr.h.


The documentation for this class was generated from the following files:
Generated on Wed Jul 4 16:03:34 2012 for RIO by  doxygen 1.6.3