List Info

Thread: Re: KDE/kdevplatform/plugins/subversion




Re: KDE/kdevplatform/plugins/subversion
user name
2007-07-29 06:03:48
On 29.07.07 06:54:16, dukju ahn wrote:
> 2007/7/29, Andreas Pakulat <apakugmx.de>:
> > On 29.07.07 04:58:06, dukju ahn wrote:
> > > 2007/7/28, Andreas Pakulat <apakugmx.de>:
> > > > On 28.07.07 18:30:14, Dukju Ahn wrote:
> > > > > ---
trunk/KDE/kdevplatform/plugins/subversion/svn_revision.h
#693699:693700
> > > > >  -24,6 +24,7 
> > > > >  #define SVN_REVERT  
(KDevelop::VcsJob::Revert)
> > > > >  #define SVN_COPY    
(KDevelop::VcsJob::Copy)
> > > > >  #define SVN_MOVE    
(KDevelop::VcsJob::Move)
> > > > > +#define SVN_CAT     
(KDevelop::VcsJob::Cat)
> > > >
> > > > Whats this? Apart from the fact that you
didn't commit the change in
> > > > vcsjob and thus broke the build, why
these defines? Whats the use case
> > > > for that?
> > >
> > > Because svn has its unique operations that
are not counted
> > > by our common interface. In most cases its ok
but, think about
> > > "svn switch", "svn info".
The VcsJob will not define enums for
> > > these operations, but subversion plugin still
needs this.
> > >
> > > So I had no choice but to define job types
again.
> >
> > I'm not questioning wether you need to invent new
enum values, but I'm
> > questioning the use of the #define's here. #define
is _not_ a proper
> > enum and I don't see a reason why you have them
and not use
> > KDevelop::VcsJob::Cat and Co directly - or
SvnJob::Info, SvnJob::Switch.
> 
> But why is the #define too bad?

Because they are unneeded and IMHO its just the wrong tool
for the job.
enum is a far better tool.

> It doesn't do any harm as far as the values are defined
correctly.
> What is the benefit if I redefine everything into enum
values such as
> SvnJob::commit ..?

For example: proper typing and type checking by the
compiler, not
polluting the global namespace because the enum values would
be
"namespaced" by the class name in which they are
defined.

Andreas

-- 
You'll feel devilish tonight.  Toss dynamite caps under a
flamenco dancer's
heel.

_______________________________________________
KDevelop-devel mailing list
KDevelop-develkdevelop.org
https://barney.cs.uni-potsdam.de/mailman/listinf
o/kdevelop-devel

Re: KDE/kdevplatform/plugins/subversion
user name
2007-07-29 06:26:33
2007/7/29, Andreas Pakulat <apakugmx.de>:
> On 29.07.07 06:54:16, dukju ahn wrote:
> > 2007/7/29, Andreas Pakulat <apakugmx.de>:
> > > On 29.07.07 04:58:06, dukju ahn wrote:
> > > > 2007/7/28, Andreas Pakulat <apakugmx.de>:
> > > > > On 28.07.07 18:30:14, Dukju Ahn
wrote:
> > > > > > ---
trunk/KDE/kdevplatform/plugins/subversion/svn_revision.h
#693699:693700
> > > > > >  -24,6 +24,7 
> > > > > >  #define SVN_REVERT  
(KDevelop::VcsJob::Revert)
> > > > > >  #define SVN_COPY    
(KDevelop::VcsJob::Copy)
> > > > > >  #define SVN_MOVE    
(KDevelop::VcsJob::Move)
> > > > > > +#define SVN_CAT     
(KDevelop::VcsJob::Cat)
> > > > >
> > > > > Whats this? Apart from the fact
that you didn't commit the change in
> > > > > vcsjob and thus broke the build,
why these defines? Whats the use case
> > > > > for that?
> > > >
> > > > Because svn has its unique operations
that are not counted
> > > > by our common interface. In most cases
its ok but, think about
> > > > "svn switch", "svn
info". The VcsJob will not define enums for
> > > > these operations, but subversion plugin
still needs this.
> > > >
> > > > So I had no choice but to define job
types again.
> > >
> > > I'm not questioning wether you need to invent
new enum values, but I'm
> > > questioning the use of the #define's here.
#define is _not_ a proper
> > > enum and I don't see a reason why you have
them and not use
> > > KDevelop::VcsJob::Cat and Co directly - or
SvnJob::Info, SvnJob::Switch.
> >
> > But why is the #define too bad?
>
> Because they are unneeded and IMHO its just the wrong
tool for the job.
> enum is a far better tool.

It's needed for uniformity. Suppose that in somewhere we
use
VcsJob::Add and in other place we use SvnJob::Info. They are
different
type. So I can't, at lease, use VcsJob enums directly.
I need to redefine every enums in a single type.

> > It doesn't do any harm as far as the values are
defined correctly.
> > What is the benefit if I redefine everything into
enum values such as
> > SvnJob::commit ..?
>
> For example: proper typing and type checking by the
compiler, not
> polluting the global namespace because the enum values
would be
> "namespaced" by the class name in which they
are defined.

In point of syntax it is true.  But I'm not clear why it
should be
confined to namespace. Also, the type is regarded just
"int". Then
there is no problem is typechecking.

_______________________________________________
KDevelop-devel mailing list
KDevelop-develkdevelop.org
https://barney.cs.uni-potsdam.de/mailman/listinf
o/kdevelop-devel

[1-2]

about | contact  Other archives ( Real Estate discussion Medical topics )