@class NSString, IDSServiceProperties, NSMutableDictionary, NSDictionary, IDSDevice, IDSDeviceConnection, NSMutableArray, NSObject, IMPowerAssertion; @protocol OS_dispatch_source, IDSDirectMessageConnectionDelegate, OS_dispatch_queue, OS_nw_connection; @interface IDSDirectMessageConnection : NSObject @property (nonatomic) unsigned long long identifier; @property (nonatomic) char *shortServiceNameCString; @property (retain, nonatomic) NSObject *connectionQueue; @property (retain, nonatomic) NSObject *connection; @property (nonatomic) int connectionState; @property (nonatomic) BOOL connectionSetupInProgress; @property (retain, nonatomic) NSMutableArray *connectionMessageSendQueue; @property (weak, nonatomic) id delegate; @property (nonatomic) BOOL upgradedTrafficClass; @property (retain, nonatomic) NSString *peerID; @property (nonatomic) BOOL connectionIsIncoming; @property (nonatomic) BOOL pendingAckTimerSuspended; @property (nonatomic) BOOL directMessagingAllowed; @property (retain, nonatomic) NSObject *pendingAckTimer; @property (retain, nonatomic) NSObject *reporterTimer; @property (retain, nonatomic) NSMutableDictionary *queueOneToMessageIDDictionary; @property (retain, nonatomic) NSMutableDictionary *messageIDToMessageDictionary; @property (nonatomic) int notifyToken; @property (nonatomic) BOOL directMessagingSupported; @property (nonatomic) unsigned int trafficClassToUse; @property (nonatomic) long long idsPriorityToUse; @property (nonatomic) BOOL trafficClassInitialized; @property (nonatomic) long long trafficClassApplied; @property (nonatomic) BOOL trafficClassTLVProcessed; @property (nonatomic) BOOL peerIsConnected; @property (nonatomic) BOOL peerIsNearby; @property (retain, nonatomic) IDSDevice *device; @property (retain, nonatomic) IDSDeviceConnection *deviceConnection; @property (retain, nonatomic) NSString *currentStreamName; @property (nonatomic) BOOL peerSupportsDeviceConnection; @property (nonatomic) BOOL conciseACKSupported; @property (nonatomic) unsigned long long directMessagingState; @property (nonatomic) int directMessagingTimeOutMSEC; @property (nonatomic) int directMessagingRetryMSEC; @property (nonatomic) int directMessagingReportStatsMSEC; @property (nonatomic) unsigned int dataProtectionClass; @property (retain, nonatomic) IDSServiceProperties *serviceProperties; @property (retain, nonatomic) IMPowerAssertion *assertion; @property (retain, nonatomic) NSDictionary *powerAssertionOptions; @property (nonatomic) unsigned long long outgoingMessageBytes; @property (nonatomic) unsigned long long outgoingMessageCount; @property (nonatomic) unsigned long long incomingMessageBytes; @property (nonatomic) unsigned long long incomingMessageCount; @property (retain, nonatomic) NSString *serviceName; + (BOOL)isDirectMessagingRequested:(id)a0; - (void)updateMetadata:(id)a0; - (id)initWithServiceName:(id)a0 queue:(id)a1 delegate:(id)a2; - (void)dealloc; - (void)invalidate; - (id)description; - (void).cxx_destruct; - (void)resetConnection; - (void)cancel; - (void)updateConnection:(id)a0; - (void)setDestinationDevice:(id)a0; - (void)receiveMessages; - (void)dequeueMessages; - (BOOL)canUseDirectMessaging; - (void)cancelPendingAckTimer; - (void)clearPowerAssertion; - (id)createDispatchDataForMessageSend:(id)a0 isAck:(BOOL)a1 ackMessageId:(unsigned int)a2; - (void)failedToSendMessage:(id)a0 responseCode:(long long)a1; - (unsigned char)getMessageTypeForFirstMessage; - (void)getPowerAssertion; - (BOOL)isMessageEligible:(id)a0 options:(id)a1 destinationDevice:(id)a2; - (void)logConnectionStatisticsInPowerDictionary; - (void)parseDirectMessagingState; - (void)processIncomingMessage:(id)a0 messageType:(unsigned char)a1 messageIdentifier:(unsigned int)a2; - (void)receivedDirectMessagingSocketWithContext:(id)a0; - (void)resumePendingAckTimer; - (void)sendAckForMessageID:(unsigned int)a0 guidToAck:(id)a1; - (void)sendAppAckWithGUID:(id)a0; - (void)sendMessageWithParameters:(id)a0 options:(id)a1; - (void)setupConnectionIfApplicable; - (void)setupIDSDeviceConnection; - (void)startPowerLogReportTimer; - (void)suspendPendingAckTimer; - (void)updateConnectedDevices:(id)a0; - (void)updateTrafficClass:(unsigned short)a0; @end