Public Member Functions | Protected Slots | Protected Member Functions | Protected Attributes

QmitkMemoryUsageIndicatorView Class Reference

#include <QmitkMemoryUsageIndicatorView.h>

Inheritance diagram for QmitkMemoryUsageIndicatorView:
Inheritance graph
[legend]
Collaboration diagram for QmitkMemoryUsageIndicatorView:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 QmitkMemoryUsageIndicatorView (QWidget *parent=0, Qt::WindowFlags f=0)
 constructor
 ~QmitkMemoryUsageIndicatorView ()
 destructor

Protected Slots

void UpdateMemoryUsage ()

Protected Member Functions

std::string FormatMemorySize (vcl_size_t size)
std::string FormatPercentage (double val)
std::string GetMemoryDescription (vcl_size_t processSize, float percentage)

Protected Attributes

QPixmap m_LEDGreen
QPixmap m_LEDYellow
QPixmap m_LEDOrange
QPixmap m_LEDRed
char m_PreviousState

Detailed Description

Definition at line 25 of file QmitkMemoryUsageIndicatorView.h.


Constructor & Destructor Documentation

QmitkMemoryUsageIndicatorView::QmitkMemoryUsageIndicatorView ( QWidget *  parent = 0,
Qt::WindowFlags  f = 0 
)

constructor

Definition at line 48 of file QmitkMemoryUsageIndicatorView.cpp.

References Ui_QmitkMemoryUsageIndicator::m_LED, m_LEDGreen, m_LEDOrange, m_LEDRed, m_LEDYellow, m_PreviousState, Ui_QmitkMemoryUsageIndicator::setupUi(), and UpdateMemoryUsage().

{
  this->setupUi(this);

  QTimer *timer = new QTimer( this );
  QObject::connect( timer, SIGNAL( timeout() ), this, SLOT( UpdateMemoryUsage() ) );
  timer->start(1000);
  m_LEDGreen = QmitkMemoryUsageIndicatorImagesGreen_xpm;
  m_LEDYellow = QmitkMemoryUsageIndicatorImagesYellow_xpm;
  m_LEDOrange = QmitkMemoryUsageIndicatorImagesOrange_xpm;
  m_LEDRed = QmitkMemoryUsageIndicatorImagesRed_xpm;
  m_LED->setPixmap(m_LEDGreen);
  m_PreviousState = 0;
}
QmitkMemoryUsageIndicatorView::~QmitkMemoryUsageIndicatorView (  )

destructor

Definition at line 63 of file QmitkMemoryUsageIndicatorView.cpp.

{
}

Member Function Documentation

std::string QmitkMemoryUsageIndicatorView::FormatMemorySize ( vcl_size_t  size ) [protected]

Definition at line 112 of file QmitkMemoryUsageIndicatorView.cpp.

Referenced by GetMemoryDescription().

{
  double val = size;
  std::string descriptor("B");
  if ( val >= 1000.0 )
  {
    val /= 1024.0;
    descriptor = "KB";
  }
  if ( val >= 1000.0 )
  {
    val /= 1024.0;
    descriptor = "MB";
  }
  if ( val >= 1000.0 )
  {
    val /= 1024.0;
    descriptor = "GB";
  }
  std::ostringstream str;
  str << std::fixed << std::setprecision(2) << val << " " << descriptor;
  return str.str();
}
std::string QmitkMemoryUsageIndicatorView::FormatPercentage ( double  val ) [protected]

Definition at line 136 of file QmitkMemoryUsageIndicatorView.cpp.

Referenced by GetMemoryDescription().

{
  std::ostringstream str;
  str << std::fixed << std::setprecision(2) << val << " " << "%";
  return str.str();
}
std::string QmitkMemoryUsageIndicatorView::GetMemoryDescription ( vcl_size_t  processSize,
float  percentage 
) [protected]

Definition at line 143 of file QmitkMemoryUsageIndicatorView.cpp.

References FormatMemorySize(), and FormatPercentage().

Referenced by UpdateMemoryUsage().

{
  std::ostringstream str;
  str << FormatMemorySize(processSize) << " (" << FormatPercentage( percentage ) <<")" ;
  return str.str();
}
void QmitkMemoryUsageIndicatorView::UpdateMemoryUsage (  ) [protected, slot]

Definition at line 67 of file QmitkMemoryUsageIndicatorView.cpp.

References GetMemoryDescription(), mitk::MemoryUtilities::GetProcessMemoryUsage(), mitk::MemoryUtilities::GetTotalSizeOfPhysicalRam(), Ui_QmitkMemoryUsageIndicator::m_Label, Ui_QmitkMemoryUsageIndicator::m_LED, m_LEDGreen, m_LEDOrange, m_LEDRed, m_LEDYellow, and m_PreviousState.

Referenced by QmitkMemoryUsageIndicatorView().

{
  size_t processSize = mitk::MemoryUtilities::GetProcessMemoryUsage();
  size_t totalSize =  mitk::MemoryUtilities::GetTotalSizeOfPhysicalRam();
  float percentage = ( (float) processSize / (float) totalSize ) * 100.0;
  m_Label->setText( GetMemoryDescription( processSize, percentage ).c_str() );
  if ( percentage < 50.0 )
  {
    if(m_PreviousState != 0)
    {
      m_LED->setPixmap(m_LEDGreen);
      m_PreviousState = 0;
      m_LED->update();
    }
  }
  else if ( percentage < 65.0 )
  {
    if(m_PreviousState != 1)
    {
      m_LED->setPixmap(m_LEDYellow);
      m_PreviousState = 1;
      m_LED->update();
    }
  }
  else if ( percentage < 80.0 )
  {
    if(m_PreviousState != 2)
    {
      m_LED->setPixmap(m_LEDOrange);
      m_PreviousState = 2;
      m_LED->update();
    }
  }
  else
  {
    if(m_PreviousState != 3)
    {
      m_LED->setPixmap(m_LEDRed);
      m_PreviousState = 3;
      m_LED->update();
    }
  }
}

Member Data Documentation


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines