summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/Parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceGrid/Parser.h')
-rw-r--r--cpp/src/IceGrid/Parser.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/cpp/src/IceGrid/Parser.h b/cpp/src/IceGrid/Parser.h
index 3e800be4d96..a4a1d0637da 100644
--- a/cpp/src/IceGrid/Parser.h
+++ b/cpp/src/IceGrid/Parser.h
@@ -62,14 +62,19 @@ typedef ::IceUtil::Handle<Parser> ParserPtr;
namespace IceGrid
{
-class Parser : public ::IceUtil::SimpleShared
+class Parser : public ::IceUtil::SimpleShared, IceUtil::Monitor<IceUtil::Mutex>
{
public:
- static ParserPtr createParser(const Ice::CommunicatorPtr&, const AdminSessionPrx&, const AdminPrx&);
+ static ParserPtr createParser(const Ice::CommunicatorPtr&, const AdminSessionPrx&, const AdminPrx&, bool);
void usage();
+ void interrupt();
+ bool interrupted() const;
+ void resetInterrupt();
+ void checkInterrupted();
+
void addApplication(const std::list<std::string>&);
void removeApplication(const std::list<std::string>&);
void describeApplication(const std::list<std::string>&);
@@ -143,7 +148,7 @@ public:
private:
- Parser(const Ice::CommunicatorPtr&, const AdminSessionPrx&, const AdminPrx&);
+ Parser(const Ice::CommunicatorPtr&, const AdminSessionPrx&, const AdminPrx&, bool);
void exception(const Ice::Exception&);
std::string _commands;
@@ -151,9 +156,11 @@ private:
AdminSessionPrx _session;
AdminPrx _admin;
bool _continue;
+ bool _interrupted;
int _errors;
int _currentLine;
std::string _currentFile;
+ bool _interactive;
};
extern Parser* parser; // The current parser for bison/flex