Enlightenment CVS committal

Author  : lordchaos
Project : e17
Module  : apps/evfs

Dir     : e17/apps/evfs/src/common


Modified Files:
        evfs_event_helper.c evfs_io.c 


Log Message:
Directory listing for SAMBA plugin


===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/evfs/src/common/evfs_event_helper.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- evfs_event_helper.c 8 Oct 2005 01:53:25 -0000       1.5
+++ evfs_event_helper.c 9 Oct 2005 07:42:17 -0000       1.6
@@ -38,3 +38,20 @@
        /*No need to free data -it's probably a const raised by the ecore - it 
will free it.*/
        
 }
+
+void evfs_list_dir_event_create(evfs_client* client, evfs_command* command, 
Ecore_List* files) {
+       /*Create a reply event for a file mon event, send it , destroy event*/
+
+       printf("Creating a list dir event..\n");
+       
+       evfs_event* event = NEW(evfs_event);
+       event->type = EVFS_EV_DIR_LIST;
+       event->file_list.list = files;
+       evfs_write_event(client, command, event);
+
+       /*Now destroy*/
+       free(event);
+       /*No need to free data -it's probably a const raised by the ecore - it 
will free it.*/
+
+}
+
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/evfs/src/common/evfs_io.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -3 -r1.13 -r1.14
--- evfs_io.c   8 Oct 2005 04:23:07 -0000       1.13
+++ evfs_io.c   9 Oct 2005 07:42:17 -0000       1.14
@@ -43,6 +43,22 @@
 }
 
 
+void evfs_write_list_event (evfs_client* client, evfs_event* event) {
+       evfs_filereference* ref;
+       char block[1024]; /*Maybe too small, make this dynamic*/
+       
+       
+       ecore_list_goto_first(event->file_list.list);
+       while ( (ref = ecore_list_next(event->file_list.list)) ) {
+               memcpy(block, &ref->file_type, sizeof(evfs_file_type));
+               memcpy(block+sizeof(evfs_file_type), ref->path, 
strlen(ref->path)+1);
+               
+               printf ("Writing filename '%s' with filetype %d\n", ref->path, 
ref->file_type);
+               evfs_write_ecore_ipc_client_message(client->client, 
ecore_ipc_message_new(EVFS_EV_REPLY,EVFS_EV_PART_FILE_REFERENCE,client->id,0,0,block,
 (strlen(ref->path) * sizeof(char)) + sizeof(evfs_file_type) +1  ));
+       }
+       
+}
+
 
 
 void evfs_write_event(evfs_client* client, evfs_command* command, evfs_event* 
event) {
@@ -60,6 +76,8 @@
                case EVFS_EV_STAT:         
                                           evfs_write_stat_event(client,event);
                                           break;
+               case EVFS_EV_DIR_LIST:     evfs_write_list_event(client,event);
+                                          break;
        }
 
        evfs_write_ecore_ipc_client_message(client->client, 
ecore_ipc_message_new(EVFS_EV_REPLY,EVFS_EV_PART_END,client->id,0,0,NULL,0));   
    
@@ -86,6 +104,22 @@
                        memcpy(&event->stat.stat_obj, msg->data, sizeof(struct 
stat));
                        break;
 
+               case EVFS_EV_PART_FILE_REFERENCE: {
+                       evfs_filereference* ref = NEW(evfs_filereference);
+                                                         
+                       if (!event->file_list.list) {
+                               event->file_list.list = ecore_list_new();
+                       }
+                                                         
+                       memcpy(&ref->file_type, msg->data, 
sizeof(evfs_file_type));
+                       ref->path = malloc(sizeof(char) * msg->len);
+                       memcpy(ref->path, (msg->data)+sizeof(evfs_file_type), 
msg->len);
+                       //printf("(%s) Received file type for file: %d\n", 
ref->path, ref->file_type);
+
+                       ecore_list_append(event->file_list.list, ref);
+                       }
+                       break;
+
 
                /*The pieces of the incoming command*/
                case EVFS_COMMAND_TYPE:
@@ -142,6 +176,7 @@
                case EVFS_CMD_REMOVE_FILE:
                case EVFS_CMD_RENAME_FILE:
                case EVFS_CMD_FILE_STAT:
+               case EVFS_CMD_LIST_DIR:
                        evfs_write_file_command(conn, command);
                        break;
        }
@@ -155,6 +190,7 @@
                case EVFS_CMD_REMOVE_FILE:
                case EVFS_CMD_RENAME_FILE:
                case EVFS_CMD_FILE_STAT:
+               case EVFS_CMD_LIST_DIR:
                        evfs_write_file_command_client(client, command);
                        break;
        }       




-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to