Exemplo n.º 1
0
static void
collabclient_remakeSockets( cloneclient_t *cc )
{
    cc->snapshot = zsocket_new (cc->ctx, ZMQ_DEALER);
    zsocket_connect (cc->snapshot,
	collabclient_makeAddressString( cc->address,
	cc->port + socket_offset_snapshot));
    
    cc->subscriber = zsocket_new (cc->ctx, ZMQ_SUB);
    zsocket_set_subscribe (cc->subscriber, "");
    zsocket_connect (cc->subscriber,
	collabclient_makeAddressString( cc->address,
	cc->port + socket_offset_subscriber));
    zsocket_set_subscribe (cc->subscriber, SUBTREE);

    cc->publisher = zsocket_new (cc->ctx, ZMQ_PUSH);
    zsocket_connect (cc->publisher,
	collabclient_makeAddressString( cc->address,
	cc->port + socket_offset_publisher));

    int fd = 0;
    size_t fdsz = sizeof(fd);
    int rc = zmq_getsockopt( cc->subscriber, ZMQ_FD, &fd, &fdsz );
    printf("subscriber rc:%d fd:%d\n", rc, fd );
    GDrawAddReadFD( 0, fd, cc, zeromq_subscriber_fd_callback );
  
}
Exemplo n.º 2
0
static PyObject *PyFFFont_addGtkWindowToMainEventLoop(PyFF_Font *self, PyObject *args)
{
    PyObject *result = NULL;
    PyObject *temp;
    int v = 0;

    if ( !PyArg_ParseTuple( args, "i", &v ))
        return( NULL );

    gpointer gdkwindow = gdk_xid_table_lookup( v );

    if( gdkwindow )
    {
        Display* d = GDK_WINDOW_XDISPLAY(gdkwindow);
        int fd = XConnectionNumber(d);
        if( fd )
        {
            gpointer udata = 0;
            GDrawAddReadFD( 0, fd, udata, GtkWindowToMainEventLoop_fd_callback );
        }
    }
    
    /* Boilerplate to return "None" */
    Py_INCREF(Py_None);
    result = Py_None;
    return result;
}
Exemplo n.º 3
0
static void python_ui_setup_callback( bool makefifo )
{
#ifndef __MINGW32__
    int fd = 0;
    int err = 0;
    char *userCacheDir, *sockPath;

    userCacheDir = getFontForgeUserDir(Cache);
    if ( userCacheDir==NULL ) {
        LogError("PythonUISetup: failed to discover user cache dir path");
        return;
    }

    asprintf(&sockPath, "%s/python-socket", userCacheDir);
    free(userCacheDir);

    if( makefifo ) {
        err = mkfifo( sockPath, 0600 );
        if ( err==-1  &&  errno!=EEXIST) {
            LogError("PythonUISetup: unable to mkfifo('%s'): errno %d\n", sockPath, errno);
            free(sockPath);
            return;
        }
    }

    fd = open( sockPath, O_RDONLY | O_NDELAY );
    if ( fd==-1) {
        LogError("PythonUISetup: unable to open socket '%s': errno %d\n", sockPath, errno);
        free(sockPath);
        return;
    }
    free(sockPath);

    void* udata = 0;
    GDrawAddReadFD( 0, fd, udata, python_ui_fd_callback );
    return;
#endif   
}