Пример #1
0
static void getNLastMsges__fiveMessages__messagesAdded(void **state)
{
	chat_t *testChat = chat_new("KR_1 chat");
        list_t *usersList = chat_getUsersObjects(testChat);
	chat_addUser(testChat, "Maxim", "Gonchar");
	msg_t *tempMessage1 = msg_new("Hello1", "World");
	msg_t *tempMessage2 = msg_new("Hello2", "World");
	msg_t *tempMessage3 = msg_new("Hello3", "World");
	msg_t *tempMessage4 = msg_new("Hello4", "World");
	msg_t *tempMessage5 = msg_new("Hell5", "World");
	
	// This task isn`t done yet. Agree with -marks.
}
Пример #2
0
int main()
{
    // Change console appearance.
    SetConsoleTitle("Chat - Maxim Gonchar Var8");
    SMALL_RECT windowSize = { 0, 0, 79, 49 };
    SetConsoleWindowInfo(GetStdHandle(STD_OUTPUT_HANDLE), TRUE, &windowSize);

    // Testing module.
    chat_t *testChat = chat_new("KR_1 chat");
    list_t *usersList = chat_getUsersObjects(testChat);

    chat_printInfo(testChat);
    puts("");

    chat_addUser(testChat, "Maxim", "Gonchar");
    chat_addUser(testChat, "Sergei", "Romaniyk");
    chat_addUser(testChat, "Fedya", "Andrienko");

    printf("Users list:\n%s\n", chat_getUsersList(testChat));
    puts("");

    printf("This guy will send messages now: \n");
    user_t *tempSender = (user_t *) list_getNodeValueByIndex(usersList, 0);
    user_printInfo(tempSender);
    msg_t *tempMessage = msg_new("Hello", "World");
    user_sendMessageToAll(testChat, tempSender, tempMessage, testCallback);

    // Free allocated memory.
    chat_delete(testChat);
    return 0;
}
Пример #3
0
static void object_space_init(void)
{
    global_object_space = malloc(sizeof(*global_object_space));

    // Message names required by the runtime
    acute_forward_msg = msg_new("forward", list_new(), NULL);
    acute_activate_msg = msg_new("activate", list_new(), NULL);

    // Chicken-egg problem commences below.
    obj_t* lobby = obj_new();
	global_object_space->lobby = lobby;
    obj_t* object = obj_new();
    obj_register_slot(lobby, "parent", object);
    obj_register_slot(object, "parent", lobby);
	obj_register_slot(lobby, "test", str_new("Test string", 12));
    object_space_register_proto(global_object_space, "Object", object);
}
Пример #4
0
void MsgStorage::invoke(const string& method, 
			const AmArg& args, AmArg& ret) {
  if(method == "msg_new"){
    MessageDataFile* f = 
      dynamic_cast<MessageDataFile*>(args.get(3).asObject());
    if (NULL == f) {
      throw(string("message data is not a file ptr."));
    }
    ret.push(msg_new(args.get(0).asCStr(),
		     args.get(1).asCStr(),
		     args.get(2).asCStr(),
		     f->fp));
  } else if(method == "msg_get"){
    msg_get(args.get(0).asCStr(),
	    args.get(1).asCStr(),
	    args.get(2).asCStr(),
	    ret);
  } else if(method == "msg_markread"){
    ret.push(msg_markread(args.get(0).asCStr(),
			  args.get(1).asCStr(),
			  args.get(2).asCStr()));
  } else if(method == "msg_delete"){
    ret.push(msg_delete(args.get(0).asCStr(),
			args.get(1).asCStr(),
			args.get(2).asCStr()));
  } else if(method == "userdir_open"){
    userdir_open(args.get(0).asCStr(),	      
      args.get(1).asCStr(),
      ret);
  } else if(method == "userdir_close"){
    ret.push(userdir_close(args.get(0).asCStr(),
      args.get(1).asCStr()));
  } else if(method == "userdir_getcount"){
    userdir_getcount(args.get(0).asCStr(),
      args.get(1).asCStr(),
      ret);
  } else if(method == "events_subscribe"){
    events_subscribe(args.get(0).asDynInv(),
		     args.get(1).asCStr());
  } else if(method == "events_unsubscribe"){
    events_unsubscribe(args.get(0).asDynInv());
  } else if(method == "_list"){
    ret.push("msg_new");
    ret.push("msg_get");
    ret.push("msg_markread");
    ret.push("msg_delete");
    
    ret.push("userdir_open");
    ret.push("userdir_close");
    ret.push("userdir_getcount");

    ret.push("events_subscribe");
    ret.push("events_unsubscribe");
  }
  else
    throw AmDynInvoke::NotImplemented(method); 
}
Пример #5
0
Файл: mu-msg.c Проект: bonega/mu
MuMsg*
mu_msg_new_from_file (const char *path, const char *mdir, GError **err)
{
	MuMsg *self;
	MuMsgFile *msgfile;

	g_return_val_if_fail (path, NULL);

	if (G_UNLIKELY(!_gmime_initialized)) {
		gmime_init ();
		atexit (gmime_uninit);
	}

	msgfile = mu_msg_file_new (path, mdir, err);
	if (!msgfile)
		return NULL;

	self = msg_new ();
	self->_file = msgfile;

	return self;
}
Пример #6
0
Файл: mu-msg.c Проект: bonega/mu
MuMsg*
mu_msg_new_from_doc (XapianDocument *doc, GError **err)
{
	MuMsg *self;
	MuMsgDoc *msgdoc;

	g_return_val_if_fail (doc, NULL);

	if (G_UNLIKELY(!_gmime_initialized)) {
		gmime_init ();
		atexit (gmime_uninit);
	}

	msgdoc = mu_msg_doc_new (doc, err);
	if (!msgdoc)
		return NULL;

	self = msg_new ();
	self->_doc = msgdoc;

	return self;
}
Пример #7
0
int server_start(server_t *s)
{
	if (!getuid())
	{
		uid_t uid = 0;
		gid_t gid = 0;

		run_user(s, &uid, &gid);
		run_group(s, &gid);

		// runtime data directory
		if (run_mkdir(JOURNAL_RUNDIR) < 0)
		{
			log_error("Failed to create '%s' directory: %m", JOURNAL_RUNDIR);
			return -1;
		}

		if (chown(JOURNAL_RUNDIR, uid, gid) < 0)
		{
			log_error("Unable to change owner “%s” directory to %s(%s): %m", JOURNAL_RUNDIR, s->runuser, s->rungroup);
			return -1;
		}

		syslog_run(s);

		// variable data directory
		if (run_mkdir(JOURNAL_LOGDIR) < 0)
			log_warning("Failed to create '%s' directory: %m", JOURNAL_LOGDIR);
		else
		{
			if (errno != EEXIST && chown(JOURNAL_LOGDIR, uid, gid) < 0)
				log_warning("Unable to change owner “%s” directory to %s(%s): %m", JOURNAL_LOGDIR, s->runuser, s->rungroup);
		}

		// change user and group of process
		if (gid > 0 && run_chgroup(gid) < 0)
		{
			log_error("Unable change group to “%s”: %m", s->rungroup);
			return -1;
		}

		if (uid > 0 && run_chuser(uid) < 0)
		{
			log_error("Unable change user to “%s”: %m", s->runuser);
			return -1;
		}
	}

	if (epollfd_create(&s->epoll) < 0)
	{
		log_error("Failed to create event loop: %m");
		return -1;
	}

	s->msg = msg_new(LINE_MAX);
	if (!s->msg)
		return -1;

	seqnum_load(JOURNAL_RUNDIR "/kernel-seqnum", &s->kseqnum);

	if (hostname_open(s) < 0)
		return -1;

	boot_get_id(&s->boot_id);

	return 0;
}
Пример #8
0
void test_setup() {
	mt = msg_new();
}