Beispiel #1
0
int main()
{
    std::thread worker(timer_thread);
    // call some set_callback here
    set_callback(std::chrono::seconds(1), 2);
    set_callback(std::chrono::seconds(2), 4);
    set_callback(std::chrono::seconds(3), 6);
    std::this_thread::sleep_for(std::chrono::seconds(5));

    isCancelled = true;
    cv.notify_all();
    worker.join();
}
Beispiel #2
0
EXPORT CLASS *init(CALLBACKS *fntable, MODULE *module, int argc, char *argv[])
{
	if (set_callback(fntable)==NULL)
	{
		errno = EINVAL;
		return NULL;
	}

#ifdef OPTIONAL
	/* TODO: publish global variables (see class_define_map() for details) */
	//gl_global_create(char *name, ..., NULL);
	/* TODO: use gl_global_setvar, gl_global_getvar, and gl_global_find for access */
#endif

	/*** DO NOT EDIT NEXT LINE ***/
	
	new bus(module);
	//new line(module);	
	new branch(module);
	new gen(module);
	//new gen_cost(module);
	//new areas(module);
	//new baseMVA(module);
	
	/* always return the first class registered */
	/* TODO this module will not compile until a class has been defined */
	return bus::oclass;
}
Beispiel #3
0
void init_buffer_socket(BufferSocket *bs, size_t item_count, size_t payload_len) {
    // Initialize a BufferSocket
    bs->buf = ring_buffer_create(item_count, payload_len);
    set_callback(bs, &default_callback);
    bs->run_threads = 0;
    bs->userdata = NULL;
}
Beispiel #4
0
static VALUE watch_timer(VALUE self, VALUE delay)
{
	set_callback(&timer_handler, "timer_handler");
	if (timer_timeout != 0)
		g_source_remove(timer_timeout);
	timer_timeout = g_timeout_add_full( G_PRIORITY_HIGH, delay, do_timeout, timer_handler, NULL );
	return delay;
}
Beispiel #5
0
static VALUE watch_timer(VALUE self, VALUE delay)
{
  set_callback(&timer_handler, "timer_handler");
  if (timer_timeout != 0)
    g_source_remove(timer_timeout);
  timer_timeout = g_timeout_add(delay, do_timeout, timer_handler);
  return delay;
}
Beispiel #6
0
 void set_callback(Function callback, cl_int status = CL_COMPLETE)
 {
     set_callback(
         event_callback_invoker,
         status,
         new boost::function<void()>(callback)
     );
 }
Beispiel #7
0
static void join_symbol(join_t * x, t_symbol * s)
{
	t_int* argv = getbytes(2*sizeof(t_int*));
	argv[0] = (t_int)x->x_outlet;
	argv[1] = (t_int)s;

	set_callback(join_symbol_callback, argv, 2);
}
Beispiel #8
0
static void join_float(join_t * x, t_float f)
{
	t_int* argv = getbytes(2*sizeof(t_int*));
	argv[0] = (t_int)x->x_outlet;
	argv[1] = (t_int)f;

	set_callback(join_float_callback, argv, 2);
}
Beispiel #9
0
static void join_pointer(join_t * x, t_gpointer * gp)
{
	t_int* argv = getbytes(2*sizeof(t_int*));
	argv[0] = (t_int)x->x_outlet;
	argv[1] = (t_int)gp;

	set_callback(join_pointer_callback, argv, 2);
}
Beispiel #10
0
static  VALUE watch_signed_off_event(VALUE self)
{
  set_callback(&signed_off_handler, "signed_off_handler");
  int handle;
	purple_signal_connect(purple_connections_get_handle(), "signed-off", &handle,
				PURPLE_CALLBACK(signed_off), NULL);
  return signed_off_handler;
}
Beispiel #11
0
int
ncp_args_parseopt(struct ncp_args *na, int opt, char *optarg, ncp_setopt_t *set_callback) {
	int len;

	for (; na->opt; na++) {
		if (na->opt != opt) continue;
		switch (na->at) {
		    case NCA_STR:
			na->str = optarg;
			if (optarg) {
				len = strlen(na->str);
				if (len > na->ival) {
					fprintf(stderr,"opt: Argument for option '%c' (%s) too long\n",na->opt,na->name);
					return EINVAL;
				}
				set_callback(na);
			}
			break;
		    case NCA_BOOL:
			na->ival = 0;
			set_callback(na);
			break;
		    case NCA_INT:
			errno = 0;
			na->ival = strtol(optarg, NULL, 0);
			if (errno) {
				fprintf(stderr,"opt: Invalid integer value for option '%c' (%s).\n",na->opt,na->name);
				return EINVAL;
			}
			if (((na->flag & NAFL_HAVEMIN) && 
			     (na->ival < na->min)) || 
			    ((na->flag & NAFL_HAVEMAX) && 
			     (na->ival > na->max))) {
				fprintf(stderr,"opt: Argument for option '%c' (%s) should be in [%d-%d] range\n",na->opt,na->name,na->min,na->max);
				return EINVAL;
			}
			set_callback(na);
			break;
		    default:
			break;
		}
		break;
	}
	return 0;
}
Beispiel #12
0
/** \brief Set the mandatory parameters and start the actions
 * 
 * - This is only a helper function on top of the actual functions
 */
simuwan_err_t	simuwan_t::start(simuwan_cb_t *callback, void *userptr)	throw()
{
	simuwan_err_t	simuwan_err;
	// set the callback
	simuwan_err = set_callback(callback, userptr);
	if( simuwan_err.failed() )	return simuwan_err;
	// start the action
	return start();
}
Beispiel #13
0
void UI_KEYTRAP::create(UI_WINDOW* wnd, int key, void (*_user_function)(void))
{
	base_create(wnd, UI_KIND_BUTTON, 0, 0, 0, 0);

	pressed_down = 0;
	set_hotkey(key);
	set_callback(_user_function);

	parent = this;		// Ugly.  This keeps KEYTRAPS from getting keyboard control.
}
Beispiel #14
0
static void join_anything(join_t * x, t_symbol * s, int argc, t_atom* largv)
{
	t_int* argv = getbytes(3*sizeof(t_int*));
	t_atom* copied_argv = copybytes(largv, argc * sizeof(t_atom));

	argv[0] = (t_int)x->x_outlet;
	argv[1] = (t_int)argc;
	argv[2] = (t_int)copied_argv;

	set_callback(join_anything_callback, argv, 3);
}
Beispiel #15
0
static int tcp_read_start(lua_State* L) {
  tcp_obj* self;
  int r;

  self = luaL_checkudata(L, 1, "uv.tcp");
  set_callback(L, "on_read", 2);

  r = uv_read_start((uv_stream_t*)&self->handle, on_alloc, on_read);
  lua_pushinteger(L, r);

  return 1;
}
Beispiel #16
0
static int tcp_listen(lua_State* L) {
  tcp_obj* self;
  int backlog;
  int r;

  self = luaL_checkudata(L, 1, "uv.tcp");

  if (lua_isnumber(L, 2)) {
    backlog = luaL_checkinteger(L, 2);
    set_callback(L, "on_connection", 3);
  }
  else {
    backlog = 128;
    set_callback(L, "on_connection", 2);
  }

  r = uv_listen((uv_stream_t*)&self->handle, backlog, on_connection);
  lua_pushinteger(L, r);

  return 1;
}
Beispiel #17
0
/***********************************************************************
 *           RegisterBindStatusCallback (urlmon.@)
 *
 * Register a bind status callback.
 *
 * PARAMS
 *  pbc           [I] Binding context
 *  pbsc          [I] Callback to register
 *  ppbscPrevious [O] Destination for previous callback
 *  dwReserved    [I] Reserved, must be 0.
 *
 * RETURNS
 *    Success: S_OK.
 *    Failure: E_INVALIDARG, if any argument is invalid, or
 *             E_OUTOFMEMORY if memory allocation fails.
 */
HRESULT WINAPI RegisterBindStatusCallback(IBindCtx *pbc, IBindStatusCallback *pbsc,
        IBindStatusCallback **ppbscPrevious, DWORD dwReserved)
{
    BindStatusCallback *holder;
    IBindStatusCallback *bsc, *prev = NULL;
    IUnknown *unk;
    HRESULT hres;

    TRACE("(%p %p %p %x)\n", pbc, pbsc, ppbscPrevious, dwReserved);

    if (!pbc || !pbsc)
        return E_INVALIDARG;

    hres = IBindCtx_GetObjectParam(pbc, BSCBHolder, &unk);
    if(SUCCEEDED(hres)) {
        hres = IUnknown_QueryInterface(unk, &IID_IBindStatusCallback, (void**)&bsc);
        IUnknown_Release(unk);
        if(SUCCEEDED(hres)) {
            hres = IBindStatusCallback_QueryInterface(bsc, &IID_IBindStatusCallbackHolder, (void**)&holder);
            if(SUCCEEDED(hres)) {
                if(ppbscPrevious) {
                    IBindStatusCallback_AddRef(holder->callback);
                    *ppbscPrevious = holder->callback;
                }

                set_callback(holder, pbsc);

                IBindStatusCallback_Release(bsc);
                IBindStatusCallback_Release(STATUSCLB(holder));
                return S_OK;
            }else {
                prev = bsc;
            }
        }

        IBindCtx_RevokeObjectParam(pbc, BSCBHolder);
    }

    hres = wrap_callback(pbsc, &bsc);
    if(SUCCEEDED(hres)) {
        hres = IBindCtx_RegisterObjectParam(pbc, BSCBHolder, (IUnknown*)bsc);
        IBindStatusCallback_Release(bsc);
    }
    if(FAILED(hres)) {
        if(prev)
            IBindStatusCallback_Release(prev);
        return hres;
    }

    if(ppbscPrevious)
        *ppbscPrevious = prev;
    return S_OK;
}
/** \brief Helper function to start a ntudp_itor_t with the common parameter
 */
ntudp_err_t	ntudp_itor_t::start(ntudp_peer_t *ntudp_peer, const ntudp_addr_t &m_remote_addr
				, ntudp_itor_cb_t *callback, void *userptr)	throw()
{
	ntudp_err_t	ntudp_err;
	// set the callback
	set_callback(callback, userptr);
	// bind the socket
	ntudp_err	= set_remote_addr(ntudp_peer, m_remote_addr);
	if( ntudp_err.failed() )	return ntudp_err;
	// start the operation
	return start();
}
Beispiel #19
0
static int tcp_close(lua_State* L) {
  tcp_obj* self;

  self = luaL_checkudata(L, 1, "uv.tcp");

  if (!lua_isnil(L, 2))
    set_callback(L, "on_close", 2);

  uv_close((uv_handle_t*)&self->handle, on_close);

  return 0;
}
/** \brief Setup all mandatory parameters and start the operation
 */
ntudp_err_t	ntudp_client_t::start(ntudp_peer_t *ntudp_peer, const ntudp_addr_t &remote_addr
					, ntudp_client_cb_t *callback, void * userptr)		throw()
{
	ntudp_err_t	ntudp_err;
	// set the remote_addr
	ntudp_err	= set_remote_addr(ntudp_peer, remote_addr);
	if( ntudp_err.failed() )	return ntudp_err;
	// set the callback
	set_callback(callback, userptr);
	// start the operation now
	return start();
}
Beispiel #21
0
static VALUE watch_connection_error(VALUE self)
{
  finch_connections_init();
  purple_connections_set_ui_ops(&connection_ops);
  
  set_callback(&connection_error_handler, "connection_error_handler");
  
  /*int handle;
	purple_signal_connect(purple_connections_get_handle(), "connection-error", &handle,
				PURPLE_CALLBACK(connection_error), NULL);*/
  return connection_error_handler;
}
Beispiel #22
0
/*
 * misc options parsing routines
 */
int
ncp_args_parserc(struct ncp_args *na, char *sect, ncp_setopt_t *set_callback) {
	int len, error;

	for (; na->opt; na++) {
		switch (na->at) {
		    case NCA_STR:
			if (rc_getstringptr(ncp_rc,sect,na->name,&na->str) == 0) {
				len = strlen(na->str);
				if (len > na->ival) {
					fprintf(stderr,"rc: Argument for option '%c' (%s) too long\n",na->opt,na->name);
					return EINVAL;
				}
				set_callback(na);
			}
			break;
		    case NCA_BOOL:
			error = rc_getbool(ncp_rc,sect,na->name,&na->ival);
			if (error == ENOENT) break;
			if (error) return EINVAL;
			set_callback(na);
			break;
		    case NCA_INT:
			if (rc_getint(ncp_rc,sect,na->name,&na->ival) == 0) {
				if (((na->flag & NAFL_HAVEMIN) && 
				     (na->ival < na->min)) || 
				    ((na->flag & NAFL_HAVEMAX) && 
				     (na->ival > na->max))) {
					fprintf(stderr,"rc: Argument for option '%c' (%s) should be in [%d-%d] range\n",na->opt,na->name,na->min,na->max);
					return EINVAL;
				}
				set_callback(na);
			};
			break;
		    default:
			break;
		}
	}
	return 0;
}
Beispiel #23
0
/*
 * Function: CODE
 * RET Type: test_function
 * Wait ptr: 14
 * Rtry ptr: 0
 */
static int
act_test_state_15(test_test_state *state)
{
	int test_test_return = TBEVENT_BLOCKDONE;
#line 111 "/Users/maxwell/code/gw/event/test/test.event"
	{
		log_debug("CODE FOR WAIT 0x%p", &act_test_wait_14);
		set_callback(act_test_wait_14, (state));
		return TBEVENT_CALLBACK;
	}
#line 386 "/Users/maxwell/code/gw/event/test/generated/event_test.c"
	return test_test_return;
}
Beispiel #24
0
/** \brief Set the mandatory parameters and start the actions
 * 
 * - This is only a helper function on top of the actual functions
 */
inet_err_t udp_resp_t::start(const ipport_addr_t &m_listen_addr, udp_resp_cb_t *callback, void *userptr)
										throw()
{
	inet_err_t	inet_err;
	// set the remote address
	inet_err = set_listen_addr(m_listen_addr);
	if( inet_err.failed() )	return inet_err;
	// set the callback
	inet_err = set_callback(callback, userptr);
	if( inet_err.failed() )	return inet_err;
	// start the action
	return start();
}
Beispiel #25
0
EXPORT CLASS *init(CALLBACKS *fntable, MODULE *module, int argc, char *argv[])
{
	if (set_callback(fntable)==NULL)
	{
		errno = EINVAL;
		return NULL;
	}

	new climate(module);
	new weather(module);
	new csv_reader(module);

	/* always return the first class registered */
	return climate::oclass;
}
Beispiel #26
0
/***********************************************************************
 *           RegisterBindStatusCallback (urlmon.@)
 *
 * Register a bind status callback.
 *
 * PARAMS
 *  pbc           [I] Binding context
 *  pbsc          [I] Callback to register
 *  ppbscPrevious [O] Destination for previous callback
 *  dwReserved    [I] Reserved, must be 0.
 *
 * RETURNS
 *    Success: S_OK.
 *    Failure: E_INVALIDARG, if any argument is invalid, or
 *             E_OUTOFMEMORY if memory allocation fails.
 */
HRESULT WINAPI RegisterBindStatusCallback(IBindCtx *pbc, IBindStatusCallback *pbsc,
        IBindStatusCallback **ppbscPrevious, DWORD dwReserved)
{
    BindStatusCallback *holder;
    IBindStatusCallback *bsc, *prev = NULL;
    HRESULT hres;

    TRACE("(%p %p %p %x)\n", pbc, pbsc, ppbscPrevious, dwReserved);

    if (!pbc || !pbsc)
        return E_INVALIDARG;

    bsc = bsch_from_bctx(pbc);
    if(bsc) {
        hres = IBindStatusCallback_QueryInterface(bsc, &IID_IBindStatusCallbackHolder, (void**)&holder);
        if(SUCCEEDED(hres)) {
            if(ppbscPrevious) {
                IBindStatusCallback_AddRef(holder->callback);
                *ppbscPrevious = holder->callback;
            }

            set_callback(holder, pbsc);

            IBindStatusCallback_Release(bsc);
            IBindStatusCallbackEx_Release(&holder->IBindStatusCallbackEx_iface);
            return S_OK;
        }else {
            prev = bsc;
        }

        IBindCtx_RevokeObjectParam(pbc, bscb_holderW);
    }

    hres = wrap_callback(pbsc, &bsc);
    if(SUCCEEDED(hres)) {
        hres = IBindCtx_RegisterObjectParam(pbc, bscb_holderW, (IUnknown*)bsc);
        IBindStatusCallback_Release(bsc);
    }
    if(FAILED(hres)) {
        if(prev)
            IBindStatusCallback_Release(prev);
        return hres;
    }

    if(ppbscPrevious)
        *ppbscPrevious = prev;
    return S_OK;
}
Beispiel #27
0
int scpool_MGR(int TCBno,int poolno,T_Connect **connp,int (*call_back)(T_Connect *,T_NetHead *))
{
int ret;
pthread_t *tp;

	if(TCBno<0) {
		ShowLog(1,"%s:bad TCB no!",__FUNCTION__);
		return -1;
	}
	ShowLog(3,"%s:get pool[%d],TCB_no=%d,tid:%lX,USEC=%llu",__FUNCTION__,
		poolno,TCBno,pthread_self(),now_usec());
	*connp=get_SC_connect(poolno,0);
	if(*connp == (T_Connect *)-1) {
		*connp=NULL;
		return -1;
	}
	if(*connp) {
		if((*connp)->only_do == (sdbcfunc)1) {
			(*connp)->only_do=call_back;
			TCB_add(NULL,TCBno); //加入到主任务队列
//ShowLog(5,"%s:tid=%lX,only_do=1,TCB_no=%d",__FUNCTION__,pthread_self(),TCBno);
			return 1;
		}
		return 0;
	}
	set_callback(TCBno,call_back,120);
	if(wpool.poolnum<=0) {
		ret=get_scpoolnum();
		pthread_mutex_lock(&wpool.mut);
		wpool_init(&wpool,ret);
		pthread_mutex_unlock(&wpool.mut);
	}
	if(poolno < 0 || poolno >= wpool.poolnum) {
		ShowLog(1,"%s:TCB_no=%d bad poolno %d,poolnum=%d",__FUNCTION__,
			TCBno,poolno,wpool.poolnum);
		return -1;
	}
	pthread_mutex_lock(&wpool.QP[poolno].mut);
	TCB_add(&wpool.QP[poolno].queue,TCBno);
	tp=&wpool.QP[poolno].tid;
	if(*tp==0) *tp=TCBno+1;
	pthread_mutex_unlock(&wpool.QP[poolno].mut);
//new thread
	if(*tp==(pthread_t)(TCBno+1)) {
		pthread_create(&wpool.QP[poolno].tid,&wpool.attr,wait_sc,(void *)(long)poolno);
	} else pthread_cond_signal(&wpool.QP[poolno].cond); //唤醒工作线程
	return 1;
}
Beispiel #28
0
EXPORT CLASS *init(CALLBACKS *fntable, MODULE *module, int argc, char *argv[])
{
	if (set_callback(fntable)==NULL)
	{
		errno = EINVAL;
		return NULL;
	}

	new g_assert(module);
	new double_assert(module);
	new complex_assert(module);
	new enum_assert(module);

	/* always return the first class registered */
	return g_assert::oclass;
}
void
LocalProperty::Set(void)
{
	if (address == NULL) {
		client->ORState(STATUS_MALFORMED_COMMAND);
		return;
	}
	int new_var;
	if (set_callback != NULL) {
		client->ReadInt(&new_var);
		set_callback(new_var);
	} else if (var != NULL) {
		client->ReadInt(var);
	} else {
		/* Shouldn't get here (tm) */
	}
}
Beispiel #30
0
EXPORT CLASS *init(CALLBACKS *fntable, MODULE *module, int argc, char *argv[])
{
	if (set_callback(fntable)==NULL)
	{
		errno = EINVAL;
		return NULL;
	}

	new simple(module);
	new particle_swarm_optimization(module);

	/*** DO NOT EDIT NEXT LINE ***/
	//NEWCLASS

	/* always return the first class registered */
	return simple::oclass;
}