zeroc-ice 3.7.3 → 3.7.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (227) hide show
  1. checksums.yaml +4 -4
  2. data/ext/Communicator.cpp +3 -0
  3. data/ext/Config.h +11 -0
  4. data/ext/Types.cpp +18 -2
  5. data/ext/Util.cpp +15 -3
  6. data/ext/Util.h +36 -0
  7. data/ext/ice/cpp/include/Ice/Exception.h +3 -3
  8. data/ext/ice/cpp/include/Ice/Functional.h +3 -1
  9. data/ext/ice/cpp/include/Ice/IconvStringConverter.h +1 -1
  10. data/ext/ice/cpp/include/Ice/Initialize.h +1 -1
  11. data/ext/ice/cpp/include/Ice/Object.h +7 -0
  12. data/ext/ice/cpp/include/Ice/Optional.h +1 -1
  13. data/ext/ice/cpp/include/Ice/OutgoingAsync.h +15 -0
  14. data/ext/ice/cpp/include/Ice/Proxy.h +56 -25
  15. data/ext/ice/cpp/include/Ice/Service.h +1 -1
  16. data/ext/ice/cpp/include/IceSSL/Plugin.h +142 -0
  17. data/ext/ice/cpp/include/IceUtil/Config.h +3 -2
  18. data/ext/ice/cpp/include/IceUtil/Functional.h +3 -1
  19. data/ext/ice/cpp/include/IceUtil/MutexPtrLock.h +4 -4
  20. data/ext/ice/cpp/include/IceUtil/ResourceConfig.h +2 -2
  21. data/ext/ice/cpp/include/generated/Ice/BuiltinSequences.h +2 -2
  22. data/ext/ice/cpp/include/generated/Ice/Communicator.h +10 -4
  23. data/ext/ice/cpp/include/generated/Ice/CommunicatorF.h +2 -2
  24. data/ext/ice/cpp/include/generated/Ice/Connection.h +58 -15
  25. data/ext/ice/cpp/include/generated/Ice/ConnectionF.h +2 -2
  26. data/ext/ice/cpp/include/generated/Ice/Current.h +2 -2
  27. data/ext/ice/cpp/include/generated/Ice/Endpoint.h +50 -14
  28. data/ext/ice/cpp/include/generated/Ice/EndpointF.h +2 -2
  29. data/ext/ice/cpp/include/generated/Ice/EndpointTypes.h +2 -2
  30. data/ext/ice/cpp/include/generated/Ice/FacetMap.h +2 -2
  31. data/ext/ice/cpp/include/generated/Ice/Identity.h +2 -2
  32. data/ext/ice/cpp/include/generated/Ice/ImplicitContext.h +8 -2
  33. data/ext/ice/cpp/include/generated/Ice/ImplicitContextF.h +2 -2
  34. data/ext/ice/cpp/include/generated/Ice/Instrumentation.h +62 -2
  35. data/ext/ice/cpp/include/generated/Ice/InstrumentationF.h +2 -2
  36. data/ext/ice/cpp/include/generated/Ice/LocalException.h +523 -127
  37. data/ext/ice/cpp/include/generated/Ice/Locator.h +62 -14
  38. data/ext/ice/cpp/include/generated/Ice/LocatorF.h +2 -2
  39. data/ext/ice/cpp/include/generated/Ice/Logger.h +8 -2
  40. data/ext/ice/cpp/include/generated/Ice/LoggerF.h +2 -2
  41. data/ext/ice/cpp/include/generated/Ice/Metrics.h +79 -27
  42. data/ext/ice/cpp/include/generated/Ice/ObjectAdapter.h +8 -2
  43. data/ext/ice/cpp/include/generated/Ice/ObjectAdapterF.h +2 -2
  44. data/ext/ice/cpp/include/generated/Ice/ObjectFactory.h +8 -2
  45. data/ext/ice/cpp/include/generated/Ice/Plugin.h +14 -2
  46. data/ext/ice/cpp/include/generated/Ice/PluginF.h +2 -2
  47. data/ext/ice/cpp/include/generated/Ice/Process.h +10 -4
  48. data/ext/ice/cpp/include/generated/Ice/ProcessF.h +2 -2
  49. data/ext/ice/cpp/include/generated/Ice/Properties.h +8 -2
  50. data/ext/ice/cpp/include/generated/Ice/PropertiesAdmin.h +11 -5
  51. data/ext/ice/cpp/include/generated/Ice/PropertiesF.h +2 -2
  52. data/ext/ice/cpp/include/generated/Ice/RemoteLogger.h +26 -8
  53. data/ext/ice/cpp/include/generated/Ice/Router.h +18 -6
  54. data/ext/ice/cpp/include/generated/Ice/RouterF.h +2 -2
  55. data/ext/ice/cpp/include/generated/Ice/ServantLocator.h +8 -2
  56. data/ext/ice/cpp/include/generated/Ice/ServantLocatorF.h +2 -2
  57. data/ext/ice/cpp/include/generated/Ice/SliceChecksumDict.h +2 -2
  58. data/ext/ice/cpp/include/generated/Ice/ValueFactory.h +14 -2
  59. data/ext/ice/cpp/include/generated/Ice/Version.h +2 -2
  60. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfo.h +10 -5
  61. data/ext/ice/cpp/include/generated/IceSSL/ConnectionInfoF.h +2 -2
  62. data/ext/ice/cpp/include/generated/IceSSL/EndpointInfo.h +8 -3
  63. data/ext/ice/cpp/src/Ice/ArgVector.cpp +1 -1
  64. data/ext/ice/cpp/src/Ice/BuiltinSequences.cpp +2 -2
  65. data/ext/ice/cpp/src/Ice/Communicator.cpp +2 -2
  66. data/ext/ice/cpp/src/Ice/CommunicatorF.cpp +2 -2
  67. data/ext/ice/cpp/src/Ice/Connection.cpp +2 -2
  68. data/ext/ice/cpp/src/Ice/ConnectionF.cpp +2 -2
  69. data/ext/ice/cpp/src/Ice/ConnectionFactory.cpp +3 -3
  70. data/ext/ice/cpp/src/Ice/Current.cpp +2 -2
  71. data/ext/ice/cpp/src/Ice/Endpoint.cpp +2 -2
  72. data/ext/ice/cpp/src/Ice/EndpointF.cpp +2 -2
  73. data/ext/ice/cpp/src/Ice/EndpointTypes.cpp +2 -2
  74. data/ext/ice/cpp/src/Ice/FacetMap.cpp +2 -2
  75. data/ext/ice/cpp/src/Ice/Identity.cpp +2 -2
  76. data/ext/ice/cpp/src/Ice/ImplicitContext.cpp +2 -2
  77. data/ext/ice/cpp/src/Ice/ImplicitContextF.cpp +2 -2
  78. data/ext/ice/cpp/src/Ice/ImplicitContextI.cpp +1 -1
  79. data/ext/ice/cpp/src/Ice/Initialize.cpp +1 -1
  80. data/ext/ice/cpp/src/Ice/InputStream.cpp +29 -14
  81. data/ext/ice/cpp/src/Ice/Instance.cpp +3 -0
  82. data/ext/ice/cpp/src/Ice/Instance.h +2 -0
  83. data/ext/ice/cpp/src/Ice/Instrumentation.cpp +2 -2
  84. data/ext/ice/cpp/src/Ice/InstrumentationF.cpp +2 -2
  85. data/ext/ice/cpp/src/Ice/LocalException.cpp +398 -2
  86. data/ext/ice/cpp/src/Ice/Locator.cpp +32 -2
  87. data/ext/ice/cpp/src/Ice/LocatorF.cpp +2 -2
  88. data/ext/ice/cpp/src/Ice/LocatorInfo.cpp +3 -3
  89. data/ext/ice/cpp/src/Ice/Logger.cpp +2 -2
  90. data/ext/ice/cpp/src/Ice/LoggerF.cpp +2 -2
  91. data/ext/ice/cpp/src/Ice/Metrics.cpp +8 -2
  92. data/ext/ice/cpp/src/Ice/Network.cpp +1 -1
  93. data/ext/ice/cpp/src/Ice/Network.h +0 -0
  94. data/ext/ice/cpp/src/Ice/ObjectAdapter.cpp +2 -2
  95. data/ext/ice/cpp/src/Ice/ObjectAdapterF.cpp +2 -2
  96. data/ext/ice/cpp/src/Ice/ObjectAdapterFactory.cpp +4 -4
  97. data/ext/ice/cpp/src/Ice/ObjectAdapterI.cpp +8 -8
  98. data/ext/ice/cpp/src/Ice/ObjectFactory.cpp +2 -2
  99. data/ext/ice/cpp/src/Ice/Plugin.cpp +2 -2
  100. data/ext/ice/cpp/src/Ice/PluginF.cpp +2 -2
  101. data/ext/ice/cpp/src/Ice/Process.cpp +2 -2
  102. data/ext/ice/cpp/src/Ice/ProcessF.cpp +2 -2
  103. data/ext/ice/cpp/src/Ice/Properties.cpp +2 -2
  104. data/ext/ice/cpp/src/Ice/PropertiesAdmin.cpp +2 -2
  105. data/ext/ice/cpp/src/Ice/PropertiesF.cpp +2 -2
  106. data/ext/ice/cpp/src/Ice/PropertyNames.cpp +6 -3
  107. data/ext/ice/cpp/src/Ice/PropertyNames.h +1 -1
  108. data/ext/ice/cpp/src/Ice/ProxyFactory.cpp +9 -0
  109. data/ext/ice/cpp/src/Ice/RemoteLogger.cpp +8 -2
  110. data/ext/ice/cpp/src/Ice/RetryQueue.cpp +5 -2
  111. data/ext/ice/cpp/src/Ice/Router.cpp +2 -2
  112. data/ext/ice/cpp/src/Ice/RouterF.cpp +2 -2
  113. data/ext/ice/cpp/src/Ice/RouterInfo.cpp +6 -2
  114. data/ext/ice/cpp/src/Ice/SHA1.cpp +2 -0
  115. data/ext/ice/cpp/src/Ice/ServantLocator.cpp +2 -2
  116. data/ext/ice/cpp/src/Ice/ServantLocatorF.cpp +2 -2
  117. data/ext/ice/cpp/src/Ice/SliceChecksumDict.cpp +2 -2
  118. data/ext/ice/cpp/src/Ice/StreamSocket.cpp +0 -0
  119. data/ext/ice/cpp/src/Ice/Thread.cpp +2 -2
  120. data/ext/ice/cpp/src/Ice/ThreadPool.cpp +5 -1
  121. data/ext/ice/cpp/src/Ice/ThreadPool.h +0 -4
  122. data/ext/ice/cpp/src/Ice/UdpTransceiver.cpp +0 -0
  123. data/ext/ice/cpp/src/Ice/ValueFactory.cpp +2 -2
  124. data/ext/ice/cpp/src/Ice/Version.cpp +2 -2
  125. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.cpp +2 -2
  126. data/ext/ice/cpp/src/IceDiscovery/IceDiscovery.h +491 -6
  127. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.cpp +2 -2
  128. data/ext/ice/cpp/src/IceLocatorDiscovery/IceLocatorDiscovery.h +16 -4
  129. data/ext/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +12 -1
  130. data/ext/ice/cpp/src/IceSSL/CertificateI.cpp +23 -1
  131. data/ext/ice/cpp/src/IceSSL/ConnectionInfo.cpp +2 -2
  132. data/ext/ice/cpp/src/IceSSL/ConnectionInfoF.cpp +2 -2
  133. data/ext/ice/cpp/src/IceSSL/EndpointInfo.cpp +2 -2
  134. data/ext/ice/cpp/src/IceSSL/OpenSSLCertificateI.cpp +124 -19
  135. data/ext/ice/cpp/src/IceSSL/OpenSSLEngine.cpp +60 -1
  136. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.cpp +105 -2
  137. data/ext/ice/cpp/src/IceSSL/OpenSSLTransceiverI.h +1 -0
  138. data/ext/ice/cpp/src/IceSSL/OpenSSLUtil.cpp +2 -0
  139. data/ext/ice/cpp/src/IceSSL/PluginI.cpp +114 -0
  140. data/ext/ice/cpp/src/IceSSL/PluginI.h +21 -0
  141. data/ext/ice/cpp/src/IceSSL/SChannelCertificateI.cpp +142 -1
  142. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.cpp +117 -3
  143. data/ext/ice/cpp/src/IceSSL/SChannelTransceiverI.h +1 -0
  144. data/ext/ice/cpp/src/IceSSL/SSLEngine.cpp +20 -1
  145. data/ext/ice/cpp/src/IceSSL/SSLEngine.h +4 -0
  146. data/ext/ice/cpp/src/IceSSL/SecureTransportCertificateI.cpp +133 -2
  147. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.cpp +151 -89
  148. data/ext/ice/cpp/src/IceSSL/SecureTransportTransceiverI.h +1 -0
  149. data/ext/ice/cpp/src/IceSSL/Util.cpp +0 -0
  150. data/ext/ice/cpp/src/IceUtil/StringConverter.cpp +6 -0
  151. data/ext/ice/cpp/src/IceUtil/Time.cpp +8 -10
  152. data/ext/ice/cpp/src/Slice/CPlusPlusUtil.cpp +6 -2
  153. data/ext/ice/cpp/src/Slice/JavaUtil.cpp +12 -4
  154. data/ext/ice/cpp/src/Slice/PHPUtil.cpp +4 -0
  155. data/ext/ice/cpp/src/Slice/Parser.cpp +11 -7
  156. data/ext/ice/cpp/src/Slice/Parser.h +2 -2
  157. data/ext/ice/cpp/src/Slice/Preprocessor.cpp +12 -0
  158. data/ext/ice/cpp/src/Slice/Preprocessor.h +1 -1
  159. data/ext/ice/cpp/src/Slice/Python.cpp +1 -1
  160. data/ext/ice/cpp/src/Slice/PythonUtil.cpp +17 -5
  161. data/ext/ice/cpp/src/Slice/Scanner.cpp +621 -369
  162. data/ext/ice/mcpp/CMakeLists.txt +80 -0
  163. data/ext/ice/mcpp/expand.c +6 -6
  164. data/ice.gemspec +1 -1
  165. data/lib/Glacier2/Metrics.rb +1 -1
  166. data/lib/Glacier2/PermissionsVerifier.rb +1 -1
  167. data/lib/Glacier2/PermissionsVerifierF.rb +1 -1
  168. data/lib/Glacier2/Router.rb +1 -1
  169. data/lib/Glacier2/RouterF.rb +1 -1
  170. data/lib/Glacier2/SSLInfo.rb +1 -1
  171. data/lib/Glacier2/Session.rb +1 -1
  172. data/lib/Ice/BuiltinSequences.rb +1 -1
  173. data/lib/Ice/Communicator.rb +1 -1
  174. data/lib/Ice/CommunicatorF.rb +1 -1
  175. data/lib/Ice/Connection.rb +1 -1
  176. data/lib/Ice/ConnectionF.rb +1 -1
  177. data/lib/Ice/Current.rb +1 -1
  178. data/lib/Ice/Endpoint.rb +1 -1
  179. data/lib/Ice/EndpointF.rb +1 -1
  180. data/lib/Ice/EndpointTypes.rb +1 -1
  181. data/lib/Ice/FacetMap.rb +1 -1
  182. data/lib/Ice/Identity.rb +1 -1
  183. data/lib/Ice/ImplicitContext.rb +1 -1
  184. data/lib/Ice/ImplicitContextF.rb +1 -1
  185. data/lib/Ice/Instrumentation.rb +1 -1
  186. data/lib/Ice/InstrumentationF.rb +1 -1
  187. data/lib/Ice/LocalException.rb +1 -1
  188. data/lib/Ice/Locator.rb +1 -1
  189. data/lib/Ice/LocatorF.rb +1 -1
  190. data/lib/Ice/Logger.rb +1 -1
  191. data/lib/Ice/LoggerF.rb +1 -1
  192. data/lib/Ice/Metrics.rb +1 -1
  193. data/lib/Ice/ObjectAdapter.rb +1 -1
  194. data/lib/Ice/ObjectAdapterF.rb +1 -1
  195. data/lib/Ice/ObjectFactory.rb +1 -1
  196. data/lib/Ice/Plugin.rb +1 -1
  197. data/lib/Ice/PluginF.rb +1 -1
  198. data/lib/Ice/Process.rb +1 -1
  199. data/lib/Ice/ProcessF.rb +1 -1
  200. data/lib/Ice/Properties.rb +1 -1
  201. data/lib/Ice/PropertiesAdmin.rb +1 -1
  202. data/lib/Ice/PropertiesF.rb +1 -1
  203. data/lib/Ice/RemoteLogger.rb +1 -1
  204. data/lib/Ice/Router.rb +1 -1
  205. data/lib/Ice/RouterF.rb +1 -1
  206. data/lib/Ice/ServantLocator.rb +1 -1
  207. data/lib/Ice/ServantLocatorF.rb +1 -1
  208. data/lib/Ice/SliceChecksumDict.rb +1 -1
  209. data/lib/Ice/ValueFactory.rb +1 -1
  210. data/lib/Ice/Version.rb +1 -1
  211. data/lib/IceBox/IceBox.rb +1 -1
  212. data/lib/IceGrid/Admin.rb +1 -1
  213. data/lib/IceGrid/Descriptor.rb +1 -1
  214. data/lib/IceGrid/Exception.rb +1 -1
  215. data/lib/IceGrid/FileParser.rb +1 -1
  216. data/lib/IceGrid/PluginFacade.rb +1 -1
  217. data/lib/IceGrid/Registry.rb +1 -1
  218. data/lib/IceGrid/Session.rb +1 -1
  219. data/lib/IceGrid/UserAccountMapper.rb +1 -1
  220. data/lib/IcePatch2/FileInfo.rb +1 -1
  221. data/lib/IcePatch2/FileServer.rb +1 -1
  222. data/lib/IceStorm/IceStorm.rb +1 -1
  223. data/lib/IceStorm/Metrics.rb +1 -1
  224. data/slice/Ice/Communicator.ice +1 -1
  225. data/slice/IceBox/IceBox.ice +17 -2
  226. data/slice/IceDiscovery/IceDiscovery.ice +56 -0
  227. metadata +4 -4
@@ -329,7 +329,7 @@ Slice::DefinitionContext::initSuppressedWarnings()
329
329
  else
330
330
  {
331
331
  warning(InvalidMetaData, "", "", string("invalid category `") + s +
332
- "' in global metadata suppress-warning");
332
+ "' in file metadata suppress-warning");
333
333
  }
334
334
  }
335
335
  }
@@ -1107,7 +1107,11 @@ Slice::Contained::Contained(const ContainerPtr& container, const string& name) :
1107
1107
  void
1108
1108
  Slice::Container::destroy()
1109
1109
  {
1110
+ #ifdef ICE_CPP11_COMPILER
1111
+ for_each(_contents.begin(), _contents.end(), [](const SyntaxTreeBasePtr& it) { it->destroy(); });
1112
+ #else
1110
1113
  for_each(_contents.begin(), _contents.end(), ::IceUtil::voidMemFun(&SyntaxTreeBase::destroy));
1114
+ #endif
1111
1115
  _contents.clear();
1112
1116
  _introducedMap.clear();
1113
1117
  SyntaxTreeBase::destroy();
@@ -2716,7 +2720,7 @@ Slice::Container::mergeModules()
2716
2720
  }
2717
2721
 
2718
2722
  //
2719
- // Compare the global metadata of the two modules being merged.
2723
+ // Compare the file metadata of the two modules being merged.
2720
2724
  //
2721
2725
  DefinitionContextPtr dc2 = mod2->definitionContext();
2722
2726
  assert(dc2);
@@ -2725,7 +2729,7 @@ Slice::Container::mergeModules()
2725
2729
  metaData2.unique();
2726
2730
  if(!checkGlobalMetaData(metaData1, metaData2))
2727
2731
  {
2728
- unit()->warning(All, "global metadata mismatch for module `" + mod1->name() + "' in files " +
2732
+ unit()->warning(All, "file metadata mismatch for module `" + mod1->name() + "' in files " +
2729
2733
  dc1->filename() + " and " + dc2->filename());
2730
2734
  }
2731
2735
 
@@ -3065,7 +3069,7 @@ bool
3065
3069
  Slice::Container::checkGlobalMetaData(const StringList& m1, const StringList& m2)
3066
3070
  {
3067
3071
  //
3068
- // Not all global metadata mismatches represent actual problems. We are only concerned about
3072
+ // Not all file metadata mismatches represent actual problems. We are only concerned about
3069
3073
  // the prefixes listed below (also see bug 2766).
3070
3074
  //
3071
3075
  static const char* prefixes[] =
@@ -3780,7 +3784,7 @@ void
3780
3784
  Slice::ClassDef::destroy()
3781
3785
  {
3782
3786
  _declaration = 0;
3783
- _bases.empty();
3787
+ _bases.clear();
3784
3788
  Container::destroy();
3785
3789
  }
3786
3790
 
@@ -6546,12 +6550,12 @@ Slice::Unit::addGlobalMetaData(const StringList& metaData)
6546
6550
  assert(dc);
6547
6551
  if(dc->seenDefinition())
6548
6552
  {
6549
- error("global metadata must appear before any definitions");
6553
+ error("file metadata must appear before any definitions");
6550
6554
  }
6551
6555
  else
6552
6556
  {
6553
6557
  //
6554
- // Append the global metadata to any existing metadata (e.g., default global metadata).
6558
+ // Append the file metadata to any existing metadata (e.g., default file metadata).
6555
6559
  //
6556
6560
  StringList l = dc->getMetaData();
6557
6561
  copy(metaData.begin(), metaData.end(), back_inserter(l));
@@ -181,7 +181,7 @@ struct OptionalDef
181
181
  // CICompare -- function object to do case-insensitive string comparison.
182
182
  // ----------------------------------------------------------------------
183
183
 
184
- class CICompare : public std::binary_function<std::string, std::string, bool>
184
+ class CICompare
185
185
  {
186
186
  public:
187
187
 
@@ -197,7 +197,7 @@ bool cICompare(const std::string&, const std::string&);
197
197
  // most-derived to least-derived order.
198
198
  // ----------------------------------------------------------------------
199
199
 
200
- class DerivedToBaseCompare : public std::binary_function<std::string, std::string, bool>
200
+ class DerivedToBaseCompare
201
201
  {
202
202
  public:
203
203
 
@@ -721,6 +721,18 @@ Slice::Preprocessor::printMakefileDependencies(ostream& out, Language lang, cons
721
721
  }
722
722
  break;
723
723
  }
724
+ case Swift:
725
+ {
726
+ //
727
+ // Change .o[bj] suffix to .swift suffix.
728
+ //
729
+ pos = 0;
730
+ if ((pos = result.find(suffix)) != string::npos)
731
+ {
732
+ result.replace(pos, suffix.size() - 1, ".swift");
733
+ }
734
+ break;
735
+ }
724
736
  default:
725
737
  {
726
738
  assert(false);
@@ -27,7 +27,7 @@ public:
27
27
  FILE* preprocess(bool, const std::vector<std::string>&);
28
28
  bool close();
29
29
 
30
- enum Language { CPlusPlus, Java, CSharp, Python, Ruby, PHP, JavaScript, JavaScriptJSON, ObjC, SliceXML, MATLAB };
30
+ enum Language { CPlusPlus, Java, CSharp, Python, Ruby, PHP, JavaScript, JavaScriptJSON, ObjC, SliceXML, MATLAB, Swift };
31
31
 
32
32
  bool printMakefileDependencies(std::ostream&, Language, const std::vector<std::string>&, const std::string& = "",
33
33
  const std::string& = "cpp", const std::string& = "");
@@ -685,7 +685,7 @@ Slice::Python::compile(const vector<string>& argv)
685
685
  }
686
686
 
687
687
  //
688
- // Check if the file contains the python:pkgdir global metadata.
688
+ // Check if the file contains the python:pkgdir file metadata.
689
689
  //
690
690
  const string pkgdir = getPackageDirectory(icecpp->getFileName(), u);
691
691
 
@@ -949,7 +949,15 @@ Slice::Python::CodeVisitor::visitClassDefStart(const ClassDefPtr& p)
949
949
  //
950
950
  ClassList allBases = p->allBases();
951
951
  StringList ids;
952
+ #ifdef ICE_CPP11_COMPILER
953
+ transform(allBases.begin(), allBases.end(), back_inserter(ids),
954
+ [](const ContainedPtr& it)
955
+ {
956
+ return it->scoped();
957
+ });
958
+ #else
952
959
  transform(allBases.begin(), allBases.end(), back_inserter(ids), IceUtil::constMemFun(&Contained::scoped));
960
+ #endif
953
961
  StringList other;
954
962
  other.push_back(scoped);
955
963
  other.push_back("::Ice::Object");
@@ -2852,7 +2860,7 @@ Slice::Python::getPackageDirectory(const string& file, const UnitPtr& ut)
2852
2860
  //
2853
2861
 
2854
2862
  //
2855
- // Check if the file contains the python:pkgdir global metadata.
2863
+ // Check if the file contains the python:pkgdir file metadata.
2856
2864
  //
2857
2865
  DefinitionContextPtr dc = ut->findDefinitionContext(file);
2858
2866
  assert(dc);
@@ -2877,7 +2885,7 @@ Slice::Python::getImportFileName(const string& file, const UnitPtr& ut, const ve
2877
2885
  //
2878
2886
 
2879
2887
  //
2880
- // Check if the file contains the python:pkgdir global metadata.
2888
+ // Check if the file contains the python:pkgdir file metadata.
2881
2889
  //
2882
2890
  string pkgdir = getPackageDirectory(file, ut);
2883
2891
  if(!pkgdir.empty())
@@ -2999,7 +3007,11 @@ Slice::Python::fixIdent(const string& ident)
2999
3007
  return lookupKwd(ident);
3000
3008
  }
3001
3009
  vector<string> ids = splitScopedName(ident);
3010
+ #ifdef ICE_CPP11_COMPILER
3011
+ transform(ids.begin(), ids.end(), ids.begin(), [](const string& id) -> string { return lookupKwd(id); });
3012
+ #else
3002
3013
  transform(ids.begin(), ids.end(), ids.begin(), ptr_fun(lookupKwd));
3014
+ #endif
3003
3015
  stringstream result;
3004
3016
  for(vector<string>::const_iterator i = ids.begin(); i != ids.end(); ++i)
3005
3017
  {
@@ -3034,7 +3046,7 @@ Slice::Python::getPackageMetadata(const ContainedPtr& cont)
3034
3046
  assert(m);
3035
3047
 
3036
3048
  //
3037
- // The python:package metadata can be defined as global metadata or applied to a top-level module.
3049
+ // The python:package metadata can be defined as file metadata or applied to a top-level module.
3038
3050
  // We check for the metadata at the top-level module first and then fall back to the global scope.
3039
3051
  //
3040
3052
  static const string prefix = "python:package:";
@@ -3101,7 +3113,7 @@ Slice::Python::MetaDataVisitor::visitUnitStart(const UnitPtr& p)
3101
3113
  static const string prefix = "python:";
3102
3114
 
3103
3115
  //
3104
- // Validate global metadata in the top-level file and all included files.
3116
+ // Validate file metadata in the top-level file and all included files.
3105
3117
  //
3106
3118
  StringList files = p->allFiles();
3107
3119
  for(StringList::iterator q = files.begin(); q != files.end(); ++q)
@@ -3126,7 +3138,7 @@ Slice::Python::MetaDataVisitor::visitUnitStart(const UnitPtr& p)
3126
3138
  continue;
3127
3139
  }
3128
3140
 
3129
- dc->warning(InvalidMetaData, file, "", "ignoring invalid global metadata `" + s + "'");
3141
+ dc->warning(InvalidMetaData, file, "", "ignoring invalid file metadata `" + s + "'");
3130
3142
  globalMetaData.remove(s);
3131
3143
  }
3132
3144
  }