2 #ifndef SOSTransportKeyParameter_h
3 #define SOSTransportKeyParameter_h
5 #include <CoreFoundation/CoreFoundation.h>
6 #include <CoreFoundation/CFRuntime.h>
7 #include <SecureObjectSync/SOSAccount.h>
9 typedef struct __OpaqueSOSTransportKeyParameter
* SOSTransportKeyParameterRef
;
11 struct __OpaqueSOSTransportKeyParameter
{
13 SOSAccountRef account
;
14 /* Connections from CF land to vtable land */
15 CFStringRef (*copyDescription
)(SOSTransportKeyParameterRef object
);
16 void (*destroy
)(SOSTransportKeyParameterRef object
);
19 // TODO: Make this take broader parameters and assemble the key parameters blob?
20 bool (*publishCloudParameters
)(SOSTransportKeyParameterRef transport
, CFDataRef data
, CFErrorRef
* error
);
21 bool (*handleKeyParameterChanges
)(SOSTransportKeyParameterRef transport
, CFDataRef data
, CFErrorRef error
);
22 bool (*setToNewAccount
)(SOSTransportKeyParameterRef transport
);
25 bool SOSTrasnportKeyParameterPublishCloudParameters(SOSTransportKeyParameterRef transport
, CFDataRef data
, CFErrorRef
* error
);
27 bool SOSTrasnportKeyParameterPublishCloudParameters(SOSTransportKeyParameterRef transport
, CFDataRef data
, CFErrorRef
* error
);
28 SOSTransportKeyParameterRef
SOSTransportKeyParameterCreateForSubclass(size_t size
, SOSAccountRef account
, CFErrorRef
*error
);
29 bool SOSTransportKeyParameterHandleKeyParameterChanges(SOSTransportKeyParameterRef transport
, CFDataRef data
, CFErrorRef error
);
30 bool SOSTransportKeyParameterHandleNewAccount(SOSTransportKeyParameterRef transport
);
32 SOSAccountRef
SOSTransportKeyParameterGetAccount(SOSTransportKeyParameterRef transport
);