19 #ifndef _VMWARE_TOOLS_GDP_H_ 20 #define _VMWARE_TOOLS_GDP_H_ 36 #include <glib-object.h> 46 #define GDP_PROTOCOL_VERSION 2 51 #define GDP_PROTOCOL_UNVERSIONED_VERSION 1 56 #define GDP_PROTOCOL_VERSIONED_VERSION 2 61 #define GDP_PROTOCOL_DM_MAX_VERSION GDP_PROTOCOL_VERSION 66 #define GDP_PROTOCOL_DM_RESP_MAX_VERSION GDP_PROTOCOL_VERSION 73 #define GDP_MAX_PACKET_LEN (17 * 4096 - 24) 81 #define GDP_USER_DATA_LEN (12 * 4096) 87 #define TOOLS_PLUGIN_SVC_PROP_GDP "tps_prop_gdp" 96 #define GDP_ERR_LIST \ 97 GDP_ERR_ITEM(GDP_ERROR_SUCCESS = 0, \ 100 GDP_ERR_ITEM(GDP_ERROR_INVALID_DATA, \ 103 GDP_ERR_ITEM(GDP_ERROR_DATA_SIZE, \ 105 "Data size too large") \ 106 GDP_ERR_ITEM(GDP_ERROR_GENERAL, \ 109 GDP_ERR_ITEM(GDP_ERROR_STOP, \ 110 "stopped-for-shutdown", \ 111 "Stopped for vmtoolsd shutdown") \ 112 GDP_ERR_ITEM(GDP_ERROR_UNREACH, \ 113 "publisher-unreachable", \ 114 "Host daemon unreachable") \ 115 GDP_ERR_ITEM(GDP_ERROR_TIMEOUT, \ 117 "Operation timed out") \ 118 GDP_ERR_ITEM(GDP_ERROR_NO_SUBSCRIBERS, \ 120 "No subscribers for data") 125 #define GDP_ERR_ITEM(a, b, c) a, 126 typedef enum GdpError {
140 GdpError (*publish)(gint64 createTime,
143 const gchar *category,
147 gboolean requireSubs);
179 static inline GdpError
184 const gchar *category,
188 gboolean requireSubs)
191 g_object_get(ctx->
serviceObj, TOOLS_PLUGIN_SVC_PROP_GDP, &svcGdp, NULL);
192 if (svcGdp != NULL && svcGdp->publish != NULL) {
193 return svcGdp->publish(createTime, topic, token,
194 category, data, dataLen, cacheData, requireSubs);
196 return GDP_ERROR_GENERAL;
struct ToolsPluginSvcGdp ToolsPluginSvcGdp
Type of the public interface of the gdp plugin service.