예제 #1
0
static void
spruce_tcp_stream_class_init (SpruceTcpStreamClass *klass)
{
	GMimeStreamClass *stream_class = GMIME_STREAM_CLASS (klass);
	GObjectClass *object_class = G_OBJECT_CLASS (klass);
	
	parent_class = g_type_class_ref (GMIME_TYPE_STREAM);
	
	object_class->finalize = spruce_tcp_stream_finalize;
	
	stream_class->read = stream_read;
	stream_class->write = stream_write;
	stream_class->flush = stream_flush;
	stream_class->close = stream_close;
	stream_class->eos = stream_eos;
	stream_class->reset = stream_reset;
	stream_class->seek = stream_seek;
	stream_class->tell = stream_tell;
	stream_class->length = stream_length;
	stream_class->substream = stream_substream;
	
	klass->connect = tcp_connect;
	klass->getsockopt = tcp_getsockopt;
	klass->setsockopt = tcp_setsockopt;
	klass->getsockaddr = tcp_getsockaddr;
	klass->getpeeraddr = tcp_getpeeraddr;
}
예제 #2
0
static gint64
lbmss_stream_seek(GMimeStream * stream, gint64 offset,
                  GMimeSeekWhence whence)
{
    g_return_val_if_fail(lbmss_thread_has_lock(stream), -1);
    return GMIME_STREAM_CLASS(parent_class)->seek(stream, offset, whence);
}
예제 #3
0
static void
lbmss_stream_class_init(LibBalsaMimeStreamSharedClass * klass)
{
    GMimeStreamClass *stream_class = GMIME_STREAM_CLASS(klass);
    GObjectClass *object_class = G_OBJECT_CLASS(klass);

    parent_class = g_type_class_ref(GMIME_TYPE_STREAM_FS);
    g_mutex_init(&lbmss_mutex);
    g_cond_init(&lbmss_cond);

    object_class->finalize  = lbmss_finalize;

    stream_class->read      = lbmss_stream_read;
    stream_class->write     = lbmss_stream_write;
    stream_class->reset     = lbmss_stream_reset;
    stream_class->seek      = lbmss_stream_seek;
    stream_class->substream = lbmss_stream_substream;
}
예제 #4
0
static void
spruce_tcp_stream_ssl_class_init (SpruceTcpStreamSSLClass *klass)
{
	SpruceTcpStreamClass *tcp_class = SPRUCE_TCP_STREAM_CLASS (klass);
	GMimeStreamClass *stream_class = GMIME_STREAM_CLASS (klass);
	GObjectClass *object_class = G_OBJECT_CLASS (klass);
	
	parent_class = g_type_class_ref (SPRUCE_TYPE_TCP_STREAM);
	
	object_class->finalize = spruce_tcp_stream_ssl_finalize;
	
	stream_class->read = stream_read;
	stream_class->write = stream_write;
	stream_class->close = stream_close;
	
	tcp_class->connect = tcp_connect;
	
	SSL_load_error_strings ();
	SSLeay_add_ssl_algorithms ();
}
static void
g_mime_stream_mmap_class_init (GMimeStreamMmapClass *klass)
{
	GMimeStreamClass *stream_class = GMIME_STREAM_CLASS (klass);
	GObjectClass *object_class = G_OBJECT_CLASS (klass);
	
	parent_class = g_type_class_ref (GMIME_TYPE_STREAM);
	
	object_class->finalize = g_mime_stream_mmap_finalize;
	
	stream_class->read = stream_read;
	stream_class->write = stream_write;
	stream_class->flush = stream_flush;
	stream_class->close = stream_close;
	stream_class->eos = stream_eos;
	stream_class->reset = stream_reset;
	stream_class->seek = stream_seek;
	stream_class->tell = stream_tell;
	stream_class->length = stream_length;
	stream_class->substream = stream_substream;
}
예제 #6
0
static int
lbmss_stream_reset(GMimeStream * stream)
{
    g_return_val_if_fail(lbmss_thread_has_lock(stream), -1);
    return GMIME_STREAM_CLASS(parent_class)->reset(stream);
}
예제 #7
0
static ssize_t
lbmss_stream_write(GMimeStream * stream, const char *buf, size_t len)
{
    g_return_val_if_fail(lbmss_thread_has_lock(stream), -1);
    return GMIME_STREAM_CLASS(parent_class)->write(stream, buf, len);
}