X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fwx-console%2Fwxbtableparser.cpp;h=fa145da26950ecac94d442aa7fdf7017afe1925e;hb=cf7670cd92ef9af2ccb0fa113390f647afcf3427;hp=f5cbf84d3cf6c11f8149c4c45806bda2ae6b75cf;hpb=db83bc1a5a407a0d77f22f598b767112af81632d;p=bacula%2Fbacula diff --git a/bacula/src/wx-console/wxbtableparser.cpp b/bacula/src/wx-console/wxbtableparser.cpp index f5cbf84d3c..fa145da269 100644 --- a/bacula/src/wx-console/wxbtableparser.cpp +++ b/bacula/src/wx-console/wxbtableparser.cpp @@ -11,25 +11,45 @@ * * Nicolas Boichat, April 2004 * + * Version $Id$ */ /* - Copyright (C) 2004 Kern Sibbald and John Walker + Bacula® - The Network Backup Solution - 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. + Copyright (C) 2004-2006 Free Software Foundation Europe e.V. - 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. + The main author of Bacula is Kern Sibbald, with contributions from + many others, a complete list can be found in the file AUTHORS. + This program is Free Software; you can redistribute it and/or + modify it under the terms of version two of the GNU General Public + License as published by the Free Software Foundation plus additions + that are listed in the file LICENSE. + + 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. + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. + + Bacula® is a registered trademark of John Walker. + The licensor of Bacula is the Free Software Foundation Europe + (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich, + Switzerland, email:ftf@fsfeurope.org. +*/ + +/* Windows debug builds set _DEBUG which is used by wxWidgets to select their + * debug memory allocator. Unfortunately it conflicts with Bacula's SmartAlloc. + * So we turn _DEBUG off since we aren't interested in things it enables. */ +#undef _DEBUG + +#include "bacula.h" + #include "wxbtableparser.h" // class's header file #include "csprint.h" @@ -38,12 +58,24 @@ #include "wxbmainframe.h" +#include + +WX_DEFINE_OBJARRAY(wxbTable); + +wxbArrayString::wxbArrayString(int n) : wxArrayString(), wxObject() { + Alloc(n); +} + +wxbArrayString::~wxbArrayString() { + +} + /* * wxbTableParser constructor */ -wxbTableParser::wxbTableParser() : wxbTable(5) { - separatorNum = 0; - tableHeader = wxbTableRow(5); +wxbTableParser::wxbTableParser(bool header) : wxbTable(), wxbDataParser(true) { + separatorNum = header ? 0 : 2; + tableHeader = wxbArrayString(); } /* @@ -56,47 +88,45 @@ wxbTableParser::~wxbTableParser() { /* * Returns table header as an array of wxStrings. */ -wxbTableRow* wxbTableParser::GetHeader() { - return &tableHeader; +const wxbArrayString& wxbTableParser::GetHeader() { + return tableHeader; } /* - * Receives director information, forwarded by the wxbPanel which - * uses this parser. + * Receives data to analyse. */ -void wxbTableParser::Print(wxString str, int status) { +bool wxbTableParser::Analyse(wxString str, int status) { if ((status == CS_END) && (separatorNum > 0)) { separatorNum = 3; } - if (separatorNum == 3) return; + if (separatorNum == 3) return false; if (str.Length() > 4) { if ((str.GetChar(0) == '+') && (str.GetChar(str.Length()-2) == '+') && (str.GetChar(str.Length()-1) == '\n')) { separatorNum++; - return; + return false; } if ((str.GetChar(0) == '|') && (str.GetChar(str.Length()-2) == '|') && (str.GetChar(str.Length()-1) == '\n')) { str.RemoveLast(); - wxStringTokenizer tkz(str, "|", wxTOKEN_STRTOK); + wxStringTokenizer tkz(str, wxT("|"), wxTOKEN_STRTOK); if (separatorNum == 1) { - int i = 0; while ( tkz.HasMoreTokens() ) { - tableHeader[i++] = tkz.GetNextToken().Trim(true).Trim(false); + tableHeader.Add(tkz.GetNextToken().Trim(true).Trim(false)); } } else if (separatorNum == 2) { - wxbTableRow tablerow(tableHeader.size()); - int i = 0; + wxbArrayString tablerow(tableHeader.GetCount()); while ( tkz.HasMoreTokens() ) { - tablerow[i++] = tkz.GetNextToken().Trim(true).Trim(false); + tablerow.Add(tkz.GetNextToken().Trim(true).Trim(false)); } - (*this)[size()] = tablerow; + Add(tablerow); } } } + return false; } /*