diff options
author | ivan <ivan> | 2010-12-27 00:04:44 +0000 |
---|---|---|
committer | ivan <ivan> | 2010-12-27 00:04:44 +0000 |
commit | 74e058c8a010ef6feb539248a550d0bb169c1e94 (patch) | |
tree | 6e8d3efb218dd0f41970b62c7f29758d1ae9a937 /torrus/perllib/Torrus/SQL/SrvExport.pm | |
parent | 35359a73152b3d7a9ad5e3d37faf81f6fedb76e8 (diff) |
import torrus 1.0.9
Diffstat (limited to 'torrus/perllib/Torrus/SQL/SrvExport.pm')
-rw-r--r-- | torrus/perllib/Torrus/SQL/SrvExport.pm | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/torrus/perllib/Torrus/SQL/SrvExport.pm b/torrus/perllib/Torrus/SQL/SrvExport.pm new file mode 100644 index 000000000..ef94547d6 --- /dev/null +++ b/torrus/perllib/Torrus/SQL/SrvExport.pm @@ -0,0 +1,109 @@ +# Copyright (C) 2005 Stanislav Sinyagin +# +# 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 of the License, 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. + +# $Id: SrvExport.pm,v 1.1 2010-12-27 00:03:59 ivan Exp $ +# Stanislav Sinyagin <ssinyagin@yahoo.com> + +# Class for Collector's external storage export data manipulation. + +package Torrus::SQL::SrvExport; + +use strict; + +use Torrus::SQL; +use base 'Torrus::SQL'; + +use Torrus::Log; + +# The name of the table and columns where the collector export is stored +# defaults configured in torrus-config.pl +our $tableName; +our %columns; + +sub sqlInsertStatement +{ + return sprintf('INSERT INTO %s (%s,%s,%s,%s,%s) VALUES (?,?,?,?,?)', + $tableName, + $columns{'srv_date'}, + $columns{'srv_time'}, + $columns{'serviceid'}, + $columns{'value'}, + $columns{'intvl'}); +} + + +sub getServiceIDs +{ + my $self = shift; + + $self->{'sql'}->select({ + 'fields' => [ $columns{'serviceid'} ], + 'table' => $tableName, + 'group' => [ $columns{'serviceid'} ], + 'order' => [ $columns{'serviceid'} ] }); + + my $ret = []; + while( defined( my $row = $self->{'sql'}->fetchrow_arrayref() ) ) + { + push( @{$ret}, $row->[0] ); + } + + return $ret; +} + + +# YYYY-MM-DD for start and end date +# returns the reference to the array of hashes for selected entries. + +sub getIntervalData +{ + my $self = shift; + my $startdate = shift; + my $enddate = shift; + my $serviceid = shift; + + $self->{'sql'}->select({ + 'fields' => + [ $columns{'srv_date'}, + $columns{'srv_time'}, + $columns{'value'}, + $columns{'intvl'} ], + 'table' => $tableName, + 'where' => [ {$columns{'serviceid'} => $serviceid}, + 'AND', + {$columns{'srv_date'} => ['>=', $startdate]}, + 'AND', + {$columns{'srv_date'} => ['<', $enddate]} + ]}); + + return $self->fetchall([ 'srv_date', 'srv_time', 'value', 'intvl' ]); +} + + + + + + + + +1; + + +# Local Variables: +# mode: perl +# indent-tabs-mode: nil +# perl-indent-level: 4 +# End: |