Commits

X3n0m0rph59  committed 7ce3870

fixed the app to work with the pyload-user-separation server

  • Participants
  • Parent commits 74ce7f5

Comments (0)

Files changed (33)

 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
 	<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+	<classpathentry exported="true" kind="lib" path="lib/slf4j-android-1.6.1-RC1.jar"/>
+	<classpathentry exported="true" kind="lib" path="lib/android-support-v4.jar"/>
+	<classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="src" path="gen"/>
-	<classpathentry kind="lib" path="lib/slf4j-android-1.6.1-RC1.jar"/>
-	<classpathentry kind="lib" path="lib/android-support-v4.jar"/>
 	<classpathentry kind="output" path="bin/classes"/>
 </classpath>

File default.properties

-# This file is automatically generated by Android Tools.
-# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
-#
-# This file must be checked in Version Control Systems.
-#
-# To customize properties used by the Ant build system use,
-# "build.properties", and override values to adapt the script to your
-# project structure.
-
 # Project target.
-target=android-7
+target=android-15

File gen/org/pyload/android/client/R.java

         public static final int TextView01=0x7f08001a;
         public static final int TextView02=0x7f08001b;
         public static final int TextViewTitle=0x7f080006;
-        public static final int abort=0x7f080044;
-        public static final int active=0x7f080033;
-        public static final int add_links=0x7f08003f;
+        public static final int abort=0x7f080046;
+        public static final int active=0x7f080035;
+        public static final int add_links=0x7f080041;
         public static final int button_add=0x7f08000f;
         public static final int button_cancel=0x7f080010;
         public static final int button_pick=0x7f08000d;
         public static final int button_submit=0x7f080018;
         public static final int buttonbar=0x7f080017;
         public static final int cancel=0x7f080015;
-        public static final int close=0x7f08002a;
-        public static final int delete=0x7f080046;
+        public static final int close=0x7f08002c;
+        public static final int delete=0x7f080048;
         public static final int destination=0x7f08000a;
         public static final int enter=0x7f080014;
-        public static final int error=0x7f080025;
-        public static final int eta=0x7f080037;
+        public static final int error=0x7f080027;
+        public static final int eta=0x7f080039;
         public static final int filename=0x7f08000c;
-        public static final int folder=0x7f080029;
+        public static final int folder=0x7f08002b;
         public static final int image=0x7f080012;
-        public static final int imageView1=0x7f08002c;
-        public static final int imageView2=0x7f08002e;
-        public static final int imageView3=0x7f080030;
-        public static final int imageView4=0x7f080032;
-        public static final int labelFolder=0x7f080028;
-        public static final int labelName=0x7f08001d;
-        public static final int labelPackage=0x7f080026;
-        public static final int labelPlugin=0x7f08001e;
-        public static final int labelSize=0x7f080022;
-        public static final int labelStatus=0x7f080020;
-        public static final int labelerror=0x7f080024;
+        public static final int imageView1=0x7f08002e;
+        public static final int imageView2=0x7f080030;
+        public static final int imageView3=0x7f080032;
+        public static final int imageView4=0x7f080034;
+        public static final int labelFolder=0x7f08002a;
+        public static final int labelName=0x7f08001f;
+        public static final int labelOwner=0x7f08001d;
+        public static final int labelPackage=0x7f080028;
+        public static final int labelPlugin=0x7f080020;
+        public static final int labelSize=0x7f080024;
+        public static final int labelStatus=0x7f080022;
+        public static final int labelerror=0x7f080026;
         public static final int layout_root=0x7f080011;
-        public static final int linear=0x7f080039;
+        public static final int linear=0x7f08003b;
         public static final int linearLayout1=0x7f08000b;
         public static final int linearLayout2=0x7f08000e;
-        public static final int link_stats=0x7f08003c;
+        public static final int link_stats=0x7f08003e;
         public static final int links=0x7f080008;
         public static final int list_header_title=0x7f080016;
-        public static final int move=0x7f080047;
+        public static final int move=0x7f080049;
         public static final int name=0x7f080001;
         public static final int new_packname=0x7f080007;
-        public static final int packageValue=0x7f080027;
-        public static final int package_progress=0x7f08003a;
-        public static final int pager=0x7f08002b;
+        public static final int owner=0x7f08001e;
+        public static final int packageValue=0x7f080029;
+        public static final int package_progress=0x7f08003c;
+        public static final int pager=0x7f08002d;
         public static final int password=0x7f080009;
-        public static final int percent=0x7f080036;
-        public static final int plugin=0x7f08001f;
-        public static final int progress=0x7f080034;
-        public static final int reconnect=0x7f08002f;
-        public static final int refresh=0x7f080042;
+        public static final int percent=0x7f080038;
+        public static final int plugin=0x7f080021;
+        public static final int progress=0x7f080036;
+        public static final int reconnect=0x7f080031;
+        public static final int refresh=0x7f080044;
         public static final int relativeLayout=0x7f08001c;
-        public static final int restart=0x7f080045;
+        public static final int restart=0x7f080047;
         public static final int scrollview=0x7f080019;
-        public static final int section=0x7f08003d;
-        public static final int section_desc=0x7f08003e;
-        public static final int settings=0x7f080043;
-        public static final int size=0x7f080023;
-        public static final int size_done=0x7f080035;
-        public static final int size_stats=0x7f08003b;
-        public static final int speed=0x7f080031;
-        public static final int status=0x7f080021;
-        public static final int status_icon=0x7f080038;
-        public static final int status_server=0x7f08002d;
+        public static final int section=0x7f08003f;
+        public static final int section_desc=0x7f080040;
+        public static final int settings=0x7f080045;
+        public static final int size=0x7f080025;
+        public static final int size_done=0x7f080037;
+        public static final int size_stats=0x7f08003d;
+        public static final int speed=0x7f080033;
+        public static final int status=0x7f080023;
+        public static final int status_icon=0x7f08003a;
+        public static final int status_server=0x7f08002f;
         public static final int text=0x7f080013;
-        public static final int toggle_reconnect=0x7f080041;
-        public static final int toggle_server=0x7f080040;
+        public static final int toggle_reconnect=0x7f080043;
+        public static final int toggle_server=0x7f080042;
         public static final int trafficleft=0x7f080004;
         public static final int type=0x7f080000;
         public static final int valid=0x7f080002;
         public static final int old_server=0x7f050032;
         public static final int on=0x7f050018;
         public static final int overview=0x7f050021;
+        public static final int owner=0x7f05004f;
         public static final int package_links=0x7f050024;
         public static final int parent_dir=0x7f050038;
         public static final int password=0x7f050012;

File proguard.cfg

     native <methods>;
 }
 
--keepclasseswithmembernames class * {
+-keepclasseswithmembers class * {
     public <init>(android.content.Context, android.util.AttributeSet);
 }
 
--keepclasseswithmembernames class * {
+-keepclasseswithmembers class * {
     public <init>(android.content.Context, android.util.AttributeSet, int);
 }
 

File res/layout/fileinfo_dialog.xml

   android:orientation="vertical">
   
 <RelativeLayout
-android:layout_height="wrap_content"
-android:layout_width="fill_parent"
-android:id="@+id/relativeLayout"
-android:paddingBottom="15dip"
-android:layout_marginLeft="15dip"
-android:layout_marginRight="15dip">
+    android:id="@+id/relativeLayout"
+    android:layout_width="fill_parent"
+    android:layout_height="166dp"
+    android:layout_marginLeft="15dip"
+    android:layout_marginRight="15dip"
+    android:paddingBottom="15dip" >
 
+    <TextView
+        android:layout_width="wrap_content"
+        android:id="@+id/labelOwner"
+        android:layout_height="wrap_content"
+        android:text="@string/owner"/>
+    
+    <TextView 
+   		android:layout_width="wrap_content"
+   		android:id="@+id/owner"
+   		android:text="@string/n_a"
+   		android:layout_height="wrap_content"
+   		android:gravity="right"
+   		android:layout_toRightOf="@+id/labelOwner"
+   		android:layout_alignParentRight="true"/>
+    
 	<TextView
         android:layout_width="wrap_content"
         android:id="@+id/labelName"
    		android:layout_height="wrap_content"
    		android:gravity="right"
    		android:layout_below="@+id/packageValue"
-   		android:layout_alignParentRight="true"/>
-   		 
+   		android:layout_alignParentRight="true"/>   		 
 </RelativeLayout>>
 
 <Button 

File res/values/strings.xml

     <string name="invalid">invalid</string>
     <string name="trafficleft">Traffic left:</string>
     <string name="validuntil">Valid until:</string>
+    <string name="owner">Owner</string>
 </resources>

File src/org/pyload/android/client/dialogs/FileInfoDialog.java

 		TextView view = (TextView) dialog.findViewById(R.id.name);
 		view.setText(file.name);
 
+		view = (TextView) dialog.findViewById(R.id.owner);
+		view.setText(file.owner_name);
+		
 		view = (TextView) dialog.findViewById(R.id.status);
 		view.setText(file.statusmsg);
 

File src/org/pyload/android/client/fragments/AbstractPackageFragment.java

 			public void run() {
 				client = app.getClient();
 				if (dest == 0)
-					data = client.getQueueData();
+					data = client.getQueueData(app.getUserID());
 				else
-					data = client.getCollectorData();
+					data = client.getCollectorData(app.getUserID());
 			}
 		}, mUpdateResults);
 

File src/org/pyload/android/client/fragments/OverviewFragment.java

 
 		public void run() {
 			client = app.getClient();
-			downloads = client.statusDownloads();
-			status = client.statusServer();
+			downloads = client.statusDownloads(app.getUserID());
+			status = client.statusServer(app.getUserID());
 			if (client.isCaptchaWaiting()) {
 				Log.d("pyLoad", "Captcha available");
 				captcha = client.getCaptchaTask(false);

File src/org/pyload/android/client/pyLoad.java

 						Client client = app.getClient();
 
 						if (links.size() > 0) {
-							int pid = client.addPackage(name, links, dest);
+							int pid = client.addPackage(name, links, app.getUserID(), dest);
 
 							if (password != null && !password.equals("")) {
 
 									;
 								buffer.rewind();
 								is.close();
-								client.uploadContainer(filename, buffer);
+								client.uploadContainer(filename, buffer, app.getUserID());
 
 							} catch (Throwable e) {
 								Log.e("pyLoad", "Error when uploading file", e);

File src/org/pyload/android/client/pyLoadApp.java

 
 	private pyLoad main;
 
-	private static final String[] clientVersion = {"0.4.8", "0.4.9"};
+	private static final String[] clientVersion = {"0.4.8", "0.4.9", "0.4.9-user-separation-v1"};
 
 	public void init(pyLoad main) {
 		this.main = main;
 			
 			if (!match)
 				throw new WrongServer();
+			
+			this.setUserID(client.getUserIDFromName(prefs.getString("username","")));
 
 		}
 		return client;
 		main.setProgressBarIndeterminateVisibility(state);
 	}
 
+	private short user_id;
+	
+	public short getUserID() {
+		return user_id;		
+	}
+	
+	public void setUserID(short user_id) {
+		this.user_id = user_id;
+	}
 }

File src/org/pyload/thrift/AccountInfo.java

 /**
- * Autogenerated by Thrift Compiler (0.8.0-dev)
+ * Autogenerated by Thrift Compiler (0.8.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
           case 3: // OPTIONS
             if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
               {
-                org.apache.thrift.protocol.TMap _map24 = iprot.readMapBegin();
-                struct.options = new HashMap<String,List<String>>(2*_map24.size);
-                for (int _i25 = 0; _i25 < _map24.size; ++_i25)
+                org.apache.thrift.protocol.TMap _map48 = iprot.readMapBegin();
+                struct.options = new HashMap<String,List<String>>(2*_map48.size);
+                for (int _i49 = 0; _i49 < _map48.size; ++_i49)
                 {
-                  String _key26; // required
-                  List<String> _val27; // required
-                  _key26 = iprot.readString();
+                  String _key50; // required
+                  List<String> _val51; // required
+                  _key50 = iprot.readString();
                   {
-                    org.apache.thrift.protocol.TList _list28 = iprot.readListBegin();
-                    _val27 = new ArrayList<String>(_list28.size);
-                    for (int _i29 = 0; _i29 < _list28.size; ++_i29)
+                    org.apache.thrift.protocol.TList _list52 = iprot.readListBegin();
+                    _val51 = new ArrayList<String>(_list52.size);
+                    for (int _i53 = 0; _i53 < _list52.size; ++_i53)
                     {
-                      String _elem30; // required
-                      _elem30 = iprot.readString();
-                      _val27.add(_elem30);
+                      String _elem54; // required
+                      _elem54 = iprot.readString();
+                      _val51.add(_elem54);
                     }
                     iprot.readListEnd();
                   }
-                  struct.options.put(_key26, _val27);
+                  struct.options.put(_key50, _val51);
                 }
                 iprot.readMapEnd();
               }
         oprot.writeFieldBegin(OPTIONS_FIELD_DESC);
         {
           oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.LIST, struct.options.size()));
-          for (Map.Entry<String, List<String>> _iter31 : struct.options.entrySet())
+          for (Map.Entry<String, List<String>> _iter55 : struct.options.entrySet())
           {
-            oprot.writeString(_iter31.getKey());
+            oprot.writeString(_iter55.getKey());
             {
-              oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, _iter31.getValue().size()));
-              for (String _iter32 : _iter31.getValue())
+              oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, _iter55.getValue().size()));
+              for (String _iter56 : _iter55.getValue())
               {
-                oprot.writeString(_iter32);
+                oprot.writeString(_iter56);
               }
               oprot.writeListEnd();
             }
       if (struct.isSetOptions()) {
         {
           oprot.writeI32(struct.options.size());
-          for (Map.Entry<String, List<String>> _iter33 : struct.options.entrySet())
+          for (Map.Entry<String, List<String>> _iter57 : struct.options.entrySet())
           {
-            oprot.writeString(_iter33.getKey());
+            oprot.writeString(_iter57.getKey());
             {
-              oprot.writeI32(_iter33.getValue().size());
-              for (String _iter34 : _iter33.getValue())
+              oprot.writeI32(_iter57.getValue().size());
+              for (String _iter58 : _iter57.getValue())
               {
-                oprot.writeString(_iter34);
+                oprot.writeString(_iter58);
               }
             }
           }
       }
       if (incoming.get(2)) {
         {
-          org.apache.thrift.protocol.TMap _map35 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.LIST, iprot.readI32());
-          struct.options = new HashMap<String,List<String>>(2*_map35.size);
-          for (int _i36 = 0; _i36 < _map35.size; ++_i36)
+          org.apache.thrift.protocol.TMap _map59 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.LIST, iprot.readI32());
+          struct.options = new HashMap<String,List<String>>(2*_map59.size);
+          for (int _i60 = 0; _i60 < _map59.size; ++_i60)
           {
-            String _key37; // required
-            List<String> _val38; // required
-            _key37 = iprot.readString();
+            String _key61; // required
+            List<String> _val62; // required
+            _key61 = iprot.readString();
             {
-              org.apache.thrift.protocol.TList _list39 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-              _val38 = new ArrayList<String>(_list39.size);
-              for (int _i40 = 0; _i40 < _list39.size; ++_i40)
+              org.apache.thrift.protocol.TList _list63 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+              _val62 = new ArrayList<String>(_list63.size);
+              for (int _i64 = 0; _i64 < _list63.size; ++_i64)
               {
-                String _elem41; // required
-                _elem41 = iprot.readString();
-                _val38.add(_elem41);
+                String _elem65; // required
+                _elem65 = iprot.readString();
+                _val62.add(_elem65);
               }
             }
-            struct.options.put(_key37, _val38);
+            struct.options.put(_key61, _val62);
           }
         }
         struct.setOptionsIsSet(true);

File src/org/pyload/thrift/CaptchaTask.java

 /**
- * Autogenerated by Thrift Compiler (0.8.0-dev)
+ * Autogenerated by Thrift Compiler (0.8.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated

File src/org/pyload/thrift/ConfigItem.java

 /**
- * Autogenerated by Thrift Compiler (0.8.0-dev)
+ * Autogenerated by Thrift Compiler (0.8.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated

File src/org/pyload/thrift/ConfigSection.java

 /**
- * Autogenerated by Thrift Compiler (0.8.0-dev)
+ * Autogenerated by Thrift Compiler (0.8.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
   public String name; // required
   public String description; // required
   public List<ConfigItem> items; // required
-  public String outline; // required
+  public String outline; // optional
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   public enum _Fields implements org.apache.thrift.TFieldIdEnum {

File src/org/pyload/thrift/Destination.java

 /**
- * Autogenerated by Thrift Compiler (0.8.0-dev)
+ * Autogenerated by Thrift Compiler (0.8.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated

File src/org/pyload/thrift/DownloadInfo.java

 /**
- * Autogenerated by Thrift Compiler (0.8.0-dev)
+ * Autogenerated by Thrift Compiler (0.8.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
   private static final org.apache.thrift.protocol.TField PACKAGE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("packageID", org.apache.thrift.protocol.TType.I32, (short)14);
   private static final org.apache.thrift.protocol.TField PACKAGE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("packageName", org.apache.thrift.protocol.TType.STRING, (short)15);
   private static final org.apache.thrift.protocol.TField PLUGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("plugin", org.apache.thrift.protocol.TType.STRING, (short)16);
+  private static final org.apache.thrift.protocol.TField OWNER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("owner_name", org.apache.thrift.protocol.TType.STRING, (short)17);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
   public int packageID; // required
   public String packageName; // required
   public String plugin; // required
+  public String owner_name; // required
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   public enum _Fields implements org.apache.thrift.TFieldIdEnum {
     WAIT_UNTIL((short)13, "wait_until"),
     PACKAGE_ID((short)14, "packageID"),
     PACKAGE_NAME((short)15, "packageName"),
-    PLUGIN((short)16, "plugin");
+    PLUGIN((short)16, "plugin"),
+    OWNER_NAME((short)17, "owner_name");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
           return PACKAGE_NAME;
         case 16: // PLUGIN
           return PLUGIN;
+        case 17: // OWNER_NAME
+          return OWNER_NAME;
         default:
           return null;
       }
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.PLUGIN, new org.apache.thrift.meta_data.FieldMetaData("plugin", org.apache.thrift.TFieldRequirementType.DEFAULT, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING        , "PluginName")));
+    tmpMap.put(_Fields.OWNER_NAME, new org.apache.thrift.meta_data.FieldMetaData("owner_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(DownloadInfo.class, metaDataMap);
   }
     long wait_until,
     int packageID,
     String packageName,
-    String plugin)
+    String plugin,
+    String owner_name)
   {
     this();
     this.fid = fid;
     setPackageIDIsSet(true);
     this.packageName = packageName;
     this.plugin = plugin;
+    this.owner_name = owner_name;
   }
 
   /**
     if (other.isSetPlugin()) {
       this.plugin = other.plugin;
     }
+    if (other.isSetOwner_name()) {
+      this.owner_name = other.owner_name;
+    }
   }
 
   public DownloadInfo deepCopy() {
     this.packageID = 0;
     this.packageName = null;
     this.plugin = null;
+    this.owner_name = null;
   }
 
   public int getFid() {
     }
   }
 
+  public String getOwner_name() {
+    return this.owner_name;
+  }
+
+  public DownloadInfo setOwner_name(String owner_name) {
+    this.owner_name = owner_name;
+    return this;
+  }
+
+  public void unsetOwner_name() {
+    this.owner_name = null;
+  }
+
+  /** Returns true if field owner_name is set (has been assigned a value) and false otherwise */
+  public boolean isSetOwner_name() {
+    return this.owner_name != null;
+  }
+
+  public void setOwner_nameIsSet(boolean value) {
+    if (!value) {
+      this.owner_name = null;
+    }
+  }
+
   public void setFieldValue(_Fields field, Object value) {
     switch (field) {
     case FID:
       }
       break;
 
+    case OWNER_NAME:
+      if (value == null) {
+        unsetOwner_name();
+      } else {
+        setOwner_name((String)value);
+      }
+      break;
+
     }
   }
 
     case PLUGIN:
       return getPlugin();
 
+    case OWNER_NAME:
+      return getOwner_name();
+
     }
     throw new IllegalStateException();
   }
       return isSetPackageName();
     case PLUGIN:
       return isSetPlugin();
+    case OWNER_NAME:
+      return isSetOwner_name();
     }
     throw new IllegalStateException();
   }
         return false;
     }
 
+    boolean this_present_owner_name = true && this.isSetOwner_name();
+    boolean that_present_owner_name = true && that.isSetOwner_name();
+    if (this_present_owner_name || that_present_owner_name) {
+      if (!(this_present_owner_name && that_present_owner_name))
+        return false;
+      if (!this.owner_name.equals(that.owner_name))
+        return false;
+    }
+
     return true;
   }
 
         return lastComparison;
       }
     }
+    lastComparison = Boolean.valueOf(isSetOwner_name()).compareTo(typedOther.isSetOwner_name());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetOwner_name()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.owner_name, typedOther.owner_name);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     return 0;
   }
 
       sb.append(this.plugin);
     }
     first = false;
+    if (!first) sb.append(", ");
+    sb.append("owner_name:");
+    if (this.owner_name == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.owner_name);
+    }
+    first = false;
     sb.append(")");
     return sb.toString();
   }
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
+          case 17: // OWNER_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.owner_name = iprot.readString();
+              struct.setOwner_nameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
           default:
             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
         }
         oprot.writeString(struct.plugin);
         oprot.writeFieldEnd();
       }
+      if (struct.owner_name != null) {
+        oprot.writeFieldBegin(OWNER_NAME_FIELD_DESC);
+        oprot.writeString(struct.owner_name);
+        oprot.writeFieldEnd();
+      }
       oprot.writeFieldStop();
       oprot.writeStructEnd();
     }
       if (struct.isSetPlugin()) {
         optionals.set(15);
       }
-      oprot.writeBitSet(optionals, 16);
+      if (struct.isSetOwner_name()) {
+        optionals.set(16);
+      }
+      oprot.writeBitSet(optionals, 17);
       if (struct.isSetFid()) {
         oprot.writeI32(struct.fid);
       }
       if (struct.isSetPlugin()) {
         oprot.writeString(struct.plugin);
       }
+      if (struct.isSetOwner_name()) {
+        oprot.writeString(struct.owner_name);
+      }
     }
 
     @Override
     public void read(org.apache.thrift.protocol.TProtocol prot, DownloadInfo struct) throws org.apache.thrift.TException {
       TTupleProtocol iprot = (TTupleProtocol) prot;
-      BitSet incoming = iprot.readBitSet(16);
+      BitSet incoming = iprot.readBitSet(17);
       if (incoming.get(0)) {
         struct.fid = iprot.readI32();
         struct.setFidIsSet(true);
         struct.plugin = iprot.readString();
         struct.setPluginIsSet(true);
       }
+      if (incoming.get(16)) {
+        struct.owner_name = iprot.readString();
+        struct.setOwner_nameIsSet(true);
+      }
     }
   }
 

File src/org/pyload/thrift/DownloadStatus.java

 /**
- * Autogenerated by Thrift Compiler (0.8.0-dev)
+ * Autogenerated by Thrift Compiler (0.8.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated

File src/org/pyload/thrift/ElementType.java

 /**
- * Autogenerated by Thrift Compiler (0.8.0-dev)
+ * Autogenerated by Thrift Compiler (0.8.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated

File src/org/pyload/thrift/Event.java

-/**
- * Autogenerated by Thrift
- *
- * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
- */
-package org.pyload.thrift;
-
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.EnumMap;
-import java.util.Set;
-import java.util.HashSet;
-import java.util.EnumSet;
-import java.util.Collections;
-import java.util.BitSet;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.apache.thrift.*;
-import org.apache.thrift.async.*;
-import org.apache.thrift.meta_data.*;
-import org.apache.thrift.transport.*;
-import org.apache.thrift.protocol.*;
-
-public class Event implements TBase<Event, Event._Fields>, java.io.Serializable, Cloneable {
-  private static final TStruct STRUCT_DESC = new TStruct("Event");
-
-  private static final TField EVENT_FIELD_DESC = new TField("event", TType.STRING, (short)1);
-  private static final TField ID_FIELD_DESC = new TField("id", TType.I32, (short)2);
-  private static final TField TYPE_FIELD_DESC = new TField("type", TType.I32, (short)3);
-  private static final TField DESTINATION_FIELD_DESC = new TField("destination", TType.I32, (short)4);
-
-  public String event;
-  public int id;
-  /**
-   * 
-   * @see ElementType
-   */
-  public ElementType type;
-  /**
-   * 
-   * @see Destination
-   */
-  public Destination destination;
-
-  /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
-  public enum _Fields implements TFieldIdEnum {
-    EVENT((short)1, "event"),
-    ID((short)2, "id"),
-    /**
-     * 
-     * @see ElementType
-     */
-    TYPE((short)3, "type"),
-    /**
-     * 
-     * @see Destination
-     */
-    DESTINATION((short)4, "destination");
-
-    private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
-
-    static {
-      for (_Fields field : EnumSet.allOf(_Fields.class)) {
-        byName.put(field.getFieldName(), field);
-      }
-    }
-
-    /**
-     * Find the _Fields constant that matches fieldId, or null if its not found.
-     */
-    public static _Fields findByThriftId(int fieldId) {
-      switch(fieldId) {
-        case 1: // EVENT
-          return EVENT;
-        case 2: // ID
-          return ID;
-        case 3: // TYPE
-          return TYPE;
-        case 4: // DESTINATION
-          return DESTINATION;
-        default:
-          return null;
-      }
-    }
-
-    /**
-     * Find the _Fields constant that matches fieldId, throwing an exception
-     * if it is not found.
-     */
-    public static _Fields findByThriftIdOrThrow(int fieldId) {
-      _Fields fields = findByThriftId(fieldId);
-      if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
-      return fields;
-    }
-
-    /**
-     * Find the _Fields constant that matches name, or null if its not found.
-     */
-    public static _Fields findByName(String name) {
-      return byName.get(name);
-    }
-
-    private final short _thriftId;
-    private final String _fieldName;
-
-    _Fields(short thriftId, String fieldName) {
-      _thriftId = thriftId;
-      _fieldName = fieldName;
-    }
-
-    public short getThriftFieldId() {
-      return _thriftId;
-    }
-
-    public String getFieldName() {
-      return _fieldName;
-    }
-  }
-
-  // isset id assignments
-  private static final int __ID_ISSET_ID = 0;
-  private BitSet __isset_bit_vector = new BitSet(1);
-
-  public static final Map<_Fields, FieldMetaData> metaDataMap;
-  static {
-    Map<_Fields, FieldMetaData> tmpMap = new EnumMap<_Fields, FieldMetaData>(_Fields.class);
-    tmpMap.put(_Fields.EVENT, new FieldMetaData("event", TFieldRequirementType.DEFAULT, 
-        new FieldValueMetaData(TType.STRING)));
-    tmpMap.put(_Fields.ID, new FieldMetaData("id", TFieldRequirementType.OPTIONAL, 
-        new FieldValueMetaData(TType.I32)));
-    tmpMap.put(_Fields.TYPE, new FieldMetaData("type", TFieldRequirementType.OPTIONAL, 
-        new EnumMetaData(TType.ENUM, ElementType.class)));
-    tmpMap.put(_Fields.DESTINATION, new FieldMetaData("destination", TFieldRequirementType.OPTIONAL, 
-        new EnumMetaData(TType.ENUM, Destination.class)));
-    metaDataMap = Collections.unmodifiableMap(tmpMap);
-    FieldMetaData.addStructMetaDataMap(Event.class, metaDataMap);
-  }
-
-  public Event() {
-  }
-
-  public Event(
-    String event)
-  {
-    this();
-    this.event = event;
-  }
-
-  /**
-   * Performs a deep copy on <i>other</i>.
-   */
-  public Event(Event other) {
-    __isset_bit_vector.clear();
-    __isset_bit_vector.or(other.__isset_bit_vector);
-    if (other.isSetEvent()) {
-      this.event = other.event;
-    }
-    this.id = other.id;
-    if (other.isSetType()) {
-      this.type = other.type;
-    }
-    if (other.isSetDestination()) {
-      this.destination = other.destination;
-    }
-  }
-
-  public Event deepCopy() {
-    return new Event(this);
-  }
-
-  @Override
-  public void clear() {
-    this.event = null;
-    setIdIsSet(false);
-    this.id = 0;
-    this.type = null;
-    this.destination = null;
-  }
-
-  public String getEvent() {
-    return this.event;
-  }
-
-  public Event setEvent(String event) {
-    this.event = event;
-    return this;
-  }
-
-  public void unsetEvent() {
-    this.event = null;
-  }
-
-  /** Returns true if field event is set (has been asigned a value) and false otherwise */
-  public boolean isSetEvent() {
-    return this.event != null;
-  }
-
-  public void setEventIsSet(boolean value) {
-    if (!value) {
-      this.event = null;
-    }
-  }
-
-  public int getId() {
-    return this.id;
-  }
-
-  public Event setId(int id) {
-    this.id = id;
-    setIdIsSet(true);
-    return this;
-  }
-
-  public void unsetId() {
-    __isset_bit_vector.clear(__ID_ISSET_ID);
-  }
-
-  /** Returns true if field id is set (has been asigned a value) and false otherwise */
-  public boolean isSetId() {
-    return __isset_bit_vector.get(__ID_ISSET_ID);
-  }
-
-  public void setIdIsSet(boolean value) {
-    __isset_bit_vector.set(__ID_ISSET_ID, value);
-  }
-
-  /**
-   * 
-   * @see ElementType
-   */
-  public ElementType getType() {
-    return this.type;
-  }
-
-  /**
-   * 
-   * @see ElementType
-   */
-  public Event setType(ElementType type) {
-    this.type = type;
-    return this;
-  }
-
-  public void unsetType() {
-    this.type = null;
-  }
-
-  /** Returns true if field type is set (has been asigned a value) and false otherwise */
-  public boolean isSetType() {
-    return this.type != null;
-  }
-
-  public void setTypeIsSet(boolean value) {
-    if (!value) {
-      this.type = null;
-    }
-  }
-
-  /**
-   * 
-   * @see Destination
-   */
-  public Destination getDestination() {
-    return this.destination;
-  }
-
-  /**
-   * 
-   * @see Destination
-   */
-  public Event setDestination(Destination destination) {
-    this.destination = destination;
-    return this;
-  }
-
-  public void unsetDestination() {
-    this.destination = null;
-  }
-
-  /** Returns true if field destination is set (has been asigned a value) and false otherwise */
-  public boolean isSetDestination() {
-    return this.destination != null;
-  }
-
-  public void setDestinationIsSet(boolean value) {
-    if (!value) {
-      this.destination = null;
-    }
-  }
-
-  public void setFieldValue(_Fields field, Object value) {
-    switch (field) {
-    case EVENT:
-      if (value == null) {
-        unsetEvent();
-      } else {
-        setEvent((String)value);
-      }
-      break;
-
-    case ID:
-      if (value == null) {
-        unsetId();
-      } else {
-        setId((Integer)value);
-      }
-      break;
-
-    case TYPE:
-      if (value == null) {
-        unsetType();
-      } else {
-        setType((ElementType)value);
-      }
-      break;
-
-    case DESTINATION:
-      if (value == null) {
-        unsetDestination();
-      } else {
-        setDestination((Destination)value);
-      }
-      break;
-
-    }
-  }
-
-  public Object getFieldValue(_Fields field) {
-    switch (field) {
-    case EVENT:
-      return getEvent();
-
-    case ID:
-      return new Integer(getId());
-
-    case TYPE:
-      return getType();
-
-    case DESTINATION:
-      return getDestination();
-
-    }
-    throw new IllegalStateException();
-  }
-
-  /** Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise */
-  public boolean isSet(_Fields field) {
-    if (field == null) {
-      throw new IllegalArgumentException();
-    }
-
-    switch (field) {
-    case EVENT:
-      return isSetEvent();
-    case ID:
-      return isSetId();
-    case TYPE:
-      return isSetType();
-    case DESTINATION:
-      return isSetDestination();
-    }
-    throw new IllegalStateException();
-  }
-
-  @Override
-  public boolean equals(Object that) {
-    if (that == null)
-      return false;
-    if (that instanceof Event)
-      return this.equals((Event)that);
-    return false;
-  }
-
-  public boolean equals(Event that) {
-    if (that == null)
-      return false;
-
-    boolean this_present_event = true && this.isSetEvent();
-    boolean that_present_event = true && that.isSetEvent();
-    if (this_present_event || that_present_event) {
-      if (!(this_present_event && that_present_event))
-        return false;
-      if (!this.event.equals(that.event))
-        return false;
-    }
-
-    boolean this_present_id = true && this.isSetId();
-    boolean that_present_id = true && that.isSetId();
-    if (this_present_id || that_present_id) {
-      if (!(this_present_id && that_present_id))
-        return false;
-      if (this.id != that.id)
-        return false;
-    }
-
-    boolean this_present_type = true && this.isSetType();
-    boolean that_present_type = true && that.isSetType();
-    if (this_present_type || that_present_type) {
-      if (!(this_present_type && that_present_type))
-        return false;
-      if (!this.type.equals(that.type))
-        return false;
-    }
-
-    boolean this_present_destination = true && this.isSetDestination();
-    boolean that_present_destination = true && that.isSetDestination();
-    if (this_present_destination || that_present_destination) {
-      if (!(this_present_destination && that_present_destination))
-        return false;
-      if (!this.destination.equals(that.destination))
-        return false;
-    }
-
-    return true;
-  }
-
-  @Override
-  public int hashCode() {
-    return 0;
-  }
-
-  public int compareTo(Event other) {
-    if (!getClass().equals(other.getClass())) {
-      return getClass().getName().compareTo(other.getClass().getName());
-    }
-
-    int lastComparison = 0;
-    Event typedOther = (Event)other;
-
-    lastComparison = Boolean.valueOf(isSetEvent()).compareTo(typedOther.isSetEvent());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetEvent()) {
-      lastComparison = TBaseHelper.compareTo(this.event, typedOther.event);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetId()).compareTo(typedOther.isSetId());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetId()) {
-      lastComparison = TBaseHelper.compareTo(this.id, typedOther.id);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetType()).compareTo(typedOther.isSetType());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetType()) {
-      lastComparison = TBaseHelper.compareTo(this.type, typedOther.type);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    lastComparison = Boolean.valueOf(isSetDestination()).compareTo(typedOther.isSetDestination());
-    if (lastComparison != 0) {
-      return lastComparison;
-    }
-    if (isSetDestination()) {
-      lastComparison = TBaseHelper.compareTo(this.destination, typedOther.destination);
-      if (lastComparison != 0) {
-        return lastComparison;
-      }
-    }
-    return 0;
-  }
-
-  public _Fields fieldForId(int fieldId) {
-    return _Fields.findByThriftId(fieldId);
-  }
-
-  public void read(TProtocol iprot) throws TException {
-    TField field;
-    iprot.readStructBegin();
-    while (true)
-    {
-      field = iprot.readFieldBegin();
-      if (field.type == TType.STOP) { 
-        break;
-      }
-      switch (field.id) {
-        case 1: // EVENT
-          if (field.type == TType.STRING) {
-            this.event = iprot.readString();
-          } else { 
-            TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        case 2: // ID
-          if (field.type == TType.I32) {
-            this.id = iprot.readI32();
-            setIdIsSet(true);
-          } else { 
-            TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        case 3: // TYPE
-          if (field.type == TType.I32) {
-            this.type = ElementType.findByValue(iprot.readI32());
-          } else { 
-            TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        case 4: // DESTINATION
-          if (field.type == TType.I32) {
-            this.destination = Destination.findByValue(iprot.readI32());
-          } else { 
-            TProtocolUtil.skip(iprot, field.type);
-          }
-          break;
-        default:
-          TProtocolUtil.skip(iprot, field.type);
-      }
-      iprot.readFieldEnd();
-    }
-    iprot.readStructEnd();
-
-    // check for required fields of primitive type, which can't be checked in the validate method
-    validate();
-  }
-
-  public void write(TProtocol oprot) throws TException {
-    validate();
-
-    oprot.writeStructBegin(STRUCT_DESC);
-    if (this.event != null) {
-      oprot.writeFieldBegin(EVENT_FIELD_DESC);
-      oprot.writeString(this.event);
-      oprot.writeFieldEnd();
-    }
-    if (isSetId()) {
-      oprot.writeFieldBegin(ID_FIELD_DESC);
-      oprot.writeI32(this.id);
-      oprot.writeFieldEnd();
-    }
-    if (this.type != null) {
-      if (isSetType()) {
-        oprot.writeFieldBegin(TYPE_FIELD_DESC);
-        oprot.writeI32(this.type.getValue());
-        oprot.writeFieldEnd();
-      }
-    }
-    if (this.destination != null) {
-      if (isSetDestination()) {
-        oprot.writeFieldBegin(DESTINATION_FIELD_DESC);
-        oprot.writeI32(this.destination.getValue());
-        oprot.writeFieldEnd();
-      }
-    }
-    oprot.writeFieldStop();
-    oprot.writeStructEnd();
-  }
-
-  @Override
-  public String toString() {
-    StringBuilder sb = new StringBuilder("Event(");
-    boolean first = true;
-
-    sb.append("event:");
-    if (this.event == null) {
-      sb.append("null");
-    } else {
-      sb.append(this.event);
-    }
-    first = false;
-    if (isSetId()) {
-      if (!first) sb.append(", ");
-      sb.append("id:");
-      sb.append(this.id);
-      first = false;
-    }
-    if (isSetType()) {
-      if (!first) sb.append(", ");
-      sb.append("type:");
-      if (this.type == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.type);
-      }
-      first = false;
-    }
-    if (isSetDestination()) {
-      if (!first) sb.append(", ");
-      sb.append("destination:");
-      if (this.destination == null) {
-        sb.append("null");
-      } else {
-        sb.append(this.destination);
-      }
-      first = false;
-    }
-    sb.append(")");
-    return sb.toString();
-  }
-
-  public void validate() throws TException {
-    // check for required fields
-  }
-
-}
-

File src/org/pyload/thrift/EventInfo.java

 /**
- * Autogenerated by Thrift Compiler (0.8.0-dev)
+ * Autogenerated by Thrift Compiler (0.8.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
   }
 
   public String eventname; // required
-  public int id; // required
+  public int id; // optional
   /**
    * 
    * @see ElementType
    */
-  public ElementType type; // required
+  public ElementType type; // optional
   /**
    * 
    * @see Destination
    */
-  public Destination destination; // required
+  public Destination destination; // optional
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   public enum _Fields implements org.apache.thrift.TFieldIdEnum {

File src/org/pyload/thrift/FileData.java

 /**
- * Autogenerated by Thrift Compiler (0.8.0-dev)
+ * Autogenerated by Thrift Compiler (0.8.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
   private static final org.apache.thrift.protocol.TField PACKAGE_ID_FIELD_DESC = new org.apache.thrift.protocol.TField("packageID", org.apache.thrift.protocol.TType.I32, (short)9);
   private static final org.apache.thrift.protocol.TField ERROR_FIELD_DESC = new org.apache.thrift.protocol.TField("error", org.apache.thrift.protocol.TType.STRING, (short)10);
   private static final org.apache.thrift.protocol.TField ORDER_FIELD_DESC = new org.apache.thrift.protocol.TField("order", org.apache.thrift.protocol.TType.I16, (short)11);
+  private static final org.apache.thrift.protocol.TField OWNER_FIELD_DESC = new org.apache.thrift.protocol.TField("owner", org.apache.thrift.protocol.TType.I16, (short)12);
+  private static final org.apache.thrift.protocol.TField OWNER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("owner_name", org.apache.thrift.protocol.TType.STRING, (short)13);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
   public int packageID; // required
   public String error; // required
   public short order; // required
+  public short owner; // required
+  public String owner_name; // required
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   public enum _Fields implements org.apache.thrift.TFieldIdEnum {
     STATUSMSG((short)8, "statusmsg"),
     PACKAGE_ID((short)9, "packageID"),
     ERROR((short)10, "error"),
-    ORDER((short)11, "order");
+    ORDER((short)11, "order"),
+    OWNER((short)12, "owner"),
+    OWNER_NAME((short)13, "owner_name");
 
     private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
           return ERROR;
         case 11: // ORDER
           return ORDER;
+        case 12: // OWNER
+          return OWNER;
+        case 13: // OWNER_NAME
+          return OWNER_NAME;
         default:
           return null;
       }
   private static final int __SIZE_ISSET_ID = 1;
   private static final int __PACKAGEID_ISSET_ID = 2;
   private static final int __ORDER_ISSET_ID = 3;
-  private BitSet __isset_bit_vector = new BitSet(4);
+  private static final int __OWNER_ISSET_ID = 4;
+  private BitSet __isset_bit_vector = new BitSet(5);
   public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
   static {
     Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     tmpMap.put(_Fields.ORDER, new org.apache.thrift.meta_data.FieldMetaData("order", org.apache.thrift.TFieldRequirementType.DEFAULT, 
         new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I16)));
+    tmpMap.put(_Fields.OWNER, new org.apache.thrift.meta_data.FieldMetaData("owner", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I16)));
+    tmpMap.put(_Fields.OWNER_NAME, new org.apache.thrift.meta_data.FieldMetaData("owner_name", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+        new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(FileData.class, metaDataMap);
   }
     String statusmsg,
     int packageID,
     String error,
-    short order)
+    short order,
+    short owner,
+    String owner_name)
   {
     this();
     this.fid = fid;
     this.error = error;
     this.order = order;
     setOrderIsSet(true);
+    this.owner = owner;
+    setOwnerIsSet(true);
+    this.owner_name = owner_name;
   }
 
   /**
       this.error = other.error;
     }
     this.order = other.order;
+    this.owner = other.owner;
+    if (other.isSetOwner_name()) {
+      this.owner_name = other.owner_name;
+    }
   }
 
   public FileData deepCopy() {
     this.error = null;
     setOrderIsSet(false);
     this.order = 0;
+    setOwnerIsSet(false);
+    this.owner = 0;
+    this.owner_name = null;
   }
 
   public int getFid() {
     __isset_bit_vector.set(__ORDER_ISSET_ID, value);
   }
 
+  public short getOwner() {
+    return this.owner;
+  }
+
+  public FileData setOwner(short owner) {
+    this.owner = owner;
+    setOwnerIsSet(true);
+    return this;
+  }
+
+  public void unsetOwner() {
+    __isset_bit_vector.clear(__OWNER_ISSET_ID);
+  }
+
+  /** Returns true if field owner is set (has been assigned a value) and false otherwise */
+  public boolean isSetOwner() {
+    return __isset_bit_vector.get(__OWNER_ISSET_ID);
+  }
+
+  public void setOwnerIsSet(boolean value) {
+    __isset_bit_vector.set(__OWNER_ISSET_ID, value);
+  }
+
+  public String getOwner_name() {
+    return this.owner_name;
+  }
+
+  public FileData setOwner_name(String owner_name) {
+    this.owner_name = owner_name;
+    return this;
+  }
+
+  public void unsetOwner_name() {
+    this.owner_name = null;
+  }
+
+  /** Returns true if field owner_name is set (has been assigned a value) and false otherwise */
+  public boolean isSetOwner_name() {
+    return this.owner_name != null;
+  }
+
+  public void setOwner_nameIsSet(boolean value) {
+    if (!value) {
+      this.owner_name = null;
+    }
+  }
+
   public void setFieldValue(_Fields field, Object value) {
     switch (field) {
     case FID:
       }
       break;
 
+    case OWNER:
+      if (value == null) {
+        unsetOwner();
+      } else {
+        setOwner((Short)value);
+      }
+      break;
+
+    case OWNER_NAME:
+      if (value == null) {
+        unsetOwner_name();
+      } else {
+        setOwner_name((String)value);
+      }
+      break;
+
     }
   }
 
     case ORDER:
       return Short.valueOf(getOrder());
 
+    case OWNER:
+      return Short.valueOf(getOwner());
+
+    case OWNER_NAME:
+      return getOwner_name();
+
     }
     throw new IllegalStateException();
   }
       return isSetError();
     case ORDER:
       return isSetOrder();
+    case OWNER:
+      return isSetOwner();
+    case OWNER_NAME:
+      return isSetOwner_name();
     }
     throw new IllegalStateException();
   }
         return false;
     }
 
+    boolean this_present_owner = true;
+    boolean that_present_owner = true;
+    if (this_present_owner || that_present_owner) {
+      if (!(this_present_owner && that_present_owner))
+        return false;
+      if (this.owner != that.owner)
+        return false;
+    }
+
+    boolean this_present_owner_name = true && this.isSetOwner_name();
+    boolean that_present_owner_name = true && that.isSetOwner_name();
+    if (this_present_owner_name || that_present_owner_name) {
+      if (!(this_present_owner_name && that_present_owner_name))
+        return false;
+      if (!this.owner_name.equals(that.owner_name))
+        return false;
+    }
+
     return true;
   }
 
         return lastComparison;
       }
     }
+    lastComparison = Boolean.valueOf(isSetOwner()).compareTo(typedOther.isSetOwner());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetOwner()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.owner, typedOther.owner);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
+    lastComparison = Boolean.valueOf(isSetOwner_name()).compareTo(typedOther.isSetOwner_name());
+    if (lastComparison != 0) {
+      return lastComparison;
+    }
+    if (isSetOwner_name()) {
+      lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.owner_name, typedOther.owner_name);
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+    }
     return 0;
   }
 
     sb.append("order:");
     sb.append(this.order);
     first = false;
+    if (!first) sb.append(", ");
+    sb.append("owner:");
+    sb.append(this.owner);
+    first = false;
+    if (!first) sb.append(", ");
+    sb.append("owner_name:");
+    if (this.owner_name == null) {
+      sb.append("null");
+    } else {
+      sb.append(this.owner_name);
+    }
+    first = false;
     sb.append(")");
     return sb.toString();
   }
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
             }
             break;
+          case 12: // OWNER
+            if (schemeField.type == org.apache.thrift.protocol.TType.I16) {
+              struct.owner = iprot.readI16();
+              struct.setOwnerIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
+          case 13: // OWNER_NAME
+            if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+              struct.owner_name = iprot.readString();
+              struct.setOwner_nameIsSet(true);
+            } else { 
+              org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+            }
+            break;
           default:
             org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
         }
       oprot.writeFieldBegin(ORDER_FIELD_DESC);
       oprot.writeI16(struct.order);
       oprot.writeFieldEnd();
+      oprot.writeFieldBegin(OWNER_FIELD_DESC);
+      oprot.writeI16(struct.owner);
+      oprot.writeFieldEnd();
+      if (struct.owner_name != null) {
+        oprot.writeFieldBegin(OWNER_NAME_FIELD_DESC);
+        oprot.writeString(struct.owner_name);
+        oprot.writeFieldEnd();
+      }
       oprot.writeFieldStop();
       oprot.writeStructEnd();
     }
       if (struct.isSetOrder()) {
         optionals.set(10);
       }
-      oprot.writeBitSet(optionals, 11);
+      if (struct.isSetOwner()) {
+        optionals.set(11);
+      }
+      if (struct.isSetOwner_name()) {
+        optionals.set(12);
+      }
+      oprot.writeBitSet(optionals, 13);
       if (struct.isSetFid()) {
         oprot.writeI32(struct.fid);
       }
       if (struct.isSetOrder()) {
         oprot.writeI16(struct.order);
       }
+      if (struct.isSetOwner()) {
+        oprot.writeI16(struct.owner);
+      }
+      if (struct.isSetOwner_name()) {
+        oprot.writeString(struct.owner_name);
+      }
     }
 
     @Override
     public void read(org.apache.thrift.protocol.TProtocol prot, FileData struct) throws org.apache.thrift.TException {
       TTupleProtocol iprot = (TTupleProtocol) prot;
-      BitSet incoming = iprot.readBitSet(11);
+      BitSet incoming = iprot.readBitSet(13);
       if (incoming.get(0)) {
         struct.fid = iprot.readI32();
         struct.setFidIsSet(true);
         struct.order = iprot.readI16();
         struct.setOrderIsSet(true);
       }
+      if (incoming.get(11)) {
+        struct.owner = iprot.readI16();
+        struct.setOwnerIsSet(true);
+      }
+      if (incoming.get(12)) {
+        struct.owner_name = iprot.readString();
+        struct.setOwner_nameIsSet(true);
+      }
     }
   }
 

File src/org/pyload/thrift/FileDoesNotExists.java

 /**
- * Autogenerated by Thrift Compiler (0.8.0-dev)
+ * Autogenerated by Thrift Compiler (0.8.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated

File src/org/pyload/thrift/OnlineCheck.java

 /**
- * Autogenerated by Thrift Compiler (0.8.0-dev)
+ * Autogenerated by Thrift Compiler (0.8.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
           case 2: // DATA
             if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
               {
-                org.apache.thrift.protocol.TMap _map50 = iprot.readMapBegin();
-                struct.data = new HashMap<String,OnlineStatus>(2*_map50.size);
-                for (int _i51 = 0; _i51 < _map50.size; ++_i51)
+                org.apache.thrift.protocol.TMap _map74 = iprot.readMapBegin();
+                struct.data = new HashMap<String,OnlineStatus>(2*_map74.size);
+                for (int _i75 = 0; _i75 < _map74.size; ++_i75)
                 {
-                  String _key52; // required
-                  OnlineStatus _val53; // required
-                  _key52 = iprot.readString();
-                  _val53 = new OnlineStatus();
-                  _val53.read(iprot);
-                  struct.data.put(_key52, _val53);
+                  String _key76; // required
+                  OnlineStatus _val77; // required
+                  _key76 = iprot.readString();
+                  _val77 = new OnlineStatus();
+                  _val77.read(iprot);
+                  struct.data.put(_key76, _val77);
                 }
                 iprot.readMapEnd();
               }
         oprot.writeFieldBegin(DATA_FIELD_DESC);
         {
           oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRUCT, struct.data.size()));
-          for (Map.Entry<String, OnlineStatus> _iter54 : struct.data.entrySet())
+          for (Map.Entry<String, OnlineStatus> _iter78 : struct.data.entrySet())
           {
-            oprot.writeString(_iter54.getKey());
-            _iter54.getValue().write(oprot);
+            oprot.writeString(_iter78.getKey());
+            _iter78.getValue().write(oprot);
           }
           oprot.writeMapEnd();
         }
       if (struct.isSetData()) {
         {
           oprot.writeI32(struct.data.size());
-          for (Map.Entry<String, OnlineStatus> _iter55 : struct.data.entrySet())
+          for (Map.Entry<String, OnlineStatus> _iter79 : struct.data.entrySet())
           {
-            oprot.writeString(_iter55.getKey());
-            _iter55.getValue().write(oprot);
+            oprot.writeString(_iter79.getKey());
+            _iter79.getValue().write(oprot);
           }
         }
       }
       }
       if (incoming.get(1)) {
         {
-          org.apache.thrift.protocol.TMap _map56 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-          struct.data = new HashMap<String,OnlineStatus>(2*_map56.size);
-          for (int _i57 = 0; _i57 < _map56.size; ++_i57)
+          org.apache.thrift.protocol.TMap _map80 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+          struct.data = new HashMap<String,OnlineStatus>(2*_map80.size);
+          for (int _i81 = 0; _i81 < _map80.size; ++_i81)
           {
-            String _key58; // required
-            OnlineStatus _val59; // required
-            _key58 = iprot.readString();
-            _val59 = new OnlineStatus();
-            _val59.read(iprot);
-            struct.data.put(_key58, _val59);
+            String _key82; // required
+            OnlineStatus _val83; // required
+            _key82 = iprot.readString();
+            _val83 = new OnlineStatus();
+            _val83.read(iprot);
+            struct.data.put(_key82, _val83);
           }
         }
         struct.setDataIsSet(true);

File src/org/pyload/thrift/OnlineStatus.java

 /**
- * Autogenerated by Thrift Compiler (0.8.0-dev)
+ * Autogenerated by Thrift Compiler (0.8.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated

File src/org/pyload/thrift/PackageData.java

 /**
- * Autogenerated by Thrift Compiler (0.8.0-dev)
+ * Autogenerated by Thrift Compiler (0.8.0)
  *
  * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
  *  @generated
   private static final org.apache.thrift.protocol.TField PASSWORD_FIELD_DESC = new org.apache.thrift.protocol.TField("password", org.apache.thrift.protocol.TType.STRING, (short)5);
   private static final org.apache.thrift.protocol.TField DEST_FIELD_DESC = new org.apache.thrift.protocol.TField("dest", org.apache.thrift.protocol.TType.I32, (short)6);
   private static final org.apache.thrift.protocol.TField ORDER_FIELD_DESC = new org.apache.thrift.protocol.TField("order", org.apache.thrift.protocol.TType.I16, (short)7);
-  private static final org.apache.thrift.protocol.TField LINKSDONE_FIELD_DESC = new org.apache.thrift.protocol.TField("linksdone", org.apache.thrift.protocol.TType.I16, (short)8);
-  private static final org.apache.thrift.protocol.TField SIZEDONE_FIELD_DESC = new org.apache.thrift.protocol.TField("sizedone", org.apache.thrift.protocol.TType.I64, (short)9);
-  private static final org.apache.thrift.protocol.TField SIZETOTAL_FIELD_DESC = new org.apache.thrift.protocol.TField("sizetotal", org.apache.thrift.protocol.TType.I64, (short)10);
-  private static final org.apache.thrift.protocol.TField LINKSTOTAL_FIELD_DESC = new org.apache.thrift.protocol.TField("linkstotal", org.apache.thrift.protocol.TType.I16, (short)11);
-  private static final org.apache.thrift.protocol.TField LINKS_FIELD_DESC = new org.apache.thrift.protocol.TField("links", org.apache.thrift.protocol.TType.LIST, (short)12);
-  private static final org.apache.thrift.protocol.TField FIDS_FIELD_DESC = new org.apache.thrift.protocol.TField("fids", org.apache.thrift.protocol.TType.LIST, (short)13);
+  private static final org.apache.thrift.protocol.TField OWNER_FIELD_DESC = new org.apache.thrift.protocol.TField("owner", org.apache.thrift.protocol.TType.I16, (short)8);
+  private static final org.apache.thrift.protocol.TField OWNER_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("owner_name", org.apache.thrift.protocol.TType.STRING, (short)9);
+  private static final org.apache.thrift.protocol.TField LINKSDONE_FIELD_DESC = new org.apache.thrift.protocol.TField("linksdone", org.apache.thrift.protocol.TType.I16, (short)10);
+  private static final org.apache.thrift.protocol.TField SIZEDONE_FIELD_DESC = new org.apache.thrift.protocol.TField("sizedone", org.apache.thrift.protocol.TType.I64, (short)11);
+  private static final org.apache.thrift.protocol.TField SIZETOTAL_FIELD_DESC = new org.apache.thrift.protocol.TField("sizetotal", org.apache.thrift.protocol.TType.I64, (short)12);
+  private static final org.apache.thrift.protocol.TField LINKSTOTAL_FIELD_DESC = new org.apache.thrift.protocol.TField("linkstotal", org.apache.thrift.protocol.TType.I16, (short)13);
+  private static final org.apache.thrift.protocol.TField LINKS_FIELD_DESC = new org.apache.thrift.protocol.TField("links", org.apache.thrift.protocol.TType.LIST, (short)14);
+  private static final org.apache.thrift.protocol.TField FIDS_FIELD_DESC = new org.apache.thrift.protocol.TField("fids", org.apache.thrift.protocol.TType.LIST, (short)15);
 
   private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
   static {
    */
   public Destination dest; // required
   public short order; // required
-  public short linksdone; // required
-  public long sizedone; // required
-  public long sizetotal; // required
-  public short linkstotal; // required
-  public List<FileData> links; // required
-  public List<Integer> fids; // required
+  public short owner; // required
+  public String owner_name; // required
+  public short linksdone; // optional
+  public long sizedone; // optional