[ 
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)

Reply via email to