add service localcast

This commit is contained in:
云风
2012-10-12 14:07:33 +08:00
parent 57c3eb29b2
commit 1d59342e7b

View File

@@ -0,0 +1,29 @@
#include "skynet.h"
#include "skynet_handle.h"
#include "skynet_multicast.h"
#include "localcast.h"
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
static int
_maincb(struct skynet_context * context, void * ud, int type, int session, uint32_t source, const void * msg, size_t sz) {
const struct localcast *lc = msg;
size_t s = lc->sz | type << HANDLE_REMOTE_SHIFT;
struct skynet_multicast_message * mc = skynet_multicast_create(lc->msg, s, source);
skynet_multicast_cast(context, mc, lc->group, lc->n);
free((void *)lc->group);
return 0;
}
int
localcast_init(void * ud, struct skynet_context *ctx, const char * args) {
skynet_callback(ctx, ud, _maincb);
skynet_command(ctx, "REG", ".cast");
return 0;
}