** Copyright (C) 2001-2023 Zabbix SIA
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
"git.zabbix.com/ap/plugin-support/log"
"git.zabbix.com/ap/plugin-support/plugin"
"zabbix.com/internal/agent"
// clientItem represents item monitored by client
// pluginInfo is used to track plugin usage by client
// temporary link to a watcherTask during update
// client represents source of items (metrics) to be queried.
// Each server for active checks is represented by a separate client.
// There is a predefined clients to handle:
// all single passive checks (client id 1)
// all internal checks (resolving HostnameItem, HostMetadataItem, HostInterfaceItem) (client id 0)
// Client id. Predefined clients have ids < 100, while clients active checks servers (ServerActive)
// have auto incrementing id starting with 100.
// A map of itemids to the associated exporter tasks. It's used to update task when item parameters change.
exporters map[uint64]exporterTaskAccessor
// plugins used by client
pluginsInfo map[*pluginAgent]*pluginInfo