[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