TraceFileWriter.pm
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:1k
源码类别:

通讯编程

开发平台:

Visual C++

  1. # Perl package for writing NS trace files
  2. package NS::TraceFileWriter;
  3. use 5.005;
  4. use strict;
  5. use warnings;
  6. use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
  7. BEGIN {
  8. use IO::Handle;
  9. use IO::File;
  10. use NS::TraceFileEvent;
  11. use Exporter ();
  12. $VERSION = 1.00;
  13. @ISA = qw(Exporter);
  14. @EXPORT = qw();
  15. %EXPORT_TAGS = ();
  16. @EXPORT_OK = qw();
  17. }
  18. # the constructors:
  19. sub new {
  20. my $self  = shift;
  21. my $class = ref($self) || $self;
  22. my $hash = {};
  23. if (@_) {
  24. $hash->{filehandle} = IO::File->new(shift,"w");
  25. } else {
  26. # default to STDOUT
  27. $hash->{filehandle} = IO::Handle->new_from_fd(fileno(STDOUT),
  28.       "w");
  29. }
  30. return bless $hash, $class;
  31. }
  32. sub new_from_fd {
  33. my $self = shift;
  34. my $class = ref($self) || $self;
  35. my $hash = {};
  36. if (@_) {
  37. $hash->{filehandle} = IO::Handle->new_from_fd(fileno(shift),
  38.       "w");
  39. } else {
  40. print STDERR "Must supply filehandle to NS::TraceFileWriter->new_from_fd($filehandle).n";
  41. }
  42. }
  43. # write an event to the file
  44. sub put_event {
  45. my $self = shift;
  46. my $event = shift;
  47. return $self->{filehandle}->print($event->get_string_representation(),
  48.   "n");
  49. }
  50. # a Perl module must return a true value
  51. 1;