<book xmlns="http://www.devhelp.net/book" title="CM-0 Reference Manual" link="index.html" author="Purism SPC" name="CM" version="2" language="c"><chapters><sub name="Compiling with libcmatrix" link="build-howto.html" /><sub name="Classes Hierarchy" link="classes_hierarchy.html" /><sub name="Callbacks" link="index.html#callbacks"><sub name="Callback" link="callback.Callback.html" /></sub><sub name="Classes" link="index.html#classes"><sub name="Account" link="class.Account.html" /><sub name="Client" link="class.Client.html" /><sub name="Event" link="class.Event.html" /><sub name="Matrix" link="class.Matrix.html" /><sub name="Pusher" link="class.Pusher.html" /><sub name="Room" link="class.Room.html" /><sub name="RoomEvent" link="class.RoomEvent.html" /><sub name="RoomMessageEvent" link="class.RoomMessageEvent.html" /><sub name="User" link="class.User.html" /><sub name="VerificationEvent" link="class.VerificationEvent.html" /></sub><sub name="Domains" link="index.html#domains"><sub name="Error" link="error.Error.html" /></sub><sub name="Enums" link="index.html#enums"><sub name="ContentType" link="enum.ContentType.html" /><sub name="EventState" link="enum.EventState.html" /><sub name="EventType" link="enum.EventType.html" /><sub name="PusherKind" link="enum.PusherKind.html" /><sub name="Status" link="enum.Status.html" /></sub><sub name="Functions" link="index.html#functions"><sub name="init" link="func.init.html" /><sub name="utils_get_homeserver_async" link="func.utils_get_homeserver_async.html" /><sub name="utils_get_homeserver_finish" link="func.utils_get_homeserver_finish.html" /><sub name="utils_get_homeserver_sync" link="func.utils_get_homeserver_sync.html" /></sub><sub name="Structs" link="index.html#structs"><sub name="Db" link="struct.Db.html" /><sub name="Olm" link="struct.Olm.html" /><sub name="RoomMember" link="struct.RoomMember.html" /><sub name="UserList" link="struct.UserList.html" /></sub></chapters><functions><keyword type="struct" name="CmAccount" link="class.Account.html" /><keyword type="member" name="AccountClass.parent_class" link="class.Account.html" /><keyword type="function" name="cm_account_delete_3pid_async" link="method.Account.delete_3pid_async.html" /><keyword type="function" name="cm_account_delete_3pid_finish" link="method.Account.delete_3pid_finish.html" /><keyword type="function" name="cm_account_get_3pids_async" link="method.Account.get_3pids_async.html" /><keyword type="function" name="cm_account_get_3pids_finish" link="method.Account.get_3pids_finish.html" /><keyword type="function" name="cm_account_get_login_id" link="method.Account.get_login_id.html" /><keyword type="function" name="cm_account_set_display_name_async" link="method.Account.set_display_name_async.html" /><keyword type="function" name="cm_account_set_display_name_finish" link="method.Account.set_display_name_finish.html" /><keyword type="function" name="cm_account_set_login_id" link="method.Account.set_login_id.html" /><keyword type="function" name="cm_account_set_user_avatar_async" link="method.Account.set_user_avatar_async.html" /><keyword type="function" name="cm_account_set_user_avatar_finish" link="method.Account.set_user_avatar_finish.html" /><keyword type="struct" name="CmClient" link="class.Client.html" /><keyword type="member" name="ClientClass.parent_class" link="class.Client.html" /><keyword type="function" name="cm_client_add_pusher_async" link="method.Client.add_pusher_async.html" since="0.0.1" /><keyword type="function" name="cm_client_add_pusher_finish" link="method.Client.add_pusher_finish.html" since="0.0.1" /><keyword type="function" name="cm_client_add_pusher_sync" link="method.Client.add_pusher_sync.html" since="0.0.1" /><keyword type="function" name="cm_client_can_connect" link="method.Client.can_connect.html" /><keyword type="function" name="cm_client_get_access_token" link="method.Client.get_access_token.html" /><keyword type="function" name="cm_client_get_account" link="method.Client.get_account.html" /><keyword type="function" name="cm_client_get_device_id" link="method.Client.get_device_id.html" /><keyword type="function" name="cm_client_get_device_name" link="method.Client.get_device_name.html" /><keyword type="function" name="cm_client_get_ed25519_key" link="method.Client.get_ed25519_key.html" /><keyword type="function" name="cm_client_get_enabled" link="method.Client.get_enabled.html" /><keyword type="function" name="cm_client_get_homeserver" link="method.Client.get_homeserver.html" /><keyword type="function" name="cm_client_get_homeserver_async" link="method.Client.get_homeserver_async.html" /><keyword type="function" name="cm_client_get_homeserver_finish" link="method.Client.get_homeserver_finish.html" /><keyword type="function" name="cm_client_get_homeserver_versions" link="method.Client.get_homeserver_versions.html" since="0.0.3" /><keyword type="function" name="cm_client_get_invited_rooms" link="method.Client.get_invited_rooms.html" /><keyword type="function" name="cm_client_get_joined_rooms" link="method.Client.get_joined_rooms.html" /><keyword type="function" name="cm_client_get_key_verifications" link="method.Client.get_key_verifications.html" /><keyword type="function" name="cm_client_get_logged_in" link="method.Client.get_logged_in.html" /><keyword type="function" name="cm_client_get_logging_in" link="method.Client.get_logging_in.html" /><keyword type="function" name="cm_client_get_password" link="method.Client.get_password.html" /><keyword type="function" name="cm_client_get_pickle_key" link="method.Client.get_pickle_key.html" /><keyword type="function" name="cm_client_get_pushers_async" link="method.Client.get_pushers_async.html" since="0.0.1" /><keyword type="function" name="cm_client_get_pushers_finish" link="method.Client.get_pushers_finish.html" since="0.0.1" /><keyword type="function" name="cm_client_get_pushers_sync" link="method.Client.get_pushers_sync.html" since="0.0.1" /><keyword type="function" name="cm_client_get_user_id" link="method.Client.get_user_id.html" /><keyword type="function" name="cm_client_is_sync" link="method.Client.is_sync.html" /><keyword type="function" name="cm_client_join_room_async" link="method.Client.join_room_async.html" /><keyword type="function" name="cm_client_join_room_finish" link="method.Client.join_room_finish.html" /><keyword type="function" name="cm_client_join_room_sync" link="method.Client.join_room_sync.html" since="0.0.2" /><keyword type="function" name="cm_client_remove_pusher_async" link="method.Client.remove_pusher_async.html" since="0.0.1" /><keyword type="function" name="cm_client_remove_pusher_finish" link="method.Client.remove_pusher_finish.html" since="0.0.1" /><keyword type="function" name="cm_client_remove_pusher_sync" link="method.Client.remove_pusher_sync.html" since="0.0.1" /><keyword type="function" name="cm_client_set_access_token" link="method.Client.set_access_token.html" /><keyword type="function" name="cm_client_set_device_id" link="method.Client.set_device_id.html" /><keyword type="function" name="cm_client_set_device_name" link="method.Client.set_device_name.html" /><keyword type="function" name="cm_client_set_enabled" link="method.Client.set_enabled.html" /><keyword type="function" name="cm_client_set_homeserver" link="method.Client.set_homeserver.html" /><keyword type="function" name="cm_client_set_password" link="method.Client.set_password.html" /><keyword type="function" name="cm_client_set_pickle_key" link="method.Client.set_pickle_key.html" /><keyword type="function" name="cm_client_set_sync_callback" link="method.Client.set_sync_callback.html" /><keyword type="function" name="cm_client_set_user_id" link="method.Client.set_user_id.html" /><keyword type="function" name="cm_client_start_sync" link="method.Client.start_sync.html" /><keyword type="function" name="cm_client_stop_sync" link="method.Client.stop_sync.html" /><keyword type="function" name="cm_client_new" link="ctor.Client.new.html" /><keyword type="property" name="The CmClient:home-server property" link="property.Client.home-server.html" /><keyword type="signal" name="The CmClient::status-changed signal" link="signal.Client.status-changed.html" /><keyword type="struct" name="CmEvent" link="class.Event.html" /><keyword type="member" name="EventClass.parent_class" link="class.Event.html" /><keyword type="member" name="EventClass.generate_json" link="class.Event.html" /><keyword type="member" name="EventClass.get_api_url" link="class.Event.html" /><keyword type="member" name="EventClass.reserved" link="class.Event.html" /><keyword type="function" name="cm_event_get_id" link="method.Event.get_id.html" /><keyword type="function" name="cm_event_get_m_type" link="method.Event.get_m_type.html" /><keyword type="function" name="cm_event_get_sender" link="method.Event.get_sender.html" /><keyword type="function" name="cm_event_get_state" link="method.Event.get_state.html" /><keyword type="function" name="cm_event_get_time_stamp" link="method.Event.get_time_stamp.html" /><keyword type="function" name="cm_event_is_encrypted" link="method.Event.is_encrypted.html" /><keyword type="signal" name="The CmEvent::updated signal" link="signal.Event.updated.html" /><keyword type="struct" name="CmMatrix" link="class.Matrix.html" /><keyword type="member" name="MatrixClass.parent_class" link="class.Matrix.html" /><keyword type="function" name="cm_matrix_add_clients_async" link="method.Matrix.add_clients_async.html" /><keyword type="function" name="cm_matrix_add_clients_finish" link="method.Matrix.add_clients_finish.html" /><keyword type="function" name="cm_matrix_client_new" link="method.Matrix.client_new.html" /><keyword type="function" name="cm_matrix_delete_client_async" link="method.Matrix.delete_client_async.html" /><keyword type="function" name="cm_matrix_delete_client_finish" link="method.Matrix.delete_client_finish.html" /><keyword type="function" name="cm_matrix_get_clients_list" link="method.Matrix.get_clients_list.html" /><keyword type="function" name="cm_matrix_has_client_with_id" link="method.Matrix.has_client_with_id.html" /><keyword type="function" name="cm_matrix_is_ready" link="method.Matrix.is_ready.html" /><keyword type="function" name="cm_matrix_open_async" link="method.Matrix.open_async.html" /><keyword type="function" name="cm_matrix_open_finish" link="method.Matrix.open_finish.html" /><keyword type="function" name="cm_matrix_save_client_async" link="method.Matrix.save_client_async.html" /><keyword type="function" name="cm_matrix_save_client_finish" link="method.Matrix.save_client_finish.html" /><keyword type="function" name="cm_matrix_save_client_sync" link="method.Matrix.save_client_sync.html" since="0.0.2" /><keyword type="function" name="cm_matrix_new" link="ctor.Matrix.new.html" /><keyword type="property" name="The CmMatrix:ready property" link="property.Matrix.ready.html" /><keyword type="struct" name="CmPusher" link="class.Pusher.html" since="0.0.1" /><keyword type="member" name="PusherClass.parent_class" link="class.Pusher.html" /><keyword type="function" name="cm_pusher_check_valid" link="method.Pusher.check_valid.html" since="0.0.1" /><keyword type="function" name="cm_pusher_check_valid_finish" link="method.Pusher.check_valid_finish.html" since="0.0.1" /><keyword type="function" name="cm_pusher_get_app_display_name" link="method.Pusher.get_app_display_name.html" since="0.0.1" /><keyword type="function" name="cm_pusher_get_app_id" link="method.Pusher.get_app_id.html" since="0.0.1" /><keyword type="function" name="cm_pusher_get_device_display_name" link="method.Pusher.get_device_display_name.html" since="0.0.1" /><keyword type="function" name="cm_pusher_get_kind" link="method.Pusher.get_kind.html" since="0.0.1" /><keyword type="function" name="cm_pusher_get_kind_as_string" link="method.Pusher.get_kind_as_string.html" since="0.0.1" /><keyword type="function" name="cm_pusher_get_lang" link="method.Pusher.get_lang.html" since="0.0.1" /><keyword type="function" name="cm_pusher_get_profile_tag" link="method.Pusher.get_profile_tag.html" since="0.0.1" /><keyword type="function" name="cm_pusher_get_pushkey" link="method.Pusher.get_pushkey.html" since="0.0.1" /><keyword type="function" name="cm_pusher_get_url" link="method.Pusher.get_url.html" since="0.0.1" /><keyword type="function" name="cm_pusher_set_app_display_name" link="method.Pusher.set_app_display_name.html" since="0.0.1" /><keyword type="function" name="cm_pusher_set_app_id" link="method.Pusher.set_app_id.html" since="0.0.1" /><keyword type="function" name="cm_pusher_set_device_display_name" link="method.Pusher.set_device_display_name.html" since="0.0.1" /><keyword type="function" name="cm_pusher_set_kind" link="method.Pusher.set_kind.html" since="0.0.1" /><keyword type="function" name="cm_pusher_set_kind_from_string" link="method.Pusher.set_kind_from_string.html" since="0.0.1" /><keyword type="function" name="cm_pusher_set_lang" link="method.Pusher.set_lang.html" since="0.0.1" /><keyword type="function" name="cm_pusher_set_profile_tag" link="method.Pusher.set_profile_tag.html" since="0.0.1" /><keyword type="function" name="cm_pusher_set_pushkey" link="method.Pusher.set_pushkey.html" since="0.0.1" /><keyword type="function" name="cm_pusher_set_url" link="method.Pusher.set_url.html" since="0.0.1" /><keyword type="function" name="cm_pusher_new" link="ctor.Pusher.new.html" since="0.0.1" /><keyword type="struct" name="CmRoom" link="class.Room.html" /><keyword type="member" name="RoomClass.parent_class" link="class.Room.html" /><keyword type="function" name="cm_room_accept_invite_async" link="method.Room.accept_invite_async.html" /><keyword type="function" name="cm_room_accept_invite_finish" link="method.Room.accept_invite_finish.html" /><keyword type="function" name="cm_room_enable_encryption_async" link="method.Room.enable_encryption_async.html" /><keyword type="function" name="cm_room_enable_encryption_finish" link="method.Room.enable_encryption_finish.html" /><keyword type="function" name="cm_room_get_avatar_async" link="method.Room.get_avatar_async.html" /><keyword type="function" name="cm_room_get_avatar_finish" link="method.Room.get_avatar_finish.html" /><keyword type="function" name="cm_room_get_event_async" link="method.Room.get_event_async.html" /><keyword type="function" name="cm_room_get_event_finish" link="method.Room.get_event_finish.html" /><keyword type="function" name="cm_room_get_event_sync" link="method.Room.get_event_sync.html" /><keyword type="function" name="cm_room_get_events_list" link="method.Room.get_events_list.html" /><keyword type="function" name="cm_room_get_id" link="method.Room.get_id.html" /><keyword type="function" name="cm_room_get_joined_members" link="method.Room.get_joined_members.html" /><keyword type="function" name="cm_room_get_name" link="method.Room.get_name.html" /><keyword type="function" name="cm_room_get_past_name" link="method.Room.get_past_name.html" /><keyword type="function" name="cm_room_get_room_version" link="method.Room.get_room_version.html" /><keyword type="function" name="cm_room_get_topic" link="method.Room.get_topic.html" since="0.0.2" /><keyword type="function" name="cm_room_get_unread_notification_counts" link="method.Room.get_unread_notification_counts.html" /><keyword type="function" name="cm_room_is_encrypted" link="method.Room.is_encrypted.html" /><keyword type="function" name="cm_room_leave_async" link="method.Room.leave_async.html" /><keyword type="function" name="cm_room_leave_finish" link="method.Room.leave_finish.html" /><keyword type="function" name="cm_room_load_past_events_async" link="method.Room.load_past_events_async.html" /><keyword type="function" name="cm_room_load_past_events_finish" link="method.Room.load_past_events_finish.html" /><keyword type="function" name="cm_room_load_past_events_sync" link="method.Room.load_past_events_sync.html" since="0.0.2" /><keyword type="function" name="cm_room_reject_invite_async" link="method.Room.reject_invite_async.html" /><keyword type="function" name="cm_room_reject_invite_finish" link="method.Room.reject_invite_finish.html" /><keyword type="function" name="cm_room_self_has_power_for_event" link="method.Room.self_has_power_for_event.html" /><keyword type="function" name="cm_room_send_file_async" link="method.Room.send_file_async.html" /><keyword type="function" name="cm_room_send_file_finish" link="method.Room.send_file_finish.html" /><keyword type="function" name="cm_room_send_text_async" link="method.Room.send_text_async.html" /><keyword type="function" name="cm_room_send_text_finish" link="method.Room.send_text_finish.html" /><keyword type="function" name="cm_room_set_read_marker_async" link="method.Room.set_read_marker_async.html" /><keyword type="function" name="cm_room_set_read_marker_finish" link="method.Room.set_read_marker_finish.html" /><keyword type="function" name="cm_room_set_typing_notice_async" link="method.Room.set_typing_notice_async.html" /><keyword type="function" name="cm_room_set_typing_notice_finish" link="method.Room.set_typing_notice_finish.html" /><keyword type="property" name="The CmRoom:encrypted property" link="property.Room.encrypted.html" /><keyword type="property" name="The CmRoom:name property" link="property.Room.name.html" /><keyword type="property" name="The CmRoom:unread-count property" link="property.Room.unread-count.html" since="0.0.2" /><keyword type="struct" name="CmRoomEvent" link="class.RoomEvent.html" /><keyword type="member" name="RoomEventClass.parent_class" link="class.RoomEvent.html" /><keyword type="member" name="RoomEventClass.reserved" link="class.RoomEvent.html" /><keyword type="function" name="cm_room_event_get_room" link="method.RoomEvent.get_room.html" /><keyword type="function" name="cm_room_event_get_room_version" link="method.RoomEvent.get_room_version.html" /><keyword type="struct" name="CmRoomMessageEvent" link="class.RoomMessageEvent.html" /><keyword type="member" name="RoomMessageEventClass.parent_class" link="class.RoomMessageEvent.html" /><keyword type="function" name="cm_room_message_event_get_body" link="method.RoomMessageEvent.get_body.html" /><keyword type="function" name="cm_room_message_event_get_file_async" link="method.RoomMessageEvent.get_file_async.html" /><keyword type="function" name="cm_room_message_event_get_file_finish" link="method.RoomMessageEvent.get_file_finish.html" /><keyword type="function" name="cm_room_message_event_get_file_path" link="method.RoomMessageEvent.get_file_path.html" /><keyword type="function" name="cm_room_message_event_get_msg_type" link="method.RoomMessageEvent.get_msg_type.html" /><keyword type="struct" name="CmUser" link="class.User.html" /><keyword type="member" name="UserClass.parent_class" link="class.User.html" /><keyword type="member" name="UserClass.reserved" link="class.User.html" /><keyword type="function" name="cm_user_get_avatar_async" link="method.User.get_avatar_async.html" /><keyword type="function" name="cm_user_get_avatar_finish" link="method.User.get_avatar_finish.html" /><keyword type="function" name="cm_user_get_avatar_url" link="method.User.get_avatar_url.html" /><keyword type="function" name="cm_user_get_display_name" link="method.User.get_display_name.html" /><keyword type="function" name="cm_user_get_id" link="method.User.get_id.html" /><keyword type="function" name="cm_user_load_info_async" link="method.User.load_info_async.html" /><keyword type="function" name="cm_user_load_info_finish" link="method.User.load_info_finish.html" /><keyword type="signal" name="The CmUser::changed signal" link="signal.User.changed.html" /><keyword type="struct" name="CmVerificationEvent" link="class.VerificationEvent.html" /><keyword type="member" name="VerificationEventClass.parent_class" link="class.VerificationEvent.html" /><keyword type="function" name="cm_verification_event_cancel_async" link="method.VerificationEvent.cancel_async.html" /><keyword type="function" name="cm_verification_event_cancel_finish" link="method.VerificationEvent.cancel_finish.html" /><keyword type="function" name="cm_verification_event_continue_async" link="method.VerificationEvent.continue_async.html" /><keyword type="function" name="cm_verification_event_continue_finish" link="method.VerificationEvent.continue_finish.html" /><keyword type="function" name="cm_verification_event_match_async" link="method.VerificationEvent.match_async.html" /><keyword type="function" name="cm_verification_event_match_finish" link="method.VerificationEvent.match_finish.html" /><keyword type="enum" name="CmError" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_FORBIDDEN" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_UNKNOWN_TOKEN" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_MISSING_TOKEN" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_BAD_JSON" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_NOT_JSON" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_NOT_FOUND" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_LIMIT_EXCEEDED" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_UNKNOWN" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_UNRECOGNIZED" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_UNAUTHORIZED" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_USER_DEACTIVATED" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_USER_IN_USE" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_INVALID_USERNAME" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_ROOM_IN_USE" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_INVALID_ROOM_STATE" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_THREEPID_IN_USE" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_THREEPID_NOT_FOUND" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_THREEPID_AUTH_FAILED" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_THREEPID_DENIED" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_SERVER_NOT_TRUSTED" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_UNSUPPORTED_ROOM_VERSION" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_INCOMPATIBLE_ROOM_VERSION" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_BAD_STATE" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_GUEST_ACCESS_FORBIDDEN" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_CAPTCHA_NEEDED" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_CAPTCHA_INVALID" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_MISSING_PARAM" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_INVALID_PARAM" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_TOO_LARGE" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_EXCLUSIVE" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_RESOURCE_LIMIT_EXCEEDED" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_CANNOT_LEAVE_SERVER_NOTICE_ROOM" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_BAD_PASSWORD" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_NO_HOME_SERVER" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_BAD_HOME_SERVER" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_USER_DEVICE_CHANGED" link="error.Error.html" /><keyword type="constant" name="CM_ERROR_BAD_PUSH_GATEWAY" link="error.Error.html" /><keyword type="function" name="cm_error_quark" link="type_func.Error.quark.html" /><keyword type="enum" name="CmContentType" link="enum.ContentType.html" /><keyword type="constant" name="CM_CONTENT_TYPE_UNKNOWN" link="enum.ContentType.html" /><keyword type="constant" name="CM_CONTENT_TYPE_TEXT" link="enum.ContentType.html" /><keyword type="constant" name="CM_CONTENT_TYPE_EMOTE" link="enum.ContentType.html" /><keyword type="constant" name="CM_CONTENT_TYPE_NOTICE" link="enum.ContentType.html" /><keyword type="constant" name="CM_CONTENT_TYPE_IMAGE" link="enum.ContentType.html" /><keyword type="constant" name="CM_CONTENT_TYPE_FILE" link="enum.ContentType.html" /><keyword type="constant" name="CM_CONTENT_TYPE_LOCATION" link="enum.ContentType.html" /><keyword type="constant" name="CM_CONTENT_TYPE_AUDIO" link="enum.ContentType.html" /><keyword type="constant" name="CM_CONTENT_TYPE_VIDEO" link="enum.ContentType.html" /><keyword type="constant" name="CM_CONTENT_TYPE_SERVER_NOTICE" link="enum.ContentType.html" /><keyword type="enum" name="CmEventState" link="enum.EventState.html" /><keyword type="constant" name="CM_EVENT_STATE_UNKNOWN" link="enum.EventState.html" /><keyword type="constant" name="CM_EVENT_STATE_DRAFT" link="enum.EventState.html" /><keyword type="constant" name="CM_EVENT_STATE_WAITING" link="enum.EventState.html" /><keyword type="constant" name="CM_EVENT_STATE_SENDING" link="enum.EventState.html" /><keyword type="constant" name="CM_EVENT_STATE_SENDING_FAILED" link="enum.EventState.html" /><keyword type="constant" name="CM_EVENT_STATE_SENT" link="enum.EventState.html" /><keyword type="constant" name="CM_EVENT_STATE_RECEIVED" link="enum.EventState.html" /><keyword type="enum" name="CmEventType" link="enum.EventType.html" /><keyword type="constant" name="CM_M_UNKNOWN" link="enum.EventType.html" /><keyword type="constant" name="CM_M_CALL_ANSWER" link="enum.EventType.html" /><keyword type="constant" name="CM_M_CALL_ASSERTED_IDENTITY" link="enum.EventType.html" /><keyword type="constant" name="CM_M_CALL_ASSERTED_IDENTITY_PREFIX" link="enum.EventType.html" /><keyword type="constant" name="CM_M_CALL_CANDIDATES" link="enum.EventType.html" /><keyword type="constant" name="CM_M_CALL_HANGUP" link="enum.EventType.html" /><keyword type="constant" name="CM_M_CALL_INVITE" link="enum.EventType.html" /><keyword type="constant" name="CM_M_CALL_NEGOTIATE" link="enum.EventType.html" /><keyword type="constant" name="CM_M_CALL_REJECT" link="enum.EventType.html" /><keyword type="constant" name="CM_M_CALL_REPLACES" link="enum.EventType.html" /><keyword type="constant" name="CM_M_CALL_SELECT_ANSWER" link="enum.EventType.html" /><keyword type="constant" name="CM_M_DIRECT" link="enum.EventType.html" /><keyword type="constant" name="CM_M_DUMMY" link="enum.EventType.html" /><keyword type="constant" name="CM_M_FORWARDED_ROOM_KEY" link="enum.EventType.html" /><keyword type="constant" name="CM_M_FULLY_READ" link="enum.EventType.html" /><keyword type="constant" name="CM_M_IGNORED_USER_LIST" link="enum.EventType.html" /><keyword type="constant" name="CM_M_KEY_VERIFICATION_ACCEPT" link="enum.EventType.html" /><keyword type="constant" name="CM_M_KEY_VERIFICATION_CANCEL" link="enum.EventType.html" /><keyword type="constant" name="CM_M_KEY_VERIFICATION_DONE" link="enum.EventType.html" /><keyword type="constant" name="CM_M_KEY_VERIFICATION_KEY" link="enum.EventType.html" /><keyword type="constant" name="CM_M_KEY_VERIFICATION_MAC" link="enum.EventType.html" /><keyword type="constant" name="CM_M_KEY_VERIFICATION_READY" link="enum.EventType.html" /><keyword type="constant" name="CM_M_KEY_VERIFICATION_REQUEST" link="enum.EventType.html" /><keyword type="constant" name="CM_M_KEY_VERIFICATION_START" link="enum.EventType.html" /><keyword type="constant" name="CM_M_PRESENCE" link="enum.EventType.html" /><keyword type="constant" name="CM_M_PUSH_RULES" link="enum.EventType.html" /><keyword type="constant" name="CM_M_REACTION" link="enum.EventType.html" /><keyword type="constant" name="CM_M_RECEIPT" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_ALIASES" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_AVATAR" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_BOT_OPTIONS" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_CANONICAL_ALIAS" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_CREATE" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_ENCRYPTED" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_ENCRYPTION" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_GUEST_ACCESS" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_HISTORY_VISIBILITY" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_JOIN_RULES" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_KEY" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_KEY_REQUEST" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_MEMBER" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_MESSAGE" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_MESSAGE_FEEDBACK" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_NAME" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_PINNED_EVENTS" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_PLUMBING" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_POWER_LEVELS" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_REDACTION" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_RELATED_GROUPS" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_SERVER_ACL" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_THIRD_PARTY_INVITE" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_TOMBSTONE" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_TOPIC" link="enum.EventType.html" /><keyword type="constant" name="CM_M_SECRET_REQUEST" link="enum.EventType.html" /><keyword type="constant" name="CM_M_SECRET_SEND" link="enum.EventType.html" /><keyword type="constant" name="CM_M_SECRET_STORAGE_DEFAULT_KEY" link="enum.EventType.html" /><keyword type="constant" name="CM_M_SPACE_CHILD" link="enum.EventType.html" /><keyword type="constant" name="CM_M_SPACE_PARENT" link="enum.EventType.html" /><keyword type="constant" name="CM_M_STICKER" link="enum.EventType.html" /><keyword type="constant" name="CM_M_TAG" link="enum.EventType.html" /><keyword type="constant" name="CM_M_TYPING" link="enum.EventType.html" /><keyword type="constant" name="CM_M_USER_STATUS" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_INVITE" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_BAN" link="enum.EventType.html" /><keyword type="constant" name="CM_M_ROOM_KICK" link="enum.EventType.html" /><keyword type="enum" name="CmPusherKind" link="enum.PusherKind.html" /><keyword type="constant" name="CM_PUSHER_KIND_UNKNOWN" link="enum.PusherKind.html" /><keyword type="constant" name="CM_PUSHER_KIND_HTTP" link="enum.PusherKind.html" /><keyword type="constant" name="CM_PUSHER_KIND_EMAIL" link="enum.PusherKind.html" /><keyword type="enum" name="CmStatus" link="enum.Status.html" /><keyword type="constant" name="CM_STATUS_UNKNOWN" link="enum.Status.html" /><keyword type="constant" name="CM_STATUS_JOIN" link="enum.Status.html" /><keyword type="constant" name="CM_STATUS_LEAVE" link="enum.Status.html" /><keyword type="constant" name="CM_STATUS_INVITE" link="enum.Status.html" /><keyword type="constant" name="CM_STATUS_BAN" link="enum.Status.html" /><keyword type="constant" name="CM_STATUS_KNOCK" link="enum.Status.html" /><keyword type="function" name="cm_init" link="func.init.html" /><keyword type="function" name="cm_utils_get_homeserver_async" link="func.utils_get_homeserver_async.html" since="0.0.2" /><keyword type="function" name="cm_utils_get_homeserver_finish" link="func.utils_get_homeserver_finish.html" since="0.0.2" /><keyword type="function" name="cm_utils_get_homeserver_sync" link="func.utils_get_homeserver_sync.html" since="0.0.2" /><keyword type="struct" name="CmDb" link="struct.Db.html" /><keyword type="struct" name="CmOlm" link="struct.Olm.html" /><keyword type="struct" name="CmRoomMember" link="struct.RoomMember.html" /><keyword type="struct" name="CmUserList" link="struct.UserList.html" /></functions></book>