static void class_init( XferDestHoldingClass * selfc) { XferElementClass *klass = XFER_ELEMENT_CLASS(selfc); XferDestHoldingClass *xdh_klass = XFER_DEST_HOLDING_CLASS(selfc); GObjectClass *goc = G_OBJECT_CLASS(selfc); static xfer_element_mech_pair_t mech_pairs[] = { { XFER_MECH_PUSH_BUFFER, XFER_MECH_NONE, XFER_NROPS(1), XFER_NTHREADS(1)}, { XFER_MECH_NONE, XFER_MECH_NONE, XFER_NROPS(0), XFER_NTHREADS(0)}, }; klass->start = start_impl; klass->cancel = cancel_impl; klass->push_buffer = push_buffer_impl; xdh_klass->start_chunk = start_chunk_impl; xdh_klass->finish_chunk = finish_chunk_impl; xdh_klass->get_chunk_bytes_written = get_chunk_bytes_written_impl; goc->finalize = finalize_impl; klass->perl_class = "Amanda::Xfer::Dest::Holding"; klass->mech_pairs = mech_pairs; parent_class = g_type_class_peek_parent(selfc); }
static void class_init( XferSourceFdClass * selfc) { XferElementClass *klass = XFER_ELEMENT_CLASS(selfc); static xfer_element_mech_pair_t mech_pairs[] = { { XFER_MECH_NONE, XFER_MECH_READFD, XFER_NROPS(0), XFER_NTHREADS(0) }, { XFER_MECH_NONE, XFER_MECH_NONE, XFER_NROPS(0), XFER_NTHREADS(0) }, }; klass->perl_class = "Amanda::Xfer::Source::Fd"; klass->mech_pairs = mech_pairs; parent_class = g_type_class_peek_parent(selfc); }
static void class_init( XferSourceDirectTCPListenClass * selfc) { XferElementClass *klass = XFER_ELEMENT_CLASS(selfc); static xfer_element_mech_pair_t mech_pairs[] = { { XFER_MECH_NONE, XFER_MECH_DIRECTTCP_LISTEN, XFER_NROPS(1), XFER_NTHREADS(0), XFER_NALLOC(0) }, { XFER_MECH_NONE, XFER_MECH_NONE, XFER_NROPS(0), XFER_NTHREADS(0), XFER_NALLOC(0) }, }; klass->start = start_impl; klass->perl_class = "Amanda::Xfer::Source::DirectTCPListen"; klass->mech_pairs = mech_pairs; parent_class = g_type_class_peek_parent(selfc); }
static void class_init( XferSourceDeviceClass * selfc) { XferElementClass *klass = XFER_ELEMENT_CLASS(selfc); static xfer_element_mech_pair_t mech_pairs[] = { { XFER_MECH_NONE, XFER_MECH_PULL_BUFFER, XFER_NROPS(0), XFER_NTHREADS(1), XFER_NALLOC(0) }, { XFER_MECH_NONE, XFER_MECH_NONE, XFER_NROPS(0), XFER_NTHREADS(0), XFER_NALLOC(0) } }; klass->pull_buffer = pull_buffer_impl; klass->perl_class = "Amanda::Xfer::Source::Device"; klass->mech_pairs = mech_pairs; parent_class = g_type_class_peek_parent(selfc); }
static void class_init( XferDestNullClass * selfc) { XferElementClass *klass = XFER_ELEMENT_CLASS(selfc); static xfer_element_mech_pair_t mech_pairs[] = { { XFER_MECH_PUSH_BUFFER, XFER_MECH_NONE, XFER_NROPS(0), XFER_NTHREADS(0), XFER_NALLOC(0) }, { XFER_MECH_PUSH_BUFFER_STATIC, XFER_MECH_NONE, XFER_NROPS(0), XFER_NTHREADS(0), XFER_NALLOC(0) }, { XFER_MECH_NONE, XFER_MECH_NONE, XFER_NROPS(0), XFER_NTHREADS(0), XFER_NALLOC(0) }, }; klass->push_buffer = push_buffer_impl; klass->push_buffer_static = push_buffer_static_impl; klass->perl_class = "Amanda::Xfer::Dest::Null"; klass->mech_pairs = mech_pairs; parent_class = g_type_class_peek_parent(selfc); }
static void class_init( XferFilterCrcClass * selfc) { XferElementClass *klass = XFER_ELEMENT_CLASS(selfc); static xfer_element_mech_pair_t mech_pairs[] = { { XFER_MECH_PULL_BUFFER, XFER_MECH_PULL_BUFFER, XFER_NROPS(1), XFER_NTHREADS(0) }, { XFER_MECH_PUSH_BUFFER, XFER_MECH_PUSH_BUFFER, XFER_NROPS(1), XFER_NTHREADS(0) }, { XFER_MECH_NONE, XFER_MECH_NONE, XFER_NROPS(0), XFER_NTHREADS(0) }, }; klass->push_buffer = push_buffer_impl; klass->pull_buffer = pull_buffer_impl; klass->perl_class = "Amanda::Xfer::Filter::Crc"; klass->mech_pairs = mech_pairs; parent_class = g_type_class_peek_parent(selfc); }
static void class_init( XferDestBufferClass * selfc) { XferElementClass *klass = XFER_ELEMENT_CLASS(selfc); GObjectClass *goc = G_OBJECT_CLASS(selfc); static xfer_element_mech_pair_t mech_pairs[] = { { XFER_MECH_PUSH_BUFFER, XFER_MECH_NONE, XFER_NROPS(0), XFER_NTHREADS(0) }, { XFER_MECH_NONE, XFER_MECH_NONE, XFER_NROPS(0), XFER_NTHREADS(0) }, }; selfc->get = get_impl; klass->push_buffer = push_buffer_impl; goc->finalize = finalize_impl; klass->perl_class = "Amanda::Xfer::Dest::Buffer"; klass->mech_pairs = mech_pairs; parent_class = g_type_class_peek_parent(selfc); }
static void class_init( XferSourceRandomClass * selfc) { XferElementClass *klass = XFER_ELEMENT_CLASS(selfc); static xfer_element_mech_pair_t mech_pairs[] = { { XFER_MECH_NONE, XFER_MECH_PULL_BUFFER, XFER_NROPS(1), XFER_NTHREADS(0), XFER_NALLOC(1) }, { XFER_MECH_NONE, XFER_MECH_PULL_BUFFER_STATIC, XFER_NROPS(1), XFER_NTHREADS(0), XFER_NALLOC(0) }, { XFER_MECH_NONE, XFER_MECH_NONE, XFER_NROPS(0), XFER_NTHREADS(0), XFER_NALLOC(0) }, }; selfc->get_seed = get_seed_impl; klass->pull_buffer = pull_buffer_impl; klass->pull_buffer_static = pull_buffer_static_impl; klass->perl_class = "Amanda::Xfer::Source::Random"; klass->mech_pairs = mech_pairs; parent_class = g_type_class_peek_parent(selfc); }
static void class_init( XferFilterProcessClass * selfc) { XferElementClass *klass = XFER_ELEMENT_CLASS(selfc); GObjectClass *goc = (GObjectClass*) klass; static xfer_element_mech_pair_t mech_pairs[] = { { XFER_MECH_READFD, XFER_MECH_WRITEFD, XFER_NROPS(1), XFER_NTHREADS(0) }, { XFER_MECH_NONE, XFER_MECH_NONE, XFER_NROPS(0), XFER_NTHREADS(0) }, }; klass->start = start_impl; klass->cancel = cancel_impl; klass->perl_class = "Amanda::Xfer::Filter::Process"; klass->mech_pairs = mech_pairs; selfc->get_err_fd = get_err_fd_impl; goc->finalize = finalize_impl; parent_class = g_type_class_peek_parent(selfc); }
if (self->ring[self->ring_tail].buf) amfree(self->ring[self->ring_tail].buf); self->ring_tail = (self->ring_tail + 1) % GLUE_RING_BUFFER_SIZE; } amfree(self->ring); amsemaphore_free(self->ring_used_sem); amsemaphore_free(self->ring_free_sem); } /* chain up */ G_OBJECT_CLASS(parent_class)->finalize(obj_self); } static xfer_element_mech_pair_t _pairs[] = { { XFER_MECH_READFD, XFER_MECH_WRITEFD, XFER_NROPS(2), XFER_NTHREADS(1) }, /* splice or copy */ { XFER_MECH_READFD, XFER_MECH_PUSH_BUFFER, XFER_NROPS(1), XFER_NTHREADS(1) }, /* read and call */ { XFER_MECH_READFD, XFER_MECH_PULL_BUFFER, XFER_NROPS(1), XFER_NTHREADS(0) }, /* read on demand */ { XFER_MECH_READFD, XFER_MECH_DIRECTTCP_LISTEN, XFER_NROPS(2), XFER_NTHREADS(1) }, /* splice or copy */ { XFER_MECH_READFD, XFER_MECH_DIRECTTCP_CONNECT, XFER_NROPS(2), XFER_NTHREADS(1) }, /* splice or copy */ { XFER_MECH_WRITEFD, XFER_MECH_READFD, XFER_NROPS(0), XFER_NTHREADS(0) }, /* pipe */ { XFER_MECH_WRITEFD, XFER_MECH_PUSH_BUFFER, XFER_NROPS(1), XFER_NTHREADS(1) }, /* pipe + read and call*/ { XFER_MECH_WRITEFD, XFER_MECH_PULL_BUFFER, XFER_NROPS(1), XFER_NTHREADS(0) }, /* pipe + read on demand */ { XFER_MECH_WRITEFD, XFER_MECH_DIRECTTCP_LISTEN, XFER_NROPS(2), XFER_NTHREADS(1) }, /* pipe + splice or copy*/ { XFER_MECH_WRITEFD, XFER_MECH_DIRECTTCP_CONNECT, XFER_NROPS(2), XFER_NTHREADS(1) }, /* splice or copy + pipe */ { XFER_MECH_PUSH_BUFFER, XFER_MECH_READFD, XFER_NROPS(1), XFER_NTHREADS(0) }, /* write on demand + pipe */ { XFER_MECH_PUSH_BUFFER, XFER_MECH_WRITEFD, XFER_NROPS(1), XFER_NTHREADS(0) }, /* write on demand */ { XFER_MECH_PUSH_BUFFER, XFER_MECH_PULL_BUFFER, XFER_NROPS(0), XFER_NTHREADS(0) }, /* async queue */ { XFER_MECH_PUSH_BUFFER, XFER_MECH_DIRECTTCP_LISTEN, XFER_NROPS(1), XFER_NTHREADS(0) }, /* write on demand */