X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/914fc88e61be54aed6b18205ff2775b48793a3b6..866f8763175ff60e4fa455b92b5eb660a12fe6c7:/OSX/sec/SOSCircle/SecureObjectSync/SOSTransportMessage.h diff --git a/OSX/sec/SOSCircle/SecureObjectSync/SOSTransportMessage.h b/OSX/sec/SOSCircle/SecureObjectSync/SOSTransportMessage.h index f9cf47c9..2c583688 100644 --- a/OSX/sec/SOSCircle/SecureObjectSync/SOSTransportMessage.h +++ b/OSX/sec/SOSCircle/SecureObjectSync/SOSTransportMessage.h @@ -2,61 +2,41 @@ #ifndef SOSTransportMessage_h #define SOSTransportMessage_h -#include -#include -#include -#include - -typedef struct __OpaqueSOSTransportMessage *SOSTransportMessageRef; - - -struct __OpaqueSOSTransportMessage { - CFRuntimeBase _base; - SOSEngineRef engine; - SOSAccountRef account; - CFStringRef circleName; - /* Connections from CF land to vtable land */ - CFStringRef (*copyDescription)(SOSTransportMessageRef object); - void (*destroy)(SOSTransportMessageRef object); - CFStringRef (*getName)(SOSTransportMessageRef object); - - /* send message operations */ - bool (*syncWithPeers)(SOSTransportMessageRef transport, CFSetRef peers, CFErrorRef *error); - bool (*cleanupAfterPeerMessages)(SOSTransportMessageRef transport, CFDictionaryRef circleToPeerIDs, CFErrorRef* error); - bool (*sendMessages)(SOSTransportMessageRef transport, CFDictionaryRef circle_messages, CFErrorRef *error); - bool (*flushChanges)(SOSTransportMessageRef transport, CFErrorRef *error); - CFIndex (*getTransportType)(SOSTransportMessageRef transport, CFErrorRef *error); - CFDictionaryRef (*handleMessages)(SOSTransportMessageRef transport, CFMutableDictionaryRef circle_peer_messages_table, CFErrorRef *error); - -}; - -CFStringRef SOSTransportMessageGetCircleName(SOSTransportMessageRef transport); +#import +#import -SOSTransportMessageRef SOSTransportMessageCreateForSubclass(size_t size,SOSAccountRef account, CFStringRef circleName, CFErrorRef *error); -bool SOSTransportMessageHandlePeerMessage(SOSTransportMessageRef transport, CFStringRef peer_id, CFDataRef codedMessage, CFErrorRef *error); +@interface SOSMessage : NSObject +{ + CFTypeRef engine; + SOSAccount *account; + NSString *circleName; +} +@property (atomic) CFTypeRef engine; +@property (atomic) SOSAccount* account; +@property (strong, atomic) NSString *circleName; -typedef bool (^SOSTransportSendToPeerBlock)(SOSTransportMessageRef transport, CFStringRef peerID, CFDataRef message, SOSEnginePeerMessageSentBlock sentBlock); +-(id) initWithAccount:(SOSAccount*)acct andName:(NSString*)name; -SOSEngineRef SOSTransportMessageGetEngine(SOSTransportMessageRef transport); +-(CFIndex) SOSTransportMessageGetTransportType; +-(CFStringRef) SOSTransportMessageGetCircleName; +-(CFTypeRef) SOSTransportMessageGetEngine; +-(SOSAccount*) SOSTransportMessageGetAccount; -SOSAccountRef SOSTransportMessageGetAccount(SOSTransportMessageRef transport); - -bool SOSTransportMessageCleanupAfterPeerMessages(SOSTransportMessageRef transport, CFDictionaryRef peers, CFErrorRef* error); - -bool SOSTransportMessageSendMessage(SOSTransportMessageRef transport, CFStringRef peerID, CFDataRef message, CFErrorRef *error); -bool SOSTransportMessageSendMessages(SOSTransportMessageRef transport, CFDictionaryRef peer_messages, CFErrorRef *error); -bool SOSTransportMessageFlushChanges(SOSTransportMessageRef transport, CFErrorRef *error); +-(bool) SOSTransportMessageCleanupAfterPeerMessages:(SOSMessage*) transport peers:(CFDictionaryRef) peers err:(CFErrorRef*) error; -bool SOSTransportMessageSyncWithPeers(SOSTransportMessageRef transport, CFSetRef peers, CFErrorRef *error); +-(bool) SOSTransportMessageSendMessage:(SOSMessage*) transport id:(CFStringRef) peerID messageToSend:(CFDataRef) message err:(CFErrorRef *)error; +-(bool) SOSTransportMessageSendMessages:(SOSMessage*) transport pm:(CFDictionaryRef) peer_messages err:(CFErrorRef *)error; +-(bool) SOSTransportMessageFlushChanges:(SOSMessage*) transport err:(CFErrorRef *)error; -SOSTransportMessageRef SOSTransportMessageCreateForSubclass(size_t size, - SOSAccountRef account, CFStringRef circleName, - CFErrorRef *error); -CF_RETURNS_RETAINED -CFDictionaryRef SOSTransportMessageHandleMessages(SOSTransportMessageRef transport, CFMutableDictionaryRef circle_peer_messages_table, CFErrorRef *error); +-(bool) SOSTransportMessageSyncWithPeers:(SOSMessage*) transport p:(CFSetRef) peers err:(CFErrorRef *)error; -CFTypeID SOSTransportMessageGetTypeID(void); +-(CFDictionaryRef)CF_RETURNS_RETAINED SOSTransportMessageHandlePeerMessageReturnsHandledCopy:(SOSMessage*) transport peerMessages:(CFMutableDictionaryRef) circle_peer_messages_table err:(CFErrorRef *)error; -CFIndex SOSTransportMessageGetTransportType(SOSTransportMessageRef transport, CFErrorRef *error); +-(bool) SOSTransportMessageHandlePeerMessage:(SOSMessage*) transport id:(CFStringRef) peer_id cm:(CFDataRef) codedMessage err:(CFErrorRef *)error; +-(bool) SOSTransportMessageSendMessageIfNeeded:(SOSMessage*) transport id:(CFStringRef) circle_id pID:(CFStringRef) peer_id err:(CFErrorRef *)error; +//for testing +bool SOSEngineHandleCodedMessage(SOSAccount* account, SOSEngineRef engine, CFStringRef peerID, CFDataRef codedMessage, CFErrorRef*error); + +@end #endif