1 2#ifndef SOSTransportCircle_h 3#define SOSTransportCircle_h 4 5#include <CoreFoundation/CoreFoundation.h> 6#include <CoreFoundation/CFRuntime.h> 7#include <SecureObjectSync/SOSAccount.h> 8 9typedef struct __OpaqueSOSTransportCircle * SOSTransportCircleRef; 10 11struct __OpaqueSOSTransportCircle { 12 CFRuntimeBase _base; 13 SOSAccountRef account; 14 15 CFStringRef (*copyDescription)(SOSTransportCircleRef transport); 16 void (*destroy)(SOSTransportCircleRef transport); 17 18 bool (*postRetirement)(SOSTransportCircleRef transport, CFStringRef circleName, CFStringRef peer_id, CFDataRef retirement_data, CFErrorRef *error); 19 bool (*expireRetirementRecords)(SOSTransportCircleRef transport, CFDictionaryRef retirements, CFErrorRef *error); 20 bool (*flushChanges)(SOSTransportCircleRef transport, CFErrorRef *error); 21 bool (*postCircle)(SOSTransportCircleRef transport, CFStringRef circleName, CFDataRef circle_data, CFErrorRef *error); 22 CFDictionaryRef (*handleRetirementMessages)(SOSTransportCircleRef transport, CFMutableDictionaryRef circle_retirement_messages_table, CFErrorRef *error); 23 CFArrayRef (*handleCircleMessages)(SOSTransportCircleRef transport, CFMutableDictionaryRef circle_circle_messages_table, CFErrorRef *error); 24 25}; 26 27SOSTransportCircleRef SOSTransportCircleCreateForSubclass(size_t size, SOSAccountRef account, CFErrorRef *error); 28 29bool SOSTransportCirclePostCircle(SOSTransportCircleRef transport, CFStringRef circleName, CFDataRef circle_data, CFErrorRef *error); 30 31bool SOSTransportCirclePostRetirement(SOSTransportCircleRef transport, CFStringRef circleName, CFStringRef peer_id, CFDataRef retirement_data, CFErrorRef *error); 32 33bool SOSTransportCircleExpireRetirementRecords(SOSTransportCircleRef transport, CFDictionaryRef retirements, CFErrorRef *error); 34 35bool SOSTransportCircleFlushChanges(SOSTransportCircleRef transport, CFErrorRef *error); 36 37 38SOSAccountRef SOSTransportCircleGetAccount(SOSTransportCircleRef transport); 39CF_RETURNS_RETAINED CFDictionaryRef SOSTransportCircleHandleRetirementMessages(SOSTransportCircleRef transport, CFMutableDictionaryRef circle_retirement_messages_table, CFErrorRef *error); 40 41 42CF_RETURNS_RETAINED CFArrayRef SOSTransportCircleHandleCircleMessages(SOSTransportCircleRef transport, CFMutableDictionaryRef circle_circle_messages_table, CFErrorRef *error); 43 44 45#endif 46