@class NSObject, NSDictionary, NSLock, VCMockIDSDataChannelLinkContext; @protocol OS_dispatch_queue; @interface VCMockIDSDatagramChannel : IDSDatagramChannel { NSDictionary *_subscribedStreamsByParticipantID; int _socket; BOOL _isValid; VCMockIDSDataChannelLinkContext *_linkContext; id /* block */ _eventHandler; id /* block */ _readHandler; id /* block */ _sharedWriteCompletionHandler; id /* block */ _readHandlerWithOptions; id /* block */ _writeDatagramsBlock; id /* block */ _writeDatagramBlock; id /* block */ _readyToReadBlock; NSLock *_blockSettingLock; NSLock *_writeDirectPathIDSLock; NSLock *_flushDatagramPacketsLock; struct _VCSingleLinkedList { struct _VCSingleLinkedListEntry *head; BOOL initialized; void /* function */ *compare; unsigned long long countEntries; } _datagramPackets; struct _VCSingleLinkedList { struct _VCSingleLinkedListEntry *head; BOOL initialized; void /* function */ *compare; unsigned long long countEntries; } _datagramPacketsDirectIDSPath; struct __CFAllocator { } *_datagramPacketAllocator; unsigned long long _datagramPacketNextSequenceNumber; BOOL _usingOptions; double _emulatedRxPLR; BOOL _doNotDropNackOrRetransmitted; struct _opaque_pthread_mutex_t { long long __sig; char __opaque[56]; } _streamSubscriptionLock; long long _participantGenerationCounter; unsigned short numPacketSent; unsigned short numPacketReceived; int _dataPath; BOOL _isNackEnabled; unsigned char _packetBuffer[2048][1500]; unsigned short _packetBufferDataSize[2048]; struct { unsigned int options_flags; unsigned long long participantID; unsigned short probeGroupID; unsigned char channelPriority; char streamIDCount; unsigned short streamIDs[12]; unsigned char generationCounterLSB; unsigned short statsID; struct { unsigned short serverTimestamp; unsigned short serverPacketInterval; unsigned short totalServerPacketReceived; unsigned short totalServerPacketSent; unsigned short uplinkBandwidth; } statsPayload; double arrivalTime; unsigned long long expireTimestamp; BOOL encryptedHBH; unsigned long long encryptionSequenceNumber; unsigned char packetUUID[16]; BOOL retransmittedPacket; BOOL nonRetransmittablePacket; } _packetDatagramOptions[2048]; BOOL _isServerStatsCached; struct { unsigned int options_flags; unsigned long long participantID; unsigned short probeGroupID; unsigned char channelPriority; char streamIDCount; unsigned short streamIDs[12]; unsigned char generationCounterLSB; unsigned short statsID; struct { unsigned short serverTimestamp; unsigned short serverPacketInterval; unsigned short totalServerPacketReceived; unsigned short totalServerPacketSent; unsigned short uplinkBandwidth; } statsPayload; double arrivalTime; unsigned long long expireTimestamp; BOOL encryptedHBH; unsigned long long encryptionSequenceNumber; unsigned char packetUUID[16]; BOOL retransmittedPacket; BOOL nonRetransmittablePacket; } _datagramOptionsCached; NSObject *_directPathReadQueue; NSObject *_directPathRTXQueue; BOOL _isSourceParticipantIDOnFanOutPacketsEnabled; BOOL _isWrongParticipantIDOnFanOutPacketsEnabled; BOOL _isECNEnabled; } @property (readonly) BOOL idsUPlusOneMode; + (void)extractRTPData:(char *)a0 ssrc:(unsigned int *)a1 sequenceNumber:(unsigned short *)a2; - (void)setEventHandler:(id /* block */)a0; - (void)dealloc; - (void)start; - (void)cleanup; - (void)invalidate; - (void)setReadHandler:(id /* block */)a0; - (void)flushLinkProbingStatusWithOptions:(id)a0; - (void)osChannelInfoLog; - (void)queryStatusWithOptions:(id)a0; - (void)readDatagramWithCompletionHandler:(id /* block */)a0; - (void)readDatagramsWithCompletionHandler:(id /* block */)a0; - (int)readyToRead; - (void)requestSessionInfoWithOptions:(id)a0; - (void)setChannelPreferences:(id)a0; - (void)setReadHandlerWithOptions:(id /* block */)a0; - (void)setUPlusOneMode:(BOOL)a0 isInitiator:(BOOL)a1; - (void)setWiFiAssist:(BOOL)a0; - (void)setWriteCompletionHandler:(id /* block */)a0; - (void)startActiveProbingWithOptions:(id)a0; - (void)stopActiveProbingWithOptions:(id)a0; - (int)underlyingFileDescriptor; - (void)writeDatagram:(const void *)a0 datagramSize:(unsigned int)a1 datagramInfo:(struct { char x0; unsigned short x1; unsigned char x2; unsigned short x3; unsigned char x4; })a2 options:(struct { unsigned int x0; unsigned long long x1; unsigned short x2; unsigned char x3; char x4; unsigned short x5[12]; unsigned char x6; unsigned short x7; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; } x8; double x9; unsigned long long x10; BOOL x11; unsigned long long x12; unsigned char x13[16]; BOOL x14; BOOL x15; } *)a3 completionHandler:(id /* block */)a4; - (void)writeDatagram:(const void *)a0 datagramSize:(unsigned int)a1 flags:(struct { char x0; unsigned short x1; unsigned char x2; unsigned short x3; unsigned char x4; })a2 completionHandler:(id /* block */)a3; - (void)writeDatagrams:(const void **)a0 datagramsSize:(unsigned int *)a1 datagramsInfo:(struct { char x0; unsigned short x1; unsigned char x2; unsigned short x3; unsigned char x4; } *)a2 datagramsCount:(int)a3 options:(struct **)a4 completionHandler:(id /* block */)a5; - (void)queryProbingResultsWithOptions:(id)a0; - (void)addMediaPacketToBuffer:(char *)a0 length:(unsigned long long)a1 datagramOptions:(struct { unsigned int x0; unsigned long long x1; unsigned short x2; unsigned char x3; char x4; unsigned short x5[12]; unsigned char x6; unsigned short x7; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; } x8; double x9; unsigned long long x10; BOOL x11; unsigned long long x12; unsigned char x13[16]; BOOL x14; BOOL x15; })a2; - (struct _VCMockIDSDatagramChannelPacket { struct _VCSingleLinkedListEntry { struct _VCSingleLinkedListEntry *x0; } x0; unsigned char x1[1500]; unsigned long long x2; BOOL x3; struct { unsigned int x0; unsigned long long x1; unsigned short x2; unsigned char x3; char x4; unsigned short x5[12]; unsigned char x6; unsigned short x7; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; } x8; double x9; unsigned long long x10; BOOL x11; unsigned long long x12; unsigned char x13[16]; BOOL x14; BOOL x15; } x4; unsigned long long x5; } *)constructPacket:(struct _VCMockIDSDatagramChannelPacket { struct _VCSingleLinkedListEntry { struct _VCSingleLinkedListEntry *x0; } x0; unsigned char x1[1500]; unsigned long long x2; BOOL x3; struct { unsigned int x0; unsigned long long x1; unsigned short x2; unsigned char x3; char x4; unsigned short x5[12]; unsigned char x6; unsigned short x7; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; } x8; double x9; unsigned long long x10; BOOL x11; unsigned long long x12; unsigned char x13[16]; BOOL x14; BOOL x15; } x4; unsigned long long x5; } *)a0 datagram:(const void *)a1 datagramSize:(unsigned int)a2 datagramOptions:(struct { unsigned int x0; unsigned long long x1; unsigned short x2; unsigned char x3; char x4; unsigned short x5[12]; unsigned char x6; unsigned short x7; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; } x8; double x9; unsigned long long x10; BOOL x11; unsigned long long x12; unsigned char x13[16]; BOOL x14; BOOL x15; } *)a3; - (BOOL)createSocket; - (void)dequeueDatagramPacket:(id /* block */)a0; - (int)drainUnderlyingFileDescriptor; - (BOOL)enqueueDatagramPacket:(const void *)a0 datagramSize:(unsigned int)a1 options:(struct { unsigned int x0; unsigned long long x1; unsigned short x2; unsigned char x3; char x4; unsigned short x5[12]; unsigned char x6; unsigned short x7; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; } x8; double x9; unsigned long long x10; BOOL x11; unsigned long long x12; unsigned char x13[16]; BOOL x14; BOOL x15; } *)a2 error:(id *)a3; - (void)flushDatagramPacketsList; - (void)flushDatagramPacketsListDIrectIDSPath; - (void)handlePacket:(struct _VCMockIDSDatagramChannelPacket { struct _VCSingleLinkedListEntry { struct _VCSingleLinkedListEntry *x0; } x0; unsigned char x1[1500]; unsigned long long x2; BOOL x3; struct { unsigned int x0; unsigned long long x1; unsigned short x2; unsigned char x3; char x4; unsigned short x5[12]; unsigned char x6; unsigned short x7; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; } x8; double x9; unsigned long long x10; BOOL x11; unsigned long long x12; unsigned char x13[16]; BOOL x14; BOOL x15; } x4; unsigned long long x5; } *)a0 packetHandler:(id /* block */)a1 shouldDropThisPacket:(BOOL)a2; - (id)initCreateSocketRequiresOptions:(BOOL)a0 dataPath:(int)a1; - (id)initRequiresOptions:(BOOL)a0; - (BOOL)isControlChannelDatagram:(struct _VCMockIDSDatagramChannelPacket { struct _VCSingleLinkedListEntry { struct _VCSingleLinkedListEntry *x0; } x0; unsigned char x1[1500]; unsigned long long x2; BOOL x3; struct { unsigned int x0; unsigned long long x1; unsigned short x2; unsigned char x3; char x4; unsigned short x5[12]; unsigned char x6; unsigned short x7; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; } x8; double x9; unsigned long long x10; BOOL x11; unsigned long long x12; unsigned char x13[16]; BOOL x14; BOOL x15; } x4; unsigned long long x5; } *)a0; - (BOOL)isMediaPacket:(char *)a0 length:(unsigned long long)a1; - (BOOL)isNACKPacket:(char *)a0 length:(unsigned long long)a1; - (BOOL)isRTCPPacket:(char *)a0 length:(unsigned long long)a1; - (id)newArrayOfStreamIdsForPacket:(struct _VCMockIDSDatagramChannelPacket { struct _VCSingleLinkedListEntry { struct _VCSingleLinkedListEntry *x0; } x0; unsigned char x1[1500]; unsigned long long x2; BOOL x3; struct { unsigned int x0; unsigned long long x1; unsigned short x2; unsigned char x3; char x4; unsigned short x5[12]; unsigned char x6; unsigned short x7; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; } x8; double x9; unsigned long long x10; BOOL x11; unsigned long long x12; unsigned char x13[16]; BOOL x14; BOOL x15; } x4; unsigned long long x5; } *)a0; - (void)printDroppedPacketInfo:(struct _VCMockIDSDatagramChannelPacket { struct _VCSingleLinkedListEntry { struct _VCSingleLinkedListEntry *x0; } x0; unsigned char x1[1500]; unsigned long long x2; BOOL x3; struct { unsigned int x0; unsigned long long x1; unsigned short x2; unsigned char x3; char x4; unsigned short x5[12]; unsigned char x6; unsigned short x7; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; } x8; double x9; unsigned long long x10; BOOL x11; unsigned long long x12; unsigned char x13[16]; BOOL x14; BOOL x15; } x4; unsigned long long x5; } *)a0; - (BOOL)processDatagramForDirectIDSDataPath:(const void *)a0 datagramSize:(unsigned int)a1 datagramOptions:(struct { unsigned int x0; unsigned long long x1; unsigned short x2; unsigned char x3; char x4; unsigned short x5[12]; unsigned char x6; unsigned short x7; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; } x8; double x9; unsigned long long x10; BOOL x11; unsigned long long x12; unsigned char x13[16]; BOOL x14; BOOL x15; } *)a2 error:(id *)a3; - (void)processPacket:(struct _VCMockIDSDatagramChannelPacket { struct _VCSingleLinkedListEntry { struct _VCSingleLinkedListEntry *x0; } x0; unsigned char x1[1500]; unsigned long long x2; BOOL x3; struct { unsigned int x0; unsigned long long x1; unsigned short x2; unsigned char x3; char x4; unsigned short x5[12]; unsigned char x6; unsigned short x7; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; } x8; double x9; unsigned long long x10; BOOL x11; unsigned long long x12; unsigned char x13[16]; BOOL x14; BOOL x15; } x4; unsigned long long x5; } *)a0 packetHandler:(id /* block */)a1; - (void)processWriteCompletionCallback:(id /* block */)a0 forDatagramWithSize:(unsigned long long)a1 error:(id)a2; - (void)readDatagram:(const void *)a0 datagramSize:(unsigned int)a1 datagramOptions:(struct { unsigned int x0; unsigned long long x1; unsigned short x2; unsigned char x3; char x4; unsigned short x5[12]; unsigned char x6; unsigned short x7; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; } x8; double x9; unsigned long long x10; BOOL x11; unsigned long long x12; unsigned char x13[16]; BOOL x14; BOOL x15; } *)a2; - (void)reportFirstPacketTimeForMKI:(id)a0; - (void)retrieveAndProcesOnePacket:(unsigned int)a0 seq:(unsigned short)a1 count:(int)a2 index:(int)a3; - (void)retrieveAndProcessMediaPacketsFromBuffer:(struct tagRTCPPACKET { struct tagRTCPCOMMON { unsigned char x0 : 5; unsigned char x1 : 1; unsigned char x2 : 2; unsigned char x3 : 8; unsigned short x4; } x0; union { struct tagSR_RTCP { unsigned int x0; unsigned int x1; unsigned int x2; unsigned int x3; unsigned int x4; unsigned int x5; struct tagRTCP_RRB { unsigned int x0; unsigned char x1 : 8; unsigned int x2 : 24; unsigned int x3; unsigned int x4; unsigned int x5; unsigned int x6; } x6[1]; } x0; struct tagRR_RTCP { unsigned int x0; struct tagRTCP_RRB { unsigned int x0; unsigned char x1 : 8; unsigned int x2 : 24; unsigned int x3; unsigned int x4; unsigned int x5; unsigned int x6; } x1[1]; } x1; struct tagSDES_RTCP { unsigned int x0; struct tagRTCPSDES { unsigned char x0; unsigned char x1; char x2[258]; } x1; } x2; struct tagBYE_RTCP { unsigned int x0; } x3; struct tagRTCP_APP { unsigned int x0; unsigned int x1; } x4; struct tagRTCP_APP_LTRP { struct tagRTCP_APP { unsigned int x0; unsigned int x1; } x0; unsigned int x1; } x5; struct tagFIR_RTCP { unsigned int x0; unsigned short x1[10]; } x6; struct tagNACK_RTCP { unsigned int x0; unsigned short x1; unsigned short x2; } x7; struct tagRTCP_PSFB_PLI { struct tagRTCP_FBCOMMON { unsigned int x0; unsigned int x1; } x0; } x8; struct tagRTCP_PSFB_SLI { struct tagRTCP_FBCOMMON { unsigned int x0; unsigned int x1; } x0; unsigned int x1; } x9; struct tagRTCP_PSFB_FIR { struct tagRTCP_FBCOMMON { unsigned int x0; unsigned int x1; } x0; unsigned int x1; unsigned char x2; unsigned char x3[3]; } x10; struct tagRTCP_PSFB_TST { struct tagRTCP_FBCOMMON { unsigned int x0; unsigned int x1; } x0; unsigned int x1; unsigned int x2; } x11; struct tagRTCP_PSFB_TST { struct tagRTCP_FBCOMMON { unsigned int x0; unsigned int x1; } x0; unsigned int x1; unsigned int x2; } x12; struct tagRTCP_PSFB_ALFB_HEADER { struct tagRTCP_FBCOMMON { unsigned int x0; unsigned int x1; } x0; unsigned int x1; } x13; struct tagRTCP_PSFB_LOSSFB { struct tagRTCP_PSFB_ALFB_HEADER { struct tagRTCP_FBCOMMON { unsigned int x0; unsigned int x1; } x0; unsigned int x1; } x0; struct tagRTCP_CUSTOM_PSFB_LOSS_FB_INFO { unsigned int x0; unsigned short x1; unsigned char x2; unsigned char x3; } x1; } x14; struct tagRTCP_PSFB_LTRACK { struct tagRTCP_PSFB_ALFB_HEADER { struct tagRTCP_FBCOMMON { unsigned int x0; unsigned int x1; } x0; unsigned int x1; } x0; unsigned int x1; } x15; struct tagRTCP_RTPFB_GNACK { struct tagRTCP_FBCOMMON { unsigned int x0; unsigned int x1; } x0; struct tagRTCP_RTPFB_INDIVIDUAL_GNACK { unsigned short x0; unsigned short x1; } x1[256]; } x16; struct tagRTCP_RTPFB_TMMB { struct tagRTCP_FBCOMMON { unsigned int x0; unsigned int x1; } x0; unsigned int x1; unsigned int x2; } x17; struct tagRTCP_RTPFB_TMMB { struct tagRTCP_FBCOMMON { unsigned int x0; unsigned int x1; } x0; unsigned int x1; unsigned int x2; } x18; struct tagVCRTCPXR { unsigned int x0; unsigned int x1[0]; } x19; struct tagRTCP_CUSTOM_SR { struct tagRTCP_APP { unsigned int x0; unsigned int x1; } x0; unsigned int x1; struct tagRTCP_CUSTOM_SENDER_INFO { unsigned int x0; unsigned int x1; unsigned int x2; unsigned int x3; unsigned char x4 : 4; unsigned char x5 : 4; } x2; struct tagRTCP_CUSTOM_RECEPTION_REPORT { unsigned int x0; unsigned char x1 : 4; unsigned short x2 : 12; unsigned short x3; unsigned short x4; unsigned char x5; unsigned char x6; } x3[1]; } x20; struct tagRTCP_CUSTOM_RR { struct tagRTCP_APP { unsigned int x0; unsigned int x1; } x0; unsigned int x1; struct tagRTCP_CUSTOM_RECEIVER_INFO { unsigned char x0 : 4; unsigned char x1 : 4; } x2; struct tagRTCP_CUSTOM_RECEPTION_REPORT { unsigned int x0; unsigned char x1 : 4; unsigned short x2 : 12; unsigned short x3; unsigned short x4; unsigned char x5; unsigned char x6; } x3[1]; } x21; struct tagRTCP_CUSTOM_RCTL { struct tagRTCP_APP { unsigned int x0; unsigned int x1; } x0; struct tagRTCP_CUSTOM_RATE_CONTROL_INFO { unsigned char x0[20]; } x1; } x22; } x1; } *)a0 packetHandler:(id /* block */)a1; - (void)setParticipantIDOnOptions:(struct { unsigned int x0; unsigned long long x1; unsigned short x2; unsigned char x3; char x4; unsigned short x5[12]; unsigned char x6; unsigned short x7; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; } x8; double x9; unsigned long long x10; BOOL x11; unsigned long long x12; unsigned char x13[16]; BOOL x14; BOOL x15; } *)a0; - (void)setReadyToReadBlock:(id /* block */)a0; - (void)setWriteDatagramBlock:(id /* block */)a0; - (void)setWriteDatagramsBlock:(id /* block */)a0; - (BOOL)setupMockIDSDatagramChannelRequiresOptions:(BOOL)a0; - (BOOL)shouldReadPacket:(struct _VCMockIDSDatagramChannelPacket { struct _VCSingleLinkedListEntry { struct _VCSingleLinkedListEntry *x0; } x0; unsigned char x1[1500]; unsigned long long x2; BOOL x3; struct { unsigned int x0; unsigned long long x1; unsigned short x2; unsigned char x3; char x4; unsigned short x5[12]; unsigned char x6; unsigned short x7; struct { unsigned short x0; unsigned short x1; unsigned short x2; unsigned short x3; unsigned short x4; } x8; double x9; unsigned long long x10; BOOL x11; unsigned long long x12; unsigned char x13[16]; BOOL x14; BOOL x15; } x4; unsigned long long x5; } *)a0; - (void)signalUnderlyingFileDescriptor; @end