[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: C/C++ layering in PFile



Bjarke Hammersholt Roune wrote:

>I must admit I'm a bit confused as to what determines wheter functionality
>is implemented in C or C++. It seems pretty random to me. If there is some
>kind of system, it eludes me. Is there?

Yes, but it changed over time (in the beginning the plan was to implement
most of the functionality in a procedural way) and some parts are lagging
behind there.

The things that *should* (IMHO) be plain functions (not bound to a class)
are
* The API functions (of course)
* The specialized API functions (e.g. ppf_OpenInPak ())
* ppf_WriteLEInt32 () etc

Everything else makes more sense when arranged in classes.


>A related thing with ppf_URLInfo that puzzels me somewhat is:
>
>struct ppf_URLInfo
>{
> const char *Path;
> ppSizeT     Length;
> ppfFSType   FS;
>  int         PartCount;
> ppOffsetT   PartStart [PPF_MAX_PATH_DEPTH];
> ppSizeT     PartSize  [PPF_MAX_PATH_DEPTH];
> bool        IsAbsolute;
> bool        PathWasAllocated;
>
> ppf_URLInfo (void) throw () {}
> ~ppf_URLInfo ()    throw ();
>};
>
>Is this C or C++ ? Well, I can tell that it must be C++, since there's a

C with a destructor for convenience. But you're right, ppf_URLInfo should
be a nice little class. <time passes> Ok, I now wrote that - almost
completely. Then I had to give my father a little
scanning-retouching-printing intro ;) And now I'm too tired to finish it.
I'll send it tomorrow.

>btw, why locals in StartWithCaps? It makes them look like classes or
>functions, and I don't really see how having them start with a capital
>letter is a benefit.

Not like functions (the () are missing - that's really clear), and they
also can't be misinterpreted as classes because that's obvious from the
context.
What do you mean with the "start with a capital" sentence? As opposed to
startWithSmallButAllElseCapped or everything_small_and_underscores
or something else?


	Christian
-- 

Drive A: not responding...Formatting C: instead