diff options
author | Mark Spruiell <mes@zeroc.com> | 2005-10-10 20:51:09 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2005-10-10 20:51:09 +0000 |
commit | 5c820414d32245f8f23ad323787b72fb94f2782b (patch) | |
tree | 7b00c76b0c76606ed30740849b83e65921b8be84 /cpp/src/IcePack/Client.cpp | |
parent | adding IceGrid (diff) | |
download | ice-5c820414d32245f8f23ad323787b72fb94f2782b.tar.bz2 ice-5c820414d32245f8f23ad323787b72fb94f2782b.tar.xz ice-5c820414d32245f8f23ad323787b72fb94f2782b.zip |
bug 475: remove IcePack
Diffstat (limited to 'cpp/src/IcePack/Client.cpp')
-rw-r--r-- | cpp/src/IcePack/Client.cpp | 231 |
1 files changed, 0 insertions, 231 deletions
diff --git a/cpp/src/IcePack/Client.cpp b/cpp/src/IcePack/Client.cpp deleted file mode 100644 index dfe386130ea..00000000000 --- a/cpp/src/IcePack/Client.cpp +++ /dev/null @@ -1,231 +0,0 @@ -// ********************************************************************** -// -// Copyright (c) 2003-2005 ZeroC, Inc. All rights reserved. -// -// This copy of Ice is licensed to you under the terms described in the -// ICE_LICENSE file included in this distribution. -// -// ********************************************************************** - -#include <IceUtil/Options.h> -#include <Ice/Application.h> -#include <Ice/SliceChecksums.h> -#include <IcePack/Parser.h> -#include <fstream> - -using namespace std; -using namespace Ice; -using namespace IcePack; - -class Client : public Application -{ -public: - - void usage(); - virtual int run(int, char*[]); -}; - -int -main(int argc, char* argv[]) -{ - Client app; - return app.main(argc, argv); -} - -void -Client::usage() -{ - cerr << "Usage: " << appName() << " [options] [file...]\n"; - cerr << - "Options:\n" - "-h, --help Show this message.\n" - "-v, --version Display the Ice version.\n" - "-DNAME Define NAME as 1.\n" - "-DNAME=DEF Define NAME as DEF.\n" - "-UNAME Remove any definition for NAME.\n" - "-IDIR Put DIR in the include file search path.\n" - "-e COMMANDS Execute COMMANDS.\n" - "-d, --debug Print debug messages.\n" - ; -} - -int -Client::run(int argc, char* argv[]) -{ - string cpp("cpp"); - string commands; - bool debug; - - IceUtil::Options opts; - opts.addOpt("h", "help"); - opts.addOpt("v", "version"); - opts.addOpt("D", "", IceUtil::Options::NeedArg, "", IceUtil::Options::Repeat); - opts.addOpt("U", "", IceUtil::Options::NeedArg, "", IceUtil::Options::Repeat); - opts.addOpt("I", "", IceUtil::Options::NeedArg, "", IceUtil::Options::Repeat); - opts.addOpt("e", "", IceUtil::Options::NeedArg, "", IceUtil::Options::Repeat); - opts.addOpt("d", "debug"); - - vector<string> args; - try - { - args = opts.parse(argc, argv); - } - catch(const IceUtil::Options::BadOpt& e) - { - cerr << e.reason << endl; - usage(); - return EXIT_FAILURE; - } - - if(opts.isSet("h") || opts.isSet("help")) - { - usage(); - return EXIT_SUCCESS; - } - if(opts.isSet("v") || opts.isSet("version")) - { - cout << ICE_STRING_VERSION << endl; - return EXIT_SUCCESS; - } - if(opts.isSet("D")) - { - vector<string> optargs = opts.argVec("D"); - for(vector<string>::const_iterator i = optargs.begin(); i != optargs.end(); ++i) - { - cpp += " -D" + *i; - } - } - if(opts.isSet("U")) - { - vector<string> optargs = opts.argVec("U"); - for(vector<string>::const_iterator i = optargs.begin(); i != optargs.end(); ++i) - { - cpp += " -U" + *i; - } - } - if(opts.isSet("I")) - { - vector<string> optargs = opts.argVec("I"); - for(vector<string>::const_iterator i = optargs.begin(); i != optargs.end(); ++i) - { - cpp += " -I" + *i; - } - } - if(opts.isSet("e")) - { - vector<string> optargs = opts.argVec("e"); - for(vector<string>::const_iterator i = optargs.begin(); i != optargs.end(); ++i) - { - commands += *i + ";"; - } - } - debug = opts.isSet("d") || opts.isSet("debug"); - - if(!args.empty() && !commands.empty()) - { - cerr << appName() << ": `-e' option cannot be used if input files are given" << endl; - usage(); - return EXIT_FAILURE; - } - - PropertiesPtr properties = communicator()->getProperties(); - - const string adminIdProperty = "IcePack.Registry.AdminIdentity"; - string adminId = properties->getPropertyWithDefault(adminIdProperty, "IcePack/Admin"); - AdminPrx admin = AdminPrx::checkedCast(communicator()->stringToProxy(adminId)); - if(!admin) - { - cerr << appName() << ": no valid administrative interface" << endl; - return EXIT_FAILURE; - } - - const string queryIdProperty = "IcePack.Registry.QueryIdentity"; - string queryId = properties->getPropertyWithDefault(queryIdProperty, "IcePack/Query"); - QueryPrx query = QueryPrx::checkedCast(communicator()->stringToProxy(queryId)); - if(!query) - { - cerr << appName() << ": no valid query interface" << endl; - return EXIT_FAILURE; - } - - Ice::SliceChecksumDict serverChecksums = admin->getSliceChecksums(); - Ice::SliceChecksumDict localChecksums = Ice::sliceChecksums(); - for(Ice::SliceChecksumDict::const_iterator q = localChecksums.begin(); q != localChecksums.end(); ++q) - { - Ice::SliceChecksumDict::const_iterator r = serverChecksums.find(q->first); - if(r == serverChecksums.end()) - { - cerr << appName() << ": server is using unknown Slice type `" << q->first << "'" << endl; - } - else if(q->second != r->second) - { - cerr << appName() << ": server is using a different Slice definition of `" << q->first << "'" << endl; - } - } - - ParserPtr p = Parser::createParser(communicator(), admin, query); - - int status = EXIT_SUCCESS; - - if(args.empty()) // No files given - { - if(!commands.empty()) // Commands were given - { - int parseStatus = p->parse(commands, debug); - if(parseStatus == EXIT_FAILURE) - { - status = EXIT_FAILURE; - } - } - else // No commands, let's use standard input - { - p->showBanner(); - - int parseStatus = p->parse(stdin, debug); - if(parseStatus == EXIT_FAILURE) - { - status = EXIT_FAILURE; - } - } - } - else // Process files given on the command line - { - for(vector<string>::const_iterator i = args.begin(); i != args.end(); ++i) - { - ifstream test(i->c_str()); - if(!test) - { - cerr << appName() << ": can't open `" << *i << "' for reading: " << strerror(errno) << endl; - return EXIT_FAILURE; - } - test.close(); - - string cmd = cpp + " " + *i; -#ifdef _WIN32 - FILE* cppHandle = _popen(cmd.c_str(), "r"); -#else - FILE* cppHandle = popen(cmd.c_str(), "r"); -#endif - if(cppHandle == NULL) - { - cerr << appName() << ": can't run C++ preprocessor: " << strerror(errno) << endl; - return EXIT_FAILURE; - } - - int parseStatus = p->parse(cppHandle, debug); - -#ifdef _WIN32 - _pclose(cppHandle); -#else - pclose(cppHandle); -#endif - - if(parseStatus == EXIT_FAILURE) - { - status = EXIT_FAILURE; - } - } - } - - return status; -} |