[Libreoffice] cppu::OPropertySetHelper ABI backwards compatibility

Stephan Bergmann stephan.bergmann.secondary at googlemail.com
Tue Aug 23 10:37:06 PDT 2011


On Aug 23, 2011, at 5:00 PM, Lionel Elie Mamane wrote:

> On Mon, Aug 22, 2011 at 08:35:11PM -0400, Kohei Yoshida wrote:
>> On Mon, 2011-08-22 at 19:06 -0400, Kohei Yoshida wrote:
> 
>>> BTW, how do you plan to use that m_bFireEvent data member to decide to
>>> skip or fire events in OPropertySetHelper::fire() ?  The method that
>>> needs to be influenced by that boolean is still in the
>>> OPropertySetHelper.
> 
>> Actually, if this becomes problematic we probably *could* move this
>> boolean into OPropertySetHelper::Impl* m_pReserved.  That member is a
>> protected member, so the derived class should have access to it.
> 
> The problem of m_bFireEvent is solved, but I don't know what to do
> with queryInterface; since it is not virtual, I cannot override it in
> OPropertySetHelper2. The best I could come up with is something like (in
> OPropertySetHelper):

queryInterface *is* virtual (inherited from com::sun::star::uno::XInterface), standard implementation in OPropertySetHelper2 would be something like

Any OPropertySetHelper2::queryInterface(Type const & type) {
  Any a(cppu::queryInterface(type, static_cast< XPropertySetOption * >(this)));
  return a.hasValue() ? a : OPropertySetHelper::queryInterface(type);
}

-Stephan



More information about the LibreOffice mailing list