summaryrefslogtreecommitdiff
path: root/cpp/src/Slice/Parser.cpp
diff options
context:
space:
mode:
authorMichi Henning <michi@zeroc.com>2002-08-22 06:21:41 +0000
committerMichi Henning <michi@zeroc.com>2002-08-22 06:21:41 +0000
commit9c3bc85e2924c51af64b332c81a8ace3627206ee (patch)
tree2bbcd860fc983e9a2d97b28f57df8ab8c76d2ccf /cpp/src/Slice/Parser.cpp
parentAdded post and prefix iterator operator++ tests (diff)
downloadice-9c3bc85e2924c51af64b332c81a8ace3627206ee.tar.bz2
ice-9c3bc85e2924c51af64b332c81a8ace3627206ee.tar.xz
ice-9c3bc85e2924c51af64b332c81a8ace3627206ee.zip
Added changes for idempotent.
Diffstat (limited to 'cpp/src/Slice/Parser.cpp')
-rw-r--r--cpp/src/Slice/Parser.cpp22
1 files changed, 17 insertions, 5 deletions
diff --git a/cpp/src/Slice/Parser.cpp b/cpp/src/Slice/Parser.cpp
index dec77656af9..6b10564c574 100644
--- a/cpp/src/Slice/Parser.cpp
+++ b/cpp/src/Slice/Parser.cpp
@@ -1764,7 +1764,7 @@ Slice::ClassDef::destroy()
OperationPtr
Slice::ClassDef::createOperation(const string& name,
const TypePtr& returnType,
- bool nonmutating)
+ Operation::Mode mode)
{
checkPrefix(name);
@@ -1865,7 +1865,7 @@ Slice::ClassDef::createOperation(const string& name,
_unit->error(msg);
}
- OperationPtr op = new Operation(this, name, returnType, nonmutating);
+ OperationPtr op = new Operation(this, name, returnType, mode);
_contents.push_back(op);
return op;
}
@@ -3158,10 +3158,22 @@ Slice::Operation::throws() const
return _throws;
}
+Operation::Mode
+Slice::Operation::mode() const
+{
+ return _mode;
+}
+
bool
Slice::Operation::nonmutating() const
{
- return _nonmutating;
+ return _mode == Nonmutating;
+}
+
+bool
+Slice::Operation::idempotent() const
+{
+ return _mode == Nonmutating || _mode == Idempotent;
}
void
@@ -3272,12 +3284,12 @@ Slice::Operation::visit(ParserVisitor* visitor)
Slice::Operation::Operation(const ContainerPtr& container,
const string& name,
const TypePtr& returnType,
- bool nonmutating) :
+ Mode mode) :
Contained(container, name),
Container(container->unit()),
SyntaxTreeBase(container->unit()),
_returnType(returnType),
- _nonmutating(nonmutating)
+ _mode(mode)
{
}