[GSoC] IUri Implementations

Thomas Mullaly thomas.mullaly at gmail.com
Tue Mar 30 17:57:41 CDT 2010


Hi, my name is Thomas Mullaly and I am a undergraduate in the Computer 
Science department at Kent State University and I would very much like 
to participate in this years GSoC. I saw under your project ideas page 
that the IUri API still needs implemented and I thought that this would 
be a good project for me, but, before I submit a proposal on it I have a 
few questions about the project itself.

Firstly, on the project page it says that the main goal is to have the 
IUri interface and CreateUri function implemented, but, on MSDN they 
also have functions and interfaces for creating/manipulating 
IUriBuilder's and I was wondering if these were also part of the project 
goals. If not can they be or would this be to ambitious to have finished 
by the end of the summer.


Secondly (more of a design question), I see that the Uri structure and 
functions are already stubbed out in the "dlls/urlmon/uri.c" file and I 
was thinking for my implementation I would add another BSTR* member to 
the Uri struct, which will point to the encoded version of the URI 
(which will be generated during the CreateUri() call). Since most of the 
functions that interact with the IUri return components of the URI (e.g. 
scheme, host, query, etc.) I was thinking about adding more data members 
to the Uri struct which store the location in the encoded Uri string 
where each component exists (or -1 if it does not exist) and by doing 
this the runtimes of the IUri functions will be reduced since the 
function will already know where to look inside the encoded string for 
the component it needs. A drawback to this design is that each Uri 
struct will be bloated with a decent amount of ints which may or may not 
be used depending on the type of the URI that the IUri represents. The 
second approach I was thinking of is to not store any locations inside 
the Uri struct and to compute them on the fly every time the IUri is 
queried for one of its components, this would result in a smaller memory 
footprint of the Uri structure but will increase the runtimes of all the 
functions that access the URI. I was wondering if anyone might have 
suggestions for which way they think might be better.

Any input will be greatly appreciated!


-Thomas Mullaly



More information about the wine-devel mailing list