#include "EinsteinS5R3Adapter.h" EinsteinS5R3Adapter::EinsteinS5R3Adapter(BOINCClientAdapter *boincClient) { this->boincClient = boincClient; m_WUSkyPosRightAscension = 0.0; m_WUSkyPosDeclination = 0.0; m_WUFractionDone = 0.0; m_WUCPUTime = 0.0; } EinsteinS5R3Adapter::~EinsteinS5R3Adapter() { } void EinsteinS5R3Adapter::refresh() { boincClient->refresh(); parseApplicationInformation(); } void EinsteinS5R3Adapter::parseApplicationInformation() { // get updated application information string info = boincClient->applicationInformation(); // do we have any data? if(info.length() > 0) { // parse data into members if(4 != sscanf(info.c_str(), "<graphics_info>\n" " <skypos_rac>%lf</skypos_rac>\n" " <skypos_dec>%lf</skypos_dec>\n" " <fraction_done>%lf</fraction_done>\n" " <cpu_time>%lf</cpu_time>\n", &m_WUSkyPosRightAscension, &m_WUSkyPosDeclination, &m_WUFractionDone, &m_WUCPUTime)) { cerr << "Incompatible shared memory data encountered!" << endl; } } } double EinsteinS5R3Adapter::wuSkyPosRightAscension() const { return m_WUSkyPosRightAscension; } double EinsteinS5R3Adapter::wuSkyPosDeclination() const { return m_WUSkyPosDeclination; } double EinsteinS5R3Adapter::wuFractionDone() const { return m_WUFractionDone; } double EinsteinS5R3Adapter::wuCPUTime() const { return m_WUCPUTime; }