[
https://issues.apache.org/jira/browse/GEODE-7009?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16892212#comment-16892212
]
Blake Bender commented on GEODE-7009:
-------------------------------------
FWIW - removing the declaration from Execution could be done immediately, but
making Execution pure virtual is an ABI change, so it can only go out in a
point release or major release.
> Eliminate friend relationship between FunctionService and Execution classes
> ---------------------------------------------------------------------------
>
> Key: GEODE-7009
> URL: https://issues.apache.org/jira/browse/GEODE-7009
> Project: Geode
> Issue Type: Improvement
> Components: native client
> Reporter: Blake Bender
> Priority: Major
>
> These classes are friends of each other, and the reasons why aren't
> particularly compelling, so that needs to end. First, there is no reason at
> all why Execution declares FunctionService as a friend class, so that
> declaration can simply be deleted. FunctionService declares Execution as a
> friend because it needs to allocate instances of Execution, and Execution's
> only constructor is private. A better way to do this would be to make the
> Execution class simply be an interface, push any code in Execution down into
> ExecutionImpl, and have FunctionService instantiate ExecutionImpl directly
> and hand those out. ExecutionImpl is a private class, so its constructor
> doesn't have to be private, thus FunctionService can allocate an
> ExecutionImpl without being a friend class.
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)