Return-Path: Delivered-To: apmail-ws-axis-c-dev-archive@www.apache.org Received: (qmail 81101 invoked from network); 23 Apr 2004 19:32:00 -0000 Received: from daedalus.apache.org (HELO mail.apache.org) (208.185.179.12) by minotaur-2.apache.org with SMTP; 23 Apr 2004 19:32:00 -0000 Received: (qmail 58992 invoked by uid 500); 23 Apr 2004 19:31:41 -0000 Delivered-To: apmail-ws-axis-c-dev-archive@ws.apache.org Received: (qmail 58878 invoked by uid 500); 23 Apr 2004 19:31:40 -0000 Mailing-List: contact axis-c-dev-help@ws.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: List-Id: "Apache AXIS C Developers List" Reply-To: "Apache AXIS C Developers List" Delivered-To: mailing list axis-c-dev@ws.apache.org Received: (qmail 58789 invoked from network); 23 Apr 2004 19:31:39 -0000 Received: from unknown (HELO EXCHANGEUS.edocs.com) (63.114.227.95) by daedalus.apache.org with SMTP; 23 Apr 2004 19:31:39 -0000 Received: by exchangeus.edocs.com with Internet Mail Service (5.5.2650.21) id ; Fri, 23 Apr 2004 15:31:07 -0400 Message-ID: <8A6229AB5BE35447A7A838D64C1792BB12C1B507@exchangeus.edocs.com> From: Lilantha Darshana To: 'Apache AXIS C Developers List' Subject: RE: Resolving class name conflicts (for Axis c++ 1.2) Date: Fri, 23 Apr 2004 15:31:03 -0400 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2650.21) Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C42969.843642F0" X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_001_01C42969.843642F0 Content-Type: text/plain; charset="iso-8859-1" All, Introducing namespaces is the way to go. But the question is portability! if we are targeting non ANSI compliant C++ compilers. But, if a compiler claims ANSI/ISO they should posses namespaces. All the non-class functions that are not used by any C service/clients can be put in a namespace like: namespace axis { void foo(...); ... ... }; can be referred using axis::foo(...). Hence, we have to declare/define all the axis specific stuffs in such a namespace. For header files like Call.h If there are any conflict anybody can of cause refer them using a path/folder as a prefix like #include Anybody who suppose to use this kind of referencing will need to pass base include folders names correctly as a compiler argument like: -I $AXIS_HOME regards -Lilantha -----Original Message----- From: Susantha Kumara [mailto:susantha@opensource.lk] Sent: Friday, April 23, 2004 12:22 AM To: 'Apache AXIS C Developers List' Subject: RE: Resolving class name conflicts (for Axis c++ 1.2) I vote for 1. Having namespaces for C++ and having prefixes for C API functions 2. Keeping the existing folder structures as is 3. Resolving nested #includes and moving non-API header files from /include/ folder to /src folder --- Susantha --- Spend 5 minutes a day to see the beauty of a tree --- -----Original Message----- From: Samisa Abeysinghe [mailto:samisa_abeysinghe@yahoo.com] Sent: Friday, April 23, 2004 10:13 AM To: Apache AXIS C Developers List Subject: RE: Resolving class name conflicts (for Axis c++ 1.2) Hi All, Can we come to a conclusion on this? We got to decide on C++ classes (namespaces or prifixes) c functions(prefix) and API header file include folder structure and header file names. There are two concerns here, 1. nested #include stucture (flat or not) 2. Name conflicts (namespaces or prifixes) (may be we can vote) Thnaks, Samisa... susantha@opensource.lk wrote: Hi Samisa, I think there is no need to follow C styles everywhere because at the moment there is no intention to gradually make Axis C++ Axis C. But in order to achieve performance and stability we are planning get rid of STL. > Hi Susantha, > Yes C++ projects use folders. But Axis C++ is not pure C++. > There is a C interface as well. > Why not use a file name prefix as in apache web server? Of course We can use file name prefixes instead of namespaces. But that is a lot of work. For an example Call class will be Axis_Call > Why do we have to use folders? Are there any specific advantages of > using folders? I think you are here talking about having folders to categorize include files. We do this because we need to categorize them so that the client developers will need only the set of include files in /include/axis/client/ and server developer will need only /include/axis/server/ If we are going to get rid of folders 1. Call class will be Axis_Client_Call because we also need to make the file name same as class name 2. In order to have a consistency we may need to get rid of folder structure of /src/ too. This is then going to be a re-structure of whole codebase. > Thanks, > Samisa... > > --- Susantha Kumara wrote: >> Hi Samisa, >> >> Its true that having Call.h will restrict you to place another Call.h >> from another library or so. Usually this is problem is solved by having >> #includes with the folder name in front. Ex: >> >> Use #include instead of #include . Xerces C++ >> uses this convention. And most of the C++ projects too. >> >> --- >> Susantha >> >> -----Original Message----- >> From: Samisa Abeysinghe [mailto:samisa_abeysinghe@yahoo.com] >> Sent: Thursday, April 22, 2004 12:36 PM >> To: Apache AXIS C Developers List >> Subject: RE: Resolving class name conflicts (for Axis c++ 1.2) >> >> Hi Susantha, >> >> > Header file names wont conflict (no compilation issues). But are you >> > suggesting that we have a prefix for file names so that Axis C++ API >> > header files look unique ?. >> >> Have a look at perious message thread by Jean-Yves >> (http://marc.theaimsgroup.com/?l=axis-c-dev&m=108260093514665&w=2) >> I feel his argument is valid and there would be Header file name >> conflicts. >> >> Thanks, >> Samisa... >> >> >> >> >> __________________________________ >> Do you Yahoo!? >> Yahoo! Photos: High-quality 4x6 digital prints for 25� >> http://photos.yahoo.com/ph/print_splash >> >> >> > > > > > > __________________________________ > Do you Yahoo!? > Yahoo! Photos: High-quality 4x6 digital prints for 25� > http://photos.yahoo.com/ph/print_splash > > _____ Do you Yahoo!? Yahoo! Photos: High-quality 4x6 digital prints for 25� ------_=_NextPart_001_01C42969.843642F0 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
All,
 
Introducing namespaces is the way to go. But the question is = portability!=20 if we are targeting non
ANSI=20 compliant C++ compilers. But, if a compiler claims ANSI/ISO they should = posses=20 namespaces.
 
All=20 the non-class functions that are not used by any C=20 service/clients
can be=20 put in a namespace like:
 
namespace axis
{
    void = foo(...);
    ...
    ...
};
 
can be=20 referred using axis::foo(...).
 
Hence,=20 we have to declare/define all the axis specific stuffs in such a=20 namespace.
 
For=20 header files like Call.h If there are any conflict anybody can of = cause=20 refer them using a path/folder as a prefix
like
 
#include <axis/include/Call.h>
 
Anybody who suppose to use this kind of referencing will need = to pass=20 base include folders names correctly as
a=20 compiler argument like:
 
-I=20 $AXIS_HOME
 
regards
-Lilantha
 
 
-----Original Message-----
From: Susantha Kumara=20 [mailto:susantha@opensource.lk]
Sent: Friday, April 23, 2004 = 12:22=20 AM
To: 'Apache AXIS C Developers List'
Subject: RE: = Resolving class name conflicts (for Axis c++ 1.2)

I vote for=20

 

  1. Having namespaces for = C++ and=20 having prefixes for C API functions=20
  2. Keeping the existing = folder=20 structures as is=20
  3. Resolving nested = #includes and=20 moving non-API header files from /include/ folder to /src folder

 

---

Susantha

 

---

Spend 5 minutes a day to see the beauty of a=20 tree

---

 

 

 

-----Original=20 Message-----
From: = Samisa=20 Abeysinghe [mailto:samisa_abeysinghe@yahoo.com]
Sent: Friday, April 23, 2004 = 10:13=20 AM
To: Apache AXIS C = Developers=20 List
Subject: RE: = Resolving=20 class name conflicts (for Axis c++ 1.2)

 

Hi = All,

     Can = we come to a=20 conclusion on this?

     We = got to decide=20 on C++ classes (namespaces or prifixes) c = functions(prefix) and=20 API header file include folder structure and header file=20 names.

 

    There are = two concerns=20 here,

     1. = nested #include=20 stucture (flat or not)

     2. = Name conflicts=20 (namespaces or prifixes)

 

   (may be we can=20 vote)

 

Thnaks,

Samisa...



susantha@opensource.lk
=20 wrote:

Hi Samisa,

I think = there is no=20 need to follow C styles everywhere because at the
moment there is = no=20 intention to gradually make Axis C++ Axis C. But in
order to = achieve=20 performance and stability we are planning get rid of STL.

> = Hi=20 Susantha,
> Yes C++ projects use folders. But Axis C++ is not = pure=20 C++.
> There is a C interface as well.
> Why not use a = file name=20 prefix as in apache web server?

Of course We can use file name = prefixes=20 instead of namespaces. But that is
a lot of work. For an example = Call class=20 will be Axis_Call

> Why do we have to use folders? Are = there any=20 specific advantages of
> using folders?

I think you are = here=20 talking about having folders to categorize include
files. We do = this=20 because we need to categorize them so that the client
developers = will need=20 only the set of include files in
/include/axis/client/ and server = developer=20 will need only
/include/axis/server/

If we are going to get = rid of=20 folders
1. Call class will be Axis_Client_Call because we also = need to make=20 the
file name same as class name
2. In order to have a = consistency we=20 may need to get rid of folder
structure of /src/ too. This is then = going to=20 be a re-structure of whole
codebase.

> Thanks,
>=20 Samisa...
>
> --- Susantha Kumara=20 wrote:
>> Hi = Samisa,
>>
>>=20 Its true that having Call.h will restrict you to place another=20 Call.h
>> from another library or so. Usually this is = problem is=20 solved by having
>> #includes with the folder name in front. = Ex:
>>
>> Use #include instead of = #include=20 . Xerces C++
>> uses this convention. And most of = the C++=20 projects too.
>>
>> ---
>>=20 Susantha
>>
>> -----Original = Message-----
>> From:=20 Samisa Abeysinghe [mailto:samisa_abeysinghe@yahoo.com]
>> = Sent:=20 Thursday, April 22, 2004 12:36 PM
>> To: Apache AXIS C = Developers=20 List
>> Subject: RE: Resolving class name conflicts (for = Axis c++=20 1.2)
>>
>> Hi Susantha,
>>
>> = > Header=20 file names wont conflict (no compilation issues). But are = you
>> >=20 suggesting that we have a prefix for file names so that Axis C++=20 API
>> > header files look unique = ?.
>>
>> Have=20 a look at perious message thread by Jean-Yves
>>=20 = (http://marc.theaimsgroup.com/?l=3Daxis-c-dev&m=3D108260093514665&am= p;w=3D2)
>>=20 I feel his argument is valid and there would be Header file = name
>>=20 conflicts.
>>
>> Thanks,
>>=20 Samisa...
>>
>>
>>
>>
>> = __________________________________
>> Do you = Yahoo!?
>>=20 Yahoo! Photos: High-quality 4x6 digital prints for 25=A2
>>=20 = http://photos.yahoo.com/ph/print_splash
>>
>>
>&= gt;
>
>
>
>
>
>=20 __________________________________
> Do you Yahoo!?
> = Yahoo!=20 Photos: High-quality 4x6 digital prints for 25=A2
>=20 = http://photos.yahoo.com/ph/print_splash
>
>

 


Do you Yahoo!?
Yahoo! = Photos: High-quality=20 4x6 digital prints for = 25=A2

------_=_NextPart_001_01C42969.843642F0--