<?xml version="1.0" encoding="UTF-8"?>
<root>
    <doclet-version-NOT-library-version>1.07</doclet-version-NOT-library-version>
    <class>
        <name>anywheresoftware.b4j.objects.MqttBroker</name>
        <shortname>MqttBroker</shortname>
        <owner>process</owner>
        <method>
            <name>SetUserAndPassword</name>
            <comment>The server will only allow connections with the provided user names and password.</comment>
            <returntype>void</returntype>
            <parameter>
                <name>Username</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>Password</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
        <method>
            <name>Start</name>
            <comment>Starts the server.</comment>
            <returntype>void</returntype>
        </method>
        <method>
            <name>Stop</name>
            <comment>Stops the server.</comment>
            <returntype>void</returntype>
        </method>
        <method>
            <name>Initialize</name>
            <comment>Initializes the broker and sets the broker port (currently there are no events).</comment>
            <returntype>void</returntype>
            <parameter>
                <name>EventName</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>Port</name>
                <type>int</type>
            </parameter>
        </method>
        <property>
            <name>DebugLog</name>
            <parameter>
                <name>b</name>
                <type>boolean</type>
            </parameter>
            <comment></comment>
        </property>
    </class>
    <class>
        <name>io.moquette.BrokerConstants</name>
        <owner>process</owner>
        <field>
            <name>DEFAULT_MOQUETTE_STORE_H2_DB_FILENAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>BUGSNAG_TOKEN_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>PASSWORD_FILE_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>HOST</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>BROKER_INTERCEPTOR_THREAD_POOL_SIZE</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>DISABLED_PORT_BIND</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>WEB_SOCKET_PORT_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>NETTY_MAX_BYTES_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>METRICS_LIBRATO_EMAIL_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>NETTY_EPOLL_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>DEFAULT_NETTY_MAX_BYTES_IN_MESSAGE</name>
            <comment></comment>
            <returntype>int</returntype>
        </field>
        <field>
            <name>SSL_PORT_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>HOST_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>ALLOW_ANONYMOUS_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>AUTHORIZATOR_CLASS_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>DB_AUTHENTICATOR_DIGEST</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>NETTY_TCP_NODELAY_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>AUTOSAVE_INTERVAL_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>SSL_PROVIDER</name>
            <comment>Defines the SSL implementation to use, default to "JDK".</comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>INTERCEPT_HANDLER_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>BUGSNAG_ENABLE_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>PORT</name>
            <comment></comment>
            <returntype>int</returntype>
        </field>
        <field>
            <name>KEY_STORE_PASSWORD_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>PERSISTENT_STORE_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>ALLOW_ZERO_BYTE_CLIENT_ID_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>AUTHENTICATOR_CLASS_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>WEBSOCKET_PORT</name>
            <comment></comment>
            <returntype>int</returntype>
        </field>
        <field>
            <name>DB_AUTHENTICATOR_URL</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>NETTY_SO_KEEPALIVE_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>METRICS_LIBRATO_TOKEN_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>NETTY_SO_REUSEADDR_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>KEY_MANAGER_PASSWORD_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>STORAGE_CLASS_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>METRICS_ENABLE_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>PORT_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>KEY_STORE_TYPE</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>JKS_PATH_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>ACL_FILE_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>REAUTHORIZE_SUBSCRIPTIONS_ON_CONNECT</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>DB_AUTHENTICATOR_DRIVER</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>METRICS_LIBRATO_SOURCE_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>NEED_CLIENT_AUTH</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>NETTY_CHANNEL_TIMEOUT_SECONDS_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>DB_AUTHENTICATOR_QUERY</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>DEFAULT_PERSISTENT_PATH</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>NETTY_SO_BACKLOG_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
        <field>
            <name>WSS_PORT_PROPERTY_NAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
    </class>
    <class>
        <name>io.moquette.broker.AutoFlushHandler</name>
        <comment>Auto-flush data on channel after a read timeout. It's inspired by IdleStateHandler but it's
 specialized version, just flushing data after no read is done on the channel after a period. It's
 used to avoid aggressively flushing from the ProtocolProcessor.</comment>
        <owner>process</owner>
        <method>
            <name>disconnect</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>read</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelReadComplete</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>deregister</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>channelActive</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>exceptionCaught</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.lang.Throwable</type>
            </parameter>
        </method>
        <method>
            <name>handlerAdded</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>isSharable</name>
            <comment></comment>
            <returntype>boolean</returntype>
        </method>
        <method>
            <name>handlerRemoved</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>ensureNotSharable</name>
            <comment></comment>
            <returntype>void</returntype>
        </method>
        <method>
            <name>channelRead</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.lang.Object</type>
            </parameter>
        </method>
        <method>
            <name>channelWritabilityChanged</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelInactive</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelUnregistered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>bind</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.net.SocketAddress</type>
            </parameter>
            <parameter>
                <name>arg2</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>flush</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>userEventTriggered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.lang.Object</type>
            </parameter>
        </method>
        <method>
            <name>channelRegistered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>close</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>write</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.lang.Object</type>
            </parameter>
            <parameter>
                <name>arg2</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>connect</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.net.SocketAddress</type>
            </parameter>
            <parameter>
                <name>arg2</name>
                <type>java.net.SocketAddress</type>
            </parameter>
            <parameter>
                <name>arg3</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
    </class>
    <class>
        <name>io.moquette.broker.BugSnagErrorsHandler</name>
        <owner>process</owner>
        <method>
            <name>init</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>props</name>
                <type>io.moquette.broker.config.IConfig</type>
            </parameter>
        </method>
        <method>
            <name>channelReadComplete</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>exceptionCaught</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>cause</name>
                <type>java.lang.Throwable</type>
            </parameter>
        </method>
        <method>
            <name>channelActive</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>handlerAdded</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>isSharable</name>
            <comment></comment>
            <returntype>boolean</returntype>
        </method>
        <method>
            <name>ensureNotSharable</name>
            <comment></comment>
            <returntype>void</returntype>
        </method>
        <method>
            <name>handlerRemoved</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelRead</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.lang.Object</type>
            </parameter>
        </method>
        <method>
            <name>channelWritabilityChanged</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelInactive</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelUnregistered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>userEventTriggered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.lang.Object</type>
            </parameter>
        </method>
        <method>
            <name>channelRegistered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
    </class>
    <class>
        <name>io.moquette.broker.ClientDescriptor</name>
        <owner>process</owner>
        <method>
            <name>hashCode</name>
            <comment></comment>
            <returntype>int</returntype>
        </method>
        <method>
            <name>equals</name>
            <comment></comment>
            <returntype>boolean</returntype>
            <parameter>
                <name>o</name>
                <type>java.lang.Object</type>
            </parameter>
        </method>
        <method>
            <name>toString</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </method>
        <property>
            <name>Address</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
        <property>
            <name>Port</name>
            <returntype>int</returntype>
            <comment></comment>
        </property>
        <property>
            <name>ClientID</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
    </class>
    <class>
        <name>io.moquette.broker.DebugUtils</name>
        <owner>process</owner>
        <method>
            <name>payload2Str</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
            <parameter>
                <name>content</name>
                <type>io.netty.buffer.ByteBuf</type>
            </parameter>
        </method>
    </class>
    <class>
        <name>io.moquette.broker.InflightResender</name>
        <comment>Resend inflight not ack'ed publish packets (QoS1 PUB and QoS2 PUB/PUBREL). It's inspired by IdleStateHandler but it's
 specialized version, just invoking Session's resendInflightNotAcked by the channel after a period.</comment>
        <owner>process</owner>
        <method>
            <name>disconnect</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>read</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelReadComplete</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>deregister</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>channelActive</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>exceptionCaught</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.lang.Throwable</type>
            </parameter>
        </method>
        <method>
            <name>handlerAdded</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>isSharable</name>
            <comment></comment>
            <returntype>boolean</returntype>
        </method>
        <method>
            <name>handlerRemoved</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>ensureNotSharable</name>
            <comment></comment>
            <returntype>void</returntype>
        </method>
        <method>
            <name>channelRead</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.lang.Object</type>
            </parameter>
        </method>
        <method>
            <name>channelWritabilityChanged</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelInactive</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelUnregistered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>bind</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.net.SocketAddress</type>
            </parameter>
            <parameter>
                <name>arg2</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>flush</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>userEventTriggered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.lang.Object</type>
            </parameter>
        </method>
        <method>
            <name>channelRegistered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>close</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>write</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.lang.Object</type>
            </parameter>
            <parameter>
                <name>arg2</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>connect</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.net.SocketAddress</type>
            </parameter>
            <parameter>
                <name>arg2</name>
                <type>java.net.SocketAddress</type>
            </parameter>
            <parameter>
                <name>arg3</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
    </class>
    <class>
        <name>io.moquette.broker.InflightResender.ResendNotAckedPublishes</name>
        <comment>Placeholder event to resend not-acked publish messages in the in flight window.</comment>
        <owner>process</owner>
    </class>
    <class>
        <name>io.moquette.broker.MemoryQueueRepository</name>
        <owner>process</owner>
        <method>
            <name>createQueue</name>
            <comment></comment>
            <returntype>java.util.Queue</returntype>
            <parameter>
                <name>cli</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>clean</name>
                <type>boolean</type>
            </parameter>
        </method>
    </class>
    <class>
        <name>io.moquette.broker.MoquetteIdleTimeoutHandler</name>
        <owner>process</owner>
        <method>
            <name>disconnect</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>read</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelReadComplete</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>deregister</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>channelActive</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>exceptionCaught</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.lang.Throwable</type>
            </parameter>
        </method>
        <method>
            <name>handlerAdded</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>isSharable</name>
            <comment></comment>
            <returntype>boolean</returntype>
        </method>
        <method>
            <name>ensureNotSharable</name>
            <comment></comment>
            <returntype>void</returntype>
        </method>
        <method>
            <name>handlerRemoved</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelRead</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.lang.Object</type>
            </parameter>
        </method>
        <method>
            <name>channelWritabilityChanged</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelInactive</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelUnregistered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>bind</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.net.SocketAddress</type>
            </parameter>
            <parameter>
                <name>arg2</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>flush</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>userEventTriggered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>evt</name>
                <type>java.lang.Object</type>
            </parameter>
        </method>
        <method>
            <name>channelRegistered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>close</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>write</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.lang.Object</type>
            </parameter>
            <parameter>
                <name>arg2</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>connect</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.net.SocketAddress</type>
            </parameter>
            <parameter>
                <name>arg2</name>
                <type>java.net.SocketAddress</type>
            </parameter>
            <parameter>
                <name>arg3</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
    </class>
    <class>
        <name>io.moquette.broker.NettyUtils</name>
        <comment>Some Netty's channels utilities.</comment>
        <owner>process</owner>
        <method>
            <name>getAttribute</name>
            <comment></comment>
            <returntype>java.lang.Object</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>key</name>
                <type>io.netty.util.AttributeKey</type>
            </parameter>
        </method>
        <method>
            <name>keepAlive</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>channel</name>
                <type>io.netty.channel.Channel</type>
            </parameter>
            <parameter>
                <name>keepAlive</name>
                <type>int</type>
            </parameter>
        </method>
        <method>
            <name>clientID</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>channel</name>
                <type>io.netty.channel.Channel</type>
            </parameter>
            <parameter>
                <name>clientID</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
        <method>
            <name>userName</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>channel</name>
                <type>io.netty.channel.Channel</type>
            </parameter>
            <parameter>
                <name>username</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
        <method>
            <name>cleanSession</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>channel</name>
                <type>io.netty.channel.Channel</type>
            </parameter>
            <parameter>
                <name>cleanSession</name>
                <type>boolean</type>
            </parameter>
        </method>
        <field>
            <name>ATTR_USERNAME</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
    </class>
    <class>
        <name>io.moquette.broker.NewNettyMQTTHandler</name>
        <owner>process</owner>
        <method>
            <name>channelReadComplete</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelActive</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>exceptionCaught</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>cause</name>
                <type>java.lang.Throwable</type>
            </parameter>
        </method>
        <method>
            <name>handlerAdded</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>isSharable</name>
            <comment></comment>
            <returntype>boolean</returntype>
        </method>
        <method>
            <name>ensureNotSharable</name>
            <comment></comment>
            <returntype>void</returntype>
        </method>
        <method>
            <name>handlerRemoved</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelRead</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>message</name>
                <type>java.lang.Object</type>
            </parameter>
        </method>
        <method>
            <name>channelWritabilityChanged</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelInactive</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelUnregistered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>userEventTriggered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>evt</name>
                <type>java.lang.Object</type>
            </parameter>
        </method>
        <method>
            <name>channelRegistered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
    </class>
    <class>
        <name>io.moquette.broker.RetainedMessage</name>
        <owner>process</owner>
        <method>
            <name>qosLevel</name>
            <comment></comment>
            <returntype EnumType="true">io.netty.handler.codec.mqtt.MqttQoS</returntype>
        </method>
        <property>
            <name>Payload</name>
            <returntype>byte[]</returntype>
            <comment></comment>
        </property>
    </class>
    <class>
        <name>io.moquette.broker.Server</name>
        <owner>process</owner>
        <method>
            <name>addInterceptHandler</name>
            <comment>SPI method used by Broker embedded applications to add intercept handlers.
interceptHandler: the handler to add.</comment>
            <returntype>void</returntype>
            <parameter>
                <name>interceptHandler</name>
                <type>io.moquette.interception.InterceptHandler</type>
            </parameter>
        </method>
        <method>
            <name>startServer</name>
            <comment>Starts Moquette bringing the configuration from the file located at m_config/moquette.conf</comment>
            <returntype>void</returntype>
        </method>
        <method>
            <name>internalPublish</name>
            <comment>Use the broker to publish a message. It's intended for embedding applications. It can be used
 only after the integration is correctly started with startServer.
msg: the message to forward.
clientId: the id of the sending integration.</comment>
            <returntype>void</returntype>
            <parameter>
                <name>msg</name>
                <type>io.netty.handler.codec.mqtt.MqttPublishMessage</type>
            </parameter>
            <parameter>
                <name>clientId</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
        <method>
            <name>stopServer</name>
            <comment></comment>
            <returntype>void</returntype>
        </method>
        <method>
            <name>removeInterceptHandler</name>
            <comment>SPI method used by Broker embedded applications to remove intercept handlers.
interceptHandler: the handler to remove.</comment>
            <returntype>void</returntype>
            <parameter>
                <name>interceptHandler</name>
                <type>io.moquette.interception.InterceptHandler</type>
            </parameter>
        </method>
        <method>
            <name>main</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>args</name>
                <type>java.lang.String[]</type>
            </parameter>
        </method>
    </class>
    <class>
        <name>io.moquette.broker.SessionCorruptedException</name>
        <owner>process</owner>
        <method>
            <name>printStackTrace</name>
            <comment></comment>
            <returntype>void</returntype>
        </method>
        <method>
            <name>addSuppressed</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>java.lang.Throwable</type>
            </parameter>
        </method>
        <method>
            <name>initCause</name>
            <comment></comment>
            <returntype>java.lang.Throwable</returntype>
            <parameter>
                <name>arg0</name>
                <type>java.lang.Throwable</type>
            </parameter>
        </method>
        <method>
            <name>toString</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </method>
        <method>
            <name>fillInStackTrace</name>
            <comment></comment>
            <returntype>java.lang.Throwable</returntype>
        </method>
        <property>
            <name>Message</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
        <property>
            <name>StackTrace</name>
            <returntype>java.lang.StackTraceElement[]</returntype>
            <parameter>
                <name>arg0</name>
                <type>java.lang.StackTraceElement[]</type>
            </parameter>
            <comment></comment>
        </property>
        <property>
            <name>Suppressed</name>
            <returntype>java.lang.Throwable[]</returntype>
            <comment></comment>
        </property>
        <property>
            <name>Cause</name>
            <returntype>java.lang.Throwable</returntype>
            <comment></comment>
        </property>
        <property>
            <name>LocalizedMessage</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
    </class>
    <class>
        <name>io.moquette.broker.SessionRegistry</name>
        <owner>process</owner>
        <method>
            <name>disconnect</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>clientID</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
        <method>
            <name>remove</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>clientID</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
    </class>
    <class>
        <name>io.moquette.broker.SessionRegistry.EnqueuedMessage</name>
        <owner>process</owner>
    </class>
    <class>
        <name>io.moquette.broker.Utils</name>
        <comment>Utility static methods, like Map get with default value, or elvis operator.</comment>
        <owner>process</owner>
        <method>
            <name>readBytesAndRewind</name>
            <comment></comment>
            <returntype>byte[]</returntype>
            <parameter>
                <name>payload</name>
                <type>io.netty.buffer.ByteBuf</type>
            </parameter>
        </method>
        <method>
            <name>defaultGet</name>
            <comment></comment>
            <returntype>T</returntype>
            <parameter>
                <name>map</name>
                <type>java.util.Map</type>
            </parameter>
            <parameter>
                <name>key</name>
                <type>K</type>
            </parameter>
            <parameter>
                <name>defaultValue</name>
                <type>T</type>
            </parameter>
        </method>
        <method>
            <name>messageId</name>
            <comment></comment>
            <returntype>int</returntype>
            <parameter>
                <name>msg</name>
                <type>io.netty.handler.codec.mqtt.MqttMessage</type>
            </parameter>
        </method>
    </class>
    <class>
        <name>io.moquette.broker.config.ClasspathResourceLoader</name>
        <owner>process</owner>
        <method>
            <name>loadResource</name>
            <comment></comment>
            <returntype>java.io.Reader</returntype>
            <parameter>
                <name>relativePath</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
        <method>
            <name>loadDefaultResource</name>
            <comment></comment>
            <returntype>java.io.Reader</returntype>
        </method>
        <property>
            <name>Name</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
    </class>
    <class>
        <name>io.moquette.broker.config.FileResourceLoader</name>
        <owner>process</owner>
        <method>
            <name>loadResource</name>
            <comment></comment>
            <returntype>java.io.Reader</returntype>
            <parameter>
                <name>relativePath</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
        <method>
            <name>loadDefaultResource</name>
            <comment></comment>
            <returntype>java.io.Reader</returntype>
        </method>
        <property>
            <name>Name</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
    </class>
    <class>
        <name>io.moquette.broker.config.IConfig</name>
        <comment>Base interface for all configuration implementations (filesystem, memory or classpath)</comment>
        <owner>process</owner>
        <method>
            <name>getProperty</name>
            <comment>Same semantic of Properties
name: property name.
Return type: @return:property value.</comment>
            <returntype>java.lang.String</returntype>
            <parameter>
                <name>name</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
        <method>
            <name>boolProp</name>
            <comment></comment>
            <returntype>boolean</returntype>
            <parameter>
                <name>propertyName</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>defaultValue</name>
                <type>boolean</type>
            </parameter>
        </method>
        <method>
            <name>setProperty</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>name</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>value</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
        <method>
            <name>intProp</name>
            <comment></comment>
            <returntype>int</returntype>
            <parameter>
                <name>propertyName</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>defaultValue</name>
                <type>int</type>
            </parameter>
        </method>
        <property>
            <name>ResourceLoader</name>
            <returntype>io.moquette.broker.config.IResourceLoader</returntype>
            <comment></comment>
        </property>
        <field>
            <name>DEFAULT_CONFIG</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
    </class>
    <class>
        <name>io.moquette.broker.config.IResourceLoader.ResourceIsDirectoryException</name>
        <owner>process</owner>
        <method>
            <name>printStackTrace</name>
            <comment></comment>
            <returntype>void</returntype>
        </method>
        <method>
            <name>addSuppressed</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>java.lang.Throwable</type>
            </parameter>
        </method>
        <method>
            <name>initCause</name>
            <comment></comment>
            <returntype>java.lang.Throwable</returntype>
            <parameter>
                <name>arg0</name>
                <type>java.lang.Throwable</type>
            </parameter>
        </method>
        <method>
            <name>toString</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </method>
        <method>
            <name>fillInStackTrace</name>
            <comment></comment>
            <returntype>java.lang.Throwable</returntype>
        </method>
        <property>
            <name>Message</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
        <property>
            <name>StackTrace</name>
            <returntype>java.lang.StackTraceElement[]</returntype>
            <parameter>
                <name>arg0</name>
                <type>java.lang.StackTraceElement[]</type>
            </parameter>
            <comment></comment>
        </property>
        <property>
            <name>Suppressed</name>
            <returntype>java.lang.Throwable[]</returntype>
            <comment></comment>
        </property>
        <property>
            <name>Cause</name>
            <returntype>java.lang.Throwable</returntype>
            <comment></comment>
        </property>
        <property>
            <name>LocalizedMessage</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
    </class>
    <class>
        <name>io.moquette.broker.config.MemoryConfig</name>
        <comment>Configuration backed by memory.</comment>
        <owner>process</owner>
        <method>
            <name>getProperty</name>
            <comment>Same semantic of Properties
name: property name.
Return type: @return:property value.</comment>
            <returntype>java.lang.String</returntype>
            <parameter>
                <name>name</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
        <method>
            <name>boolProp</name>
            <comment></comment>
            <returntype>boolean</returntype>
            <parameter>
                <name>propertyName</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>defaultValue</name>
                <type>boolean</type>
            </parameter>
        </method>
        <method>
            <name>setProperty</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>name</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>value</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
        <method>
            <name>intProp</name>
            <comment></comment>
            <returntype>int</returntype>
            <parameter>
                <name>propertyName</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>defaultValue</name>
                <type>int</type>
            </parameter>
        </method>
        <property>
            <name>ResourceLoader</name>
            <returntype>io.moquette.broker.config.IResourceLoader</returntype>
            <comment></comment>
        </property>
        <field>
            <name>DEFAULT_CONFIG</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
    </class>
    <class>
        <name>io.moquette.broker.config.ResourceLoaderConfig</name>
        <comment>Configuration that loads config stream from a {@link IResourceLoader} instance.</comment>
        <owner>process</owner>
        <method>
            <name>getProperty</name>
            <comment>Same semantic of Properties
name: property name.
Return type: @return:property value.</comment>
            <returntype>java.lang.String</returntype>
            <parameter>
                <name>name</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
        <method>
            <name>boolProp</name>
            <comment></comment>
            <returntype>boolean</returntype>
            <parameter>
                <name>propertyName</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>defaultValue</name>
                <type>boolean</type>
            </parameter>
        </method>
        <method>
            <name>setProperty</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>name</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>value</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
        <method>
            <name>intProp</name>
            <comment></comment>
            <returntype>int</returntype>
            <parameter>
                <name>propertyName</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>defaultValue</name>
                <type>int</type>
            </parameter>
        </method>
        <property>
            <name>ResourceLoader</name>
            <returntype>io.moquette.broker.config.IResourceLoader</returntype>
            <comment></comment>
        </property>
        <field>
            <name>DEFAULT_CONFIG</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </field>
    </class>
    <class>
        <name>io.moquette.broker.metrics.BytesMetrics</name>
        <owner>process</owner>
        <method>
            <name>wroteBytes</name>
            <comment></comment>
            <returntype>long</returntype>
        </method>
        <method>
            <name>readBytes</name>
            <comment></comment>
            <returntype>long</returntype>
        </method>
    </class>
    <class>
        <name>io.moquette.broker.metrics.BytesMetricsCollector</name>
        <comment>Collects all the metrics from the various pipeline.</comment>
        <owner>process</owner>
        <method>
            <name>sumWroteBytes</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>count</name>
                <type>long</type>
            </parameter>
        </method>
        <method>
            <name>sumReadBytes</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>count</name>
                <type>long</type>
            </parameter>
        </method>
        <method>
            <name>computeMetrics</name>
            <comment></comment>
            <returntype>io.moquette.broker.metrics.BytesMetrics</returntype>
        </method>
    </class>
    <class>
        <name>io.moquette.broker.metrics.BytesMetricsHandler</name>
        <owner>process</owner>
        <method>
            <name>disconnect</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>read</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelReadComplete</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>getBytesMetrics</name>
            <comment></comment>
            <returntype>io.moquette.broker.metrics.BytesMetrics</returntype>
            <parameter>
                <name>channel</name>
                <type>io.netty.channel.Channel</type>
            </parameter>
        </method>
        <method>
            <name>deregister</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>channelActive</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>exceptionCaught</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.lang.Throwable</type>
            </parameter>
        </method>
        <method>
            <name>handlerAdded</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>isSharable</name>
            <comment></comment>
            <returntype>boolean</returntype>
        </method>
        <method>
            <name>ensureNotSharable</name>
            <comment></comment>
            <returntype>void</returntype>
        </method>
        <method>
            <name>handlerRemoved</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelRead</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>msg</name>
                <type>java.lang.Object</type>
            </parameter>
        </method>
        <method>
            <name>channelWritabilityChanged</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelInactive</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelUnregistered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>bind</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.net.SocketAddress</type>
            </parameter>
            <parameter>
                <name>arg2</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>flush</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>userEventTriggered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.lang.Object</type>
            </parameter>
        </method>
        <method>
            <name>channelRegistered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>write</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>msg</name>
                <type>java.lang.Object</type>
            </parameter>
            <parameter>
                <name>promise</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>close</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>promise</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>connect</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.net.SocketAddress</type>
            </parameter>
            <parameter>
                <name>arg2</name>
                <type>java.net.SocketAddress</type>
            </parameter>
            <parameter>
                <name>arg3</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
    </class>
    <class>
        <name>io.moquette.broker.metrics.DropWizardMetricsHandler</name>
        <comment>Pipeline handler use to track some MQTT metrics.</comment>
        <owner>process</owner>
        <method>
            <name>init</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>props</name>
                <type>io.moquette.broker.config.IConfig</type>
            </parameter>
        </method>
        <method>
            <name>channelReadComplete</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelActive</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>exceptionCaught</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.lang.Throwable</type>
            </parameter>
        </method>
        <method>
            <name>handlerAdded</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>isSharable</name>
            <comment></comment>
            <returntype>boolean</returntype>
        </method>
        <method>
            <name>ensureNotSharable</name>
            <comment></comment>
            <returntype>void</returntype>
        </method>
        <method>
            <name>handlerRemoved</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelRead</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>message</name>
                <type>java.lang.Object</type>
            </parameter>
        </method>
        <method>
            <name>channelWritabilityChanged</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelInactive</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelUnregistered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>userEventTriggered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.lang.Object</type>
            </parameter>
        </method>
        <method>
            <name>channelRegistered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
    </class>
    <class>
        <name>io.moquette.broker.metrics.MessageMetrics</name>
        <owner>process</owner>
        <method>
            <name>messagesRead</name>
            <comment></comment>
            <returntype>long</returntype>
        </method>
        <method>
            <name>messagesWrote</name>
            <comment></comment>
            <returntype>long</returntype>
        </method>
    </class>
    <class>
        <name>io.moquette.broker.metrics.MessageMetricsCollector</name>
        <comment>Collects all the metrics from the various pipeline.</comment>
        <owner>process</owner>
        <method>
            <name>sumWroteMessages</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>count</name>
                <type>long</type>
            </parameter>
        </method>
        <method>
            <name>sumReadMessages</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>count</name>
                <type>long</type>
            </parameter>
        </method>
        <method>
            <name>computeMetrics</name>
            <comment></comment>
            <returntype>io.moquette.broker.metrics.MessageMetrics</returntype>
        </method>
    </class>
    <class>
        <name>io.moquette.broker.metrics.MessageMetricsHandler</name>
        <owner>process</owner>
        <method>
            <name>disconnect</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>read</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelReadComplete</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>deregister</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>channelActive</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>exceptionCaught</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.lang.Throwable</type>
            </parameter>
        </method>
        <method>
            <name>handlerAdded</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>isSharable</name>
            <comment></comment>
            <returntype>boolean</returntype>
        </method>
        <method>
            <name>ensureNotSharable</name>
            <comment></comment>
            <returntype>void</returntype>
        </method>
        <method>
            <name>handlerRemoved</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelRead</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>msg</name>
                <type>java.lang.Object</type>
            </parameter>
        </method>
        <method>
            <name>channelWritabilityChanged</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelInactive</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelUnregistered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>bind</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.net.SocketAddress</type>
            </parameter>
            <parameter>
                <name>arg2</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>getMessageMetrics</name>
            <comment></comment>
            <returntype>io.moquette.broker.metrics.MessageMetrics</returntype>
            <parameter>
                <name>channel</name>
                <type>io.netty.channel.Channel</type>
            </parameter>
        </method>
        <method>
            <name>flush</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>userEventTriggered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.lang.Object</type>
            </parameter>
        </method>
        <method>
            <name>channelRegistered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>write</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>msg</name>
                <type>java.lang.Object</type>
            </parameter>
            <parameter>
                <name>promise</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>close</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>promise</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>connect</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.net.SocketAddress</type>
            </parameter>
            <parameter>
                <name>arg2</name>
                <type>java.net.SocketAddress</type>
            </parameter>
            <parameter>
                <name>arg3</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
    </class>
    <class>
        <name>io.moquette.broker.metrics.MQTTMessageLogger</name>
        <owner>process</owner>
        <method>
            <name>disconnect</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>read</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelReadComplete</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>deregister</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>channelActive</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>exceptionCaught</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.lang.Throwable</type>
            </parameter>
        </method>
        <method>
            <name>handlerAdded</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>isSharable</name>
            <comment></comment>
            <returntype>boolean</returntype>
        </method>
        <method>
            <name>ensureNotSharable</name>
            <comment></comment>
            <returntype>void</returntype>
        </method>
        <method>
            <name>handlerRemoved</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelRead</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>message</name>
                <type>java.lang.Object</type>
            </parameter>
        </method>
        <method>
            <name>channelWritabilityChanged</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelInactive</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>channelUnregistered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>bind</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.net.SocketAddress</type>
            </parameter>
            <parameter>
                <name>arg2</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>flush</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>userEventTriggered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.lang.Object</type>
            </parameter>
        </method>
        <method>
            <name>channelRegistered</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
        </method>
        <method>
            <name>write</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>ctx</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>msg</name>
                <type>java.lang.Object</type>
            </parameter>
            <parameter>
                <name>promise</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>close</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
        <method>
            <name>connect</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>arg0</name>
                <type>io.netty.channel.ChannelHandlerContext</type>
            </parameter>
            <parameter>
                <name>arg1</name>
                <type>java.net.SocketAddress</type>
            </parameter>
            <parameter>
                <name>arg2</name>
                <type>java.net.SocketAddress</type>
            </parameter>
            <parameter>
                <name>arg3</name>
                <type>io.netty.channel.ChannelPromise</type>
            </parameter>
        </method>
    </class>
    <class>
        <name>io.moquette.broker.security.AcceptAllAuthenticator</name>
        <owner>process</owner>
        <method>
            <name>checkValid</name>
            <comment></comment>
            <returntype>boolean</returntype>
            <parameter>
                <name>clientId</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>username</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>password</name>
                <type>byte[]</type>
            </parameter>
        </method>
    </class>
    <class>
        <name>io.moquette.broker.security.ACLFileParser</name>
        <comment>Parses the acl configuration file. If a line starts with # it's comment. Blank lines are skipped.
 The format is "topic [read|write|readwrite] {topic name}"</comment>
        <owner>process</owner>
        <method>
            <name>parse</name>
            <comment>Parse the configuration from file.
file: to parse
Return type: @return:the collector of authorizations form reader passed into.</comment>
            <returntype>io.moquette.broker.security.AuthorizationsCollector</returntype>
            <parameter>
                <name>file</name>
                <type>java.io.File</type>
            </parameter>
        </method>
    </class>
    <class>
        <name>io.moquette.broker.security.Authorization</name>
        <comment>Carries the read/write authorization to topics for the users.</comment>
        <owner>process</owner>
        <method>
            <name>hashCode</name>
            <comment></comment>
            <returntype>int</returntype>
        </method>
        <method>
            <name>equals</name>
            <comment></comment>
            <returntype>boolean</returntype>
            <parameter>
                <name>o</name>
                <type>java.lang.Object</type>
            </parameter>
        </method>
        <method>
            <name>grant</name>
            <comment></comment>
            <returntype>boolean</returntype>
            <parameter>
                <name>desiredPermission</name>
                <type EnumType="true">io.moquette.broker.security.Authorization.Permission</type>
            </parameter>
        </method>
        <field>
            <name>topic</name>
            <comment></comment>
            <returntype>io.moquette.broker.subscriptions.Topic</returntype>
        </field>
        <field>
            <name>permission</name>
            <comment></comment>
            <returntype EnumType="true">io.moquette.broker.security.Authorization.Permission</returntype>
        </field>
    </class>
    <class>
        <name>io.moquette.broker.security.DBAuthenticator</name>
        <comment>Load user credentials from a SQL database. sql driver must be provided at runtime</comment>
        <owner>process</owner>
        <method>
            <name>checkValid</name>
            <comment></comment>
            <returntype>boolean</returntype>
            <parameter>
                <name>clientId</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>username</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>password</name>
                <type>byte[]</type>
            </parameter>
        </method>
    </class>
    <class>
        <name>io.moquette.broker.security.DenyAllAuthorizatorPolicy</name>
        <owner>process</owner>
        <method>
            <name>canRead</name>
            <comment></comment>
            <returntype>boolean</returntype>
            <parameter>
                <name>topic</name>
                <type>io.moquette.broker.subscriptions.Topic</type>
            </parameter>
            <parameter>
                <name>user</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>client</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
        <method>
            <name>canWrite</name>
            <comment></comment>
            <returntype>boolean</returntype>
            <parameter>
                <name>topic</name>
                <type>io.moquette.broker.subscriptions.Topic</type>
            </parameter>
            <parameter>
                <name>user</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>client</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
    </class>
    <class>
        <name>io.moquette.broker.security.FileAuthenticator</name>
        <comment>Load user credentials from a text file. Each line of the file is formatted as
 "[username]:[sha256(password)]". The username mustn't contains : char.

 To encode your password from command line on Linux systems, you could use:

 &lt;pre&gt;
     echo -n "yourpassword" | sha256sum
 &lt;/pre&gt;

 NB -n is important because echo append a newline by default at the of string. -n avoid this
 behaviour.</comment>
        <owner>process</owner>
        <method>
            <name>checkValid</name>
            <comment></comment>
            <returntype>boolean</returntype>
            <parameter>
                <name>clientId</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>username</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>password</name>
                <type>byte[]</type>
            </parameter>
        </method>
        <field>
            <name>LOG</name>
            <comment></comment>
            <returntype>org.slf4j.Logger</returntype>
        </field>
    </class>
    <class>
        <name>io.moquette.broker.security.PermitAllAuthorizatorPolicy</name>
        <owner>process</owner>
        <method>
            <name>canRead</name>
            <comment></comment>
            <returntype>boolean</returntype>
            <parameter>
                <name>topic</name>
                <type>io.moquette.broker.subscriptions.Topic</type>
            </parameter>
            <parameter>
                <name>user</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>client</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
        <method>
            <name>canWrite</name>
            <comment></comment>
            <returntype>boolean</returntype>
            <parameter>
                <name>topic</name>
                <type>io.moquette.broker.subscriptions.Topic</type>
            </parameter>
            <parameter>
                <name>user</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>client</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
    </class>
    <class>
        <name>io.moquette.broker.security.ResourceAuthenticator</name>
        <comment>Load user credentials from a text resource. Each line of the file is formatted as
 "[username]:[sha256(password)]". The username mustn't contains : char.

 To encode your password from command line on Linux systems, you could use:

 &lt;pre&gt;
     echo -n "yourpassword" | sha256sum
 &lt;/pre&gt;

 NB -n is important because echo append a newline by default at the of string. -n avoid this
 behaviour.</comment>
        <owner>process</owner>
        <method>
            <name>checkValid</name>
            <comment></comment>
            <returntype>boolean</returntype>
            <parameter>
                <name>clientId</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>username</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>password</name>
                <type>byte[]</type>
            </parameter>
        </method>
        <field>
            <name>LOG</name>
            <comment></comment>
            <returntype>org.slf4j.Logger</returntype>
        </field>
    </class>
    <class>
        <name>io.moquette.broker.subscriptions.CTrie</name>
        <owner>process</owner>
        <method>
            <name>dumpTree</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </method>
        <method>
            <name>size</name>
            <comment></comment>
            <returntype>int</returntype>
        </method>
        <method>
            <name>addToTree</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>newSubscription</name>
                <type>io.moquette.broker.subscriptions.Subscription</type>
            </parameter>
        </method>
        <method>
            <name>removeFromTree</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>topic</name>
                <type>io.moquette.broker.subscriptions.Topic</type>
            </parameter>
            <parameter>
                <name>clientID</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
        <method>
            <name>recursiveMatch</name>
            <comment></comment>
            <returntype>java.util.Set</returntype>
            <parameter>
                <name>topic</name>
                <type>io.moquette.broker.subscriptions.Topic</type>
            </parameter>
        </method>
    </class>
    <class>
        <name>io.moquette.broker.subscriptions.CTrieSubscriptionDirectory</name>
        <owner>process</owner>
        <method>
            <name>add</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>newSubscription</name>
                <type>io.moquette.broker.subscriptions.Subscription</type>
            </parameter>
        </method>
        <method>
            <name>init</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>subscriptionsRepository</name>
                <type>io.moquette.broker.ISubscriptionsRepository</type>
            </parameter>
        </method>
        <method>
            <name>dumpTree</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </method>
        <method>
            <name>size</name>
            <comment></comment>
            <returntype>int</returntype>
        </method>
        <method>
            <name>removeSubscription</name>
            <comment>Removes subscription from CTrie, adds TNode when the last client unsubscribes, then calls for cleanTomb in a
 separate atomic CAS operation.
topic: the subscription's topic to remove.
clientID: the Id of client owning the subscription.</comment>
            <returntype>void</returntype>
            <parameter>
                <name>topic</name>
                <type>io.moquette.broker.subscriptions.Topic</type>
            </parameter>
            <parameter>
                <name>clientID</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
        <method>
            <name>matchQosSharpening</name>
            <comment></comment>
            <returntype>java.util.Set</returntype>
            <parameter>
                <name>topic</name>
                <type>io.moquette.broker.subscriptions.Topic</type>
            </parameter>
        </method>
        <method>
            <name>matchWithoutQosSharpening</name>
            <comment>Given a topic string return the clients subscriptions that matches it. Topic string can't
 contain character # and + because they are reserved to listeners subscriptions, and not topic
 publishing.
topic: to use fo searching matching subscriptions.
Return type: @return:the list of matching subscriptions, or empty if not matching.</comment>
            <returntype>java.util.Set</returntype>
            <parameter>
                <name>topic</name>
                <type>io.moquette.broker.subscriptions.Topic</type>
            </parameter>
        </method>
    </class>
    <class>
        <name>io.moquette.broker.subscriptions.Subscription</name>
        <comment>Maintain the information about which Topic a certain ClientID is subscribed and at which QoS</comment>
        <owner>process</owner>
        <method>
            <name>hashCode</name>
            <comment></comment>
            <returntype>int</returntype>
        </method>
        <method>
            <name>equals</name>
            <comment></comment>
            <returntype>boolean</returntype>
            <parameter>
                <name>o</name>
                <type>java.lang.Object</type>
            </parameter>
        </method>
        <method>
            <name>clone</name>
            <comment></comment>
            <returntype>io.moquette.broker.subscriptions.Subscription</returntype>
        </method>
        <method>
            <name>toString</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </method>
        <method>
            <name>qosLessThan</name>
            <comment></comment>
            <returntype>boolean</returntype>
            <parameter>
                <name>sub</name>
                <type>io.moquette.broker.subscriptions.Subscription</type>
            </parameter>
        </method>
        <property>
            <name>RequestedQos</name>
            <returntype EnumType="true">io.netty.handler.codec.mqtt.MqttQoS</returntype>
            <comment></comment>
        </property>
        <property>
            <name>TopicFilter</name>
            <returntype>io.moquette.broker.subscriptions.Topic</returntype>
            <comment></comment>
        </property>
        <property>
            <name>ClientId</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
    </class>
    <class>
        <name>io.moquette.broker.subscriptions.Token</name>
        <comment>Internal use only class.</comment>
        <owner>process</owner>
        <method>
            <name>hashCode</name>
            <comment></comment>
            <returntype>int</returntype>
        </method>
        <method>
            <name>equals</name>
            <comment></comment>
            <returntype>boolean</returntype>
            <parameter>
                <name>obj</name>
                <type>java.lang.Object</type>
            </parameter>
        </method>
        <method>
            <name>name</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </method>
        <method>
            <name>match</name>
            <comment></comment>
            <returntype>boolean</returntype>
            <parameter>
                <name>t</name>
                <type>io.moquette.broker.subscriptions.Token</type>
            </parameter>
        </method>
        <method>
            <name>toString</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </method>
    </class>
    <class>
        <name>io.moquette.broker.subscriptions.Topic</name>
        <owner>process</owner>
        <method>
            <name>asTopic</name>
            <comment>Factory method
s: the topic string (es "/a/b").
Return type: @return:the created Topic instance.</comment>
            <returntype>io.moquette.broker.subscriptions.Topic</returntype>
            <parameter>
                <name>s</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
        <method>
            <name>headToken</name>
            <comment></comment>
            <returntype>io.moquette.broker.subscriptions.Token</returntype>
        </method>
        <method>
            <name>hashCode</name>
            <comment></comment>
            <returntype>int</returntype>
        </method>
        <method>
            <name>isValid</name>
            <comment></comment>
            <returntype>boolean</returntype>
        </method>
        <method>
            <name>equals</name>
            <comment></comment>
            <returntype>boolean</returntype>
            <parameter>
                <name>obj</name>
                <type>java.lang.Object</type>
            </parameter>
        </method>
        <method>
            <name>isEmpty</name>
            <comment></comment>
            <returntype>boolean</returntype>
        </method>
        <method>
            <name>match</name>
            <comment>Verify if the 2 topics matching respecting the rules of MQTT Appendix A
subscriptionTopic: the topic filter of the subscription
Return type: @return:true if the two topics match.</comment>
            <returntype>boolean</returntype>
            <parameter>
                <name>subscriptionTopic</name>
                <type>io.moquette.broker.subscriptions.Topic</type>
            </parameter>
        </method>
        <method>
            <name>exceptHeadToken</name>
            <comment>
Return type: @return:a new Topic corresponding to this less than the head token</comment>
            <returntype>io.moquette.broker.subscriptions.Topic</returntype>
        </method>
        <method>
            <name>toString</name>
            <comment></comment>
            <returntype>java.lang.String</returntype>
        </method>
        <property>
            <name>Tokens</name>
            <returntype>java.util.List</returntype>
            <comment></comment>
        </property>
    </class>
    <class>
        <name>io.moquette.interception.AbstractInterceptHandler</name>
        <comment>Basic abstract class usefull to avoid empty methods creation in subclasses.</comment>
        <owner>process</owner>
        <method>
            <name>onUnsubscribe</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>msg</name>
                <type>io.moquette.interception.messages.InterceptUnsubscribeMessage</type>
            </parameter>
        </method>
        <method>
            <name>onConnect</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>msg</name>
                <type>io.moquette.interception.messages.InterceptConnectMessage</type>
            </parameter>
        </method>
        <method>
            <name>onDisconnect</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>msg</name>
                <type>io.moquette.interception.messages.InterceptDisconnectMessage</type>
            </parameter>
        </method>
        <method>
            <name>onSubscribe</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>msg</name>
                <type>io.moquette.interception.messages.InterceptSubscribeMessage</type>
            </parameter>
        </method>
        <method>
            <name>onMessageAcknowledged</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>msg</name>
                <type>io.moquette.interception.messages.InterceptAcknowledgedMessage</type>
            </parameter>
        </method>
        <method>
            <name>onConnectionLost</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>msg</name>
                <type>io.moquette.interception.messages.InterceptConnectionLostMessage</type>
            </parameter>
        </method>
        <method>
            <name>onPublish</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>msg</name>
                <type>io.moquette.interception.messages.InterceptPublishMessage</type>
            </parameter>
        </method>
        <property>
            <name>InterceptedMessageTypes</name>
            <returntype>java.lang.Class[]</returntype>
            <comment></comment>
        </property>
    </class>
    <class>
        <name>io.moquette.interception.BrokerInterceptor</name>
        <comment>An interceptor that execute the interception tasks asynchronously.</comment>
        <owner>process</owner>
        <method>
            <name>addInterceptHandler</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>interceptHandler</name>
                <type>io.moquette.interception.InterceptHandler</type>
            </parameter>
        </method>
        <method>
            <name>notifyTopicUnsubscribed</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>topic</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>clientID</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>username</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
        <method>
            <name>notifyTopicPublished</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>msg</name>
                <type>io.netty.handler.codec.mqtt.MqttPublishMessage</type>
            </parameter>
            <parameter>
                <name>clientID</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>username</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
        <method>
            <name>notifyTopicSubscribed</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>sub</name>
                <type>io.moquette.broker.subscriptions.Subscription</type>
            </parameter>
            <parameter>
                <name>username</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
        <method>
            <name>removeInterceptHandler</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>interceptHandler</name>
                <type>io.moquette.interception.InterceptHandler</type>
            </parameter>
        </method>
        <method>
            <name>notifyMessageAcknowledged</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>msg</name>
                <type>io.moquette.interception.messages.InterceptAcknowledgedMessage</type>
            </parameter>
        </method>
        <method>
            <name>notifyClientConnectionLost</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>clientID</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>username</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
        <method>
            <name>notifyClientConnected</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>msg</name>
                <type>io.netty.handler.codec.mqtt.MqttConnectMessage</type>
            </parameter>
        </method>
        <method>
            <name>notifyClientDisconnected</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>clientID</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>username</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
    </class>
    <class>
        <name>io.moquette.interception.messages.InterceptAbstractMessage</name>
        <owner>process</owner>
        <method>
            <name>isDupFlag</name>
            <comment></comment>
            <returntype>boolean</returntype>
        </method>
        <method>
            <name>isRetainFlag</name>
            <comment></comment>
            <returntype>boolean</returntype>
        </method>
        <property>
            <name>Qos</name>
            <returntype EnumType="true">io.netty.handler.codec.mqtt.MqttQoS</returntype>
            <comment></comment>
        </property>
    </class>
    <class>
        <name>io.moquette.interception.messages.InterceptAcknowledgedMessage</name>
        <owner>process</owner>
        <property>
            <name>Msg</name>
            <returntype>io.moquette.interception.messages.InterceptAcknowledgedMessage.StoredMessage</returntype>
            <comment></comment>
        </property>
        <property>
            <name>Username</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
        <property>
            <name>Topic</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
        <property>
            <name>PacketID</name>
            <returntype>int</returntype>
            <comment></comment>
        </property>
    </class>
    <class>
        <name>io.moquette.interception.messages.InterceptConnectionLostMessage</name>
        <owner>process</owner>
        <property>
            <name>Username</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
        <property>
            <name>ClientID</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
    </class>
    <class>
        <name>io.moquette.interception.messages.InterceptConnectMessage</name>
        <owner>process</owner>
        <method>
            <name>isDupFlag</name>
            <comment></comment>
            <returntype>boolean</returntype>
        </method>
        <method>
            <name>isWillRetain</name>
            <comment></comment>
            <returntype>boolean</returntype>
        </method>
        <method>
            <name>isPasswordFlag</name>
            <comment></comment>
            <returntype>boolean</returntype>
        </method>
        <method>
            <name>isCleanSession</name>
            <comment></comment>
            <returntype>boolean</returntype>
        </method>
        <method>
            <name>isWillFlag</name>
            <comment></comment>
            <returntype>boolean</returntype>
        </method>
        <method>
            <name>isRetainFlag</name>
            <comment></comment>
            <returntype>boolean</returntype>
        </method>
        <method>
            <name>isUserFlag</name>
            <comment></comment>
            <returntype>boolean</returntype>
        </method>
        <property>
            <name>WillTopic</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
        <property>
            <name>ProtocolName</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
        <property>
            <name>Qos</name>
            <returntype EnumType="true">io.netty.handler.codec.mqtt.MqttQoS</returntype>
            <comment></comment>
        </property>
        <property>
            <name>Username</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
        <property>
            <name>KeepAlive</name>
            <returntype>int</returntype>
            <comment></comment>
        </property>
        <property>
            <name>ClientID</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
        <property>
            <name>ProtocolVersion</name>
            <returntype>byte</returntype>
            <comment></comment>
        </property>
        <property>
            <name>WillQos</name>
            <returntype>byte</returntype>
            <comment></comment>
        </property>
        <property>
            <name>WillMessage</name>
            <returntype>byte[]</returntype>
            <comment></comment>
        </property>
        <property>
            <name>Password</name>
            <returntype>byte[]</returntype>
            <comment></comment>
        </property>
    </class>
    <class>
        <name>io.moquette.interception.messages.InterceptDisconnectMessage</name>
        <owner>process</owner>
        <property>
            <name>Username</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
        <property>
            <name>ClientID</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
    </class>
    <class>
        <name>io.moquette.interception.messages.InterceptPublishMessage</name>
        <owner>process</owner>
        <method>
            <name>isDupFlag</name>
            <comment></comment>
            <returntype>boolean</returntype>
        </method>
        <method>
            <name>isRetainFlag</name>
            <comment></comment>
            <returntype>boolean</returntype>
        </method>
        <property>
            <name>Qos</name>
            <returntype EnumType="true">io.netty.handler.codec.mqtt.MqttQoS</returntype>
            <comment></comment>
        </property>
        <property>
            <name>Username</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
        <property>
            <name>ClientID</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
        <property>
            <name>Payload</name>
            <returntype>io.netty.buffer.ByteBuf</returntype>
            <comment></comment>
        </property>
        <property>
            <name>TopicName</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
    </class>
    <class>
        <name>io.moquette.interception.messages.InterceptSubscribeMessage</name>
        <owner>process</owner>
        <property>
            <name>RequestedQos</name>
            <returntype EnumType="true">io.netty.handler.codec.mqtt.MqttQoS</returntype>
            <comment></comment>
        </property>
        <property>
            <name>TopicFilter</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
        <property>
            <name>Username</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
        <property>
            <name>ClientID</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
    </class>
    <class>
        <name>io.moquette.interception.messages.InterceptUnsubscribeMessage</name>
        <owner>process</owner>
        <property>
            <name>TopicFilter</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
        <property>
            <name>Username</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
        <property>
            <name>ClientID</name>
            <returntype>java.lang.String</returntype>
            <comment></comment>
        </property>
    </class>
    <class>
        <name>io.moquette.logging.LoggingUtils</name>
        <owner>process</owner>
        <method>
            <name>getInterceptorIds</name>
            <comment></comment>
            <returntype>java.util.Collection</returntype>
            <parameter>
                <name>handlers</name>
                <type>java.util.Collection</type>
            </parameter>
        </method>
    </class>
    <class>
        <name>io.moquette.persistence.H2Builder</name>
        <owner>process</owner>
        <method>
            <name>queueRepository</name>
            <comment></comment>
            <returntype>io.moquette.broker.IQueueRepository</returntype>
        </method>
        <method>
            <name>initStore</name>
            <comment></comment>
            <returntype>io.moquette.persistence.H2Builder</returntype>
        </method>
        <method>
            <name>subscriptionsRepository</name>
            <comment></comment>
            <returntype>io.moquette.broker.ISubscriptionsRepository</returntype>
        </method>
        <method>
            <name>retainedRepository</name>
            <comment></comment>
            <returntype>io.moquette.broker.IRetainedRepository</returntype>
        </method>
        <method>
            <name>closeStore</name>
            <comment></comment>
            <returntype>void</returntype>
        </method>
    </class>
    <class>
        <name>io.moquette.persistence.H2QueueRepository</name>
        <owner>process</owner>
        <method>
            <name>createQueue</name>
            <comment></comment>
            <returntype>java.util.Queue</returntype>
            <parameter>
                <name>cli</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>clean</name>
                <type>boolean</type>
            </parameter>
        </method>
    </class>
    <class>
        <name>io.moquette.persistence.H2RetainedRepository</name>
        <owner>process</owner>
        <method>
            <name>retainedOnTopic</name>
            <comment></comment>
            <returntype>java.util.List</returntype>
            <parameter>
                <name>topic</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
        <method>
            <name>retain</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>topic</name>
                <type>io.moquette.broker.subscriptions.Topic</type>
            </parameter>
            <parameter>
                <name>msg</name>
                <type>io.netty.handler.codec.mqtt.MqttPublishMessage</type>
            </parameter>
        </method>
        <method>
            <name>isEmpty</name>
            <comment></comment>
            <returntype>boolean</returntype>
        </method>
        <method>
            <name>cleanRetained</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>topic</name>
                <type>io.moquette.broker.subscriptions.Topic</type>
            </parameter>
        </method>
    </class>
    <class>
        <name>io.moquette.persistence.H2SubscriptionsRepository</name>
        <owner>process</owner>
        <method>
            <name>removeSubscription</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>topicFilter</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>clientID</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
        <method>
            <name>listAllSubscriptions</name>
            <comment></comment>
            <returntype>java.util.List</returntype>
        </method>
        <method>
            <name>addNewSubscription</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>subscription</name>
                <type>io.moquette.broker.subscriptions.Subscription</type>
            </parameter>
        </method>
    </class>
    <class>
        <name>io.moquette.persistence.MemorySubscriptionsRepository</name>
        <owner>process</owner>
        <method>
            <name>removeSubscription</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>topic</name>
                <type>java.lang.String</type>
            </parameter>
            <parameter>
                <name>clientID</name>
                <type>java.lang.String</type>
            </parameter>
        </method>
        <method>
            <name>listAllSubscriptions</name>
            <comment></comment>
            <returntype>java.util.List</returntype>
        </method>
        <method>
            <name>addNewSubscription</name>
            <comment></comment>
            <returntype>void</returntype>
            <parameter>
                <name>subscription</name>
                <type>io.moquette.broker.subscriptions.Subscription</type>
            </parameter>
        </method>
    </class>
    <version>2.02</version>
    <dependsOn>moquette2</dependsOn>
</root>
