Top |
Functions
Description
GrssFeedsSubscriber is an alternative for GrssFeedsPool, able to receive
real-time notifications by feeds managed by one of the supported protocols.
When the subscriber is executed (with grss_feeds_subscriber_switch()
) it opens
a server on a local port (configurable with grss_feeds_subscriber_set_port()
),
engage a subscription for each GrssFeedChannel passed with
grss_feeds_subscriber_listen()
, and waits for direct notifications by the
remote server.
Pay attention to the fact this object doesn't provides any NAT traversing method to receive notification while behind a NAT.
Functions
grss_feeds_subscriber_new ()
GrssFeedsSubscriber * grss_feeds_subscriber_new ();
Allocates a new GrssFeedsSubscriber.
grss_feeds_subscriber_listen ()
gboolean grss_feeds_subscriber_listen (GrssFeedsSubscriber *sub
,GList *feeds
);
To set the list of feeds to be managed by sub
. The previous list, if any,
is invalidated. After invokation to the function, grss_feeds_subscriber_switch()
must be call to run the subscription.
The list in feeds
can be freed after calling this; linked GrssFeedChannel
are g_object_ref'd here.
Returns
TRUE
if all GrssFeedChannels involved in feeds
are valid
and can be listened with one of the implemented procotols, FALSE
otherwise.
grss_feeds_subscriber_get_listened ()
GList *
grss_feeds_subscriber_get_listened (GrssFeedsSubscriber *sub
);
Returns the list of feeds currently managed by sub
.
Returns
a
list of GrssFeedChannel, to be freed with g_list_free()
when no
longer in use. Do not modify elements found in this list.
[element-type GrssFeedChannel][transfer container]
grss_feeds_subscriber_set_port ()
void grss_feeds_subscriber_set_port (GrssFeedsSubscriber *sub
,int port
);
To customize the port opened by the local server to catch incoming publishers' events. By default this is 8444. Changing the port while the subscriber is running imply restart the local server. Pay attention to the fact many publishers' implementations accept only certain ports.
grss_feeds_subscriber_switch ()
void grss_feeds_subscriber_switch (GrssFeedsSubscriber *sub
,gboolean run
);
Permits to pause or resume sub
listening for events.
grss_feeds_subscriber_get_address ()
GInetAddress *
grss_feeds_subscriber_get_address (GrssFeedsSubscriber *sub
);
This function returns the Internet address where sub
is listening for
external events. It is often required by GrssFeedsSubscriberHandlers while
subscribing contents to specify the local endpoint for communications.
Returns
the GInetAddress used by sub
, or
NULL
if the GrssFeedsSubscriber is switched off.
[transfer none]
grss_feeds_subscriber_get_port ()
int
grss_feeds_subscriber_get_port (GrssFeedsSubscriber *sub
);
This function returns the Internet port where sub
is listening for
external events. It is often required by GrssFeedsSubscriberHandlers while
subscribing contents to specify the local endpoint for communications.
grss_feeds_subscriber_get_session ()
SoupSession *
grss_feeds_subscriber_get_session (GrssFeedsSubscriber *sub
);
To obtain the internal SoupSession of a GrssFeedsSubscriber, so to re-use it in GrssFeedsSubscriberHandlers or similar tasks.
Signal Details
The “notification-received”
signal
void user_function (GrssFeedsSubscriber *pool, GObject *feed, GObject *item, gpointer user_data)
Emitted when a notification has been received and parsed. The
item
is cached and unref'd when the GrssFeedsSubscriber is
destroyed or a new set of feeds is provided.
Parameters
pool |
the GrssFeedsSubscriber emitting the signal. |
|
feed |
the GrssFeedChannel which has been updated. |
|
item |
the GrssFeedItem received. |
|
user_data |
user data set when the signal handler was connected. |
Flags: Run Last