Skip to content

Instantly share code, notes, and snippets.

@brendanzagaeski
Last active August 29, 2015 14:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save brendanzagaeski/11233193 to your computer and use it in GitHub Desktop.
Save brendanzagaeski/11233193 to your computer and use it in GitHub Desktop.
ObjectiveSharpie 0.4.40 binding output for OS X Dropbox Sync SDK
// ObjectiveSharpie 0.4.40 binding output for OS X Dropbox Sync SDK
// https://www.dropbox.com/developers/sync/sdks/osx
//
// IMPORTANT: The Dropbox Sync SDK for OS X is _only_ distributed as a 64-bit
// binary. Xamarin.Mac is currently 32-bit only, so it _cannot_ consume the
// Dropbox library. Xamarin.Mac 64-bit support is in progress [1], so this
// limitation will be solved in the not-to-distant future. But for now, the
// Dropbox Sync SDK is not compatible with Xamarin.Mac.
// [1] http://docs.xamarin.com/releases/Mac/Roadmap/
//
//
// For the command line version of Objective Sharpie, you can generate the
// file with this command:
// sharpie -sdk:macosx10.8 -follow-includes -scope:"$PARENT_DIR/Dropbox.framework" "$PARENT_DIR/Dropbox.framework/Headers/Dropbox.h" -n DropboxSync -clang -F "$PARENT_DIR" -include "Cocoa/Cocoa.h" > DropboxSync.cs
//
//
// Without the `-include "Cocoa/Cocoa.h"` argument, the command fails because
// the core Objective-C types like NSString and NSObject are undefined.
//
// Example error messages:
// $PARENT_DIR/Dropbox.framework/Headers/DBAccount.h:24:33: error: unknown type name 'NSString'
// $PARENT_DIR/Dropbox.framework/Headers/DBAccount.h:10:24: error: cannot find interface declaration for 'NSObject', superclass of 'DBAccount'
// $PARENT_DIR/Dropbox.framework/Headers/DBError.h:51:22: error: cannot find interface declaration for 'NSError', superclass of 'DBError'
using System;
using MonoMac.Foundation;
namespace DropboxSync {
public enum DBErrorCode : [unmapped: unexposed: Elaborated] {
Unknown = 0,
reSystem = 1,
Params = 2000,
ParamsInvalid,
ParamsNotFound,
ParamsExists,
ParamsAlreadyOpen,
ParamsParent,
ParamsNotEmpty,
ParamsNotCached,
ParamsDisallowed,
ParamsNoThumb,
ParamsIndex,
ParamsType,
System = 3000,
SystemDiskSpace,
Network = 4000,
NetworkTimeout,
NetworkNoConnection,
NetworkSSL,
NetworkServer,
NetworkQuota = 4006,
Auth = 5000,
AuthUnlinked,
AuthInvalidApp
}
public enum DBErrorCode {
Unknown = 0,
reSystem = 1,
Params = 2000,
ParamsInvalid,
ParamsNotFound,
ParamsExists,
ParamsAlreadyOpen,
ParamsParent,
ParamsNotEmpty,
ParamsNotCached,
ParamsDisallowed,
ParamsNoThumb,
ParamsIndex,
ParamsType,
System = 3000,
SystemDiskSpace,
Network = 4000,
NetworkTimeout,
NetworkNoConnection,
NetworkSSL,
NetworkServer,
NetworkQuota = 4006,
Auth = 5000,
AuthUnlinked,
AuthInvalidApp
}
[BaseType (typeof (NSError))]
public partial interface DBError {
[Export ("code"), Verify ("ObjC method massaged into getter property", "$PARENT_DIR/Dropbox.framework/Headers/DBError.h", Line = 54)]
DBErrorCode Code { get; }
}
[BaseType (typeof (NSObject))]
public partial interface DBAccountManager {
[Export ("initWithAppKey:secret:")]
IntPtr Constructor (string key, string secret);
[Static, Export ("sharedManager"), Verify ("ObjC method massaged into setter property", "$PARENT_DIR/Dropbox.framework/Headers/DBAccountManager.h", Line = 35), Verify ("Backing getter method to ObjC property removed: sharedManager", "$PARENT_DIR/Dropbox.framework/Headers/DBAccountManager.h", Line = 38)]
DBAccountManager SharedManager { get; set; }
[Export ("linkFromWindow:withCompletionBlock:")]
void LinkFromWindow (NSWindow parentWindow, DBLinkCompletionBlock block);
[Export ("linkedAccount")]
DBAccount LinkedAccount { get; }
[Export ("linkedAccounts"), Verify ("NSArray may be reliably typed, check the documentation", "$PARENT_DIR/Dropbox.framework/Headers/DBAccountManager.h", Line = 88)]
NSObject [] LinkedAccounts { get; }
[Export ("addObserver:block:")]
void AddObserver (NSObject observer, DBAccountManagerObserver block);
[Export ("removeObserver:")]
void RemoveObserver (NSObject observer);
}
[BaseType (typeof (NSObject))]
public partial interface DBAccountInfo {
[Export ("displayName")]
string DisplayName { get; }
[Export ("userName")]
string UserName { get; }
[Export ("orgName")]
string OrgName { get; }
}
[BaseType (typeof (NSObject))]
public partial interface DBAccount {
[Export ("unlink")]
void Unlink ();
[Export ("userId")]
string UserId { get; }
[Export ("linked")]
bool Linked { [Bind ("isLinked")] get; }
[Export ("info")]
DBAccountInfo Info { get; }
[Export ("addObserver:block:")]
void AddObserver (NSObject observer, DBObserver block);
[Export ("removeObserver:")]
void RemoveObserver (NSObject observer);
}
[BaseType (typeof (NSObject))]
public partial interface DBRecord {
[Static, Export ("isValidId:")]
bool IsValidId (string recordId);
[Static, Export ("isValidFieldName:")]
bool IsValidFieldName (string name);
[Export ("recordId")]
string RecordId { get; }
[Export ("table")]
DBTable Table { get; }
[Export ("fields")]
NSDictionary Fields { get; }
[Export ("objectForKey:")]
NSObject ObjectForKey (string key);
[Export ("objectForKeyedSubscript:")]
NSObject ObjectForKeyedSubscript (NSObject key);
[Export ("getOrCreateList:")]
DBList GetOrCreateList (string fieldName);
[Export ("update:")]
void Update (NSDictionary fieldsToUpdate);
[Export ("setObject:forKey:")]
void SetObject (NSObject obj, string fieldName);
[Export ("setObject:forKeyedSubscript:")]
void SetObject (NSObject value, NSObject key);
[Export ("removeObjectForKey:")]
void RemoveObjectForKey (string fieldName);
[Export ("deleteRecord")]
void DeleteRecord ();
[Export ("deleted")]
bool Deleted { [Bind ("isDeleted")] get; }
}
public enum DBResolutionRule : [unmapped: unexposed: Elaborated] {
emote,
Local,
Max,
Min,
Sum
}
[BaseType (typeof (NSObject))]
public partial interface DBTable {
[Static, Export ("isValidId:")]
bool IsValidId (string tableId);
[Export ("query:error:"), Verify ("NSArray may be reliably typed, check the documentation", "$PARENT_DIR/Dropbox.framework/Headers/DBTable.h", Line = 49)]
NSObject [] Query (NSDictionary filter, out DBError error);
[Export ("getRecord:error:")]
DBRecord GetRecord (string recordId, out DBError error);
[Export ("getOrInsertRecord:fields:inserted:error:")]
DBRecord GetOrInsertRecord (string recordId, NSDictionary fields, [unmapped: pointer: Pointer] inserted, out DBError error);
[Export ("insert:")]
DBRecord Insert (NSDictionary fields);
[Export ("setResolutionRule:forField:")]
void SetResolutionRule (DBResolutionRule rule, string field);
[Export ("tableId")]
string TableId { get; }
[Export ("datastore")]
DBDatastore Datastore { get; }
}
public enum DBDatastoreStatus : uint {
Connected = 1 << 0,
Downloading = 1 << 1,
Uploading = 1 << 2,
Incoming = 1 << 3,
Outgoing = 1 << 4
}
[BaseType (typeof (NSObject))]
public partial interface DBDatastore {
[Static, Export ("openDefaultStoreForAccount:error:")]
DBDatastore OpenDefaultStoreForAccount (DBAccount account, out DBError error);
[Export ("close")]
void Close ();
[Export ("getTables:"), Verify ("NSArray may be reliably typed, check the documentation", "$PARENT_DIR/Dropbox.framework/Headers/DBDatastore.h", Line = 53)]
NSObject [] GetTables (out DBError error);
[Export ("getTable:")]
DBTable GetTable (string tableId);
[Export ("sync:")]
NSDictionary Sync (out DBError error);
[Export ("open")]
bool Open { [Bind ("isOpen")] get; }
[Export ("status")]
DBDatastoreStatus Status { get; }
[Export ("addObserver:block:")]
void AddObserver (NSObject observer, DBObserver block);
[Export ("removeObserver:")]
void RemoveObserver (NSObject observer);
[Export ("datastoreId")]
string DatastoreId { get; }
[Export ("manager")]
DBDatastoreManager Manager { get; }
}
[BaseType (typeof (NSObject))]
public partial interface DBDatastoreInfo {
[Export ("datastoreId")]
string DatastoreId { get; }
}
[BaseType (typeof (NSObject))]
public partial interface DBDatastoreManager {
[Static, Export ("managerForAccount:")]
DBDatastoreManager ManagerForAccount (DBAccount account);
[Export ("openDefaultDatastore:")]
DBDatastore OpenDefaultDatastore (out DBError error);
[Export ("listDatastores:"), Verify ("NSArray may be reliably typed, check the documentation", "$PARENT_DIR/Dropbox.framework/Headers/DBDatastoreManager.h", Line = 29)]
NSObject [] ListDatastores (out DBError error);
[Export ("openDatastore:error:")]
DBDatastore OpenDatastore (string datastoreId, out DBError error);
[Export ("createDatastore:")]
DBDatastore CreateDatastore (out DBError error);
[Export ("deleteDatastore:error:")]
bool DeleteDatastore (string datastoreId, out DBError error);
[Export ("addObserver:block:")]
void AddObserver (NSObject obj, DBObserver block);
[Export ("removeObserver:")]
void RemoveObserver (NSObject obj);
[Export ("shutDown")]
void ShutDown ();
[Export ("shutDown")]
bool ShutDown { [Bind ("isShutDown")] get; }
}
[BaseType (typeof (NSObject))]
public partial interface DBFileInfo {
[Export ("path")]
DBPath Path { get; }
[Export ("isFolder")]
bool IsFolder { get; }
[Export ("modifiedTime")]
NSDate ModifiedTime { get; }
[Export ("size")]
long Size { get; }
[Export ("thumbExists")]
bool ThumbExists { get; }
[Export ("iconName")]
string IconName { get; }
}
public enum DBFileState : [unmapped: unexposed: Elaborated] {
Downloading,
Idle,
Uploading
}
[BaseType (typeof (NSObject))]
public partial interface DBFileStatus {
[Export ("cached")]
bool Cached { get; }
[Export ("state")]
DBFileState State { get; }
[Export ("progress")]
float Progress { get; }
[Export ("error")]
DBError Error { get; }
}
[BaseType (typeof (NSObject))]
public partial interface DBFile {
[Export ("readHandle:")]
NSFileHandle ReadHandle (out DBError error);
[Export ("readData:")]
NSData ReadData (out DBError error);
[Export ("readString:")]
string ReadString (out DBError error);
[Export ("writeContentsOfFile:shouldSteal:error:")]
bool WriteContentsOfFile (string localPath, bool shouldSteal, out DBError error);
[Export ("writeData:error:")]
bool WriteData (NSData data, out DBError error);
[Export ("writeString:error:")]
bool WriteString (string string, out DBError error);
[Export ("appendData:error:")]
bool AppendData (NSData data, out DBError error);
[Export ("appendString:error:")]
bool AppendString (string string, out DBError error);
[Export ("update:")]
bool Update (out DBError error);
[Export ("close")]
void Close ();
[Export ("info")]
DBFileInfo Info { get; }
[Export ("open")]
bool Open { [Bind ("isOpen")] get; }
[Export ("status")]
DBFileStatus Status { get; }
[Export ("newerStatus")]
DBFileStatus NewerStatus { get; }
[Export ("isThumb")]
bool IsThumb { get; }
[Export ("addObserver:block:")]
void AddObserver (NSObject observer, DBObserver block);
[Export ("removeObserver:")]
void RemoveObserver (NSObject observer);
}
[BaseType (typeof (NSObject))]
public partial interface DBPath {
[Static, Export ("root"), Verify ("ObjC method massaged into getter property", "$PARENT_DIR/Dropbox.framework/Headers/DBPath.h", Line = 10)]
DBPath Root { get; }
[Export ("initWithString:")]
IntPtr Constructor (string pathStr);
[Export ("name"), Verify ("ObjC method massaged into getter property", "$PARENT_DIR/Dropbox.framework/Headers/DBPath.h", Line = 22)]
string Name { get; }
[Export ("childPath:")]
DBPath ChildPath (string childName);
[Export ("parent"), Verify ("ObjC method massaged into getter property", "$PARENT_DIR/Dropbox.framework/Headers/DBPath.h", Line = 36)]
DBPath Parent { get; }
[Export ("stringValue"), Verify ("ObjC method massaged into getter property", "$PARENT_DIR/Dropbox.framework/Headers/DBPath.h", Line = 39)]
string StringValue { get; }
}
public enum DBSyncStatus : uint {
Downloading = (1 << 0),
Uploading = (1 << 1),
Syncing = (1 << 2),
Active = (1 << 3)
}
public enum DBThumbSize : [unmapped: unexposed: Elaborated] {
XS,
S,
M,
L,
XL
}
public enum DBThumbFormat : [unmapped: unexposed: Elaborated] {
JPG,
PNG
}
[BaseType (typeof (NSObject))]
public partial interface DBFilesystem {
[Export ("initWithAccount:")]
IntPtr Constructor (DBAccount account);
[Static, Export ("sharedFilesystem"), Verify ("ObjC method massaged into setter property", "$PARENT_DIR/Dropbox.framework/Headers/DBFilesystem.h", Line = 53), Verify ("Backing getter method to ObjC property removed: sharedFilesystem", "$PARENT_DIR/Dropbox.framework/Headers/DBFilesystem.h", Line = 56)]
DBFilesystem SharedFilesystem { get; set; }
[Export ("listFolder:error:"), Verify ("NSArray may be reliably typed, check the documentation", "$PARENT_DIR/Dropbox.framework/Headers/DBFilesystem.h", Line = 67)]
NSObject [] ListFolder (DBPath path, out DBError error);
[Export ("fileInfoForPath:error:")]
DBFileInfo FileInfoForPath (DBPath path, out DBError error);
[Export ("openFile:error:")]
DBFile OpenFile (DBPath path, out DBError error);
[Export ("createFile:error:")]
DBFile CreateFile (DBPath path, out DBError error);
[Export ("openThumbnail:ofSize:inFormat:error:")]
DBFile OpenThumbnail (DBPath path, DBThumbSize size, DBThumbFormat format, out DBError error);
[Export ("createFolder:error:")]
bool CreateFolder (DBPath path, out DBError error);
[Export ("deletePath:error:")]
bool DeletePath (DBPath path, out DBError error);
[Export ("movePath:toPath:error:")]
bool MovePath (DBPath fromPath, DBPath toPath, out DBError error);
[Export ("fetchShareLinkForPath:shorten:error:")]
string FetchShareLinkForPath (DBPath path, bool shorten, out DBError error);
[Export ("account")]
DBAccount Account { get; }
[Export ("completedFirstSync")]
bool CompletedFirstSync { get; }
[Export ("shutDown")]
bool ShutDown { [Bind ("isShutDown")] get; }
[Export ("status")]
DBSyncStatus Status { get; }
[Export ("addObserver:block:")]
bool AddObserver (NSObject observer, DBObserver block);
[Export ("addObserver:forPath:block:")]
bool AddObserver (NSObject observer, DBPath path, DBObserver block);
[Export ("addObserver:forPathAndChildren:block:")]
bool AddObserver (NSObject observer, DBPath path, DBObserver block);
[Export ("addObserver:forPathAndDescendants:block:")]
bool AddObserver (NSObject observer, DBPath path, DBObserver block);
[Export ("removeObserver:")]
void RemoveObserver (NSObject observer);
[Export ("shutDown")]
void ShutDown ();
}
[BaseType (typeof (NSObject))]
public partial interface DBList {
[Export ("count"), Verify ("ObjC method massaged into getter property", "$PARENT_DIR/Dropbox.framework/Headers/DBList.h", Line = 10)]
uint Count { get; }
[Export ("objectAtIndex:")]
NSObject ObjectAtIndex (uint index);
[Export ("objectAtIndexedSubscript:")]
NSObject ObjectAtIndexedSubscript (uint index);
[Export ("insertObject:atIndex:")]
void InsertObject (NSObject obj, uint index);
[Export ("removeObjectAtIndex:")]
void RemoveObjectAtIndex (uint index);
[Export ("addObject:")]
void AddObject (NSObject obj);
[Export ("removeLastObject")]
void RemoveLastObject ();
[Export ("replaceObjectAtIndex:withObject:")]
void ReplaceObjectAtIndex (uint index, NSObject obj);
[Export ("setObject:atIndexedSubscript:")]
void SetObject (NSObject obj, uint idx);
[Export ("moveObjectAtIndex:toIndex:")]
void MoveObjectAtIndex (uint oldIndex, uint newIndex);
[Export ("values"), Verify ("NSArray may be reliably typed, check the documentation", "$PARENT_DIR/Dropbox.framework/Headers/DBList.h", Line = 39)]
NSObject [] Values { get; }
[Field ("kDBSDKVersion")]
NSString DBSDKVersion { get; }
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment