[odb-users] callback is not being called

Douglas Tomm dctomm at gmail.com
Fri Oct 5 11:22:32 EDT 2012


that did the trick - works perfectly now.  thank you!

d

On Oct 5, 2012, at 2:13 AM, Boris Kolpackov wrote:

> Hi Doug,
> 
> Doug Tomm <dctomm at gmail.com> writes:
> 
>> i have defined a class with a persist callback, but that callback 
>> is not being called, for any event.  everything works -- when i 
>> persist the object instance, it appears in the database.  but 
>> except that the callback is never invoked.
>> 
>>  void oninsert(::odb::callback_event event, ::odb::database& db)
> 
> You need to make it const:
> 
>    void oninsert(::odb::callback_event event, ::odb::database& db) const
> 
> Quoting the manual (Section 12.1.7, "callback"):
> 
> "The callback function for the *_persist, *_update, and *_erase events is
> always called on the constant object reference while for the *_load events —
> always on the unrestricted reference.
> 
> If only the non-const version of the callback function is provided, then only
> the *_load events will be delivered. If only the const version is provided,
> then all the events will be delivered to this function. Finally, if both
> versions are provided, then the *_load events will be delivered to the
> non-const version while all others — to the const version."
> 
> Boris




More information about the odb-users mailing list