]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/wx-console/wxbtableparser.cpp
kes Fix code to check for two resources of same name. It forgot
[bacula/bacula] / bacula / src / wx-console / wxbtableparser.cpp
index f5cbf84d3cf6c11f8149c4c45806bda2ae6b75cf..fa145da26950ecac94d442aa7fdf7017afe1925e 100644 (file)
  *
  *    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"
 
 #include "wxbmainframe.h"
 
+#include <wx/arrimpl.cpp>
+
+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;
 }
 
 /*