Tcl Source Code

View Ticket
Login
Ticket UUID: 1842600
Title: Additional public API's for tclOO
Type: RFE Version: None
Submitter: wiede Created on: 2007-12-02 10:31:06
Subsystem: 35. TclOO Package Assigned To: dkf
Priority: 8 Severity:
Status: Closed Last Modified: 2008-05-08 22:28:31
Resolution: Fixed Closed By: dkf
    Closed on: 2008-05-08 15:28:31
Description:
These are some additional public API's which would allow (at least for itcl-ng) to not need tclOOInt.h in the code.

see attached files (Include part and code part).
User Comments: dkf added on 2008-05-08 22:28:31:
Logged In: YES 
user_id=79902
Originator: NO

I've now got TclOOObjectSetMixins and TclOOClassSetMixins in the internal stub table. While I'm not yet sure that the API is perfect (hence they're not public) they're probably good enough if you're already using tclOOInt.h.

wiede added on 2008-01-07 00:31:14:
Logged In: YES 
user_id=558925
Originator: YES

I am now using all the new interfaces you are providing. Thanks for providing them. I am now also using the mixin management as you suggested.

dkf added on 2008-01-06 06:05:57:
Logged In: YES 
user_id=79902
Originator: NO

Everything done except the mixin management; that's a lot more complex because being a mixin requires a correct relationship back the other way. And the appropriate epoch also has to be incremented to flush all relevant caches too. It's currently easier to use Tcl_EvalObjv to invoke 'oo::define mixin' with the right arguments...

dkf added on 2008-01-03 22:14:25:
Logged In: YES 
user_id=79902
Originator: NO

I'm not sure that those two mixin-related functions are the right ones to expose. They're a bit low-level, and are just there to make managing the data structures easy.

Other functions are all now exposed either publicly or through the private stubs table.

wiede added on 2007-12-12 22:26:56:
Logged In: YES 
user_id=558925
Originator: YES

In the meantime I have figured out, that it would be enough to have the following functions of TclOO in the internal stubs table:
TclOOAddToMixinSubs
TclOORemoveFromMixinSubs
TclOONewForwardMethod
TclOONewForwardClassMethod
and (see RFE 1842588)
Tcl_ObjectSetMapMethodNameProc (or maybe better naming: TclOOObjectSetMapMethodNameProc)

wiede added on 2007-12-02 17:32:08:

File Added - 256948: itclNeededFromTclOO.h

Logged In: YES 
user_id=558925
Originator: YES

File Added: itclNeededFromTclOO.h

wiede added on 2007-12-02 17:31:08:

File Added - 256947: itclNeededFromTclOO.c

Attachments: