├── .gitignore
├── Apps
├── MQTTClient
│ ├── MQTTClientApp.ico
│ ├── MQTTClientApp.lpi
│ ├── MQTTClientApp.lpr
│ ├── MQTTClientApp.lps
│ ├── MQTTClientApp.res
│ ├── cert
│ └── pkey
├── MQTTServer
│ ├── MQTTServerApp.ico
│ ├── MQTTServerApp.lpi
│ ├── MQTTServerApp.lpr
│ ├── MQTTServerApp.lps
│ ├── MQTTServerApp.res
│ ├── cert
│ └── pkey
└── MQTTServerCLI
│ ├── MQTTServerCLI.ico
│ ├── MQTTServerCLI.lpi
│ ├── MQTTServerCLI.lpr
│ ├── MQTTServerCLI.lps
│ └── MQTTServerCLI.res
├── Forms
├── clientfm.lfm
├── clientfm.pas
├── connectfm.lfm
├── connectfm.pas
├── createpasswordfm.lfm
├── createpasswordfm.pas
├── helpfm.lfm
├── helpfm.pas
├── passmanparamsfm.lfm
├── passmanparamsfm.pas
├── passwordmanfm.lfm
├── passwordmanfm.pas
├── publishfm.lfm
├── publishfm.pas
├── serverfm.lfm
├── serverfm.pas
├── serverpropertiesfm.lfm
├── serverpropertiesfm.pas
├── subscribefm.lfm
└── subscribefm.pas
├── Images
├── AppIcons.xcf
├── MQTTClientApp-Icon.xcf
├── MQTTClientApp.png
├── MQTTServerApp-Icon.xcf
├── MQTTServerApp.png
├── TMQTTClient.png
├── TMQTTClientPublisher.png
├── TMQTTServer.png
└── blank-icon.png
├── README.md
├── doc
├── Checklist.MD
├── MQTTConsts.MD
├── MQTTPacketDefs.MD
├── MQTTPackets.MD
├── Main.MD
├── Server_INI.MD
├── Server_Params.MD
├── TMQTTClient.MD
├── TMQTTClientPublisher.MD
├── TMQTTClientPublisherList.MD
├── TMQTTClientSubscription.MD
├── TMQTTClientSubscriptionList.MD
├── TMQTTSubscription.MD
├── TMQTTSubscriptionList.MD
├── TMQTTToken.MD
├── TMQTTTokenizer.MD
├── builddoc
├── fpdoc
│ ├── mqttclient.xml
│ ├── mqttcomponents.xml
│ ├── mqttconsts.xml
│ ├── mqttmessages.xml
│ ├── mqttpacketdefs.xml
│ ├── mqttpackets.xml
│ ├── mqttregister.xml
│ ├── mqttserver.xml
│ ├── mqttsubscriptions.xml
│ └── mqtttokenizer.xml
├── htmldoc
│ ├── fpdoc.css
│ ├── index-8.html
│ ├── index-9.html
│ ├── index.html
│ ├── minus.png
│ ├── mqttclient
│ │ ├── index-2.html
│ │ ├── index-3.html
│ │ ├── index-4.html
│ │ ├── index-8.html
│ │ ├── index.html
│ │ ├── mqtt_connect_timeout.html
│ │ ├── mqtt_connection_state_names.html
│ │ ├── mqtt_default_keepalive.html
│ │ ├── mqtt_default_max_resend_attempts.html
│ │ ├── mqtt_default_ping_interval.html
│ │ ├── mqtt_default_resend_packet_timeout.html
│ │ ├── tmqttclient-1.html
│ │ ├── tmqttclient-2.html
│ │ ├── tmqttclient-3.html
│ │ ├── tmqttclient-4.html
│ │ ├── tmqttclient-5.html
│ │ ├── tmqttclient-6.html
│ │ ├── tmqttclient.bail.html
│ │ ├── tmqttclient.cleansession.html
│ │ ├── tmqttclient.clientid.html
│ │ ├── tmqttclient.connect.html
│ │ ├── tmqttclient.connected.html
│ │ ├── tmqttclient.create.html
│ │ ├── tmqttclient.dataavailable.html
│ │ ├── tmqttclient.destroy.html
│ │ ├── tmqttclient.disconnect.html
│ │ ├── tmqttclient.disconnected.html
│ │ ├── tmqttclient.html
│ │ ├── tmqttclient.initsession.html
│ │ ├── tmqttclient.keepalive.html
│ │ ├── tmqttclient.loaded.html
│ │ ├── tmqttclient.log.html
│ │ ├── tmqttclient.maxresendattmpts.html
│ │ ├── tmqttclient.onconnected.html
│ │ ├── tmqttclient.ondisconnect.html
│ │ ├── tmqttclient.ondisconnected.html
│ │ ├── tmqttclient.onerror.html
│ │ ├── tmqttclient.oninitsession.html
│ │ ├── tmqttclient.onreceivemessage.html
│ │ ├── tmqttclient.onsenddata.html
│ │ ├── tmqttclient.onsubscriptionschanged.html
│ │ ├── tmqttclient.packetidmanager.html
│ │ ├── tmqttclient.password.html
│ │ ├── tmqttclient.pinginterval.html
│ │ ├── tmqttclient.publish.html
│ │ ├── tmqttclient.publishers.html
│ │ ├── tmqttclient.receivemessage.html
│ │ ├── tmqttclient.recvbuffer.html
│ │ ├── tmqttclient.resendpackettimeout.html
│ │ ├── tmqttclient.reset.html
│ │ ├── tmqttclient.sendbuffer.html
│ │ ├── tmqttclient.senddata.html
│ │ ├── tmqttclient.socket.html
│ │ ├── tmqttclient.state.html
│ │ ├── tmqttclient.subscribe.html
│ │ ├── tmqttclient.subscriptions.html
│ │ ├── tmqttclient.unsubscribe.html
│ │ ├── tmqttclient.username.html
│ │ ├── tmqttclient.willmessage.html
│ │ ├── tmqttclienterrorevent.html
│ │ ├── tmqttclientpublisher-1.html
│ │ ├── tmqttclientpublisher-2.html
│ │ ├── tmqttclientpublisher-3.html
│ │ ├── tmqttclientpublisher-4.html
│ │ ├── tmqttclientpublisher-5.html
│ │ ├── tmqttclientpublisher-6.html
│ │ ├── tmqttclientpublisher.assign.html
│ │ ├── tmqttclientpublisher.autopublish.html
│ │ ├── tmqttclientpublisher.changed.html
│ │ ├── tmqttclientpublisher.clear.html
│ │ ├── tmqttclientpublisher.client.html
│ │ ├── tmqttclientpublisher.create.html
│ │ ├── tmqttclientpublisher.data.html
│ │ ├── tmqttclientpublisher.destroy.html
│ │ ├── tmqttclientpublisher.enabled.html
│ │ ├── tmqttclientpublisher.html
│ │ ├── tmqttclientpublisher.modified.html
│ │ ├── tmqttclientpublisher.notification.html
│ │ ├── tmqttclientpublisher.onchanged.html
│ │ ├── tmqttclientpublisher.onpublish.html
│ │ ├── tmqttclientpublisher.publish.html
│ │ ├── tmqttclientpublisher.qos.html
│ │ ├── tmqttclientpublisher.retain.html
│ │ ├── tmqttclientpublisher.tokens.html
│ │ ├── tmqttclientpublisher.topic.html
│ │ ├── tmqttclientpublisherlist-1.html
│ │ ├── tmqttclientpublisherlist-2.html
│ │ ├── tmqttclientpublisherlist-3.html
│ │ ├── tmqttclientpublisherlist-4.html
│ │ ├── tmqttclientpublisherlist-5.html
│ │ ├── tmqttclientpublisherlist-6.html
│ │ ├── tmqttclientpublisherlist.add.html
│ │ ├── tmqttclientpublisherlist.count.html
│ │ ├── tmqttclientpublisherlist.create.html
│ │ ├── tmqttclientpublisherlist.destroy.html
│ │ ├── tmqttclientpublisherlist.html
│ │ ├── tmqttclientpublisherlist.items.html
│ │ ├── tmqttclientpublisherlist.remove.html
│ │ ├── tmqttclientreceivemessageevent.html
│ │ ├── tmqttclientsenddataevent.html
│ │ ├── tmqttclientsubscription-1.html
│ │ ├── tmqttclientsubscription-2.html
│ │ ├── tmqttclientsubscription-3.html
│ │ ├── tmqttclientsubscription-4.html
│ │ ├── tmqttclientsubscription-5.html
│ │ ├── tmqttclientsubscription-6.html
│ │ ├── tmqttclientsubscription.assign.html
│ │ ├── tmqttclientsubscription.changed.html
│ │ ├── tmqttclientsubscription.clear.html
│ │ ├── tmqttclientsubscription.client.html
│ │ ├── tmqttclientsubscription.create.html
│ │ ├── tmqttclientsubscription.destroy.html
│ │ ├── tmqttclientsubscription.enabled.html
│ │ ├── tmqttclientsubscription.filter.html
│ │ ├── tmqttclientsubscription.handlemessage.html
│ │ ├── tmqttclientsubscription.html
│ │ ├── tmqttclientsubscription.modified.html
│ │ ├── tmqttclientsubscription.notification.html
│ │ ├── tmqttclientsubscription.onchanged.html
│ │ ├── tmqttclientsubscription.onmessage.html
│ │ ├── tmqttclientsubscription.onsendsubscription.html
│ │ ├── tmqttclientsubscription.qos.html
│ │ ├── tmqttclientsubscription.sendsubscription.html
│ │ ├── tmqttclientsubscription.subscribe.html
│ │ ├── tmqttclientsubscription.tokens.html
│ │ ├── tmqttclientsubscription.unsubscribe.html
│ │ ├── tmqttclientsubscriptionlist-1.html
│ │ ├── tmqttclientsubscriptionlist-2.html
│ │ ├── tmqttclientsubscriptionlist-3.html
│ │ ├── tmqttclientsubscriptionlist-4.html
│ │ ├── tmqttclientsubscriptionlist-5.html
│ │ ├── tmqttclientsubscriptionlist-6.html
│ │ ├── tmqttclientsubscriptionlist.add.html
│ │ ├── tmqttclientsubscriptionlist.count.html
│ │ ├── tmqttclientsubscriptionlist.create.html
│ │ ├── tmqttclientsubscriptionlist.destroy.html
│ │ ├── tmqttclientsubscriptionlist.html
│ │ ├── tmqttclientsubscriptionlist.items.html
│ │ ├── tmqttclientsubscriptionlist.remove.html
│ │ ├── tmqttclientsubscriptionreceivemessageevent.html
│ │ ├── tmqttclientthread-1.html
│ │ ├── tmqttclientthread-2.html
│ │ ├── tmqttclientthread-3.html
│ │ ├── tmqttclientthread-4.html
│ │ ├── tmqttclientthread-5.html
│ │ ├── tmqttclientthread-6.html
│ │ ├── tmqttclientthread.execute.html
│ │ ├── tmqttclientthread.html
│ │ └── tmqttconnectionstate.html
│ ├── mqttcomponents
│ │ ├── index-8.html
│ │ └── index.html
│ ├── mqttconsts
│ │ ├── getconnectionstatename.html
│ │ ├── getmqtterrormessage.html
│ │ ├── getmqttlogmessage.html
│ │ ├── getpackettypename.html
│ │ ├── getqostypename.html
│ │ ├── index-2.html
│ │ ├── index-3.html
│ │ ├── index-5.html
│ │ ├── index-6.html
│ │ ├── index-8.html
│ │ ├── index.html
│ │ ├── listen_retry_delay.html
│ │ ├── lm_client_has_connected.html
│ │ ├── lm_client_reset.html
│ │ ├── lm_could_not_register_subscriptions.html
│ │ ├── lm_duplicate_subscription_removed.html
│ │ ├── lm_invalid_subscription_removed.html
│ │ ├── lm_packet_unacknowledged_by_server.html
│ │ ├── lm_resending_packet.html
│ │ ├── mqtt_connack_bad_username_password.html
│ │ ├── mqtt_connack_clientid_rejected.html
│ │ ├── mqtt_connack_not_authorized.html
│ │ ├── mqtt_connack_server_unavailable.html
│ │ ├── mqtt_connack_success.html
│ │ ├── mqtt_connack_unacceptable_protocol.html
│ │ ├── mqtt_default_config_filename1.html
│ │ ├── mqtt_default_config_filename2.html
│ │ ├── mqtt_default_keepalive.html
│ │ ├── mqtt_default_ping_interval.html
│ │ ├── mqtt_error_already_connected.html
│ │ ├── mqtt_error_bad_username_password.html
│ │ ├── mqtt_error_clientid_rejected.html
│ │ ├── mqtt_error_connect_timeout.html
│ │ ├── mqtt_error_insufficient_data.html
│ │ ├── mqtt_error_invalid_packet_flags.html
│ │ ├── mqtt_error_invalid_return_codes.html
│ │ ├── mqtt_error_invalid_subscription_entries.html
│ │ ├── mqtt_error_no_clientid.html
│ │ ├── mqtt_error_no_ping_response.html
│ │ ├── mqtt_error_no_subscription_list.html
│ │ ├── mqtt_error_none.html
│ │ ├── mqtt_error_nosubscriptionsinsubscribe.html
│ │ ├── mqtt_error_not_authorized.html
│ │ ├── mqtt_error_not_connected.html
│ │ ├── mqtt_error_not_implemented.html
│ │ ├── mqtt_error_packet_invalid.html
│ │ ├── mqtt_error_packet_queue_full.html
│ │ ├── mqtt_error_packet_queue_timeout.html
│ │ ├── mqtt_error_packetid_not_found.html
│ │ ├── mqtt_error_payload_invalid.html
│ │ ├── mqtt_error_remaining_length_encoding.html
│ │ ├── mqtt_error_send_pubcomp_failed.html
│ │ ├── mqtt_error_send_pubrel_failed.html
│ │ ├── mqtt_error_server_unavailable.html
│ │ ├── mqtt_error_unacceptable_protocol.html
│ │ ├── mqtt_error_unhandled_packettype.html
│ │ ├── mqtt_error_unknown.html
│ │ ├── mqtt_error_varheader_invalid.html
│ │ ├── mqtt_error_willmessage_invalid.html
│ │ ├── mqtt_max_packet_resend_tries.html
│ │ ├── mqtt_max_session_age.html
│ │ ├── mqtt_max_subscription_age.html
│ │ ├── mqtt_resend_packet_timeout.html
│ │ ├── mqttlanguagepack.html
│ │ ├── mqttpackettypenames.html
│ │ ├── mqttqostypenames.html
│ │ ├── mqttstrictclientidvalidationchars.html
│ │ ├── tmqttconnectionstate.html
│ │ ├── tmqttlanguagepack.html
│ │ ├── tmqttpackettype.html
│ │ └── tmqttqostype.html
│ ├── mqttmessages
│ │ ├── index-4.html
│ │ ├── index-8.html
│ │ ├── index.html
│ │ ├── tmqttmessage-1.html
│ │ ├── tmqttmessage-2.html
│ │ ├── tmqttmessage-3.html
│ │ ├── tmqttmessage-4.html
│ │ ├── tmqttmessage-5.html
│ │ ├── tmqttmessage-6.html
│ │ ├── tmqttmessage.clientid.html
│ │ ├── tmqttmessage.clone.html
│ │ ├── tmqttmessage.create.html
│ │ ├── tmqttmessage.data.html
│ │ ├── tmqttmessage.destroy.html
│ │ ├── tmqttmessage.html
│ │ ├── tmqttmessage.loadfromstream.html
│ │ ├── tmqttmessage.qos.html
│ │ ├── tmqttmessage.retain.html
│ │ ├── tmqttmessage.savetostream.html
│ │ ├── tmqttmessage.tokens.html
│ │ ├── tmqttmessage.topic.html
│ │ ├── tmqttmessagelist-1.html
│ │ ├── tmqttmessagelist-2.html
│ │ ├── tmqttmessagelist-3.html
│ │ ├── tmqttmessagelist-4.html
│ │ ├── tmqttmessagelist-5.html
│ │ ├── tmqttmessagelist-6.html
│ │ ├── tmqttmessagelist.add.html
│ │ ├── tmqttmessagelist.clear.html
│ │ ├── tmqttmessagelist.count.html
│ │ ├── tmqttmessagelist.create.html
│ │ ├── tmqttmessagelist.delete.html
│ │ ├── tmqttmessagelist.deletebytopic.html
│ │ ├── tmqttmessagelist.destroy.html
│ │ ├── tmqttmessagelist.html
│ │ ├── tmqttmessagelist.items.html
│ │ ├── tmqttmessagelist.loadfromstream.html
│ │ ├── tmqttmessagelist.new.html
│ │ ├── tmqttmessagelist.remove.html
│ │ ├── tmqttmessagelist.savetostream.html
│ │ └── tmqttmessagelist.update.html
│ ├── mqttpacketdefs
│ │ ├── index-4.html
│ │ ├── index-8.html
│ │ ├── index.html
│ │ ├── tmqttconnackpacket-1.html
│ │ ├── tmqttconnackpacket-2.html
│ │ ├── tmqttconnackpacket-3.html
│ │ ├── tmqttconnackpacket-4.html
│ │ ├── tmqttconnackpacket-5.html
│ │ ├── tmqttconnackpacket-6.html
│ │ ├── tmqttconnackpacket.asstring.html
│ │ ├── tmqttconnackpacket.getpackettype.html
│ │ ├── tmqttconnackpacket.html
│ │ ├── tmqttconnackpacket.readfrombuffer.html
│ │ ├── tmqttconnackpacket.returncode.html
│ │ ├── tmqttconnackpacket.sessionpresent.html
│ │ ├── tmqttconnackpacket.validate.html
│ │ ├── tmqttconnectpacket-1.html
│ │ ├── tmqttconnectpacket-2.html
│ │ ├── tmqttconnectpacket-3.html
│ │ ├── tmqttconnectpacket-4.html
│ │ ├── tmqttconnectpacket-5.html
│ │ ├── tmqttconnectpacket-6.html
│ │ ├── tmqttconnectpacket.asstring.html
│ │ ├── tmqttconnectpacket.cleansession.html
│ │ ├── tmqttconnectpacket.clientid.html
│ │ ├── tmqttconnectpacket.create.html
│ │ ├── tmqttconnectpacket.getpackettype.html
│ │ ├── tmqttconnectpacket.html
│ │ ├── tmqttconnectpacket.keepalive.html
│ │ ├── tmqttconnectpacket.password.html
│ │ ├── tmqttconnectpacket.passwordflag.html
│ │ ├── tmqttconnectpacket.readfrombuffer.html
│ │ ├── tmqttconnectpacket.returncode.html
│ │ ├── tmqttconnectpacket.username.html
│ │ ├── tmqttconnectpacket.usernameflag.html
│ │ ├── tmqttconnectpacket.willmessage.html
│ │ ├── tmqttdisconnectpacket-1.html
│ │ ├── tmqttdisconnectpacket-2.html
│ │ ├── tmqttdisconnectpacket-3.html
│ │ ├── tmqttdisconnectpacket-4.html
│ │ ├── tmqttdisconnectpacket-5.html
│ │ ├── tmqttdisconnectpacket-6.html
│ │ ├── tmqttdisconnectpacket.getpackettype.html
│ │ ├── tmqttdisconnectpacket.html
│ │ ├── tmqttdisconnectpacket.readfrombuffer.html
│ │ ├── tmqttdisconnectpacket.validate.html
│ │ ├── tmqttpingreqpacket-1.html
│ │ ├── tmqttpingreqpacket-2.html
│ │ ├── tmqttpingreqpacket-3.html
│ │ ├── tmqttpingreqpacket-4.html
│ │ ├── tmqttpingreqpacket-5.html
│ │ ├── tmqttpingreqpacket-6.html
│ │ ├── tmqttpingreqpacket.getpackettype.html
│ │ ├── tmqttpingreqpacket.html
│ │ ├── tmqttpingreqpacket.readfrombuffer.html
│ │ ├── tmqttpingreqpacket.validate.html
│ │ ├── tmqttpingresppacket-1.html
│ │ ├── tmqttpingresppacket-2.html
│ │ ├── tmqttpingresppacket-3.html
│ │ ├── tmqttpingresppacket-4.html
│ │ ├── tmqttpingresppacket-5.html
│ │ ├── tmqttpingresppacket-6.html
│ │ ├── tmqttpingresppacket.getpackettype.html
│ │ ├── tmqttpingresppacket.html
│ │ ├── tmqttpingresppacket.readfrombuffer.html
│ │ ├── tmqttpingresppacket.validate.html
│ │ ├── tmqttpubackpacket-1.html
│ │ ├── tmqttpubackpacket-2.html
│ │ ├── tmqttpubackpacket-3.html
│ │ ├── tmqttpubackpacket-4.html
│ │ ├── tmqttpubackpacket-5.html
│ │ ├── tmqttpubackpacket-6.html
│ │ ├── tmqttpubackpacket.getpackettype.html
│ │ ├── tmqttpubackpacket.html
│ │ ├── tmqttpubackpacket.readfrombuffer.html
│ │ ├── tmqttpubackpacket.validate.html
│ │ ├── tmqttpubackpacket.writetobuffer.html
│ │ ├── tmqttpubcomppacket-1.html
│ │ ├── tmqttpubcomppacket-2.html
│ │ ├── tmqttpubcomppacket-3.html
│ │ ├── tmqttpubcomppacket-4.html
│ │ ├── tmqttpubcomppacket-5.html
│ │ ├── tmqttpubcomppacket-6.html
│ │ ├── tmqttpubcomppacket.getpackettype.html
│ │ ├── tmqttpubcomppacket.html
│ │ ├── tmqttpubcomppacket.readfrombuffer.html
│ │ ├── tmqttpubcomppacket.validate.html
│ │ ├── tmqttpubcomppacket.writetobuffer.html
│ │ ├── tmqttpublishpacket-1.html
│ │ ├── tmqttpublishpacket-2.html
│ │ ├── tmqttpublishpacket-3.html
│ │ ├── tmqttpublishpacket-4.html
│ │ ├── tmqttpublishpacket-5.html
│ │ ├── tmqttpublishpacket-6.html
│ │ ├── tmqttpublishpacket.asstring.html
│ │ ├── tmqttpublishpacket.data.html
│ │ ├── tmqttpublishpacket.destroy.html
│ │ ├── tmqttpublishpacket.duplicate.html
│ │ ├── tmqttpublishpacket.getpackettype.html
│ │ ├── tmqttpublishpacket.html
│ │ ├── tmqttpublishpacket.qos.html
│ │ ├── tmqttpublishpacket.readfrombuffer.html
│ │ ├── tmqttpublishpacket.retain.html
│ │ ├── tmqttpublishpacket.topic.html
│ │ ├── tmqttpublishpacket.validate.html
│ │ ├── tmqttpublishpacket.writetobuffer.html
│ │ ├── tmqttpubrecpacket-1.html
│ │ ├── tmqttpubrecpacket-2.html
│ │ ├── tmqttpubrecpacket-3.html
│ │ ├── tmqttpubrecpacket-4.html
│ │ ├── tmqttpubrecpacket-5.html
│ │ ├── tmqttpubrecpacket-6.html
│ │ ├── tmqttpubrecpacket.getpackettype.html
│ │ ├── tmqttpubrecpacket.html
│ │ ├── tmqttpubrecpacket.readfrombuffer.html
│ │ ├── tmqttpubrecpacket.validate.html
│ │ ├── tmqttpubrecpacket.writetobuffer.html
│ │ ├── tmqttpubrelpacket-1.html
│ │ ├── tmqttpubrelpacket-2.html
│ │ ├── tmqttpubrelpacket-3.html
│ │ ├── tmqttpubrelpacket-4.html
│ │ ├── tmqttpubrelpacket-5.html
│ │ ├── tmqttpubrelpacket-6.html
│ │ ├── tmqttpubrelpacket.getpackettype.html
│ │ ├── tmqttpubrelpacket.html
│ │ ├── tmqttpubrelpacket.readfrombuffer.html
│ │ ├── tmqttpubrelpacket.validate.html
│ │ ├── tmqttpubrelpacket.writetobuffer.html
│ │ ├── tmqttsubackpacket-1.html
│ │ ├── tmqttsubackpacket-2.html
│ │ ├── tmqttsubackpacket-3.html
│ │ ├── tmqttsubackpacket-4.html
│ │ ├── tmqttsubackpacket-5.html
│ │ ├── tmqttsubackpacket-6.html
│ │ ├── tmqttsubackpacket.asstring.html
│ │ ├── tmqttsubackpacket.create.html
│ │ ├── tmqttsubackpacket.destroy.html
│ │ ├── tmqttsubackpacket.getpackettype.html
│ │ ├── tmqttsubackpacket.html
│ │ ├── tmqttsubackpacket.readfrombuffer.html
│ │ ├── tmqttsubackpacket.returncodes.html
│ │ ├── tmqttsubackpacket.validate.html
│ │ ├── tmqttsubackpacket.writetobuffer.html
│ │ ├── tmqttsubscribepacket-1.html
│ │ ├── tmqttsubscribepacket-2.html
│ │ ├── tmqttsubscribepacket-3.html
│ │ ├── tmqttsubscribepacket-4.html
│ │ ├── tmqttsubscribepacket-5.html
│ │ ├── tmqttsubscribepacket-6.html
│ │ ├── tmqttsubscribepacket.asstring.html
│ │ ├── tmqttsubscribepacket.create.html
│ │ ├── tmqttsubscribepacket.destroy.html
│ │ ├── tmqttsubscribepacket.getpackettype.html
│ │ ├── tmqttsubscribepacket.html
│ │ ├── tmqttsubscribepacket.readfrombuffer.html
│ │ ├── tmqttsubscribepacket.subscriptions.html
│ │ ├── tmqttsubscribepacket.validate.html
│ │ ├── tmqttsubscribepacket.writetobuffer.html
│ │ ├── tmqttunsubackpacket-1.html
│ │ ├── tmqttunsubackpacket-2.html
│ │ ├── tmqttunsubackpacket-3.html
│ │ ├── tmqttunsubackpacket-4.html
│ │ ├── tmqttunsubackpacket-5.html
│ │ ├── tmqttunsubackpacket-6.html
│ │ ├── tmqttunsubackpacket.getpackettype.html
│ │ ├── tmqttunsubackpacket.html
│ │ ├── tmqttunsubackpacket.readfrombuffer.html
│ │ ├── tmqttunsubackpacket.validate.html
│ │ ├── tmqttunsubackpacket.writetobuffer.html
│ │ ├── tmqttunsubscribepacket-1.html
│ │ ├── tmqttunsubscribepacket-2.html
│ │ ├── tmqttunsubscribepacket-3.html
│ │ ├── tmqttunsubscribepacket-4.html
│ │ ├── tmqttunsubscribepacket-5.html
│ │ ├── tmqttunsubscribepacket-6.html
│ │ ├── tmqttunsubscribepacket.asstring.html
│ │ ├── tmqttunsubscribepacket.create.html
│ │ ├── tmqttunsubscribepacket.destroy.html
│ │ ├── tmqttunsubscribepacket.getpackettype.html
│ │ ├── tmqttunsubscribepacket.html
│ │ ├── tmqttunsubscribepacket.readfrombuffer.html
│ │ ├── tmqttunsubscribepacket.subscriptions.html
│ │ ├── tmqttunsubscribepacket.validate.html
│ │ ├── tmqttunsubscribepacket.writetobuffer.html
│ │ ├── tmqttwillmessage-1.html
│ │ ├── tmqttwillmessage-2.html
│ │ ├── tmqttwillmessage-3.html
│ │ ├── tmqttwillmessage-4.html
│ │ ├── tmqttwillmessage-5.html
│ │ ├── tmqttwillmessage-6.html
│ │ ├── tmqttwillmessage.assign.html
│ │ ├── tmqttwillmessage.asstring.html
│ │ ├── tmqttwillmessage.clear.html
│ │ ├── tmqttwillmessage.displaytext.html
│ │ ├── tmqttwillmessage.enabled.html
│ │ ├── tmqttwillmessage.html
│ │ ├── tmqttwillmessage.message.html
│ │ ├── tmqttwillmessage.qos.html
│ │ ├── tmqttwillmessage.retain.html
│ │ └── tmqttwillmessage.topic.html
│ ├── mqttpackets
│ │ ├── epacketerror-1.html
│ │ ├── epacketerror-2.html
│ │ ├── epacketerror-3.html
│ │ ├── epacketerror-4.html
│ │ ├── epacketerror-5.html
│ │ ├── epacketerror-6.html
│ │ ├── epacketerror.html
│ │ ├── index-4.html
│ │ ├── index-5.html
│ │ ├── index-6.html
│ │ ├── index-8.html
│ │ ├── index.html
│ │ ├── packetlist.html
│ │ ├── readbinarydatafrombuffer.html
│ │ ├── readmqttpacketfrombuffer.html
│ │ ├── readremaininglengthfrombuffer.html
│ │ ├── readutf8stringfrombuffer.html
│ │ ├── readwordfrombuffer.html
│ │ ├── tmqttpacket-1.html
│ │ ├── tmqttpacket-2.html
│ │ ├── tmqttpacket-3.html
│ │ ├── tmqttpacket-4.html
│ │ ├── tmqttpacket-5.html
│ │ ├── tmqttpacket-6.html
│ │ ├── tmqttpacket.asstring.html
│ │ ├── tmqttpacket.create.html
│ │ ├── tmqttpacket.destroy.html
│ │ ├── tmqttpacket.getpackettype.html
│ │ ├── tmqttpacket.html
│ │ ├── tmqttpacket.packettype.html
│ │ ├── tmqttpacket.packettypename.html
│ │ ├── tmqttpacket.readfrombuffer.html
│ │ ├── tmqttpacket.remaininglength.html
│ │ ├── tmqttpacket.validate.html
│ │ ├── tmqttpacket.writetobuffer.html
│ │ ├── tmqttpacketidmanager-1.html
│ │ ├── tmqttpacketidmanager-2.html
│ │ ├── tmqttpacketidmanager-3.html
│ │ ├── tmqttpacketidmanager-4.html
│ │ ├── tmqttpacketidmanager-5.html
│ │ ├── tmqttpacketidmanager-6.html
│ │ ├── tmqttpacketidmanager.count.html
│ │ ├── tmqttpacketidmanager.create.html
│ │ ├── tmqttpacketidmanager.destroy.html
│ │ ├── tmqttpacketidmanager.generateid.html
│ │ ├── tmqttpacketidmanager.html
│ │ ├── tmqttpacketidmanager.items.html
│ │ ├── tmqttpacketidmanager.releaseid.html
│ │ ├── tmqttpacketidmanager.reset.html
│ │ ├── tmqttpacketidpacket-1.html
│ │ ├── tmqttpacketidpacket-2.html
│ │ ├── tmqttpacketidpacket-3.html
│ │ ├── tmqttpacketidpacket-4.html
│ │ ├── tmqttpacketidpacket-5.html
│ │ ├── tmqttpacketidpacket-6.html
│ │ ├── tmqttpacketidpacket.asstring.html
│ │ ├── tmqttpacketidpacket.fpacketid.html
│ │ ├── tmqttpacketidpacket.html
│ │ ├── tmqttpacketidpacket.packetid.html
│ │ ├── tmqttpacketlist-1.html
│ │ ├── tmqttpacketlist-2.html
│ │ ├── tmqttpacketlist-3.html
│ │ ├── tmqttpacketlist-4.html
│ │ ├── tmqttpacketlist-5.html
│ │ ├── tmqttpacketlist-6.html
│ │ ├── tmqttpacketlist.add.html
│ │ ├── tmqttpacketlist.count.html
│ │ ├── tmqttpacketlist.create.html
│ │ ├── tmqttpacketlist.destroy.html
│ │ ├── tmqttpacketlist.dump.html
│ │ ├── tmqttpacketlist.html
│ │ ├── tmqttpacketlist.items.html
│ │ ├── tmqttpacketlist.remove.html
│ │ ├── tmqttpacketqueue-1.html
│ │ ├── tmqttpacketqueue-2.html
│ │ ├── tmqttpacketqueue-3.html
│ │ ├── tmqttpacketqueue-4.html
│ │ ├── tmqttpacketqueue-5.html
│ │ ├── tmqttpacketqueue-6.html
│ │ ├── tmqttpacketqueue.add.html
│ │ ├── tmqttpacketqueue.clear.html
│ │ ├── tmqttpacketqueue.count.html
│ │ ├── tmqttpacketqueue.create.html
│ │ ├── tmqttpacketqueue.delete.html
│ │ ├── tmqttpacketqueue.destroy.html
│ │ ├── tmqttpacketqueue.find.html
│ │ ├── tmqttpacketqueue.html
│ │ ├── tmqttpacketqueue.items.html
│ │ ├── tmqttpacketqueue.remove.html
│ │ ├── tmqttqueuedpacket-1.html
│ │ ├── tmqttqueuedpacket-2.html
│ │ ├── tmqttqueuedpacket-3.html
│ │ ├── tmqttqueuedpacket-4.html
│ │ ├── tmqttqueuedpacket-5.html
│ │ ├── tmqttqueuedpacket-6.html
│ │ ├── tmqttqueuedpacket.asstring.html
│ │ ├── tmqttqueuedpacket.html
│ │ ├── tmqttqueuedpacket.resendcount.html
│ │ ├── tmqttqueuedpacket.secondsinqueue.html
│ │ ├── writebinarydatatobuffer.html
│ │ ├── writeremaininglengthtobuffer.html
│ │ ├── writeutf8stringtobuffer.html
│ │ └── writewordtobuffer.html
│ ├── mqttregister
│ │ ├── index-5.html
│ │ ├── index-8.html
│ │ ├── index.html
│ │ └── register.html
│ ├── mqttserver
│ │ ├── emqttconnectionerror-1.html
│ │ ├── emqttconnectionerror-2.html
│ │ ├── emqttconnectionerror-3.html
│ │ ├── emqttconnectionerror-4.html
│ │ ├── emqttconnectionerror-5.html
│ │ ├── emqttconnectionerror-6.html
│ │ ├── emqttconnectionerror.html
│ │ ├── index-2.html
│ │ ├── index-3.html
│ │ ├── index-4.html
│ │ ├── index-6.html
│ │ ├── index-8.html
│ │ ├── index.html
│ │ ├── mqtt_default_keepalive.html
│ │ ├── mqtt_default_max_resend_attempts.html
│ │ ├── mqtt_default_max_session_age.html
│ │ ├── mqtt_default_max_subscription_age.html
│ │ ├── mqtt_default_resend_packet_timeout.html
│ │ ├── mqttstrictclientidvalidationchars.html
│ │ ├── server_connection_state_names.html
│ │ ├── tmqttconnectiondestroyevent.html
│ │ ├── tmqttconnectionerrorevent.html
│ │ ├── tmqttconnectionnotifyevent.html
│ │ ├── tmqttconnectionsenddataevent.html
│ │ ├── tmqttdeleteretainedmessageevent.html
│ │ ├── tmqttretainedmessagelistevent.html
│ │ ├── tmqttretainedmessagesdatastore-1.html
│ │ ├── tmqttretainedmessagesdatastore-2.html
│ │ ├── tmqttretainedmessagesdatastore-3.html
│ │ ├── tmqttretainedmessagesdatastore-4.html
│ │ ├── tmqttretainedmessagesdatastore-5.html
│ │ ├── tmqttretainedmessagesdatastore-6.html
│ │ ├── tmqttretainedmessagesdatastore.deletetopic.html
│ │ ├── tmqttretainedmessagesdatastore.enabled.html
│ │ ├── tmqttretainedmessagesdatastore.filename.html
│ │ ├── tmqttretainedmessagesdatastore.html
│ │ ├── tmqttretainedmessagesdatastore.loaddatastore.html
│ │ ├── tmqttretainedmessagesdatastore.modified.html
│ │ ├── tmqttretainedmessagesdatastore.ondeletetopic.html
│ │ ├── tmqttretainedmessagesdatastore.onloaddatastore.html
│ │ ├── tmqttretainedmessagesdatastore.onsavedatastore.html
│ │ ├── tmqttretainedmessagesdatastore.onupdatetopic.html
│ │ ├── tmqttretainedmessagesdatastore.savedatastore.html
│ │ ├── tmqttretainedmessagesdatastore.updatetopic.html
│ │ ├── tmqttserver-1.html
│ │ ├── tmqttserver-2.html
│ │ ├── tmqttserver-3.html
│ │ ├── tmqttserver-4.html
│ │ ├── tmqttserver-5.html
│ │ ├── tmqttserver-6.html
│ │ ├── tmqttserver.accepted.html
│ │ ├── tmqttserver.allownullclientids.html
│ │ ├── tmqttserver.connections.html
│ │ ├── tmqttserver.connectionschanged.html
│ │ ├── tmqttserver.create.html
│ │ ├── tmqttserver.destroy.html
│ │ ├── tmqttserver.destroyconnection.html
│ │ ├── tmqttserver.disconnect.html
│ │ ├── tmqttserver.disconnected.html
│ │ ├── tmqttserver.dispatchmessage.html
│ │ ├── tmqttserver.enabled.html
│ │ ├── tmqttserver.html
│ │ ├── tmqttserver.keepalive.html
│ │ ├── tmqttserver.loaded.html
│ │ ├── tmqttserver.log.html
│ │ ├── tmqttserver.maximumqos.html
│ │ ├── tmqttserver.maxresendattempts.html
│ │ ├── tmqttserver.maxsessionage.html
│ │ ├── tmqttserver.maxsubscriptionage.html
│ │ ├── tmqttserver.notification.html
│ │ ├── tmqttserver.onaccepted.html
│ │ ├── tmqttserver.onconnectiondestroy.html
│ │ ├── tmqttserver.onconnectionschanged.html
│ │ ├── tmqttserver.ondisconnect.html
│ │ ├── tmqttserver.ondisconnected.html
│ │ ├── tmqttserver.onerror.html
│ │ ├── tmqttserver.onretainedmessageschanged.html
│ │ ├── tmqttserver.onsenddata.html
│ │ ├── tmqttserver.onsessionschanged.html
│ │ ├── tmqttserver.onsubscriptionschanged.html
│ │ ├── tmqttserver.onvalidateclientid.html
│ │ ├── tmqttserver.onvalidatepassword.html
│ │ ├── tmqttserver.onvalidatesubscription.html
│ │ ├── tmqttserver.requireauthentication.html
│ │ ├── tmqttserver.resendpackettimeout.html
│ │ ├── tmqttserver.retainedmessages.html
│ │ ├── tmqttserver.retainedmessageschanged.html
│ │ ├── tmqttserver.retainedmessagesdatastore.html
│ │ ├── tmqttserver.senddata.html
│ │ ├── tmqttserver.sendpendingmessages.html
│ │ ├── tmqttserver.sendretainedmessages.html
│ │ ├── tmqttserver.sessions.html
│ │ ├── tmqttserver.sessionschanged.html
│ │ ├── tmqttserver.startconnection.html
│ │ ├── tmqttserver.strictclientidvalidation.html
│ │ ├── tmqttserver.subscriptionschanged.html
│ │ ├── tmqttserver.systemclock.html
│ │ ├── tmqttserver.validateclientid.html
│ │ ├── tmqttserver.validatepassword.html
│ │ ├── tmqttserverconnection-1.html
│ │ ├── tmqttserverconnection-2.html
│ │ ├── tmqttserverconnection-3.html
│ │ ├── tmqttserverconnection-4.html
│ │ ├── tmqttserverconnection-5.html
│ │ ├── tmqttserverconnection-6.html
│ │ ├── tmqttserverconnection.clientidgenerated.html
│ │ ├── tmqttserverconnection.create.html
│ │ ├── tmqttserverconnection.dataavailable.html
│ │ ├── tmqttserverconnection.destroy.html
│ │ ├── tmqttserverconnection.disconnected.html
│ │ ├── tmqttserverconnection.html
│ │ ├── tmqttserverconnection.publish.html
│ │ ├── tmqttserverconnection.recvbuffer.html
│ │ ├── tmqttserverconnection.sendbuffer.html
│ │ ├── tmqttserverconnection.server.html
│ │ ├── tmqttserverconnection.session.html
│ │ ├── tmqttserverconnection.socket.html
│ │ ├── tmqttserverconnection.state.html
│ │ ├── tmqttserverconnection.username.html
│ │ ├── tmqttserverconnection.willmessage.html
│ │ ├── tmqttserverconnectionlist-1.html
│ │ ├── tmqttserverconnectionlist-2.html
│ │ ├── tmqttserverconnectionlist-3.html
│ │ ├── tmqttserverconnectionlist-4.html
│ │ ├── tmqttserverconnectionlist-5.html
│ │ ├── tmqttserverconnectionlist-6.html
│ │ ├── tmqttserverconnectionlist.add.html
│ │ ├── tmqttserverconnectionlist.clear.html
│ │ ├── tmqttserverconnectionlist.count.html
│ │ ├── tmqttserverconnectionlist.create.html
│ │ ├── tmqttserverconnectionlist.delete.html
│ │ ├── tmqttserverconnectionlist.destroy.html
│ │ ├── tmqttserverconnectionlist.html
│ │ ├── tmqttserverconnectionlist.items.html
│ │ ├── tmqttserverconnectionlist.remove.html
│ │ ├── tmqttserverconnectionstate.html
│ │ ├── tmqttserverthread-1.html
│ │ ├── tmqttserverthread-2.html
│ │ ├── tmqttserverthread-3.html
│ │ ├── tmqttserverthread-4.html
│ │ ├── tmqttserverthread-5.html
│ │ ├── tmqttserverthread-6.html
│ │ ├── tmqttserverthread.execute.html
│ │ ├── tmqttserverthread.html
│ │ ├── tmqttsession-1.html
│ │ ├── tmqttsession-2.html
│ │ ├── tmqttsession-3.html
│ │ ├── tmqttsession-4.html
│ │ ├── tmqttsession-5.html
│ │ ├── tmqttsession-6.html
│ │ ├── tmqttsession.age.html
│ │ ├── tmqttsession.clean.html
│ │ ├── tmqttsession.clientid.html
│ │ ├── tmqttsession.connection.html
│ │ ├── tmqttsession.create.html
│ │ ├── tmqttsession.description.html
│ │ ├── tmqttsession.destroy.html
│ │ ├── tmqttsession.html
│ │ ├── tmqttsession.maximumqos.html
│ │ ├── tmqttsession.server.html
│ │ ├── tmqttsession.subscriptions.html
│ │ ├── tmqttsessionlist-1.html
│ │ ├── tmqttsessionlist-2.html
│ │ ├── tmqttsessionlist-3.html
│ │ ├── tmqttsessionlist-4.html
│ │ ├── tmqttsessionlist-5.html
│ │ ├── tmqttsessionlist-6.html
│ │ ├── tmqttsessionlist.add.html
│ │ ├── tmqttsessionlist.clear.html
│ │ ├── tmqttsessionlist.count.html
│ │ ├── tmqttsessionlist.create.html
│ │ ├── tmqttsessionlist.delete.html
│ │ ├── tmqttsessionlist.destroy.html
│ │ ├── tmqttsessionlist.find.html
│ │ ├── tmqttsessionlist.getuniqueclientid.html
│ │ ├── tmqttsessionlist.html
│ │ ├── tmqttsessionlist.isstrictlyvalid.html
│ │ ├── tmqttsessionlist.items.html
│ │ ├── tmqttsessionlist.new.html
│ │ ├── tmqttsessionlist.remove.html
│ │ ├── tmqttsessionlist.server.html
│ │ ├── tmqttupdateretainedmessageevent.html
│ │ ├── tmqttvalidateclientidevent.html
│ │ ├── tmqttvalidatepasswordevent.html
│ │ └── tmqttvalidatesubscriptionevent.html
│ ├── mqttsubscriptions
│ │ ├── index-4.html
│ │ ├── index-8.html
│ │ ├── index.html
│ │ ├── tmqttsubscription-1.html
│ │ ├── tmqttsubscription-2.html
│ │ ├── tmqttsubscription-3.html
│ │ ├── tmqttsubscription-4.html
│ │ ├── tmqttsubscription-5.html
│ │ ├── tmqttsubscription-6.html
│ │ ├── tmqttsubscription.age.html
│ │ ├── tmqttsubscription.assign.html
│ │ ├── tmqttsubscription.create.html
│ │ ├── tmqttsubscription.destroy.html
│ │ ├── tmqttsubscription.filter.html
│ │ ├── tmqttsubscription.html
│ │ ├── tmqttsubscription.ismatch.html
│ │ ├── tmqttsubscription.loadfromstream.html
│ │ ├── tmqttsubscription.persistent.html
│ │ ├── tmqttsubscription.qos.html
│ │ ├── tmqttsubscription.savetostream.html
│ │ ├── tmqttsubscription.tokens.html
│ │ ├── tmqttsubscriptionlist-1.html
│ │ ├── tmqttsubscriptionlist-2.html
│ │ ├── tmqttsubscriptionlist-3.html
│ │ ├── tmqttsubscriptionlist-4.html
│ │ ├── tmqttsubscriptionlist-5.html
│ │ ├── tmqttsubscriptionlist-6.html
│ │ ├── tmqttsubscriptionlist.assign.html
│ │ ├── tmqttsubscriptionlist.clear.html
│ │ ├── tmqttsubscriptionlist.count.html
│ │ ├── tmqttsubscriptionlist.create.html
│ │ ├── tmqttsubscriptionlist.delete.html
│ │ ├── tmqttsubscriptionlist.deletelist.html
│ │ ├── tmqttsubscriptionlist.destroy.html
│ │ ├── tmqttsubscriptionlist.find.html
│ │ ├── tmqttsubscriptionlist.html
│ │ ├── tmqttsubscriptionlist.items.html
│ │ ├── tmqttsubscriptionlist.loadfromstream.html
│ │ ├── tmqttsubscriptionlist.mergelist.html
│ │ ├── tmqttsubscriptionlist.new.html
│ │ ├── tmqttsubscriptionlist.remove.html
│ │ ├── tmqttsubscriptionlist.removeduplicates.html
│ │ ├── tmqttsubscriptionlist.removeinvalidsubscriptions.html
│ │ ├── tmqttsubscriptionlist.savetostream.html
│ │ └── tmqttsubscriptionlist.update.html
│ ├── mqtttokenizer
│ │ ├── checktopicmatchesfilter.html
│ │ ├── index-3.html
│ │ ├── index-4.html
│ │ ├── index-5.html
│ │ ├── index-8.html
│ │ ├── index.html
│ │ ├── tmqtttoken-1.html
│ │ ├── tmqtttoken-2.html
│ │ ├── tmqtttoken-3.html
│ │ ├── tmqtttoken-4.html
│ │ ├── tmqtttoken-5.html
│ │ ├── tmqtttoken-6.html
│ │ ├── tmqtttoken.html
│ │ ├── tmqtttoken.kind.html
│ │ ├── tmqtttoken.text.html
│ │ ├── tmqtttokenizer-1.html
│ │ ├── tmqtttokenizer-2.html
│ │ ├── tmqtttokenizer-3.html
│ │ ├── tmqtttokenizer-4.html
│ │ ├── tmqtttokenizer-5.html
│ │ ├── tmqtttokenizer-6.html
│ │ ├── tmqtttokenizer.asstring.html
│ │ ├── tmqtttokenizer.count.html
│ │ ├── tmqtttokenizer.create.html
│ │ ├── tmqtttokenizer.destroy.html
│ │ ├── tmqtttokenizer.html
│ │ ├── tmqtttokenizer.items.html
│ │ ├── tmqtttokenizer.valid.html
│ │ └── tmqtttokenkind.html
│ └── plus.png
├── mqttcomponents.chm
├── mqttcomponents.rtf
├── mqttcomponents.txt
└── tree.xml
└── src
├── mqttclient.pas
├── mqttclient_icon.lrs
├── mqttclientpublisher_icon.lrs
├── mqttclientsubscription_icon.lrs
├── mqttcomponents.lpk
├── mqttcomponents.pas
├── mqttconsts.pas
├── mqttmessages.pas
├── mqttpacketdefs.pas
├── mqttpackets.pas
├── mqttregister.pas
├── mqttserver.pas
├── mqttserver_icon.lrs
├── mqttsubscriptions.pas
└── mqtttokenizer.pas
/.gitignore:
--------------------------------------------------------------------------------
1 | *.bak
2 | *.dbg
3 | *.compiled
4 | *.exe
5 | *.ini
6 | *.pwd
7 | lib
8 | core
9 | Makefile
10 | backup
11 | Apps/MQTTClock/MQTTClock
12 | Apps/MQTTClockReceiver/MQTTClockReceiver
13 | Apps/MQTTClient/MQTTClientApp
14 | Apps/MQTTServer/MQTTServerApp
15 | Apps/MQTTServerCLI/MQTTServerCLI
16 | /src/Makefile.fpc
17 | /src/fpmake.pp
18 |
--------------------------------------------------------------------------------
/Apps/MQTTClient/MQTTClientApp.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bkeevil/mqtt/e57c9b1599c9acb82a6d62264ca29c36aa2da409/Apps/MQTTClient/MQTTClientApp.ico
--------------------------------------------------------------------------------
/Apps/MQTTClient/MQTTClientApp.lpr:
--------------------------------------------------------------------------------
1 | program MQTTClientApp;
2 |
3 | {$mode objfpc}{$H+}
4 |
5 | uses
6 | {$IFDEF UNIX}
7 | cthreads,
8 | {$ENDIF}
9 | Interfaces, // this includes the LCL widgetset
10 | Forms, lnetvisual, clientfm, connectfm, publishfm, subscribefm;
11 |
12 | {$R *.res}
13 |
14 | begin
15 | RequireDerivedFormResource:=True;
16 | Application.Initialize;
17 | Application.CreateForm(TClientForm, ClientForm);
18 | Application.CreateForm(TMQTTConnectDlg, MQTTConnectDlg);
19 | Application.CreateForm(TPublishForm, PublishForm);
20 | Application.CreateForm(TSubscribeForm, SubscribeForm);
21 | Application.Run;
22 | end.
23 |
24 |
--------------------------------------------------------------------------------
/Apps/MQTTClient/MQTTClientApp.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bkeevil/mqtt/e57c9b1599c9acb82a6d62264ca29c36aa2da409/Apps/MQTTClient/MQTTClientApp.res
--------------------------------------------------------------------------------
/Apps/MQTTClient/cert:
--------------------------------------------------------------------------------
1 | -----BEGIN CERTIFICATE-----
2 | MIIDYDCCAkigAwIBAgIJAPE6fckzYUmSMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
3 | BAYTAkNBMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
4 | aWRnaXRzIFB0eSBMdGQwHhcNMTgxMDEyMTkxNDM2WhcNMTkxMDEyMTkxNDM2WjBF
5 | MQswCQYDVQQGEwJDQTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50
6 | ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
7 | CgKCAQEAvfi9J5IuycMZV1My7Acy0Zf3zh9FKvKmzmHOUGv/x972OXsT/eRiuk63
8 | zO4qUYWsEpmWMoM7F2c0ROhH2cebdI3cQZ3tEGjV69UIdLMXQSYC+zXhZlBb1v/z
9 | 55F3iwO6MLE5emj86dnn7chVOtC4q28zbUM0sEJByMLCZEvTymX0dk6PrurCVLYD
10 | /l6wFkLynsuyVAzSJntCYsAvLXPI4U3+CIb47TRcgY9zws6MOFf1HkUxKfdnKn6+
11 | FhVjc1w1skbHoSaWtActYsGtcwbsPge9sGbCZeHKkccaH1PUQcsCSHeAMtNXiltb
12 | abcjHoEW0HVDzPHBYOIBjqlcDnbX2QIDAQABo1MwUTAdBgNVHQ4EFgQU2HBtqCym
13 | BHfpjV55ISul4mQw538wHwYDVR0jBBgwFoAU2HBtqCymBHfpjV55ISul4mQw538w
14 | DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAUzxwc7RAG92simDN
15 | 8K879tiAm9SJN7TAo4hEYshcWW5cMGkQaTwobaaQ5wi9wcjPuU2G7aEeQLtPazHJ
16 | F2jfue5w6R6CoeaVsiI4kg/jfBj7RVTXRIOwjQin7vxDHGlr/rbenJ6mPSIOWUZH
17 | FHD9l5AHac9gEXyflas5b6Mch3tGOwyUxM5rC/TFporHXGZd1gEdVb+oZ2LbIoT0
18 | t5dt9NZHcU+Jngbjn0MMCf5PThLjR4unS1ecQyp4LpUsm/qbaVcZF5Q1djaODclv
19 | 8/3SaQ7fQ5NICWN/Pdcf5H+JUAjK0qD08/PKPm6fnbR9MSYU+8m9p8pUSVt5xhIE
20 | BLnSfQ==
21 | -----END CERTIFICATE-----
22 |
--------------------------------------------------------------------------------
/Apps/MQTTServer/MQTTServerApp.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bkeevil/mqtt/e57c9b1599c9acb82a6d62264ca29c36aa2da409/Apps/MQTTServer/MQTTServerApp.ico
--------------------------------------------------------------------------------
/Apps/MQTTServer/MQTTServerApp.lpr:
--------------------------------------------------------------------------------
1 | program MQTTServerApp;
2 |
3 | {$mode objfpc}{$H+}
4 |
5 | uses
6 | {$IFDEF UNIX}
7 | cthreads,
8 | {$ENDIF}
9 | Interfaces, // this includes the LCL widgetset
10 | Forms, memdslaz, ServerFM, ServerPropertiesFM, mqttregister, lnetvisual,
11 | helpfm, createpasswordfm, PassManParamsFM;
12 |
13 | {$R *.res}
14 |
15 | begin
16 | RequireDerivedFormResource:=True;
17 | Application.Initialize;
18 | Application.CreateForm(TServerForm, ServerForm);
19 | Application.CreateForm(TServerPropertiesForm, ServerPropertiesForm);
20 | Application.CreateForm(THelpForm, HelpForm);
21 | Application.Run;
22 | end.
23 |
24 |
--------------------------------------------------------------------------------
/Apps/MQTTServer/MQTTServerApp.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bkeevil/mqtt/e57c9b1599c9acb82a6d62264ca29c36aa2da409/Apps/MQTTServer/MQTTServerApp.res
--------------------------------------------------------------------------------
/Apps/MQTTServerCLI/MQTTServerCLI.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bkeevil/mqtt/e57c9b1599c9acb82a6d62264ca29c36aa2da409/Apps/MQTTServerCLI/MQTTServerCLI.ico
--------------------------------------------------------------------------------
/Apps/MQTTServerCLI/MQTTServerCLI.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bkeevil/mqtt/e57c9b1599c9acb82a6d62264ca29c36aa2da409/Apps/MQTTServerCLI/MQTTServerCLI.res
--------------------------------------------------------------------------------
/Forms/helpfm.pas:
--------------------------------------------------------------------------------
1 | unit helpfm;
2 |
3 | {$mode objfpc}{$H+}
4 |
5 | interface
6 |
7 | uses
8 | Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
9 |
10 | type
11 |
12 | { THelpForm }
13 |
14 | THelpForm = class(TForm)
15 | CloseBtn: TButton;
16 | StaticText: TStaticText;
17 | private
18 | { private declarations }
19 | public
20 | { public declarations }
21 | end;
22 |
23 | var
24 | HelpForm: THelpForm;
25 |
26 | implementation
27 |
28 | {$R *.lfm}
29 |
30 | end.
31 |
32 |
--------------------------------------------------------------------------------
/Forms/passmanparamsfm.pas:
--------------------------------------------------------------------------------
1 | unit PassManParamsFM;
2 |
3 | {$mode objfpc}{$H+}
4 |
5 | interface
6 |
7 | uses
8 | Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ValEdit,
9 | StdCtrls;
10 |
11 | type
12 |
13 | { TParamsForm }
14 |
15 | TParamsForm = class(TForm)
16 | AddBtn: TButton;
17 | RemoveBtn: TButton;
18 | OKBtn: TButton;
19 | CancelBtn: TButton;
20 | ValueListEditor: TValueListEditor;
21 | procedure AddBtnClick(Sender: TObject);
22 | procedure RemoveBtnClick(Sender: TObject);
23 | private
24 | { private declarations }
25 | public
26 | { public declarations }
27 | end;
28 |
29 | var
30 | ParamsForm: TParamsForm;
31 |
32 | implementation
33 |
34 | {$R *.lfm}
35 |
36 | { TParamsForm }
37 |
38 | procedure TParamsForm.AddBtnClick(Sender: TObject);
39 | begin
40 | ValueListEditor.InsertRow('Param','',True);
41 | end;
42 |
43 | procedure TParamsForm.RemoveBtnClick(Sender: TObject);
44 | var
45 | S: Integer;
46 | begin
47 | S := ValueListEditor.Selection.Top;
48 | if S > 0 then
49 | ValueListEditor.DeleteRow(S);
50 | end;
51 |
52 | end.
53 |
54 |
--------------------------------------------------------------------------------
/Forms/publishfm.pas:
--------------------------------------------------------------------------------
1 | unit publishfm;
2 |
3 | {$mode objfpc}{$H+}
4 |
5 | interface
6 |
7 | uses
8 | Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
9 |
10 | type
11 |
12 | { TPublishForm }
13 |
14 | TPublishForm = class(TForm)
15 | CancelBtn: TButton;
16 | OKBtn: TButton;
17 | cbQOS: TComboBox;
18 | cbRetain: TCheckBox;
19 | edMessage: TEdit;
20 | edTopic: TEdit;
21 | lbTopic: TLabel;
22 | lbMessage: TLabel;
23 | lbQOS: TLabel;
24 | private
25 |
26 | public
27 |
28 | end;
29 |
30 | var
31 | PublishForm: TPublishForm;
32 |
33 | implementation
34 |
35 | {$R *.lfm}
36 |
37 | end.
38 |
39 |
--------------------------------------------------------------------------------
/Images/AppIcons.xcf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bkeevil/mqtt/e57c9b1599c9acb82a6d62264ca29c36aa2da409/Images/AppIcons.xcf
--------------------------------------------------------------------------------
/Images/MQTTClientApp-Icon.xcf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bkeevil/mqtt/e57c9b1599c9acb82a6d62264ca29c36aa2da409/Images/MQTTClientApp-Icon.xcf
--------------------------------------------------------------------------------
/Images/MQTTClientApp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bkeevil/mqtt/e57c9b1599c9acb82a6d62264ca29c36aa2da409/Images/MQTTClientApp.png
--------------------------------------------------------------------------------
/Images/MQTTServerApp-Icon.xcf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bkeevil/mqtt/e57c9b1599c9acb82a6d62264ca29c36aa2da409/Images/MQTTServerApp-Icon.xcf
--------------------------------------------------------------------------------
/Images/MQTTServerApp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bkeevil/mqtt/e57c9b1599c9acb82a6d62264ca29c36aa2da409/Images/MQTTServerApp.png
--------------------------------------------------------------------------------
/Images/TMQTTClient.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bkeevil/mqtt/e57c9b1599c9acb82a6d62264ca29c36aa2da409/Images/TMQTTClient.png
--------------------------------------------------------------------------------
/Images/TMQTTClientPublisher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bkeevil/mqtt/e57c9b1599c9acb82a6d62264ca29c36aa2da409/Images/TMQTTClientPublisher.png
--------------------------------------------------------------------------------
/Images/TMQTTServer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bkeevil/mqtt/e57c9b1599c9acb82a6d62264ca29c36aa2da409/Images/TMQTTServer.png
--------------------------------------------------------------------------------
/Images/blank-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bkeevil/mqtt/e57c9b1599c9acb82a6d62264ca29c36aa2da409/Images/blank-icon.png
--------------------------------------------------------------------------------
/doc/TMQTTClientPublisherList.MD:
--------------------------------------------------------------------------------
1 | # Description
2 |
3 | The type of the _TMQTTClient.Publishers_ property. Maintains a list of TMQTTClientPublisher components that have been instantiated and are assigned to this TMQTTClient object. This list is maintained automatically.
4 |
5 | Use this list to inspect or find TMQTTClientPublisher components for an MQTT client connection. _TMQTTClientPublisher_ objects are added/removed from this list by setting their _Client_ property or by calling their destructors.
6 |
7 | ## Properties
8 |
9 | Name | Visibility | Access | Description
10 | :--- | :---: | :---: | :---
11 | Count | public | RO | The number of items in the list
12 | Items[] | public | RO | An indexed array of the items in the list. Default property
13 |
14 | ## Methods
15 |
16 | Name | Visibility | Description
17 | :--- | :---: | :---
18 | Add | public | Adds _AItem_ to the list. Ensures duplicates are ignored.
19 | Remove | public | Removes _AItem_ from the list, if it exists in the list.
20 |
21 |
--------------------------------------------------------------------------------
/doc/TMQTTClientSubscriptionList.MD:
--------------------------------------------------------------------------------
1 | # Description
2 |
3 | The type of the _TMQTTClient.Subscriptions_ property. Maintains a list of TMQTTClientSubscription components that have been instantiated and are assigned to this TMQTTClient object. This list is maintained automatically.
4 |
5 | When a session is established and it is a clean session or the server indicates it did not find an existing connection in its datastores, then the Client.InitSession method is called. This method uses the Subscriptions property to automatically subscribe to various topic filters.
6 |
7 | Use this list to inspect or find TMQTTClientSubscription components for an MQTT client connection. _TMQTTClientSubscription_ objects are added/removed from this list by setting their _Client_ property or by calling their destructors.
8 |
9 | ## Properties
10 |
11 | Name | Visibility | Access | Description
12 | :--- | :---: | :---: | :---
13 | Count | public | RO | The number of items in the list
14 | Items[] | public | RO | An indexed array of the items in the list. Default property
15 |
16 | ## Methods
17 |
18 | Name | Visibility | Description
19 | :--- | :---: | :---
20 | Add | public | Adds _AItem_ to the list. Ensures duplicates are ignored.
21 | Remove | public | Removes _AItem_ from the list, if it exists in the list.
22 |
23 |
--------------------------------------------------------------------------------
/doc/TMQTTSubscription.MD:
--------------------------------------------------------------------------------
1 | # Description
2 |
3 | Represents a subscription on a client or a server. Subscriptions are normally held in sets using the TMQTTSubscriptionList class.
4 |
5 | ## Properties
6 |
7 | Name | Visibility | Access | Description
8 | :--- | :---: | :---: | :---
9 | Age | public | RW | Keeps track of the age of the subscription. The server automatically ages subscriptions and deletes them if they haven't been used after a certain amount of time.
10 | QoS | public | RW | The desired QoS level
11 | Tokens | public | RO | The tokenizer giving access to a list of parsed Filter tokens. Exposed so applications can check if a given filter string was successfully parsed.
12 | Filter | public | RW | The filter string for the component. Setting Filter also updates Tokens.
13 |
14 |
15 | ## Methods
16 |
17 | Name | Visibility | Description
18 | :--- | :---: | :---
19 | Assign | public | If Source is a TMQTTSubscription then copy its properties into this object
20 |
21 |
--------------------------------------------------------------------------------
/doc/TMQTTToken.MD:
--------------------------------------------------------------------------------
1 | ## Description
2 |
3 | Represents a token in a filter or topic string and validates it as per the MQTT specs.
4 |
5 | ## Types
6 |
7 | The type of the token that has been parsed. If the type is tkValid then the Text property contains the text of the token.
8 |
9 | `type TMQTTTokenKind = (tkInvalid,tkValid,tkMultiLevel,tkSingleLevel);`
10 |
11 | ## Properties
12 |
13 | Name | Visibility | Access | Description
14 | :--- | :---: | :---: | :---
15 | Kind | public | RO | The type of this token. See _TMQTTTokenKind_
16 | Text | public | RO | The text of this token if Kind = tkValid, undefined otherwise.
17 |
18 | ## Methods
19 |
20 | These methods are both private. They are used by the [TMQTTTokenizer][TMQTTTokenizer.MD] class.
21 |
22 | Name | Visibility | Description
23 | :--- | :---: | :---
24 | ValidateTopicName | private | An empty string is valid. Any token containing a '+' or '#' is invalid.
25 | ValidateTopicFilter | private | An empty string is valid. Any token not containing a special car is valid. The hash and plus chars must appear on their own. The hash char must be the last token in the list.
26 |
27 | ## See Also
28 |
29 | [TMQTTTokenizer](TMQTTTokenizer.MD)
30 |
--------------------------------------------------------------------------------
/doc/TMQTTTokenizer.MD:
--------------------------------------------------------------------------------
1 | ## Description
2 |
3 | The TMQTTTokenizer class parses a filter or topic string into tokens and validates it. The parsing and validation operation is initiated by the constructor.
4 |
5 | ## Example
6 |
7 | ```pascal
8 | Tokens := TMQTTTokenizer.Create('some/mqtt/path/#',true);`
9 | if Tokens.Valid then
10 | ShowMessage(Tokens.AsString);
11 | ```
12 |
13 | ## Properties
14 |
15 | Name | Visibility | Access | Description
16 | :--- | :---: | :---: | :---
17 | Valid | public | RO | Returns True if all the tokens in the list are valid
18 | Count | public | RO | The number of tokens in the Items[] array
19 | Items[] | public | RO | The list of parsed tokens, which are TMQTTToken objects
20 |
21 | ## Methods
22 |
23 | Name | Visibility | Description
24 | :--- | :---: | :---
25 | Create | public | Constructs a tokenizer and parses Str, which is a filter or topic string. If Filter is true then Str is validated as a Filter string for a subscription. If Filter is false then Str is validated as a topic string for a PUBLISH message.
26 | Destroy | public | Destroys the Tokenizer and any tokens it contains
27 | AsString | public | Reconstructs a text representation of a topic or a filter string from the tokens
28 |
29 | ## See Also
30 |
31 | [TMQTTToken](TMQTTToken.MD)
32 |
--------------------------------------------------------------------------------
/doc/builddoc:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | cd ~/lazarus/mqtt/doc
3 | fpdoc --input-dir=../src --descr-dir=fpdoc --format=html --output=htmldoc --package=mqttcomponents
4 | fpdoc --input-dir=../src --descr-dir=fpdoc --format=txt --output=mqttcomponents.txt --package=mqttcomponents
5 | fpdoc --input-dir=../src --descr-dir=fpdoc --format=chm --output=mqttcomponents.chm --package=mqttcomponents
6 | fpdoc --input-dir=../src --descr-dir=fpdoc --format=rtf --output=mqttcomponents.rtf --package=mqttcomponents
7 |
8 |
--------------------------------------------------------------------------------
/doc/fpdoc/mqttclient.xml:
--------------------------------------------------------------------------------
1 |
2 |
[Overview][Constants][Types][Classes][Index] | 13 |14 | |
Source position: mqttclient.pas line 14
20 |const MQTT_CONNECT_TIMEOUT = 2; |
23 |
[Overview][Constants][Types][Classes][Index] | 13 |14 | |
Source position: mqttclient.pas line 13
20 |const MQTT_DEFAULT_KEEPALIVE = 30; |
23 |
[Overview][Constants][Types][Classes][Index] | 13 |14 | |
Source position: mqttclient.pas line 16
20 |const MQTT_DEFAULT_MAX_RESEND_ATTEMPTS = 3; |
23 |
[Overview][Constants][Types][Classes][Index] | 13 |14 | |
Source position: mqttclient.pas line 12
20 |const MQTT_DEFAULT_PING_INTERVAL = 15; |
23 |
[Overview][Constants][Types][Classes][Index] | 13 |14 | |
Source position: mqttclient.pas line 15
20 |const MQTT_DEFAULT_RESEND_PACKET_TIMEOUT = 2; |
23 |
[Overview][Constants][Types][Classes][Index] | 13 |14 | |
Source position: mqttclient.pas line 121
20 |public function TMQTTClient.Connect: Boolean; |
23 |
[Overview][Constants][Types][Classes][Index] | 13 |14 | |
Source position: mqttclient.pas line 122
20 |public procedure TMQTTClient.Disconnect; |
23 |
[Overview][Constants][Types][Classes][Index] | 13 |14 | |
Source position: mqttclient.pas line 110
20 |protected procedure TMQTTClient.Loaded; override; |
23 |
[Overview][Constants][Types][Classes][Index] | 13 |14 | |
Source position: mqttclient.pas line 116
20 |public TMQTTClient.Log : TLogDispatcher; |
23 |
[Overview][Constants][Types][Classes][Index] | 13 |14 | |
Source position: mqttclient.pas line 120
20 |public procedure TMQTTClient.Reset; |
23 |
13 | | 14 | | ||
pl |
17 | 18 | | 19 | | |
pl |
22 | 23 | | 24 | |
pl |
13 | 14 | | 15 | |
pl |
18 | 19 | | 20 | |
[Overview][Constants][Types][Classes][Index] | 13 |14 | |
Source position: mqttclient.pas line 244
20 |public procedure TMQTTClientPublisher.Clear; |
23 |
[Overview][Constants][Types][Classes][Index] | 13 |14 | |
Source position: mqttclient.pas line 243
20 |public procedure TMQTTClientPublisher.Publish; |
23 |
13 | | 14 | | ||
|
17 | ro | 18 |19 | | |
|
22 | ro | 23 |24 | |
|
13 | ro |
14 | 15 | |
|
18 | ro |
19 | 20 | |
13 | | 14 | |
[Overview][Constants][Types][Classes][Index] | 13 |14 | |
Source position: mqttclient.pas line 184
20 |public procedure TMQTTClientSubscription.Clear; |
23 |
13 | | 14 | | ||
|
17 | ro | 18 |19 | | |
|
22 | ro | 23 |24 | |
|
13 | ro |
14 | 15 | |
|
18 | ro |
19 | 20 | |
13 | | 14 | |
13 | | 14 | |
13 | | 14 | | ||
pt |
17 | 18 | | 19 | |
pt |
13 | 14 | | 15 | |
13 | | 14 | |
[Overview][Index] | 13 |14 | |
[Overview][Constants][Types][Procedures and functions][Variables][Index] | 13 |14 | |
20 | |
[Overview][Constants][Types][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttconsts.pas line 11
20 |const LISTEN_RETRY_DELAY = 15000; |
23 |
[Overview][Constants][Types][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttconsts.pas line 102
20 |const LM_CLIENT_HAS_CONNECTED = 103; |
23 |
[Overview][Constants][Types][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttconsts.pas line 105
20 |const LM_CLIENT_RESET = 106; |
23 |
[Overview][Constants][Types][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttconsts.pas line 104
20 |const LM_RESENDING_PACKET = 105; |
23 |
[Overview][Constants][Types][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttconsts.pas line 62
20 |const MQTT_CONNACK_NOT_AUTHORIZED = 5; |
23 |
[Overview][Constants][Types][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttconsts.pas line 57
20 |const MQTT_CONNACK_SUCCESS = 0; |
23 |
[Overview][Constants][Types][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttconsts.pas line 14
20 |const MQTT_DEFAULT_KEEPALIVE = 60; |
23 |
[Overview][Constants][Types][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttconsts.pas line 15
20 |const MQTT_DEFAULT_PING_INTERVAL = 45; |
23 |
[Overview][Constants][Types][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttconsts.pas line 66
20 |const MQTT_ERROR_ALREADY_CONNECTED = 101; |
23 |
[Overview][Constants][Types][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttconsts.pas line 75
20 |const MQTT_ERROR_CLIENTID_REJECTED = 110; |
23 |
[Overview][Constants][Types][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttconsts.pas line 86
20 |const MQTT_ERROR_CONNECT_TIMEOUT = 121; |
23 |
[Overview][Constants][Types][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttconsts.pas line 79
20 |const MQTT_ERROR_NO_CLIENTID = 114; |
23 |
[Overview][Constants][Types][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttconsts.pas line 81
20 |const MQTT_ERROR_NO_PING_RESPONSE = 116; |
23 |
[Overview][Constants][Types][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttconsts.pas line 65
20 |const MQTT_ERROR_NONE = 0; |
23 |
[Overview][Constants][Types][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttconsts.pas line 78
20 |const MQTT_ERROR_NOT_AUTHORIZED = 113; |
23 |
[Overview][Constants][Types][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttconsts.pas line 67
20 |const MQTT_ERROR_NOT_CONNECTED = 102; |
23 |
[Overview][Constants][Types][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttconsts.pas line 87
20 |const MQTT_ERROR_NOT_IMPLEMENTED = 122; |
23 |
[Overview][Constants][Types][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttconsts.pas line 71
20 |const MQTT_ERROR_PACKET_INVALID = 106; |
23 |
[Overview][Constants][Types][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttconsts.pas line 72
20 |const MQTT_ERROR_PAYLOAD_INVALID = 107; |
23 |
[Overview][Constants][Types][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttconsts.pas line 94
20 |const MQTT_ERROR_UNKNOWN = 1000; |
23 |
[Overview][Constants][Types][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttconsts.pas line 17
20 |const MQTT_MAX_PACKET_RESEND_TRIES = 3; |
23 |
[Overview][Constants][Types][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttconsts.pas line 19
20 |const MQTT_MAX_SESSION_AGE = 1080; |
23 |
[Overview][Constants][Types][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttconsts.pas line 18
20 |const MQTT_MAX_SUBSCRIPTION_AGE = 1080; |
23 |
[Overview][Constants][Types][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttconsts.pas line 16
20 |const MQTT_RESEND_PACKET_TIMEOUT = 2; |
23 |
[Overview][Classes][Index] | 13 |14 | |
20 | |
|
21 | An MQTT message |
22 |
25 | |
[Overview][Classes][Index] | 13 |14 | |
T | 20 |
TMQTTMessage | 26 |TMQTTMessageList | 27 |28 | |
13 | | 14 | |
[Overview][Classes][Index] | 13 |14 | |
Creates an identical copy of the message
18 |Source position: mqttmessages.pas line 29
20 |public function TMQTTMessage.Clone: TMQTTMessage; |
23 |
[Overview][Classes][Index] | 13 |14 | |
Source position: mqttmessages.pas line 26
20 |public constructor TMQTTMessage.Create; |
23 |
[Overview][Classes][Index] | 13 |14 | |
Source position: mqttmessages.pas line 27
20 |public destructor TMQTTMessage.Destroy; override; |
23 |
13 | | 14 | | ||
|
17 | ro | 18 |19 | | |
|
22 | ro | 23 |24 | |
|
13 | ro |
14 | 15 | |
|
18 | ro |
19 | 20 | |
13 | | 14 | |
[Overview][Classes][Index] | 13 |14 | |
Clears the list and frees all messages stored in it
18 |Source position: mqttmessages.pas line 52
20 |public procedure TMQTTMessageList.Clear; |
23 |
[Overview][Classes][Index] | 13 |14 | |
Source position: mqttmessages.pas line 63
20 | public property TMQTTMessageList.Count : Integer |
23 |
[Overview][Classes][Index] | 13 |14 | |
Source position: mqttmessages.pas line 49
20 |public constructor TMQTTMessageList.Create; |
23 |
[Overview][Classes][Index] | 13 |14 | |
Source position: mqttmessages.pas line 50
20 |public destructor TMQTTMessageList.Destroy; override; |
23 |
13 | | 14 | | ||
|
17 | |||
20 | | 21 | |
13 | | 14 | | ||
|
17 | |||
20 | | 21 | |
[Overview][Classes][Index] | 13 |14 | |
Source position: mqttpacketdefs.pas line 56
20 |public constructor TMQTTCONNECTPacket.Create; |
23 |
13 | | 14 | | ||
|
17 | |||
20 | | 21 | |
13 | | 14 | | ||
|
17 | |||
20 | | 21 | |
13 | | 14 | | ||
|
17 | |||
20 | | 21 | |
13 | | 14 | | ||
|
17 | |||
20 | | 21 | | ||
|
24 | |||
27 | | 28 | |
13 | | 14 | | ||
|
17 | |||
20 | | 21 | | ||
|
24 | |||
27 | | 28 | |
[Overview][Classes][Index] | 13 |14 | |
Source position: mqttpacketdefs.pas line 102
20 |public destructor TMQTTPUBLISHPacket.Destroy; override; |
23 |
13 | | 14 | | ||
|
17 | |||
20 | | 21 | | ||
|
24 | |||
27 | | 28 | |
[Overview][Classes][Index] | 13 |14 | |
Source position: mqttpacketdefs.pas line 185
20 |public function TMQTTSUBACKPacket.AsString: string; override; |
23 |
[Overview][Classes][Index] | 13 |14 | |
Source position: mqttpacketdefs.pas line 183
20 |public constructor TMQTTSUBACKPacket.Create; |
23 |
[Overview][Classes][Index] | 13 |14 | |
Source position: mqttpacketdefs.pas line 184
20 |public destructor TMQTTSUBACKPacket.Destroy; override; |
23 |
[Overview][Classes][Index] | 13 |14 | |
Source position: mqttpacketdefs.pas line 166
20 |public constructor TMQTTSUBSCRIBEPacket.Create; |
23 |
[Overview][Classes][Index] | 13 |14 | |
Source position: mqttpacketdefs.pas line 167
20 |public destructor TMQTTSUBSCRIBEPacket.Destroy; override; |
23 |
13 | | 14 | | ||
|
17 | |||
20 | | 21 | | ||
|
24 | |||
27 | | 28 | |
[Overview][Classes][Index] | 13 |14 | |
Source position: mqttpacketdefs.pas line 200
20 |public constructor TMQTTUNSUBSCRIBEPacket.Create; |
23 |
[Overview][Classes][Index] | 13 |14 | |
Source position: mqttpacketdefs.pas line 201
20 |public destructor TMQTTUNSUBSCRIBEPacket.Destroy; override; |
23 |
13 | | 14 | |
[Overview][Classes][Index] | 13 |14 | |
Source position: mqttpacketdefs.pas line 25
20 |public function TMQTTWillMessage.AsString: string; |
23 |
[Overview][Classes][Index] | 13 |14 | |
Source position: mqttpacketdefs.pas line 22
20 |public procedure TMQTTWillMessage.Clear; |
23 |
[Overview][Classes][Index] | 13 |14 | |
Source position: mqttpacketdefs.pas line 24
20 |public function TMQTTWillMessage.DisplayText: string; |
23 |
13 | | 14 | |
13 | | 14 | |
13 | | 14 | |
[Overview][Classes][Procedures and functions][Variables][Index] | 13 |14 | |
20 | |
[Overview][Classes][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttpackets.pas line 136
20 |var PacketList: TMQTTPacketList = ; |
23 |
13 | | 14 | |
[Overview][Classes][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttpackets.pas line 27
20 |public constructor TMQTTPacket.Create; |
23 |
13 | | 14 | | ||
|
17 | ro | 18 |19 | | |
|
22 | ro | 23 |24 | |
|
13 | ro |
14 | 15 | |
|
18 | ro |
19 | 20 | |
13 | | 14 | |
13 | | 14 | | ||
|
17 | |||
20 | | 21 | |
13 | | 14 | | ||
|
17 | ro | 18 |19 | | |
|
22 | ro | 23 |24 | |
|
13 | ro |
14 | 15 | |
|
18 | ro |
19 | 20 | |
13 | | 14 | |
[Overview][Classes][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttpackets.pas line 110
20 |public constructor TMQTTPacketList.Create; |
23 |
13 | | 14 | | ||
|
17 | ro | 18 |19 | | |
|
22 | ro | 23 |24 | |
|
13 | ro |
14 | 15 | |
|
18 | ro |
19 | 20 | |
13 | | 14 | |
[Overview][Classes][Procedures and functions][Variables][Index] | 13 |14 | |
Source position: mqttpackets.pas line 66
20 |public constructor TMQTTPacketQueue.Create; |
23 |
13 | | 14 | | ||
|
17 | |||
20 | | 21 | | ||
|
24 | |||
27 | | 28 | |
[Overview][Procedures and functions][Index] | 13 |14 | |
20 | |
[Overview][Procedures and functions][Index] | 13 |14 | |
R | 20 |
Register | 26 |27 | | 28 | |
[Overview][Procedures and functions][Index] | 13 |14 | |
Source position: mqttregister.pas line 10
20 |procedure Register; |
23 |
13 | | 14 | |
13 | | 14 | |
13 | | 14 | |
[Overview][Constants][Types][Classes][Variables][Index] | 13 |14 | |
20 | |
[Overview][Constants][Types][Classes][Variables][Index] | 13 |14 | |
Source position: mqttserver.pas line 14
20 |const MQTT_DEFAULT_KEEPALIVE = 30; |
23 |
[Overview][Constants][Types][Classes][Variables][Index] | 13 |14 | |
Source position: mqttserver.pas line 17
20 |const MQTT_DEFAULT_MAX_RESEND_ATTEMPTS = 3; |
23 |
[Overview][Constants][Types][Classes][Variables][Index] | 13 |14 | |
Source position: mqttserver.pas line 15
20 |const MQTT_DEFAULT_MAX_SESSION_AGE = 1080; |
23 |
[Overview][Constants][Types][Classes][Variables][Index] | 13 |14 | |
Source position: mqttserver.pas line 220
20 |public TMQTTServer.Log : TLogDispatcher; |
23 |
13 | | 14 | |
13 | | 14 | | ||
|
17 | ro | 18 |19 | | |
|
22 | ro | 23 |24 | |
|
13 | ro |
14 | 15 | |
|
18 | ro |
19 | 20 | |
13 | | 14 | |
13 | | 14 | |
13 | | 14 | | ||
pt |
17 | 18 | | 19 | |
pt |
13 | 14 | | 15 | |
13 | | 14 | |
13 | | 14 | | ||
|
17 | 18 | | 19 | | |
|
22 | 23 | | 24 | | |
|
27 | 28 | | 29 | |
13 | | 14 | |
[Overview][Constants][Types][Classes][Variables][Index] | 13 |14 | |
Source position: mqttserver.pas line 277
20 |public procedure TMQTTSession.Clean; |
23 |
13 | | 14 | |
13 | | 14 | |
13 | | 14 | | ||
|
17 | ro | 18 |19 | | |
|
22 | ro | 23 |24 | |
|
13 | ro |
14 | 15 | |
|
18 | ro |
19 | 20 | |
13 | | 14 | |
[Overview][Classes][Index] | 13 |14 | |
Creates a new subscription list
18 |Source position: mqttsubscriptions.pas line 40
20 |public constructor TMQTTSubscriptionList.Create; |
23 |
[Overview][Types][Classes][Procedures and functions][Index] | 13 |14 | |
20 | |
[Overview][Types][Classes][Procedures and functions][Index] | 13 |14 | |
20 | |
23 | |
[Overview][Types][Classes][Procedures and functions][Index] | 13 |14 | |
20 | |
13 | | 14 | | ||
|
17 | ro | 18 |19 | | |
|
22 | ro | 23 |24 | |
|
13 | ro |
14 | 15 | |
|
18 | ro |
19 | 20 | |
13 | | 14 | |
13 | | 14 | |
13 | | 14 | |