/*
* Monitor a collection.
*
* Raises a Fam::Error exception if the collection could not be
* monitored. Note that this method exists under Gamin, but does not
* actually do anything.
*
* Aliases:
* Fam::Collection#monitor_col
* Fam::Collection#col
*
* Examples:
* req = fam.monitor_col 'download/images', 1, '*.jpg'
*
*/
static VALUE fam_conn_col(VALUE self, VALUE col, VALUE depth, VALUE mask)
{
FAMConnection *conn;
FAMRequest *req = NULL;
int err;
Data_Get_Struct(self, FAMConnection, conn);
req = ALLOC(FAMRequest);
FAMREQUEST_GETREQNUM(req) = (int) req;
err = FAMMonitorCollection(conn,
RSTRING(col)->ptr,
req,
NULL,
NUM2INT(depth),
RSTRING(mask)->ptr);
if (err == -1) {
xfree(req);
rb_raise(eError, "Couldn't monitor collection [\"%s\", %d, \"%s\"]: %s",
RSTRING(col)->ptr ? RSTRING(col)->ptr : "NULL",
NUM2INT(depth),
RSTRING(mask)->ptr ? RSTRING(mask)->ptr : "NULL",
fam_error());
}
return wrap_req(req);
}