Exemplo n.º 1
0
Arquivo: main.c Projeto: bq/qeo-core
int main(int argc, const char **argv)
{
    int done = 0;
    qeo_factory_t *qeo;
    /* R/W for chat participants */
    qeo_state_change_reader_t *part_change_reader;
    /* R/W for chat messages */
    qeo_event_writer_t *msg_writer;
    qeo_event_reader_t *msg_reader;

    /* local variables for storing the message before sending */
    char buf[128];
    org_qeo_sample_simplechat_ChatMessage_t chat_msg = { .message = buf };

    /* initialize */
    qeo = qeo_factory_create();
    if (qeo != NULL){
        /* initialize the state R/W */
        _part_writer = qeo_factory_create_state_writer(qeo, org_qeo_sample_simplechat_ChatParticipant_type, NULL, 0);
        _part_reader = qeo_factory_create_state_reader(qeo, org_qeo_sample_simplechat_ChatParticipant_type, NULL, 0);
        part_change_reader = qeo_factory_create_state_change_reader(qeo, org_qeo_sample_simplechat_ChatParticipant_type,
                                                                    &_part_listener, 0);
        /* initialize the message R/W */
        msg_writer = qeo_factory_create_event_writer(qeo, org_qeo_sample_simplechat_ChatMessage_type, NULL, 0);
        msg_reader = qeo_factory_create_event_reader(qeo, org_qeo_sample_simplechat_ChatMessage_type,
                                                     &_msg_listener, 0);

        /* set up some defaults */
        update_participant(NULL, ORG_QEO_SAMPLE_SIMPLECHAT_CHATSTATE_AVAILABLE);

        /* start conversing */
        printf("New chat session opened.  Type '/help' for commands.\n");
        printf("You can now start chatting...\n");
        while (!done) {
            if(fgets(buf, sizeof(buf), stdin) != NULL) {
                chomp(buf);
                if ('/' == buf[0]) {
                    handle_command(&buf[1], &done);
                }
                else {
                    chat_msg.from = _me.name;
                    qeo_event_writer_write(msg_writer, &chat_msg);
                }
            }
        }

        /* clean up */
        qeo_event_reader_close(msg_reader);
        qeo_event_writer_close(msg_writer);
        qeo_state_change_reader_close(part_change_reader);
        qeo_state_reader_close(_part_reader);
        qeo_state_writer_close(_part_writer);
        qeo_factory_close(qeo);
        free(_me.name);
    }
    return 0;
}
Exemplo n.º 2
0
Arquivo: main.c Projeto: bq/qeo-core
int main(int argc, const char **argv)
{
    qeo_factory_t *qeo;
    qeo_event_writer_t *msg_writer;
    qeo_event_reader_t *msg_reader;
    int done = 0;

    /* local variables for storing the message before sending */
    char buf[128] = "";
    org_qeo_sample_simplechat_ChatMessage_t chat_msg = { .message = buf };

    /* initialize */
    qeo = qeo_factory_create();
    if (qeo != NULL){
        msg_writer = qeo_factory_create_event_writer(qeo, org_qeo_sample_simplechat_ChatMessage_type, &_wl, 0);
        msg_reader = qeo_factory_create_event_reader(qeo, org_qeo_sample_simplechat_ChatMessage_type, &_listener, 0);

        /* set up some defaults */
        chat_msg.from = default_user();

        /* start conversing */
        printf("New chat session opened.  Type '/help' for commands.\n");
        printf("You can now start chatting...\n");
        while (!done) {
            fgets(buf, sizeof(buf), stdin);
            chomp(buf);
            if ('/' == buf[0]) {
                handle_command(&buf[1], &chat_msg, &done, msg_writer, msg_reader);
            }
            else {
                qeo_event_writer_write(msg_writer, &chat_msg);
            }
        }

        /* clean up */
        free(chat_msg.from);
        qeo_event_reader_close(msg_reader);
        qeo_event_writer_close(msg_writer);
        qeo_factory_close(qeo);
    }
    return 0;
}
Exemplo n.º 3
0
void QeoMessagingHelper::StartListening()
{
	if (!m_Listening)
	{
		m_qeoFactory = qeo_factory_create();
		if (m_qeoFactory != NULL)
		{
			static qeo_event_reader_listener_t _listener = { &QeoMessagingHelper::onMessageStatic, // on_data
				0, // on_no_more_data
				0 // on_policy_update
			};

			m_msg_writer = qeo_factory_create_event_writer(m_qeoFactory, org_qeo_qeomessaging_Message_type, NULL, 0);
			m_msg_reader = qeo_factory_create_event_reader(m_qeoFactory, org_qeo_qeomessaging_Message_type, &_listener, (uintptr_t)this);
			m_Listening = true;

			printf("Qeo Initialized.\n");
		}
		//QMetaObject::invokeMethod(this, "doWork", Qt::QueuedConnection);
	}
}