summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Object.cpp
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2002-01-23 18:35:56 +0000
committerMatthew Newhook <matthew@zeroc.com>2002-01-23 18:35:56 +0000
commita80f007ab5a322761ddfc2a727dec33b8867c2d9 (patch)
treea5cc5df3aad32fbe1482e50437972d7570582306 /cpp/src/Ice/Object.cpp
parentWIN32 updates. (diff)
downloadice-a80f007ab5a322761ddfc2a727dec33b8867c2d9.tar.bz2
ice-a80f007ab5a322761ddfc2a727dec33b8867c2d9.tar.xz
ice-a80f007ab5a322761ddfc2a727dec33b8867c2d9.zip
Added support for ice_ids.
Diffstat (limited to 'cpp/src/Ice/Object.cpp')
-rw-r--r--cpp/src/Ice/Object.cpp28
1 files changed, 26 insertions, 2 deletions
diff --git a/cpp/src/Ice/Object.cpp b/cpp/src/Ice/Object.cpp
index e54df1a47fb..8696938fd0b 100644
--- a/cpp/src/Ice/Object.cpp
+++ b/cpp/src/Ice/Object.cpp
@@ -82,6 +82,16 @@ Ice::Object::ice_ping(const Current&)
// Nothing to do.
}
+vector<string>
+Ice::Object::ice_ids(const Current&)
+{
+ //
+ // Note in general this must be __ids, not __classIds since
+ // __classIds is only classes and not interfaces.
+ //
+ return vector<string>(&__classIds[0], &__classIds[1]);
+}
+
DispatchStatus
Ice::Object::___ice_isA(Incoming& __in, const Current& __current)
{
@@ -101,8 +111,18 @@ Ice::Object::___ice_ping(Incoming&, const Current& __current)
return DispatchOK;
}
+DispatchStatus
+Ice::Object::___ice_ids(Incoming& __in, const Current& __current)
+{
+ BasicStream* __os = __in.os();
+ vector<string> __ret = ice_ids(__current);
+ __os->write(__ret);
+ return DispatchOK;
+}
+
string Ice::Object::__all[] =
{
+ "ice_ids",
"ice_isA",
"ice_ping"
};
@@ -120,11 +140,15 @@ Ice::Object::__dispatch(Incoming& in, const Current& current)
switch (r.first - __all)
{
- case 0:
+ case 0:
+ {
+ return ___ice_ids(in, current);
+ }
+ case 1:
{
return ___ice_isA(in, current);
}
- case 1:
+ case 2:
{
return ___ice_ping(in, current);
}