summaryrefslogtreecommitdiff
path: root/cpp/src/IcePack/Client.cpp
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2005-10-10 20:51:09 +0000
committerMark Spruiell <mes@zeroc.com>2005-10-10 20:51:09 +0000
commit5c820414d32245f8f23ad323787b72fb94f2782b (patch)
tree7b00c76b0c76606ed30740849b83e65921b8be84 /cpp/src/IcePack/Client.cpp
parentadding IceGrid (diff)
downloadice-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.cpp231
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;
-}