X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/80e2389990082500d76eb566d4946be3e786c3ef..d8f41ccd20de16f8ebe2ccc84d47bf1cb2b26bbb:/Security/sec/SOSCircle/SecureObjectSync/SOSTransportCircle.c diff --git a/Security/sec/SOSCircle/SecureObjectSync/SOSTransportCircle.c b/Security/sec/SOSCircle/SecureObjectSync/SOSTransportCircle.c new file mode 100644 index 00000000..13abb72b --- /dev/null +++ b/Security/sec/SOSCircle/SecureObjectSync/SOSTransportCircle.c @@ -0,0 +1,76 @@ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +CFGiblisWithCompareFor(SOSTransportCircle); + +SOSTransportCircleRef SOSTransportCircleCreateForSubclass(size_t size, SOSAccountRef account, CFErrorRef *error) +{ + SOSTransportCircleRef tpt = CFTypeAllocateWithSpace(SOSTransportCircle, size, kCFAllocatorDefault); + tpt->account = CFRetainSafe(account); + return tpt; +} + +static CFStringRef SOSTransportCircleCopyDescription(CFTypeRef aObj) { + SOSTransportCircleRef t = (SOSTransportCircleRef) aObj; + + return CFStringCreateWithFormat(NULL, NULL, CFSTR(""), t); +} + +static void SOSTransportCircleDestroy(CFTypeRef aObj) { + SOSTransportCircleRef transport = (SOSTransportCircleRef) aObj; + if(transport->destroy) + transport->destroy(transport); + CFReleaseNull(transport->account); +} + +static CFHashCode SOSTransportCircleHash(CFTypeRef obj) +{ + return (intptr_t) obj; +} + +static Boolean SOSTransportCircleCompare(CFTypeRef lhs, CFTypeRef rhs) +{ + return SOSTransportCircleHash(lhs) == SOSTransportCircleHash(rhs); +} + +SOSAccountRef SOSTransportCircleGetAccount(SOSTransportCircleRef transport){ + return transport->account; +} + +bool SOSTransportCircleFlushChanges(SOSTransportCircleRef transport, CFErrorRef *error) { + return transport->flushChanges(transport, error); +} + +bool SOSTransportCirclePostCircle(SOSTransportCircleRef transport, CFStringRef circleName, CFDataRef circle_data, CFErrorRef *error) { + return transport->postCircle(transport, circleName, circle_data, error); +} +CF_RETURNS_RETAINED +CFDictionaryRef SOSTransportCircleHandleRetirementMessages(SOSTransportCircleRef transport, CFMutableDictionaryRef circle_retirement_messages_table, CFErrorRef *error) { + return transport->handleRetirementMessages(transport, circle_retirement_messages_table, error); +} + +CF_RETURNS_RETAINED +CFArrayRef SOSTransportCircleHandleCircleMessages(SOSTransportCircleRef transport, CFMutableDictionaryRef circle_circle_messages_table, CFErrorRef *error) { + return transport->handleCircleMessages(transport, circle_circle_messages_table, error); +} + +bool SOSTransportCirclePostRetirement(SOSTransportCircleRef transport, CFStringRef circleName, CFStringRef peer_id, CFDataRef retirement_data, CFErrorRef *error) { + return transport->postRetirement(transport, circleName, peer_id, retirement_data, error); +} + +bool SOSTransportCircleExpireRetirementRecords(SOSTransportCircleRef transport, CFDictionaryRef retirements, CFErrorRef *error){ + return transport->expireRetirementRecords(transport, retirements, error); +} + +