summaryrefslogtreecommitdiff
path: root/cpp/include/Slice/JavaUtil.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/include/Slice/JavaUtil.h')
-rw-r--r--cpp/include/Slice/JavaUtil.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/cpp/include/Slice/JavaUtil.h b/cpp/include/Slice/JavaUtil.h
index a3cba96e6c6..7fc742b2ac3 100644
--- a/cpp/include/Slice/JavaUtil.h
+++ b/cpp/include/Slice/JavaUtil.h
@@ -118,6 +118,11 @@ protected:
std::string getStaticId(const TypePtr&, const std::string&) const;
//
+ // Determines whether an in parameter should use the optional mapping.
+ //
+ bool useOptionalMapping(const ParamDeclPtr&);
+
+ //
// Returns the optional type corresponding to the given Slice type.
//
std::string getOptionalType(const TypePtr&);
@@ -150,7 +155,8 @@ protected:
enum OptionalMode
{
OptionalNone,
- OptionalInParam,
+ OptionalInParamReq, // Use the required mapping.
+ OptionalInParamOpt, // Use the optional mapping.
OptionalOutParam,
OptionalReturnParam,
OptionalMember
@@ -158,7 +164,8 @@ protected:
bool isOptionalParam(OptionalMode mode) const
{
- return mode == OptionalInParam || mode == OptionalOutParam || mode == OptionalReturnParam;
+ return mode == OptionalInParamReq || mode == OptionalInParamOpt || mode == OptionalOutParam ||
+ mode == OptionalReturnParam;
}
void writeMarshalUnmarshalCode(::IceUtilInternal::Output&, const std::string&, const TypePtr&, OptionalMode, int,