Re: [squid-users] Adding Header file

From: Amos Jeffries <squid3@dont-contact.us>
Date: Wed, 16 Apr 2008 13:37:43 +1200 (NZST)

> Hi Amos,
>
> Thanks for the reply. The header file that I want to include is
> "stack" which is already available in C++ just like "iostream" . When
> I include it in a squid source file and try to create a stack
> datatype, it gives an error saying "error: `stack' undeclared (first
> use this function) " .

Ah. That is an entirely different issue to what you described in your
first mail. There are now a couple of issues here to consider.

1) why you are needing to add it to squid.
2) why you are trying to re-invent a type that is already well-known and
available for use in probably all OS.
3) how to protect your new code against other types.

A good think about 1 and 2 usually comes up with its not worth the work,
just use the STL version provided.

I'm not familiar with the specific guidelines in squid-2 (they are in the
wiki somewhere IIRC). But for squid-3 when we need to add a standard type
like this locally we name it like 'SquidStack' and the files the same.
That way there is no clash to worry about.

Also there is basic code-wrapping. Any new experimental code needs to have
a configure option to enable it, with a matching macro USE_... which is
used to protect normal builds against the new code.

If you are going to insist on using a clashing type, you will force
yourself to go through the OS provided <stack> and dependencies and
un-define all the symbols that might cause problems. Its a big problem,
and _really_ not worth it.

>
>
> Example:
>
> #include <stack>

  <> in C/C++ means the compiler is specifically asked to find an OS
provided file before testing the local ones. Not your new one.
 You MUST have double-quotes (") for local files. And preferably a unique
localised name as I mention above.

>
> stack<char> test; - -> gives error.
>
> Thank you.
>
> -Plf
>
> On 4/15/08, Amos Jeffries <squid3@treenet.co.nz> wrote:
>> Paras Fadte wrote:
>>
>> > Hi,
>> >
>> > I was trying to add header file "stack.h" in one of the squids source
>> > code file so that I could define stack data types. But it doesn't
>> > seem to work . Can anybody help me out with this please?
>> >
>> >
>>
>> Code discussions in squid-dev please.
>>
>> You need to:
>> - add the files to the right sub-directory in the source,
>> - add to teh matching Makefile.am in all the right places,
>> - run bootstrap.sh,
>> - run configure,
>> - run make check,
>> - ... and fix any of the errors that come up about your files.
>> - test it works, and then submit a patch and request to have it used.
>>
>> NP: other errors in existing code. If any occur, please mention to
>> squid-dev so we can check and fix.
>>
>> Amos
>> --
>> Please use Squid 2.6.STABLE19 or 3.0.STABLE4
>>
>
Received on Tue Apr 22 2008 - 13:52:48 MDT

This archive was generated by hypermail 2.2.0 : Wed Apr 30 2008 - 12:00:07 MDT