diff dbus-d-javatests/jsrc/filetree/DataItem.d @ 0:a5576806d36d

recreate repository without any libs for lightweight repository
author Frank Benoit <benoit@tionex.de>
date Sat, 20 Oct 2007 18:07:18 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dbus-d-javatests/jsrc/filetree/DataItem.d	Sat Oct 20 18:07:18 2007 +0200
@@ -0,0 +1,187 @@
+/*
+ * Generated with TioLink
+ * TioLink was written by Frank Benoit <benoit@tionex.de>
+ * http://www.dsource.org/projects/tiolink
+ *
+ * User specific code can be place after the generated comment line containing:
+ * "USER CONTENT STARTS HERE".
+ * Everything before that line will be programmatically overwritten.
+ *
+ * File type: D programming language source code
+ */
+module filetree.DataItem;
+
+import org.freedesktop.dbus.DBus;
+import org.freedesktop.dbus.Introspectable;
+
+// Interface for DataItem
+
+interface DataItem : org.freedesktop.dbus.DBusInterface.DBusInterface {
+    public filetree.DataItem.DataItem[] getChilds();
+    public bool isFolder();
+    public bool isDrive();
+    public char[] getName();
+    const static char[] introspectionXml = 
+        `<interface name="filetree.DataItem"/>`\n
+        `  <method name="getChilds">`\n
+        `    <arg name="p0" type="ao" direction="out"/>`\n
+        `  </method>`\n
+        `  <method name="isFolder">`\n
+        `    <arg name="p0" type="b" direction="out"/>`\n
+        `  </method>`\n
+        `  <method name="isDrive">`\n
+        `    <arg name="p0" type="b" direction="out"/>`\n
+        `  </method>`\n
+        `  <method name="getName">`\n
+        `    <arg name="p0" type="s" direction="out"/>`\n
+        `  </method>`\n
+        `</interface>`\n
+        ;
+}
+
+CConnection.DBusHandlerResult intfHandler__filetree_DataItem_DataItem( CConnection.DBusConnection* conn, CConnection.DBusMessage* message, void* user_data ){
+    DataItem o = cast(DataItem)cast(Object)user_data;
+    if( o is null || !checkIntf( "filetree.DataItem", message) )
+        return CConnection.DBusHandlerResult.DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+    
+    try{
+        char[METHOD_SIG_MAXLENGTH] buf;
+        switch( methodSignature( message, buf ) ){
+        case "getChilds|":
+            {
+                filetree.DataItem.DataItem[] callResult = o.getChilds();
+                sendReply( conn, message, callResult );
+            }
+            break;
+        case "isFolder|":
+            {
+                bool callResult = o.isFolder();
+                sendReply( conn, message, callResult );
+            }
+            break;
+        case "isDrive|":
+            {
+                bool callResult = o.isDrive();
+                sendReply( conn, message, callResult );
+            }
+            break;
+        case "getName|":
+            {
+                char[] callResult = o.getName();
+                sendReply( conn, message, callResult );
+            }
+            break;
+        default:
+            return CConnection.DBusHandlerResult.DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+        }
+    }
+    catch( Exception e ){
+        sendException( conn, message, e );
+    }
+    return CConnection.DBusHandlerResult.DBUS_HANDLER_RESULT_HANDLED;
+}
+void intfFree__filetree_DataItem_DataItem( CConnection.DBusConnection *connection, void *user_data ){
+}
+
+
+// Dimpl for MyDataItem
+
+extern(C) CConnection.DBusHandlerResult dimplHandler__filetree_DataItem_MyDataItem( CConnection.DBusConnection* conn, CConnection.DBusMessage* message, void* user_data ){
+    CConnection.DBusHandlerResult res = CConnection.DBusHandlerResult.DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+    if( res == CConnection.DBusHandlerResult.DBUS_HANDLER_RESULT_NOT_YET_HANDLED ){
+        res = intfHandler__filetree_DataItem_DataItem( conn, message, user_data );
+    }
+    if( res == CConnection.DBusHandlerResult.DBUS_HANDLER_RESULT_NOT_YET_HANDLED ){
+        res = intfHandler__org_freedesktop_dbus_Introspectable_Introspectable( conn, message, user_data );
+    }
+    return res;
+}
+
+extern(C) void dimplFree__filetree_DataItem_MyDataItem( CConnection.DBusConnection *connection, void *user_data ){
+}
+
+CConnection.DBusObjectPathVTable vtable__filetree_DataItem_MyDataItem = {
+    unregister_function : & dimplFree__filetree_DataItem_MyDataItem,
+    message_function    : & dimplHandler__filetree_DataItem_MyDataItem
+};
+
+
+static assert( is( MyDataItem : filetree.DataItem.DataItem ));
+static assert( is( MyDataItem : org.freedesktop.dbus.Introspectable.Introspectable ));
+
+// --- USER CONTENT STARTS HERE (do not change this marker line) ---
+
+import tango.core.Exception;
+import tango.io.Stdout;
+import tango.io.FilePath;
+
+class MyDataItem : DBusObject, DataItem, Introspectable {
+	FilePath file;
+
+	public this( FilePath absPath ){
+		super( this.classinfo );
+		file = absPath;
+		//Stdout.formatln( "{} {} {}", __LINE__, __FILE__, file.toUtf8() );
+	}
+		
+	public char[] Introspect(){
+		return buildIntrospect( [DataItem.introspectionXml, Introspectable.introspectionXml ], null );
+	}
+	public DBusObjectPathVTable* getDBusVTable(){
+		return &vtable__filetree_DataItem_MyDataItem;
+	}
+	public DataItem[] getChilds(){
+		//Stdout.formatln( "{} {} ", __LINE__, __FILE__ );
+		char[][] names;
+		try{
+            int      i;
+            char[][] list;
+            void add (char[] path, char[] name, bool dir) {
+            	if( name == "." || name == ".." ){
+            		return;
+            	}
+                if (i >= list.length)
+                    list.length = list.length * 2;
+                
+                list[i++] = path~name;
+            }
+            list = new char[][512];
+            file.toList (&add);
+            names = list [0 .. i];
+		} catch( IOException e ){
+			// nothing happends
+		}
+
+		//Stdout.formatln( "{} {} ", __LINE__, __FILE__ );
+		DataItem[] res = new DataItem[ names.length ];
+		//Stdout.formatln( "{} {} ", __LINE__, __FILE__ );
+		for( int i = 0; i < names.length; i++ ){
+			char[] path = names[i];
+			//Stdout.formatln( "{} {} {}", __LINE__, __FILE__, path );
+			res[i] = new MyDataItem( new FilePath( path ) );
+		}
+		//Stdout.formatln( "{} {} ", __LINE__, __FILE__ );
+		return res;
+	}
+	public char[] getName(){
+		return file.file();
+	}
+	public bool isFolder(){
+		//Stdout.formatln( "{} {} {}", __LINE__, __FILE__, file.toUtf8() );
+		bool res = false;
+		try{
+			res = file.isFolder();
+		} catch( IOException e ){
+		}
+		return res;
+	}
+	
+	public bool isDrive(){
+		Stdout.formatln( "{} {} ", __LINE__, __FILE__ );
+		return false;
+	}
+	public override char[] toUtf8(){
+		return file.toUtf8();
+	}
+}
+