summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Object.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/Object.cpp')
-rw-r--r--cpp/src/Ice/Object.cpp30
1 files changed, 29 insertions, 1 deletions
diff --git a/cpp/src/Ice/Object.cpp b/cpp/src/Ice/Object.cpp
index 8f5a9fa16aa..7549ddbc793 100644
--- a/cpp/src/Ice/Object.cpp
+++ b/cpp/src/Ice/Object.cpp
@@ -42,9 +42,16 @@ Ice::Object::_isA(const string& s)
return s == "::Ice::Object";
}
+bool
+Ice::Object::_hasFacet(const string& s)
+{
+ return false; // TODO
+}
+
void
Ice::Object::_ping()
{
+ // Nothing to do.
}
DispatchStatus
@@ -60,6 +67,18 @@ Ice::Object::____isA(Incoming& __in)
}
DispatchStatus
+Ice::Object::____hasFacet(Incoming& __in)
+{
+ BasicStream* __is = __in.is();
+ BasicStream* __os = __in.os();
+ string s;
+ __is->read(s);
+ bool __ret = _hasFacet(s);
+ __os->write(__ret);
+ return DispatchOK;
+}
+
+DispatchStatus
Ice::Object::____ping(Incoming&)
{
_ping();
@@ -68,6 +87,7 @@ Ice::Object::____ping(Incoming&)
const char* Ice::Object::__all[] =
{
+ "_hasFacet"
"_isA"
"_ping"
};
@@ -87,10 +107,14 @@ Ice::Object::__dispatch(Incoming& in, const string& s)
{
case 0:
{
- return ____isA(in);
+ return ____hasFacet(in);
}
case 1:
{
+ return ____isA(in);
+ }
+ case 2:
+ {
return ____ping(in);
}
}
@@ -102,5 +126,9 @@ Ice::Object::__dispatch(Incoming& in, const string& s)
bool
Ice::Object::__isMutating(const std::string& s)
{
+ //
+ // None of the Ice::Object operations accessible via __dispatch()
+ // is mutating.
+ //
return false;
}