globus_net_manager  0.23
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
globus_net_manager.h
Go to the documentation of this file.
1 #ifndef GLOBUS_NET_MANAGER_H
2 #define GLOBUS_NET_MANAGER_H 1
3 
4 #include "globus_common.h"
6 
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 
16 #ifndef GLOBUS_GLOBAL_DOCUMENT_SET
17 
69 #endif
70 
72 
143 typedef globus_result_t (*globus_net_manager_pre_listen)(
144  struct globus_net_manager_s *manager,
145  const globus_net_manager_attr_t *manager_attr_array,
146  const char *task_id,
147  const char *transport,
148  const globus_net_manager_attr_t *attr_array,
149  globus_net_manager_attr_t **attr_array_out);
150 
200 typedef globus_result_t (*globus_net_manager_post_listen)(
201  struct globus_net_manager_s *manager,
202  const globus_net_manager_attr_t *manager_attr_array,
203  const char *task_id,
204  const char *transport,
205  const char *local_contact,
206  const globus_net_manager_attr_t *attr_array,
207  char **local_contact_out,
208  globus_net_manager_attr_t **attr_array_out);
209 
243 typedef globus_result_t (*globus_net_manager_end_listen)(
244  struct globus_net_manager_s *manager,
245  const globus_net_manager_attr_t *manager_attr_array,
246  const char *task_id,
247  const char *transport,
248  const char *local_contact,
249  const globus_net_manager_attr_t *attr_array);
250 
293 typedef globus_result_t (*globus_net_manager_pre_accept)(
294  struct globus_net_manager_s *manager,
295  const globus_net_manager_attr_t *manager_attr_array,
296  const char *task_id,
297  const char *transport,
298  const char *local_contact,
299  const globus_net_manager_attr_t *attr_array,
300  globus_net_manager_attr_t **attr_array_out);
301 
349 typedef globus_result_t (*globus_net_manager_post_accept)(
350  struct globus_net_manager_s *manager,
351  const globus_net_manager_attr_t *manager_attr_array,
352  const char *task_id,
353  const char *transport,
354  const char *local_contact,
355  const char *remote_contact,
356  const globus_net_manager_attr_t *attr_array,
357  globus_net_manager_attr_t **attr_array_out);
358 
408 typedef globus_result_t (*globus_net_manager_pre_connect)(
409  struct globus_net_manager_s *manager,
410  const globus_net_manager_attr_t *manager_attr_array,
411  const char *task_id,
412  const char *transport,
413  const char *remote_contact,
414  const globus_net_manager_attr_t *attr_array,
415  char **remote_contact_out,
416  globus_net_manager_attr_t **attr_array_out);
417 
462 typedef globus_result_t (*globus_net_manager_post_connect)(
463  struct globus_net_manager_s *manager,
464  const globus_net_manager_attr_t *manager_attr_array,
465  const char *task_id,
466  const char *transport,
467  const char *local_contact,
468  const char *remote_contact,
469  const globus_net_manager_attr_t *attr_array,
470  globus_net_manager_attr_t **attr_array_out);
471 
508 typedef globus_result_t (*globus_net_manager_pre_close)(
509  struct globus_net_manager_s *manager,
510  const globus_net_manager_attr_t *manager_attr_array,
511  const char *task_id,
512  const char *transport,
513  const char *local_contact,
514  const char *remote_contact,
515  const globus_net_manager_attr_t *attr_array);
516 
553 typedef globus_result_t (*globus_net_manager_post_close)(
554  struct globus_net_manager_s *manager,
555  const globus_net_manager_attr_t *manager_attr_array,
556  const char *task_id,
557  const char *transport,
558  const char *local_contact,
559  const char *remote_contact,
560  const globus_net_manager_attr_t *attr_array);
561 
567 typedef
569 {
571  const char *name;
590 }
592 
593 extern globus_extension_registry_t globus_i_net_manager_registry;
594 #define GLOBUS_NET_MANAGER_REGISTRY &globus_i_net_manager_registry
595 
596 globus_result_t
598  globus_net_manager_t *manager,
599  globus_module_descriptor_t *module);
600 
601 globus_result_t
603  globus_net_manager_t *manager);
604 
605 extern globus_module_descriptor_t globus_i_net_manager_module;
635 #define GLOBUS_NET_MANAGER_MODULE (&globus_i_net_manager_module)
636 
637 
638 typedef enum
639 {
640  GLOBUS_NET_MANAGER_ERROR_PARAMETER,
641  GLOBUS_NET_MANAGER_ERROR_MEMORY,
642  GLOBUS_NET_MANAGER_ERROR_INIT,
643  GLOBUS_NET_MANAGER_ERROR_MANAGER,
644  GLOBUS_NET_MANAGER_ERROR_WRAPPED
645 } globus_net_manager_error_type_t;
646 
647 
648 /* all macros in this file require each function to 'declare' their name with
649  * this
650  */
651 #define GlobusNetManagerName(func)
652 /*
653 #ifdef __GNUC__
654 #define GlobusNetManagerName(func) static const char * _netmgr_name __attribute__((__unused__)) = #func
655 #else
656 #define GlobusNetManagerName(func) static const char * _netmgr_name = #func
657 #endif
658 */
659 
660 
661 
662 #define GlobusNetManagerErrorParameter(param_name) \
663  globus_error_put( \
664  globus_error_construct_error( \
665  GLOBUS_NET_MANAGER_MODULE, \
666  GLOBUS_NULL, \
667  GLOBUS_NET_MANAGER_ERROR_PARAMETER, \
668  __FILE__, \
669  __func__, \
670  __LINE__, \
671  "Bad parameter, %s", \
672  (param_name)))
673 
674 #define GlobusNetManagerErrorMemory(mem_name) \
675  globus_error_put( \
676  globus_error_construct_error( \
677  GLOBUS_NET_MANAGER_MODULE, \
678  GLOBUS_NULL, \
679  GLOBUS_NET_MANAGER_ERROR_MEMORY, \
680  __FILE__, \
681  __func__, \
682  __LINE__, \
683  "Memory allocation failed on %s", \
684  (mem_name)))
685 
686 #define GlobusNetManagerErrorInit(manager, explain) \
687  globus_error_put( \
688  globus_error_construct_error( \
689  GLOBUS_NET_MANAGER_MODULE, \
690  NULL, \
691  GLOBUS_NET_MANAGER_ERROR_INIT, \
692  __FILE__, \
693  __func__, \
694  __LINE__, \
695  "An error occurred accessing a module. %s: %s", manager, explain))
696 
697 #define GlobusNetManagerErrorManager(result, manager, explain) \
698  globus_error_put( \
699  globus_error_construct_error( \
700  GLOBUS_NET_MANAGER_MODULE, \
701  globus_error_get((result)), \
702  GLOBUS_NET_MANAGER_ERROR_MANAGER, \
703  __FILE__, \
704  __func__, \
705  __LINE__, \
706  "A network manager (%s) errored in %s.", manager, explain))
707 
708 #define GlobusNetManagerErrorWrapFailed(failed_func, result) \
709  globus_error_put( \
710  globus_error_construct_error( \
711  GLOBUS_NET_MANAGER_MODULE, \
712  globus_error_get((result)), \
713  GLOBUS_NET_MANAGER_ERROR_WRAPPED, \
714  __FILE__, \
715  __func__, \
716  __LINE__, \
717  "%s failed.", \
718  (failed_func)))
719 
720 #define GlobusNetManagerErrorWrapFailedWithMessage(result, format, arg) \
721  globus_error_put( \
722  globus_error_construct_error( \
723  GLOBUS_NET_MANAGER_MODULE, \
724  globus_error_get((result)), \
725  GLOBUS_NET_MANAGER_ERROR_WRAPPED, \
726  __FILE__, \
727  __func__, \
728  __LINE__, \
729  (format), \
730  (arg)))
731 
732 #define GlobusNetManagerErrorWrapFailedWithMessage2(result, format, arg1, arg2) \
733  globus_error_put( \
734  globus_error_construct_error( \
735  GLOBUS_NET_MANAGER_MODULE, \
736  globus_error_get((result)), \
737  GLOBUS_NET_MANAGER_ERROR_WRAPPED, \
738  __FILE__, \
739  __func__, \
740  __LINE__, \
741  (format), \
742  (arg1), (arg2)))
743 
744 
745 #ifdef __cplusplus
746 }
747 #endif
748 
749 #endif /* GLOBUS_NET_MANAGER_H */
globus_result_t globus_net_manager_register(globus_net_manager_t *manager, globus_module_descriptor_t *module)
Register a network manager.
Definition: register.c:19
globus_net_manager_pre_close pre_close
Definition: globus_net_manager.h:587
globus_net_manager_post_close post_close
Definition: globus_net_manager.h:589
globus_net_manager_post_accept post_accept
Definition: globus_net_manager.h:581
globus_result_t(* globus_net_manager_post_connect)(struct globus_net_manager_s *manager, const globus_net_manager_attr_t *manager_attr_array, const char *task_id, const char *transport, const char *local_contact, const char *remote_contact, const globus_net_manager_attr_t *attr_array, globus_net_manager_attr_t **attr_array_out)
Net Manager Post-Connect Function Signature.
Definition: globus_net_manager.h:462
globus_result_t(* globus_net_manager_post_listen)(struct globus_net_manager_s *manager, const globus_net_manager_attr_t *manager_attr_array, const char *task_id, const char *transport, const char *local_contact, const globus_net_manager_attr_t *attr_array, char **local_contact_out, globus_net_manager_attr_t **attr_array_out)
Net Manager Post-Listen Function Signature.
Definition: globus_net_manager.h:200
globus_result_t(* globus_net_manager_pre_close)(struct globus_net_manager_s *manager, const globus_net_manager_attr_t *manager_attr_array, const char *task_id, const char *transport, const char *local_contact, const char *remote_contact, const globus_net_manager_attr_t *attr_array)
Net Manager Pre-Close Function Signature.
Definition: globus_net_manager.h:508
globus_result_t(* globus_net_manager_pre_accept)(struct globus_net_manager_s *manager, const globus_net_manager_attr_t *manager_attr_array, const char *task_id, const char *transport, const char *local_contact, const globus_net_manager_attr_t *attr_array, globus_net_manager_attr_t **attr_array_out)
Net Manager Pre-Accept Function Signature.
Definition: globus_net_manager.h:293
Net Manager Definition.
Definition: globus_net_manager.h:567
globus_net_manager_post_connect post_connect
Definition: globus_net_manager.h:585
globus_result_t(* globus_net_manager_pre_listen)(struct globus_net_manager_s *manager, const globus_net_manager_attr_t *manager_attr_array, const char *task_id, const char *transport, const globus_net_manager_attr_t *attr_array, globus_net_manager_attr_t **attr_array_out)
Net Manager Pre-Listen Function Signature.
Definition: globus_net_manager.h:143
globus_result_t globus_net_manager_unregister(globus_net_manager_t *manager)
Unregister a network manager.
Definition: unregister.c:17
globus_net_manager_post_listen post_listen
Definition: globus_net_manager.h:575
globus_result_t(* globus_net_manager_end_listen)(struct globus_net_manager_s *manager, const globus_net_manager_attr_t *manager_attr_array, const char *task_id, const char *transport, const char *local_contact, const globus_net_manager_attr_t *attr_array)
Net Manager End-Listen Function Signature.
Definition: globus_net_manager.h:243
globus_net_manager_end_listen end_listen
Definition: globus_net_manager.h:577
struct globus_net_manager_s globus_net_manager_t
Net Manager Definition.
globus_net_manager_pre_connect pre_connect
Definition: globus_net_manager.h:583
Net Manager Attributes.
Definition: globus_net_manager_attr.h:29
const char * name
Definition: globus_net_manager.h:571
globus_result_t(* globus_net_manager_post_close)(struct globus_net_manager_s *manager, const globus_net_manager_attr_t *manager_attr_array, const char *task_id, const char *transport, const char *local_contact, const char *remote_contact, const globus_net_manager_attr_t *attr_array)
Net Manager Post-Close Function Signature.
Definition: globus_net_manager.h:553
globus_net_manager_pre_accept pre_accept
Definition: globus_net_manager.h:579
globus_net_manager_pre_listen pre_listen
Definition: globus_net_manager.h:573
Globus Network Manager Attributes.
globus_result_t(* globus_net_manager_post_accept)(struct globus_net_manager_s *manager, const globus_net_manager_attr_t *manager_attr_array, const char *task_id, const char *transport, const char *local_contact, const char *remote_contact, const globus_net_manager_attr_t *attr_array, globus_net_manager_attr_t **attr_array_out)
Net Manager Post-Accept Function Signature.
Definition: globus_net_manager.h:349
globus_result_t(* globus_net_manager_pre_connect)(struct globus_net_manager_s *manager, const globus_net_manager_attr_t *manager_attr_array, const char *task_id, const char *transport, const char *remote_contact, const globus_net_manager_attr_t *attr_array, char **remote_contact_out, globus_net_manager_attr_t **attr_array_out)
Net Manager Pre-Connect Function Signature.
Definition: globus_net_manager.h:408