コード例 #1
0
ファイル: NodeView.cpp プロジェクト: EQ4/lad
NodeView::NodeView(Gtk::Window*                        window,
                   Ganv::Canvas&                       canvas,
                   SPtr<machina::client::ClientObject> node,
                   double                              x,
                   double                              y)
	: Ganv::Circle(canvas, "", x, y)
	, _window(window)
	, _node(node)
	, _default_border_color(get_border_color())
	, _default_fill_color(get_fill_color())
{
	set_fit_label(false);
	set_radius_ems(1.25);

	signal_event().connect(sigc::mem_fun(this, &NodeView::on_event));

	MachinaCanvas* mcanvas = dynamic_cast<MachinaCanvas*>(&canvas);
	if (is(mcanvas->app()->forge(), URIs::instance().machina_initial)) {
		set_border_width(4.0);
		set_is_source(true);
		const uint8_t alpha[] = { 0xCE, 0xB1, 0 };
		set_label((const char*)alpha);
	}

	node->signal_property.connect(sigc::mem_fun(this, &NodeView::on_property));

	for (const auto& p : node->properties()) {
		on_property(p.first, p.second);
	}
}
コード例 #2
0
void NanostackSocket::event_connect_done(socket_callback_t *sock_cb)
{
    nanostack_assert_locked();
    MBED_ASSERT(SOCKET_MODE_CONNECTING == mode);

    set_connected();
    signal_event();
}
コード例 #3
0
void NanostackSocket::event_data(socket_callback_t *sock_cb)
{
    nanostack_assert_locked();
    MBED_ASSERT((SOCKET_MODE_STREAM == mode) ||
                (SOCKET_MODE_DATAGRAM == mode));

    signal_event();
}
コード例 #4
0
void NanostackSocket::event_tx_done(socket_callback_t *sock_cb)
{
    nanostack_assert_locked();
    MBED_ASSERT((SOCKET_MODE_STREAM == mode) ||
                (SOCKET_MODE_DATAGRAM == mode));

    if (mode == SOCKET_MODE_DATAGRAM) {
        tr_debug("SOCKET_TX_DONE, %d bytes sent", sock_cb->d_len);
    } else if (mode == SOCKET_MODE_STREAM) {
        tr_debug("SOCKET_TX_DONE, %d bytes remaining", sock_cb->d_len);
    }

    signal_event();
}
コード例 #5
0
ファイル: vc_pool.c プロジェクト: kevleyski/challenge
/* ----------------------------------------------------------------------
 * decrease the refcount of a pool object.  if the refcount hits 0,
 * the object is treated as being returned to the pool as free; update
 * pool struct accordingly (and potentially wakeup any sleepers)
 *
 * return the new refcount
 * -------------------------------------------------------------------- */
int
vc_pool_release( VC_POOL_OBJECT_T *object )
{
   vcos_assert( object->magic == OBJECT_MAGIC );
   lock_pool( object->pool );
   int refcount = --object->refcount;
   pool_object_logging( __FUNCTION__, object );
   if ( refcount == 0 ) {
      free_object( object );
      signal_event( object->pool );
   }
   unlock_pool( object->pool );
   return refcount;
}
コード例 #6
0
ファイル: main.c プロジェクト: BreezeWu/okl4_3.0
void
event_async_handler(L4_Word_t notify){
    int i;
    if (notify & (1<<EV_WOMBAT_SWITCH)){
        handle_wombat_switch();
    }
    for (i = 0; i < MAX_EVENTS; i++){
        if (notify & (1<<i)){
            DEBUG_TRACE(2, 
                        "SERVR: will signal for %d\n",
                        i);
            signal_event(i);
        }
    }
}
コード例 #7
0
void NanostackSocket::close()
{
    nanostack_assert_locked();
    MBED_ASSERT(mode != SOCKET_MODE_CLOSED);

    if (socket_id >= 0) {
        int ret = socket_close(socket_id, (addr_valid ? &ns_address : NULL));
        MBED_ASSERT(0 == ret);
    } else {
        MBED_ASSERT(SOCKET_MODE_UNOPENED == mode);
    }

    data_free_all();

    mode = SOCKET_MODE_CLOSED;
    signal_event();
}
コード例 #8
0
void NanostackSocket::close()
{
    nanostack_assert_locked();
    MBED_ASSERT(mode != SOCKET_MODE_CLOSED);

    if (socket_id >= 0) {
        nsapi_error_t ret = socket_close(socket_id);
        MBED_ASSERT(0 == ret);
        MBED_ASSERT(socket_tbl[socket_id] == this);
        socket_tbl[socket_id] = NULL;
        socket_id = -1;
    } else {
        MBED_ASSERT(SOCKET_MODE_UNOPENED == mode);
    }

    mode = SOCKET_MODE_CLOSED;
    signal_event();
}
コード例 #9
0
bool Gui::init(Window *window) {
	this->window = window;
	// Add mouse click handling.
	add_events(Gdk::BUTTON_PRESS_MASK);
	signal_event().connect(sigc::mem_fun(*this, &Gui::handleEvent));
	// Load sprite sheet form file.
	try {
		spritesheet = Gdk::Pixbuf::create_from_file(SpritesheetFilename);
	} catch (const Glib::FileError &e) {
		std::cerr << "Error loading image: " << e.what() << std::endl;
		return false;
	} catch (const Gdk::PixbufError &e) {
		std::cerr << "Error loading image: " << e.what() << std::endl;
		return false;
	}
	updateTurn();
	return true;
}
コード例 #10
0
void NanostackSocket::data_attach(NanostackBuffer *data_buf)
{
    nanostack_assert_locked();
    MBED_ASSERT((SOCKET_MODE_DATAGRAM == mode) ||
                (SOCKET_MODE_STREAM == mode));

    // Add to linked list
    tr_debug("data_attach socket=%p", this);
    if (NULL == rxBufChain) {
        rxBufChain = data_buf;
    } else {
        NanostackBuffer *buf_tmp = rxBufChain;
        while (NULL != buf_tmp->next) {
            buf_tmp = buf_tmp->next;
        }
        buf_tmp->next = data_buf;
    }
    signal_event();
}
コード例 #11
0
void NanostackSocket::event_incoming_connection(socket_callback_t *sock_cb)
{
    nanostack_assert_locked();
    MBED_ASSERT(mode == SOCKET_MODE_LISTENING);
    signal_event();
}
コード例 #12
0
/** @brief  This function handles External line0 interrupt request from KEY
 *
 * It will be called whenever the button is pressed
 * */
extern "C" void
EXTI0_IRQHandler (void)
{
	EXTI_ClearITPendingBit(USER_BUTTON_EXTI_LINE);
	signal_event(START_STOP);
}