Thanks for the quick reply. Since you asked, I do have a couple other suggestions: I'd like a synchronous call for Uploading files as well as an async call. My general logic looks like:
-
pre-process file
-
upload file
-
post-process file
post processing involves deleting my temp file used for upload, recording status in the database, etc. I can generally put the post-process into the complete delegate, but I have state information from the pre-process that I need to know, like filename. This means I need to manage this state information now, which I can do, but I think it's needless complication. I'd rather just wait for the upload to finish.
This isn't a big deal, it's not too hard to do on my own - I've created a wrapper class that transforms the async call into a sync call.
Also, although I haven't needed it yet, think it would be nice to have control over the upload thread, mainly to kill it if it takes to long, or if I need to reclaim my bandwidth for some reason, or just generally cancel an upload. The simple way would be to return the Thread object, but this would probably let the user do bad things. It's probably more appropriate to expose an EndUpload() method, that does the correct thing with respect to the Nirvanix API's as well.
edit: after a little bit more looking, perhaps implementing the transfer namespace might work. Not sure.