diff options
Diffstat (limited to 'examples/network/infoprotocol/infoserver/infodata.cpp')
-rw-r--r-- | examples/network/infoprotocol/infoserver/infodata.cpp | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/examples/network/infoprotocol/infoserver/infodata.cpp b/examples/network/infoprotocol/infoserver/infodata.cpp new file mode 100644 index 0000000..597f8a3 --- /dev/null +++ b/examples/network/infoprotocol/infoserver/infodata.cpp @@ -0,0 +1,88 @@ +/**************************************************************************** +** +** Copyright (C) 1992-2008 Trolltech ASA. All rights reserved. +** +** This file is part of an example program for Qt. This example +** program may be used, distributed and modified without limitation. +** +*****************************************************************************/ + +#include "infodata.h" + + +// we hard code all nodes and data in InfoData class +InfoData::InfoData() : + nodes( 17, TRUE ), data( 17, TRUE ) +{ + nodes.setAutoDelete(TRUE); + data.setAutoDelete(TRUE); + QStringList *item; + + nodes.insert( "/", item = new QStringList( ) ); + (*item) << "D network"; + nodes.insert( "/network/", item = new QStringList() ); + (*item) << "D workstations" << "D printers" << "D fax"; + nodes.insert( "/network/workstations/", item = new QStringList() ); + (*item) << "D nibble" << "D douglas"; + nodes.insert( "/network/workstations/nibble/", item = new QStringList() ); + (*item) << "F os" << "F cpu" << "F memory"; + nodes.insert( "/network/workstations/douglas/", item = new QStringList() ); + (*item) << "F os" << "F cpu" << "F memory"; + nodes.insert( "/network/printers/", item = new QStringList() ); + (*item) << "D overbitt" << "D kroksleiven"; + nodes.insert( "/network/printers/overbitt/", item = new QStringList() ); + (*item) << "D jobs" << "F type"; + nodes.insert( "/network/printers/overbitt/jobs/", item = new QStringList() ); + (*item) << "F job1" << "F job2"; + nodes.insert( "/network/printers/kroksleiven/", item = new QStringList() ); + (*item) << "D jobs" << "F type"; + nodes.insert( "/network/printers/kroksleiven/jobs/", item = new QStringList() ); + nodes.insert( "/network/fax/", item = new QStringList() ); + (*item) << "F last_number"; + + data.insert( "/network/workstations/nibble/os", new QString( "Linux" ) ); + data.insert( "/network/workstations/nibble/cpu", new QString( "AMD Athlon 1000" ) ); + data.insert( "/network/workstations/nibble/memory", new QString( "256 MB" ) ); + data.insert( "/network/workstations/douglas/os", new QString( "Windows 2000" ) ); + data.insert( "/network/workstations/douglas/cpu", new QString( "2 x Intel Pentium III 800" ) ); + data.insert( "/network/workstations/douglas/memory", new QString( "256 MB" ) ); + data.insert( "/network/printers/overbitt/type", new QString( "Lexmark Optra S 1255 PS" ) ); + data.insert( "/network/printers/overbitt/jobs/job1", + new QString( "Qt manual\n" "A4 size\n" "3000 pages" ) ); + data.insert( "/network/printers/overbitt/jobs/job2", + new QString( "Monthly report\n" "Letter size\n" "24 pages\n" "8 copies" ) ); + data.insert( "/network/printers/kroksleiven/type", new QString( "HP C LaserJet 4500-PS" ) ); + data.insert( "/network/fax/last_number", new QString( "22 22 22 22" ) ); +} + +QStringList InfoData::list( QString path, bool *found ) const +{ + if ( !path.endsWith( "/" ) ) + path += "/"; + if ( !path.startsWith( "/" ) ) + path = "/" + path; + QStringList *list = nodes[ path ]; + if ( list ) { + *found = TRUE; + return *list; + } else { + *found = FALSE; + QStringList empty; + return empty; + } +} + +QString InfoData::get( QString path, bool *found ) const +{ + if ( !path.startsWith( "/" ) ) + path = "/" + path; + QString *file = data[ path ]; + if ( file ) { + *found = TRUE; + return *file; + } else { + *found = FALSE; + QString empty; + return empty; + } +} |