/usr/include/globus/globus_ftp_client_throughput_plugin.h is in libglobus-ftp-client-dev 7.2-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 | /*
* Copyright 1999-2006 University of Chicago
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef GLOBUS_INCLUDE_FTP_CLIENT_THROUGHPUT_PLUGIN_H
#define GLOBUS_INCLUDE_FTP_CLIENT_THROUGHPUT_PLUGIN_H
#ifndef GLOBUS_DONT_DOCUMENT_INTERNAL
/**
* @file globus_ftp_client_throughput_plugin.h GridFTP Throughput Performance Plugin Implementation
*
* $RCSfile: globus_ftp_client_throughput_plugin.h,v $
* $Revision: 1.7 $
* $Date: 2006/01/19 05:54:53 $
* $Author: mlink $
*/
#endif
/**
* @defgroup globus_ftp_client_throughput_plugin Throughput Performance Plugin
* @ingroup globus_ftp_client_plugins
*
* The FTP Throughput Performance plugin allows the user to obtain
* calculated performance information for all types of transfers except a
* third party transfer in which Extended Block mode is not enabled.
*
* Note: Since this plugin is built on top of the Performance Marker Plugin,
* it is not possible to associate both plugins with a handle
*/
#include "globus_ftp_client.h"
#include "globus_ftp_client_plugin.h"
#ifndef EXTERN_C_BEGIN
#ifdef __cplusplus
#define EXTERN_C_BEGIN extern "C" {
#define EXTERN_C_END }
#else
#define EXTERN_C_BEGIN
#define EXTERN_C_END
#endif
#endif
EXTERN_C_BEGIN
/** Module descriptor
* @ingroup globus_ftp_client_throughput_plugin
*/
#define GLOBUS_FTP_CLIENT_THROUGHPUT_PLUGIN_MODULE (&globus_i_ftp_client_throughput_plugin_module)
extern
globus_module_descriptor_t globus_i_ftp_client_throughput_plugin_module;
/**
* Transfer begin callback
* @ingroup globus_ftp_client_throughput_plugin
*
* This callback will be called when a transfer begins
*
* @param handle
* The client handle associated with this transfer
*
* @param user_specific
* User argument passed to globus_ftp_client_throughput_plugin_init
*
* @param source_url
* source of the transfer (GLOBUS_NULL if 'put')
*
* @param dest_url
* dest of the transfer (GLOBUS_NULL if 'get')
*
* @return
* - n/a
*/
typedef void (*globus_ftp_client_throughput_plugin_begin_cb_t)(
void * user_specific,
globus_ftp_client_handle_t * handle,
const char * source_url,
const char * dest_url);
/**
* Stripe performace throughput callback
* @ingroup globus_ftp_client_throughput_plugin
*
* This callback will be called with every performance callback that is
* received by the perf plugin. The first
* callback for each stripe_ndx will have an instantaneous_throughput
* based from the time the command was sent.
*
* @param handle
* The client handle associated with this transfer
*
* @param user_specific
* User argument passed to globus_ftp_client_throughput_plugin_init
*
* @param bytes
* The total number of bytes received on this stripe
*
* @param instantaneous_throughput
* Instanteous throughput on this stripe (bytes / sec)
*
* @param avg_throughput
* Average throughput on this stripe (bytes / sec)
*
* @param stripe_ndx
* This stripe's index
*
*/
typedef void (*globus_ftp_client_throughput_plugin_stripe_cb_t)(
void * user_specific,
globus_ftp_client_handle_t * handle,
int stripe_ndx,
globus_off_t bytes,
float instantaneous_throughput,
float avg_throughput);
/**
* Total performace throughput callback
* @ingroup globus_ftp_client_throughput_plugin
*
* This callback will be called with every performance callback that is
* received by the perf plugin. The first
* callback for will have an instantaneous_throughput based from the time
* the command was sent. This callback will be called after the per_stripe_cb
*
* @param handle
* The client handle associated with this transfer
*
* @param user_specific
* User argument passed to globus_ftp_client_throughput_plugin_init
*
* @param bytes
* The total number of bytes received on all stripes
*
* @param instantaneous_throughput
* Total instanteous throughput on all stripes (bytes / sec)
*
* @param avg_throughput
* Average total throughput on all stripes (bytes / sec)
*
*/
typedef void (*globus_ftp_client_throughput_plugin_total_cb_t)(
void * user_specific,
globus_ftp_client_handle_t * handle,
globus_off_t bytes,
float instantaneous_throughput,
float avg_throughput);
/**
* Transfer complete callback
* @ingroup globus_ftp_client_throughput_plugin
*
* This callback will be called upon transfer completion (successful or
* otherwise)
*
* @param handle
* The client handle associated with this transfer
*
* @param user_specific
* User argument passed to globus_ftp_client_throughput_plugin_init
*
* @param success
* indicates whether this transfer completed successfully or was
* interrupted (by error or abort)
*
* @return
* - n/a
*/
typedef void (*globus_ftp_client_throughput_plugin_complete_cb_t)(
void * user_specific,
globus_ftp_client_handle_t * handle,
globus_bool_t success);
/**
* Copy constructor
* @ingroup globus_ftp_client_throughput_plugin
*
* This callback will be called when a copy of this plugin is made,
* it is intended to allow initialization of a new user_specific data
*
* @param user_specific
* this is user specific data either created by this copy
* method, or the value passed to init
*
* @return
* - a pointer to a user specific piece of data
* - GLOBUS_NULL (does not indicate error)
*/
typedef void * (*globus_ftp_client_throughput_plugin_user_copy_cb_t)(
void * user_specific);
/**
* Destructor
* @ingroup globus_ftp_client_throughput_plugin
*
* This callback will be called when a copy of this plugin is destroyed,
* it is intended to allow the user to free up any memory associated with
* the user specific data
*
* @param user_specific
* this is user specific data created by the copy method
*
* @return
* - n/a
*/
typedef void (*globus_ftp_client_throughput_plugin_user_destroy_cb_t)(
void * user_specific);
globus_result_t
globus_ftp_client_throughput_plugin_init(
globus_ftp_client_plugin_t * plugin,
globus_ftp_client_throughput_plugin_begin_cb_t begin_cb,
globus_ftp_client_throughput_plugin_stripe_cb_t per_stripe_cb,
globus_ftp_client_throughput_plugin_total_cb_t total_cb,
globus_ftp_client_throughput_plugin_complete_cb_t complete_cb,
void * user_specific);
globus_result_t
globus_ftp_client_throughput_plugin_set_copy_destroy(
globus_ftp_client_plugin_t * plugin,
globus_ftp_client_throughput_plugin_user_copy_cb_t copy_cb,
globus_ftp_client_throughput_plugin_user_destroy_cb_t destroy_cb);
globus_result_t
globus_ftp_client_throughput_plugin_destroy(
globus_ftp_client_plugin_t * plugin);
globus_result_t
globus_ftp_client_throughput_plugin_get_user_specific(
globus_ftp_client_plugin_t * plugin,
void ** user_specific);
EXTERN_C_END
#endif /* GLOBUS_INCLUDE_FTP_CLIENT_THROUGHPUT_PLUGIN_H */
|