/** * Attempts to throttle client-level incoming messages only. Client-level outgoing messages are * throttled at the FlexClientOutboundQueueProcessor. * * @param message Message to throttle. * @return The result of the throttling attempt. */ protected ThrottleResult throttleIncomingClientLevel(Message message) { String clientId = (String) message.getClientId(); if (settings.isInboundClientThrottleEnabled()) { MessageFrequency clientLevelMark; clientLevelMark = inboundClientMarks.get(clientId); if (clientLevelMark == null) clientLevelMark = new MessageFrequency(settings.getIncomingClientFrequency()); ThrottleResult result = clientLevelMark.checkLimit( settings.getIncomingClientFrequency(), settings.getInboundPolicy()); inboundClientMarks.put(clientId, clientLevelMark); return result; } // Return the default OK result. return new ThrottleResult(); }