summaryrefslogtreecommitdiff
path: root/src/task_proto.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/task_proto.cc')
-rw-r--r--src/task_proto.cc52
1 files changed, 34 insertions, 18 deletions
diff --git a/src/task_proto.cc b/src/task_proto.cc
index 10cfe35..8516e1c 100644
--- a/src/task_proto.cc
+++ b/src/task_proto.cc
@@ -94,15 +94,17 @@ int callback_lws_task(struct libwebsocket_context * context,
pss->wsi = wsi;
// send all current tasks
- char buf[32];
+// char buf[512];
std::string init_str;
TaskList::iterator it;
for(it = tasklist.begin(); it != tasklist.end(); it++) {
task_t &t = *it;
- sprintf(buf, "add %d %s %s %d %d;",
- t.id, t.title.c_str(), t.desc.c_str(), t.x, t.y);
- init_str.append(buf);
+// sprintf(buf, "add %d %s %s %d %d;",
+// t.id, t.title.c_str(), t.desc.c_str(), t.x, t.y);
+
+// init_str.append(task_cmd(t));
+ init_str = msg_tostring(create_msg(cmd::add, t));
}
std::string msg;
@@ -169,8 +171,10 @@ int callback_lws_task(struct libwebsocket_context * context,
}
*/
- char buf[1024];
- size_t buf_len = 0;
+// char buf[1024];
+// size_t buf_len = 0;
+
+ std::string buf_str;
MsgVector msglist = parse_msg(data);
MsgVector::iterator it_msg;
@@ -178,28 +182,34 @@ int callback_lws_task(struct libwebsocket_context * context,
msg_t m = *it_msg;
switch(m.cmd) {
case cmd::add: {
- printf("Handling add cmd:\n");
+ printf("Handling add cmd\n");
task_t t = create_task(m.add.title, m.add.desc,
m.add.x, m.add.y);
tasklist.push_back(t);
- buf_len = sprintf(buf, "add %d %s %s %d %d;",
- t.id, t.title.c_str(), t.desc.c_str(),
- t.x, t.y);
+// buf_len = sprintf(buf, "add %d %s %s %d %d;",
+// t.id, t.title.c_str(), t.desc.c_str(),
+// t.x, t.y);
+
+// msg_t tm = create_msg(cmd::add, t);
+// std::string str = msg_tostring(tm);
+ buf_str = msg_tostring(create_msg(cmd::add, t));
- printf("Adding task: %s\n", buf);
+ printf("Adding task: %s\n", buf_str.c_str());
break;
}
case cmd::del: {
printf("Delete\n");
printf("Deleting task with id %d\n", m.del.id);
+ task_t del_task;
bool id_found = false;
TaskList::iterator it;
for(it = tasklist.begin(); it != tasklist.end(); it++) {
task_t &t = *it;
if(t.id == m.del.id) {
id_found = true;
+ del_task = t;
tasklist.erase(it);
break;
}
@@ -208,9 +218,11 @@ int callback_lws_task(struct libwebsocket_context * context,
if(!id_found) {
printf("\t!!!Could not locate task with id %d\n", m.del.id);
}
-
- buf_len = sprintf(buf, "del %d;", m.del.id);
- printf("Deleting task: %s\n", buf);
+ else {
+ // buf_len = sprintf(buf, "del %d;", m.del.id);
+ buf_str = msg_tostring(create_msg(cmd::del, del_task));
+ printf("Deleting task: %s\n", buf_str.c_str());
+ }
break;
}
case cmd::move: {
@@ -222,13 +234,15 @@ int callback_lws_task(struct libwebsocket_context * context,
TaskList::iterator it;
int x = m.move.x / 300 * 300;
-
+
+ task_t moved_task;
for(it = tasklist.begin(); it != tasklist.end(); it++) {
task_t &t = *it;
if(t.id == m.move.id) {
id_found = true;
t.x = x;
t.y = m.move.y;
+ moved_task = t;
break;
}
}
@@ -237,8 +251,9 @@ int callback_lws_task(struct libwebsocket_context * context,
printf("\t!!!Could not locate task with id %d\n", m.move.id);
}
- buf_len = sprintf(buf, "move %d %d %d;", m.move.id, x, m.move.y);
- printf("Moving task: %s\n", buf);
+// buf_len = sprintf(buf, "move %d %d %d;", m.move.id, x, m.move.y);
+ buf_str = msg_tostring(create_msg(cmd::move, moved_task));
+ printf("Moving task: %s\n", buf_str.c_str());
break;
}
case cmd::update:
@@ -265,7 +280,8 @@ int callback_lws_task(struct libwebsocket_context * context,
*/
std::string msg;
msg.append((size_t)LWS_SEND_BUFFER_PRE_PADDING, ' ');
- msg.append(buf, buf_len);
+// msg.append(buf, buf_len);
+ msg.append(buf_str);
msg.append((size_t)LWS_SEND_BUFFER_POST_PADDING, ' ');
std::map<struct libwebsocket *, std::queue<std::string> >::iterator it = msgqueue.begin();