ASN.pm
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:3k
源码类别:

SNMP编程

开发平台:

Unix_Linux

  1. package NetSNMP::ASN;
  2. use strict;
  3. use Carp;
  4. require Exporter;
  5. require DynaLoader;
  6. use AutoLoader;
  7. use vars qw(@ISA %EXPORT_TAGS @EXPORT_OK @EXPORT $VERSION $AUTOLOAD);
  8. @ISA = qw(Exporter DynaLoader);
  9. # Items to export into callers namespace by default. Note: do not export
  10. # names by default without a very good reason. Use EXPORT_OK instead.
  11. # Do not simply export all your public functions/methods/constants.
  12. # This allows declaration use NetSNMP::ASN ':all';
  13. # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
  14. # will save memory.
  15. %EXPORT_TAGS = ( 'all' => [ qw(
  16. ASN_APPLICATION
  17. ASN_BIT_STR
  18. ASN_BOOLEAN
  19. ASN_COUNTER
  20. ASN_COUNTER64
  21. ASN_DOUBLE
  22. ASN_FLOAT
  23. ASN_GAUGE
  24. ASN_INTEGER
  25. ASN_INTEGER64
  26. ASN_IPADDRESS
  27. ASN_NULL
  28. ASN_OBJECT_ID
  29. ASN_OCTET_STR
  30. ASN_OPAQUE
  31. ASN_SEQUENCE
  32. ASN_SET
  33. ASN_TIMETICKS
  34. ASN_UNSIGNED
  35. ASN_UNSIGNED64
  36. ) ] );
  37. @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
  38. @EXPORT = qw(
  39. ASN_APPLICATION
  40. ASN_BIT_STR
  41. ASN_BOOLEAN
  42. ASN_COUNTER
  43. ASN_COUNTER64
  44. ASN_DOUBLE
  45. ASN_FLOAT
  46. ASN_GAUGE
  47. ASN_INTEGER
  48. ASN_INTEGER64
  49. ASN_IPADDRESS
  50. ASN_NULL
  51. ASN_OBJECT_ID
  52. ASN_OCTET_STR
  53. ASN_OPAQUE
  54. ASN_SEQUENCE
  55. ASN_SET
  56. ASN_TIMETICKS
  57. ASN_UNSIGNED
  58. ASN_UNSIGNED64
  59. );
  60. $VERSION = '5.2.2';
  61. sub AUTOLOAD {
  62.     # This AUTOLOAD is used to 'autoload' constants from the constant()
  63.     # XS function.  If a constant is not found then control is passed
  64.     # to the AUTOLOAD in AutoLoader.
  65.     my $constname;
  66.     ($constname = $AUTOLOAD) =~ s/.*:://;
  67.     croak "& not defined" if $constname eq 'constant';
  68.     my $val = constant($constname, @_ ? $_[0] : 0);
  69.     if ($! != 0) {
  70. if ($! =~ /Invalid/ || $!{EINVAL}) {
  71.     $AutoLoader::AUTOLOAD = $AUTOLOAD;
  72.     goto &AutoLoader::AUTOLOAD;
  73. }
  74. else {
  75.     croak "Your vendor has not defined NetSNMP::ASN macro $constname";
  76. }
  77.     }
  78.     {
  79. no strict 'refs';
  80. # Fixed between 5.005_53 and 5.005_61
  81. #  if ($] >= 5.00561) {
  82. #      *$AUTOLOAD = sub () { $val };
  83. #  }
  84. #  else {
  85.     *$AUTOLOAD = sub { $val };
  86. #  }
  87.     }
  88.     goto &$AUTOLOAD;
  89. }
  90. bootstrap NetSNMP::ASN $VERSION;
  91. # Preloaded methods go here.
  92. # Autoload methods go after =cut, and are processed by the autosplit program.
  93. 1;
  94. __END__
  95. =head1 NAME
  96. NetSNMP::ASN - Perl extension for SNMP ASN.1 types
  97. =head1 SYNOPSIS
  98.   use NetSNMP::ASN qw(':all');
  99.   my $asn_int = ASN_INTEGER;
  100. =head1 DESCRIPTION
  101. The NetSNMP::ASN module provides the ASN.1 types for SNMP.
  102. =head2 EXPORT
  103. None by default.
  104. =head2 Exportable constants
  105.   ASN_APPLICATION
  106.   ASN_BIT_STR
  107.   ASN_BOOLEAN
  108.   ASN_COUNTER
  109.   ASN_COUNTER64
  110.   ASN_DOUBLE
  111.   ASN_FLOAT
  112.   ASN_GAUGE
  113.   ASN_INTEGER
  114.   ASN_INTEGER64
  115.   ASN_IPADDRESS
  116.   ASN_NULL
  117.   ASN_OBJECT_ID
  118.   ASN_OCTET_STR
  119.   ASN_OPAQUE
  120.   ASN_SEQUENCE
  121.   ASN_SET
  122.   ASN_TIMETICKS
  123.   ASN_UNSIGNED
  124.   ASN_UNSIGNED64
  125. =head1 AUTHOR
  126. Wes Hardaker, E<lt>hardaker@users.sourceforge.netE<gt>
  127. =head1 SEE ALSO
  128. SNMP(3pm), NetSNMP::OID(3pm)
  129. perl(1).
  130. =cut