# This file was automatically generated by SWIG
package Net::Multicast::Beacon;
require Exporter;
require DynaLoader;
@ISA = qw(Exporter DynaLoader);
package Net::Multicast::Beaconc;
bootstrap Net::Multicast::Beacon;
package Net::Multicast::Beacon;
@EXPORT = qw( beacon_event_type_set beacon_event_type_get beacon_event_ssrc_set beacon_event_ssrc_get beacon_event_time_set beacon_event_time_get beacon_event_rr_set beacon_event_rr_get beacon_event_next_set beacon_event_next_get new_beacon_event delete_beacon_event beacon_init beacon_init_if beacon_get_next_event beacon_free_event beacon_queue_len xmemdmp rtcp_rr_ssrc_set rtcp_rr_ssrc_get rtcp_rr_total_lost_set rtcp_rr_total_lost_get rtcp_rr_fract_lost_set rtcp_rr_fract_lost_get rtcp_rr_last_seq_set rtcp_rr_last_seq_get rtcp_rr_jitter_set rtcp_rr_jitter_get rtcp_rr_lsr_set rtcp_rr_lsr_get rtcp_rr_dlsr_set rtcp_rr_dlsr_get new_rtcp_rr delete_rtcp_rr rtp_my_ssrc rtp_update rtp_recv rtp_send_bye rtp_done rtp_set_sdes rtp_set_option rtp_get_sdes $RX_RTP $RX_SR $RX_RR $RX_SDES $RX_BYE $SOURCE_CREATED $SOURCE_DELETED $RX_RR_EMPTY $RX_RTCP_START $RX_RTCP_FINISH $RR_TIMEOUT $RX_APP $RTCP_SDES_END $RTCP_SDES_CNAME $RTCP_SDES_NAME $RTCP_SDES_EMAIL $RTCP_SDES_PHONE $RTCP_SDES_LOC $RTCP_SDES_TOOL $RTCP_SDES_NOTE $RTCP_SDES_PRIV rtp_make_timeval rtp_gettimeofday rtp_free_timeval rtp_send_ctrl rtp_send_data );

# ---------- BASE METHODS -------------

package Net::Multicast::Beacon;

sub TIEHASH {
    my ($classname,$obj) = @_;
    return bless $obj, $classname;
}

sub CLEAR { }

sub FIRSTKEY { }

sub NEXTKEY { }

sub FETCH {
    my ($self,$field) = @_;
    my $member_func = "swig_${field}_get";
    $self->$member_func();
}

sub STORE {
    my ($self,$field,$newval) = @_;
    my $member_func = "swig_${field}_set";
    $self->$member_func($newval);
}

sub this {
    my $ptr = shift;
    return tied(%$ptr);
}


# ------- FUNCTION WRAPPERS --------

package Net::Multicast::Beacon;

*beacon_init = *Net::Multicast::Beaconc::beacon_init;
*beacon_init_if = *Net::Multicast::Beaconc::beacon_init_if;
*beacon_get_next_event = *Net::Multicast::Beaconc::beacon_get_next_event;
*beacon_free_event = *Net::Multicast::Beaconc::beacon_free_event;
*beacon_queue_len = *Net::Multicast::Beaconc::beacon_queue_len;
*xmemdmp = *Net::Multicast::Beaconc::xmemdmp;
*rtp_my_ssrc = *Net::Multicast::Beaconc::rtp_my_ssrc;
*rtp_update = *Net::Multicast::Beaconc::rtp_update;
*rtp_recv = *Net::Multicast::Beaconc::rtp_recv;
*rtp_send_bye = *Net::Multicast::Beaconc::rtp_send_bye;
*rtp_done = *Net::Multicast::Beaconc::rtp_done;
*rtp_set_sdes = *Net::Multicast::Beaconc::rtp_set_sdes;
*rtp_set_option = *Net::Multicast::Beaconc::rtp_set_option;
*rtp_get_sdes = *Net::Multicast::Beaconc::rtp_get_sdes;
*rtp_make_timeval = *Net::Multicast::Beaconc::rtp_make_timeval;
*rtp_gettimeofday = *Net::Multicast::Beaconc::rtp_gettimeofday;
*rtp_free_timeval = *Net::Multicast::Beaconc::rtp_free_timeval;
*rtp_send_ctrl = *Net::Multicast::Beaconc::rtp_send_ctrl;
*rtp_send_data = *Net::Multicast::Beaconc::rtp_send_data;

############# Class : Net::Multicast::Beacon::beacon_event ##############

package Net::Multicast::Beacon::beacon_event;
@ISA = qw( Net::Multicast::Beacon );
%OWNER = ();
%ITERATORS = ();
*swig_type_get = *Net::Multicast::Beaconc::beacon_event_type_get;
*swig_type_set = *Net::Multicast::Beaconc::beacon_event_type_set;
*swig_ssrc_get = *Net::Multicast::Beaconc::beacon_event_ssrc_get;
*swig_ssrc_set = *Net::Multicast::Beaconc::beacon_event_ssrc_set;
*swig_time_get = *Net::Multicast::Beaconc::beacon_event_time_get;
*swig_time_set = *Net::Multicast::Beaconc::beacon_event_time_set;
*swig_rr_get = *Net::Multicast::Beaconc::beacon_event_rr_get;
*swig_rr_set = *Net::Multicast::Beaconc::beacon_event_rr_set;
*swig_next_get = *Net::Multicast::Beaconc::beacon_event_next_get;
*swig_next_set = *Net::Multicast::Beaconc::beacon_event_next_set;
sub new {
    my $pkg = shift;
    my $self = Net::Multicast::Beaconc::new_beacon_event(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        Net::Multicast::Beaconc::delete_beacon_event($self);
        delete $OWNER{$self};
    }
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


############# Class : Net::Multicast::Beacon::rtcp_rr ##############

package Net::Multicast::Beacon::rtcp_rr;
@ISA = qw( Net::Multicast::Beacon );
%OWNER = ();
%ITERATORS = ();
*swig_ssrc_get = *Net::Multicast::Beaconc::rtcp_rr_ssrc_get;
*swig_ssrc_set = *Net::Multicast::Beaconc::rtcp_rr_ssrc_set;
*swig_total_lost_get = *Net::Multicast::Beaconc::rtcp_rr_total_lost_get;
*swig_total_lost_set = *Net::Multicast::Beaconc::rtcp_rr_total_lost_set;
*swig_fract_lost_get = *Net::Multicast::Beaconc::rtcp_rr_fract_lost_get;
*swig_fract_lost_set = *Net::Multicast::Beaconc::rtcp_rr_fract_lost_set;
*swig_last_seq_get = *Net::Multicast::Beaconc::rtcp_rr_last_seq_get;
*swig_last_seq_set = *Net::Multicast::Beaconc::rtcp_rr_last_seq_set;
*swig_jitter_get = *Net::Multicast::Beaconc::rtcp_rr_jitter_get;
*swig_jitter_set = *Net::Multicast::Beaconc::rtcp_rr_jitter_set;
*swig_lsr_get = *Net::Multicast::Beaconc::rtcp_rr_lsr_get;
*swig_lsr_set = *Net::Multicast::Beaconc::rtcp_rr_lsr_set;
*swig_dlsr_get = *Net::Multicast::Beaconc::rtcp_rr_dlsr_get;
*swig_dlsr_set = *Net::Multicast::Beaconc::rtcp_rr_dlsr_set;
sub new {
    my $pkg = shift;
    my $self = Net::Multicast::Beaconc::new_rtcp_rr(@_);
    bless $self, $pkg if defined($self);
}

sub DESTROY {
    return unless $_[0]->isa('HASH');
    my $self = tied(%{$_[0]});
    return unless defined $self;
    delete $ITERATORS{$self};
    if (exists $OWNER{$self}) {
        Net::Multicast::Beaconc::delete_rtcp_rr($self);
        delete $OWNER{$self};
    }
}

sub DISOWN {
    my $self = shift;
    my $ptr = tied(%$self);
    delete $OWNER{$ptr};
}

sub ACQUIRE {
    my $self = shift;
    my $ptr = tied(%$self);
    $OWNER{$ptr} = 1;
}


# ------- VARIABLE STUBS --------

package Net::Multicast::Beacon;

*RX_RTP = *Net::Multicast::Beaconc::RX_RTP;
*RX_SR = *Net::Multicast::Beaconc::RX_SR;
*RX_RR = *Net::Multicast::Beaconc::RX_RR;
*RX_SDES = *Net::Multicast::Beaconc::RX_SDES;
*RX_BYE = *Net::Multicast::Beaconc::RX_BYE;
*SOURCE_CREATED = *Net::Multicast::Beaconc::SOURCE_CREATED;
*SOURCE_DELETED = *Net::Multicast::Beaconc::SOURCE_DELETED;
*RX_RR_EMPTY = *Net::Multicast::Beaconc::RX_RR_EMPTY;
*RX_RTCP_START = *Net::Multicast::Beaconc::RX_RTCP_START;
*RX_RTCP_FINISH = *Net::Multicast::Beaconc::RX_RTCP_FINISH;
*RR_TIMEOUT = *Net::Multicast::Beaconc::RR_TIMEOUT;
*RX_APP = *Net::Multicast::Beaconc::RX_APP;
*RTCP_SDES_END = *Net::Multicast::Beaconc::RTCP_SDES_END;
*RTCP_SDES_CNAME = *Net::Multicast::Beaconc::RTCP_SDES_CNAME;
*RTCP_SDES_NAME = *Net::Multicast::Beaconc::RTCP_SDES_NAME;
*RTCP_SDES_EMAIL = *Net::Multicast::Beaconc::RTCP_SDES_EMAIL;
*RTCP_SDES_PHONE = *Net::Multicast::Beaconc::RTCP_SDES_PHONE;
*RTCP_SDES_LOC = *Net::Multicast::Beaconc::RTCP_SDES_LOC;
*RTCP_SDES_TOOL = *Net::Multicast::Beaconc::RTCP_SDES_TOOL;
*RTCP_SDES_NOTE = *Net::Multicast::Beaconc::RTCP_SDES_NOTE;
*RTCP_SDES_PRIV = *Net::Multicast::Beaconc::RTCP_SDES_PRIV;
1;
