All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.littleshoot.stun.stack.message.BindingRequest Maven / Gradle / Ivy

The newest version!
package org.littleshoot.stun.stack.message;

import java.util.Map;

import org.apache.commons.id.uuid.UUID;
import org.littleshoot.stun.stack.message.attributes.StunAttribute;
import org.littleshoot.stun.stack.message.attributes.StunAttributeType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * A STUN Binding message.
 */
public class BindingRequest extends AbstractStunMessage 
    {

    private static final Logger LOG = 
        LoggerFactory.getLogger(BindingRequest.class);
    
    /**
     * Creates a new STUN binding message.
     * 
     * @param id The message's transaction ID.
     * @param attributes Additional Binding Request attributes, typically 
     * attributes associated with a particular STUN usage.
     */
    public BindingRequest(final UUID id, 
        final Map attributes)
        {
        super(id, StunMessageType.BINDING_REQUEST, attributes);
        if (LOG.isDebugEnabled())
            {
            LOG.debug("Created Binding Request from network...");
            }
        }

    /**
     * Creates a new binding request from scratch.
     */
    public BindingRequest()
        {
        super(StunMessageType.BINDING_REQUEST);
        }

    /**
     * Creates a new Binding Request with the specified attributes.
     * 
     * @param attributes Additional Binding Request attributes, typically 
     * attributes associated with a particular STUN usage.
     */
    public BindingRequest(final StunAttribute... attributes)
        {
        super(StunMessageType.BINDING_REQUEST, createAttributes(attributes));
        if (LOG.isDebugEnabled())
            {
            LOG.debug("Created Binding Request from scratch: {}", this);
            }
        }

    public  T accept(final StunMessageVisitor visitor)
        {
        return visitor.visitBindingRequest(this);
        }

    }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy