Implement directory object in wineserver.

Vitaliy Margolen wine-devel at kievinfo.com
Wed Nov 23 10:38:50 CST 2005


Wednesday, November 23, 2005, 9:14:28 AM, Alexandre Julliard wrote:
> Vitaliy Margolen <wine-devel at kievinfo.com> writes:

>> void *create_named_object_dir( const struct object *rootdir,
>>                                const struct unicode_str *name,
>>                                unsigned int attr,
>>                                const struct object_ops *ops );
>>
>> DECL_HANDLER([open/create]_directory)
>> {
>> ...
>>     get_req_unicode_str( &name );
>>     if (req->rootdir) root_obj = get_handle_obj( current->process,
>> req->rootdir, 0, &directory_ops );
>>     dir = create_directory( root_obj, &name, req->attributes );
>>     if (root_obj) release_object( root_obj );
>> ...
>>
>> For each named object?
> Something like that yes (plus proper error handling of course). Also
> the get_handle_obj needs to be encapsulated in a get_directory_obj so

Just want to make clear for myself. You want me to add all this code to
each object's create/open instead of putting it in the one place?

> that you don't export directory_ops, and create_named_object_dir
> should take a struct directory, not a struct object.

Mm I don't want to do that because find_object_dir could and will be used
on any object. I'm planning on renaming our current find_object into
something like find_object_ns only to be used by objects with their own
namespace. And they will use it only in lookup_name.

To drop it from everywhere else I will need query_type_name added to
object_ops. So I can use create_named_object_dir on any named object.







More information about the wine-devel mailing list