]> git.saurik.com Git - apple/security.git/blobdiff - OSX/sec/SOSCircle/SecureObjectSync/SOSTransportMessage.h
Security-58286.1.32.tar.gz
[apple/security.git] / OSX / sec / SOSCircle / SecureObjectSync / SOSTransportMessage.h
index f9cf47c92caa7e39145d74b7c26da345c92cf751..2c5836883f1dd530fc4c1ceed6cf3aa2257aa951 100644 (file)
@@ -2,61 +2,41 @@
 #ifndef SOSTransportMessage_h
 #define SOSTransportMessage_h
 
-#include <Security/SecureObjectSync/SOSAccount.h>
-#include <Security/SecureObjectSync/SOSEnginePriv.h>
-#include <CoreFoundation/CFRuntime.h>
-#include <CoreFoundation/CoreFoundation.h>
-
-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 <Foundation/Foundation.h>
+#import <Security/SecureObjectSync/SOSAccountPriv.h>
 
-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