Hi Curt,

Good stuff. It looked like hard work using all those macros anyway. :-) I'll 
follow your lead and investigate using APR myself for handling threading issues.

One last thing....sorry if this has been asked recently already - I couldn't 
find any answers in the recent mail archives - but any idea when the next 
release will be out?

Thanks,
Jess

-----Original Message-----
From: Curt Arnold [mailto:[EMAIL PROTECTED]
Sent: 21 December 2004 14:19
To: Log4CXX User
Subject: Re: ObjectPtrT question



On Dec 21, 2004, at 6:35 AM, [EMAIL PROTECTED] wrote:

> Hi,
>
> I'm writing a custom appender for log4cxx, and have a few questions 
> about the Object/ObjectImpl/ObjectPtrT classes.....Basically I'm going 
> to code a number of classes that extend ObjectImpl, to make use of the 
> ObjectPtrT "smart pointer" template and the Java-inspired threading 
> methods, wait, notifiy, notifyAll (and I notice you have a semaphore 
> imp...nice).
>

Actually, I've been removing the Java-inspired threading methods from 
the underlying Object interface in the APR rework.  Only a few classes 
used the constructs but it required every object to carry around 
mutexes and trying to precisely reproduce the Java threading semantics 
is a non-trivial task.


> My question is a very general one.....what are the general rules of 
> thumb you've been using when extending the ObjectImpl class?.... I've 
> noticed the object macros (eg. casting ones), and will be including 
> them in the declarations and implementations for my descendant 
> classes. Can't say I'm entirely sure of the purpose of the cast method 
> defined by the object class and implemented by the macros....is this 
> just supposed to be a safe way of dynamically down-casting an 
> object?....if so why was this method chosen in favour of the builtin 
> dynamic_cast mechanism?...anyway, my C++ is good, but not exceptional 
> (yet :-) ), so please excuse me if I've missed something here.
>

I can only speculate on the motivation since I wasn't in the project 
when the code was originally written.  The casting mechanism is an 
attempt to do support safe down-casting and could have been written 
using RTTI.  I assume that RTTI was avoided since compiler support 
varies and use of RTTI may have required code that used log4cxx be 
compiled with RTTI enabled.  It might be good to see if downcasting is 
actually used within log4cxx, if not maybe those macros could be 
stubbed out.


Visit our website at http://www.ubs.com

This message contains confidential information and is intended only
for the individual named.  If you are not the named addressee you
should not disseminate, distribute or copy this e-mail.  Please
notify the sender immediately by e-mail if you have received this
e-mail by mistake and delete this e-mail from your system.

E-mail transmission cannot be guaranteed to be secure or error-free
as information could be intercepted, corrupted, lost, destroyed,
arrive late or incomplete, or contain viruses.  The sender therefore
does not accept liability for any errors or omissions in the contents
of this message which arise as a result of e-mail transmission.  If
verification is required please request a hard-copy version.  This
message is provided for informational purposes and should not be
construed as a solicitation or offer to buy or sell any securities or
related financial instruments.

Reply via email to