diff options
author | Stefan Hacker <dd0t@users.sourceforge.net> | 2014-07-10 20:31:03 +0400 |
---|---|---|
committer | Stefan Hacker <dd0t@users.sourceforge.net> | 2014-07-10 20:31:03 +0400 |
commit | dc429e5cdbbb3284254e7f10d58bf0566fbe86d9 (patch) | |
tree | 41471a8303675d94b6cf258f9a4ac00b11b96463 | |
parent | 0319ea46f535d391bed0013720beedb87cf7d4b4 (diff) |
Fix mice dynamic slice retrieval for Ice 3.5 python bindings
-rw-r--r-- | Helpers/mice.py | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/Helpers/mice.py b/Helpers/mice.py index f80c5ab..5fb878c 100644 --- a/Helpers/mice.py +++ b/Helpers/mice.py @@ -76,8 +76,19 @@ else: try: print "Trying to retrieve slice dynamically from server...", - slice = IcePy.Operation('getSlice', Ice.OperationMode.Idempotent, Ice.OperationMode.Idempotent, True, (), (), (), IcePy._t_string, ()).invoke(prx, ((), None)) - + # Check IcePy version as this internal function changes between version. + # In case it breaks with future versions use slice2py and search for + # "IcePy.Operation('getSlice'," for updates in the generated bindings. + op = None + if IcePy.intVersion() < 30500L: + # Old 3.4 signature with 9 parameters + op = IcePy.Operation('getSlice', Ice.OperationMode.Idempotent, Ice.OperationMode.Idempotent, True, (), (), (), IcePy._t_string, ()) + + else: + # New 3.5 signature with 10 parameters. + op = IcePy.Operation('getSlice', Ice.OperationMode.Idempotent, Ice.OperationMode.Idempotent, True, None, (), (), (), ((), IcePy._t_string, False, 0), ()) + + slice = op.invoke(prx, ((), None)) (dynslicefiledesc, dynslicefilepath) = tempfile.mkstemp(suffix = '.ice') dynslicefile = os.fdopen(dynslicefiledesc, 'w') dynslicefile.write(slice) |