2008-04-09 Esteban Sanchez <estebans@artica.es>
* modules/pandora_data.[cc,h]: Added to repository. Implements a
Pandora_Data object, which holds a value and the timestamp when it
was created.
* modules/pandora_module.[cc,h]: It holds now a list of Pandora_Data
objects. The XML is generated based on the size of this list. Output
property has became obsolete and child modules must use setOutput().
* modules/pandora_module_cpuusage.cc,
modules/pandora_module_exec.cc,
modules/pandora_module_freedisk.cc,
modules/pandora_module_freememory.cc,
modules/pandora_module_odbc.cc, modules/pandora_module_proc.cc,
modules/pandora_module_service.cc: Updated to new Pandora_Module
parent class.
* modules/pandora_module_list.cc: Deleted debug output.
* pandora.cc: Now uses SYSTEMTIME instead of old time_t.
* pandora_windows_service.[cc,h]: Added Ramon Novoa to authors. Added
a new configuration token transfer_interval which sets the interval
where the data file will be sent to the server. If the current
interval token is lower than this transfer interval, the data will be
added into a data_list XML tag.
* PandoraAgent.dev: Added new files.
* bin/PandoraAgent.exe: Updated to last commit.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@803 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2008-04-09 17:48:06 +02:00
|
|
|
/* Pandora data class to represent a value and a timestamp.
|
|
|
|
|
|
|
|
Copyright (C) 2006 Artica ST.
|
|
|
|
Written by Esteban Sanchez.
|
|
|
|
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
|
|
it under the terms of the GNU General Public License as published by
|
|
|
|
the Free Software Foundation; either version 2, or (at your option)
|
|
|
|
any later version.
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License along
|
|
|
|
with this program; if not, write to the Free Software Foundation,
|
|
|
|
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "pandora_data.h"
|
|
|
|
|
|
|
|
using namespace Pandora;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Pandora_Data constructor.
|
|
|
|
*
|
2009-09-02 13:39:53 +02:00
|
|
|
* Creates a Pandora_Data object with the value received, the current time
|
|
|
|
* as timestamp and "unknown_source" as data_origin.
|
2008-04-09 Esteban Sanchez <estebans@artica.es>
* modules/pandora_data.[cc,h]: Added to repository. Implements a
Pandora_Data object, which holds a value and the timestamp when it
was created.
* modules/pandora_module.[cc,h]: It holds now a list of Pandora_Data
objects. The XML is generated based on the size of this list. Output
property has became obsolete and child modules must use setOutput().
* modules/pandora_module_cpuusage.cc,
modules/pandora_module_exec.cc,
modules/pandora_module_freedisk.cc,
modules/pandora_module_freememory.cc,
modules/pandora_module_odbc.cc, modules/pandora_module_proc.cc,
modules/pandora_module_service.cc: Updated to new Pandora_Module
parent class.
* modules/pandora_module_list.cc: Deleted debug output.
* pandora.cc: Now uses SYSTEMTIME instead of old time_t.
* pandora_windows_service.[cc,h]: Added Ramon Novoa to authors. Added
a new configuration token transfer_interval which sets the interval
where the data file will be sent to the server. If the current
interval token is lower than this transfer interval, the data will be
added into a data_list XML tag.
* PandoraAgent.dev: Added new files.
* bin/PandoraAgent.exe: Updated to last commit.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@803 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2008-04-09 17:48:06 +02:00
|
|
|
*
|
|
|
|
* @param value Data value.
|
|
|
|
*/
|
|
|
|
Pandora_Data::Pandora_Data (string value) {
|
2008-11-26 Esteban Sanchez <estebans@artica.es>
* pandora_strutils.cc, pandora_strutils.h, ftp/pandora_ftp_client.cc,
ftp/pandora_ftp_test.cc, ftp/pandora_ftp_client.h,
ftp/pandora_ftp_test.h, windows/pandora_windows_info.h,
windows/pandora_wmi.cc, windows/pandora_windows_info.cc,
misc/pandora_file.cc, misc/pandora_file.h, pandora_agent_conf.cc,
ssh/pandora_ssh_client.cc, ssh/pandora_ssh_test.cc,
ssh/pandora_ssh_client.h, ssh/pandora_ssh_test.h,
pandora_agent_conf.h, windows_service.cc, windows_service.h,
modules/pandora_module.h, modules/pandora_module_logevent.cc,
modules/pandora_module_exec.cc, modules/pandora_module_logevent.h,
modules/pandora_module_exec.h, modules/pandora_module_freedisk.cc,
modules/pandora_module_freedisk.h, modules/pandora_module_service.cc,
modules/pandora_module_service.h, modules/pandora_module_proc.cc,
modules/pandora_data.cc, modules/pandora_module_proc.h,
modules/pandora_data.h, modules/pandora_module_factory.cc,
modules/pandora_module_odbc.cc, modules/pandora_module_odbc.h,
modules/pandora_module_factory.h,
modules/pandora_module_freememory.cc, modules/pandora_module_list.cc,
modules/pandora_module_freememory.h,
modules/pandora_module_cpuusage.cc, modules/pandora_module_cpuusage.h,
modules/pandora_module.cc, pandora.h: Tab style correction.
Indentation blankspaces moved to tab characters.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1262 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2008-11-26 11:08:19 +01:00
|
|
|
this->value = value;
|
2008-04-09 Esteban Sanchez <estebans@artica.es>
* modules/pandora_data.[cc,h]: Added to repository. Implements a
Pandora_Data object, which holds a value and the timestamp when it
was created.
* modules/pandora_module.[cc,h]: It holds now a list of Pandora_Data
objects. The XML is generated based on the size of this list. Output
property has became obsolete and child modules must use setOutput().
* modules/pandora_module_cpuusage.cc,
modules/pandora_module_exec.cc,
modules/pandora_module_freedisk.cc,
modules/pandora_module_freememory.cc,
modules/pandora_module_odbc.cc, modules/pandora_module_proc.cc,
modules/pandora_module_service.cc: Updated to new Pandora_Module
parent class.
* modules/pandora_module_list.cc: Deleted debug output.
* pandora.cc: Now uses SYSTEMTIME instead of old time_t.
* pandora_windows_service.[cc,h]: Added Ramon Novoa to authors. Added
a new configuration token transfer_interval which sets the interval
where the data file will be sent to the server. If the current
interval token is lower than this transfer interval, the data will be
added into a data_list XML tag.
* PandoraAgent.dev: Added new files.
* bin/PandoraAgent.exe: Updated to last commit.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@803 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2008-04-09 17:48:06 +02:00
|
|
|
GetSystemTime (&(this->timestamp));
|
2009-09-02 13:39:53 +02:00
|
|
|
this->data_origin = pandora_data_unknown_source;
|
2008-04-09 Esteban Sanchez <estebans@artica.es>
* modules/pandora_data.[cc,h]: Added to repository. Implements a
Pandora_Data object, which holds a value and the timestamp when it
was created.
* modules/pandora_module.[cc,h]: It holds now a list of Pandora_Data
objects. The XML is generated based on the size of this list. Output
property has became obsolete and child modules must use setOutput().
* modules/pandora_module_cpuusage.cc,
modules/pandora_module_exec.cc,
modules/pandora_module_freedisk.cc,
modules/pandora_module_freememory.cc,
modules/pandora_module_odbc.cc, modules/pandora_module_proc.cc,
modules/pandora_module_service.cc: Updated to new Pandora_Module
parent class.
* modules/pandora_module_list.cc: Deleted debug output.
* pandora.cc: Now uses SYSTEMTIME instead of old time_t.
* pandora_windows_service.[cc,h]: Added Ramon Novoa to authors. Added
a new configuration token transfer_interval which sets the interval
where the data file will be sent to the server. If the current
interval token is lower than this transfer interval, the data will be
added into a data_list XML tag.
* PandoraAgent.dev: Added new files.
* bin/PandoraAgent.exe: Updated to last commit.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@803 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2008-04-09 17:48:06 +02:00
|
|
|
}
|
|
|
|
|
2008-06-19 17:55:44 +02:00
|
|
|
/**
|
|
|
|
* Pandora_Data constructor.
|
|
|
|
*
|
2009-09-02 13:39:53 +02:00
|
|
|
* Creates a Pandora_Data object with the value received, the received
|
|
|
|
* system_time as timestamp and "unknown_source" as data_origin.
|
|
|
|
*
|
2008-06-19 17:55:44 +02:00
|
|
|
*
|
|
|
|
* @param value Data value.
|
|
|
|
* @param system_time Timestamp.
|
|
|
|
*/
|
|
|
|
Pandora_Data::Pandora_Data (string value, SYSTEMTIME *system_time) {
|
|
|
|
this->value = value;
|
|
|
|
this->timestamp.wYear = system_time->wYear;
|
|
|
|
this->timestamp.wMonth = system_time->wMonth;
|
|
|
|
this->timestamp.wDay = system_time->wDay;
|
|
|
|
this->timestamp.wHour = system_time->wHour;
|
|
|
|
this->timestamp.wMinute = system_time->wMinute;
|
|
|
|
this->timestamp.wSecond = system_time->wSecond;
|
2009-09-02 13:39:53 +02:00
|
|
|
this->data_origin = pandora_data_unknown_source;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Pandora_Data constructor.
|
|
|
|
*
|
|
|
|
* Creates a Pandora_Data object with the value and data_origin received and the
|
|
|
|
* current time as timestamp
|
|
|
|
*
|
|
|
|
* @param value Data value.
|
|
|
|
* @param data_origin Data origin
|
|
|
|
*/
|
|
|
|
Pandora_Data::Pandora_Data (string value, string data_origin) {
|
|
|
|
this->value = value;
|
|
|
|
GetSystemTime (&(this->timestamp));
|
|
|
|
this->data_origin = data_origin;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Pandora_Data constructor.
|
|
|
|
*
|
|
|
|
* Set all attributes
|
|
|
|
*
|
|
|
|
* @param value Data value.
|
|
|
|
* @param system_time Timestamp.
|
|
|
|
* @param data_origin Data origin
|
|
|
|
*/
|
|
|
|
Pandora_Data::Pandora_Data (string value, SYSTEMTIME *system_time, string data_origin) {
|
|
|
|
this->value = value;
|
|
|
|
this->timestamp.wYear = system_time->wYear;
|
|
|
|
this->timestamp.wMonth = system_time->wMonth;
|
|
|
|
this->timestamp.wDay = system_time->wDay;
|
|
|
|
this->timestamp.wHour = system_time->wHour;
|
|
|
|
this->timestamp.wMinute = system_time->wMinute;
|
|
|
|
this->timestamp.wSecond = system_time->wSecond;
|
|
|
|
this->data_origin = data_origin;
|
2008-06-19 17:55:44 +02:00
|
|
|
}
|
|
|
|
|
2008-04-09 Esteban Sanchez <estebans@artica.es>
* modules/pandora_data.[cc,h]: Added to repository. Implements a
Pandora_Data object, which holds a value and the timestamp when it
was created.
* modules/pandora_module.[cc,h]: It holds now a list of Pandora_Data
objects. The XML is generated based on the size of this list. Output
property has became obsolete and child modules must use setOutput().
* modules/pandora_module_cpuusage.cc,
modules/pandora_module_exec.cc,
modules/pandora_module_freedisk.cc,
modules/pandora_module_freememory.cc,
modules/pandora_module_odbc.cc, modules/pandora_module_proc.cc,
modules/pandora_module_service.cc: Updated to new Pandora_Module
parent class.
* modules/pandora_module_list.cc: Deleted debug output.
* pandora.cc: Now uses SYSTEMTIME instead of old time_t.
* pandora_windows_service.[cc,h]: Added Ramon Novoa to authors. Added
a new configuration token transfer_interval which sets the interval
where the data file will be sent to the server. If the current
interval token is lower than this transfer interval, the data will be
added into a data_list XML tag.
* PandoraAgent.dev: Added new files.
* bin/PandoraAgent.exe: Updated to last commit.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@803 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2008-04-09 17:48:06 +02:00
|
|
|
/**
|
|
|
|
* Pandora_Data default constructor
|
|
|
|
*
|
|
|
|
* Set all parameters to blank
|
|
|
|
*/
|
|
|
|
Pandora_Data::Pandora_Data () {
|
|
|
|
this->value = "";
|
|
|
|
GetSystemTime (&(this->timestamp));
|
2009-09-02 13:39:53 +02:00
|
|
|
this->data_origin = "";
|
2008-04-09 Esteban Sanchez <estebans@artica.es>
* modules/pandora_data.[cc,h]: Added to repository. Implements a
Pandora_Data object, which holds a value and the timestamp when it
was created.
* modules/pandora_module.[cc,h]: It holds now a list of Pandora_Data
objects. The XML is generated based on the size of this list. Output
property has became obsolete and child modules must use setOutput().
* modules/pandora_module_cpuusage.cc,
modules/pandora_module_exec.cc,
modules/pandora_module_freedisk.cc,
modules/pandora_module_freememory.cc,
modules/pandora_module_odbc.cc, modules/pandora_module_proc.cc,
modules/pandora_module_service.cc: Updated to new Pandora_Module
parent class.
* modules/pandora_module_list.cc: Deleted debug output.
* pandora.cc: Now uses SYSTEMTIME instead of old time_t.
* pandora_windows_service.[cc,h]: Added Ramon Novoa to authors. Added
a new configuration token transfer_interval which sets the interval
where the data file will be sent to the server. If the current
interval token is lower than this transfer interval, the data will be
added into a data_list XML tag.
* PandoraAgent.dev: Added new files.
* bin/PandoraAgent.exe: Updated to last commit.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@803 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2008-04-09 17:48:06 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Destructor of Pandora_Data.
|
|
|
|
*/
|
|
|
|
Pandora_Data::~Pandora_Data () {
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get value property of Pandora_Data object
|
|
|
|
*
|
|
|
|
* @return Value property.
|
|
|
|
*/
|
|
|
|
string
|
|
|
|
Pandora_Data::getValue () const {
|
|
|
|
return this->value;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get timestamp property of Pandora_Data object in a human readable format.
|
|
|
|
*
|
|
|
|
* @return Timestamp formatted.
|
|
|
|
*/
|
|
|
|
string
|
|
|
|
Pandora_Data::getTimestamp () const {
|
|
|
|
char strtime[20];
|
|
|
|
string retval;
|
|
|
|
|
|
|
|
sprintf (strtime, "%d-%02d-%02d %02d:%02d:%02d", this->timestamp.wYear, this->timestamp.wMonth, this->timestamp.wDay,
|
2008-11-26 Esteban Sanchez <estebans@artica.es>
* pandora_strutils.cc, pandora_strutils.h, ftp/pandora_ftp_client.cc,
ftp/pandora_ftp_test.cc, ftp/pandora_ftp_client.h,
ftp/pandora_ftp_test.h, windows/pandora_windows_info.h,
windows/pandora_wmi.cc, windows/pandora_windows_info.cc,
misc/pandora_file.cc, misc/pandora_file.h, pandora_agent_conf.cc,
ssh/pandora_ssh_client.cc, ssh/pandora_ssh_test.cc,
ssh/pandora_ssh_client.h, ssh/pandora_ssh_test.h,
pandora_agent_conf.h, windows_service.cc, windows_service.h,
modules/pandora_module.h, modules/pandora_module_logevent.cc,
modules/pandora_module_exec.cc, modules/pandora_module_logevent.h,
modules/pandora_module_exec.h, modules/pandora_module_freedisk.cc,
modules/pandora_module_freedisk.h, modules/pandora_module_service.cc,
modules/pandora_module_service.h, modules/pandora_module_proc.cc,
modules/pandora_data.cc, modules/pandora_module_proc.h,
modules/pandora_data.h, modules/pandora_module_factory.cc,
modules/pandora_module_odbc.cc, modules/pandora_module_odbc.h,
modules/pandora_module_factory.h,
modules/pandora_module_freememory.cc, modules/pandora_module_list.cc,
modules/pandora_module_freememory.h,
modules/pandora_module_cpuusage.cc, modules/pandora_module_cpuusage.h,
modules/pandora_module.cc, pandora.h: Tab style correction.
Indentation blankspaces moved to tab characters.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1262 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2008-11-26 11:08:19 +01:00
|
|
|
this->timestamp.wHour, this->timestamp.wMinute, this->timestamp.wSecond);
|
2008-04-09 Esteban Sanchez <estebans@artica.es>
* modules/pandora_data.[cc,h]: Added to repository. Implements a
Pandora_Data object, which holds a value and the timestamp when it
was created.
* modules/pandora_module.[cc,h]: It holds now a list of Pandora_Data
objects. The XML is generated based on the size of this list. Output
property has became obsolete and child modules must use setOutput().
* modules/pandora_module_cpuusage.cc,
modules/pandora_module_exec.cc,
modules/pandora_module_freedisk.cc,
modules/pandora_module_freememory.cc,
modules/pandora_module_odbc.cc, modules/pandora_module_proc.cc,
modules/pandora_module_service.cc: Updated to new Pandora_Module
parent class.
* modules/pandora_module_list.cc: Deleted debug output.
* pandora.cc: Now uses SYSTEMTIME instead of old time_t.
* pandora_windows_service.[cc,h]: Added Ramon Novoa to authors. Added
a new configuration token transfer_interval which sets the interval
where the data file will be sent to the server. If the current
interval token is lower than this transfer interval, the data will be
added into a data_list XML tag.
* PandoraAgent.dev: Added new files.
* bin/PandoraAgent.exe: Updated to last commit.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@803 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
2008-04-09 17:48:06 +02:00
|
|
|
retval = strtime;
|
|
|
|
return retval;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set value property of Pandora_Data object
|
|
|
|
*
|
|
|
|
* @param value Value to set.
|
|
|
|
*/
|
|
|
|
void
|
|
|
|
Pandora_Data::setValue (string value) {
|
|
|
|
this->value = value;
|
|
|
|
}
|
|
|
|
|
2009-09-02 13:39:53 +02:00
|
|
|
/**
|
|
|
|
* Get data_origin property of Pandora_Data object
|
|
|
|
*
|
|
|
|
* @return data_origin property.
|
|
|
|
*/
|
|
|
|
string
|
|
|
|
Pandora_Data::getDataOrigin() const {
|
|
|
|
return this->data_origin;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set data_origin property of Pandora_Data object
|
|
|
|
*
|
|
|
|
* @param data_origin Data Oring to set.
|
|
|
|
*/
|
|
|
|
|
|
|
|
void
|
|
|
|
Pandora_Data::setDataOrigin(string data_origin) {
|
|
|
|
this->data_origin = data_origin;
|
|
|
|
}
|