您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ zmsg_size函数代码示例

51自学网 2021-06-03 12:01:52
  C++
这篇教程C++ zmsg_size函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中zmsg_size函数的典型用法代码示例。如果您正苦于以下问题:C++ zmsg_size函数的具体用法?C++ zmsg_size怎么用?C++ zmsg_size使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了zmsg_size函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: s_agent_handle_data

static ints_agent_handle_data (agent_t *self){    //  First frame is client address (hashkey)    //  If caller sends unknown client address, we discard the message    //  For testing, we'll abort in this case, since it cannot happen    //  The assert disappears when we start to timeout clients...    zmsg_t *request = zmsg_recv (self->data);    char *hashkey = zmsg_popstr (request);    client_t *client = (client_t *) zhash_lookup (self->clients, hashkey);    free (hashkey);    if (client) {        //  Encrypt and send all frames of request        //  Each frame is a full ZMQ message with identity frame        while (zmsg_size (request)) {            zframe_t *cleartext = zmsg_pop (request);            if (zmsg_size (request))                zframe_set_more (cleartext, 1);            zframe_t *encrypted = curve_codec_encode (client->codec, &cleartext);            if (encrypted) {                zframe_send (&client->address, self->router, ZFRAME_MORE + ZFRAME_REUSE);                zframe_send (&encrypted, self->router, 0);            }            else                client_set_exception (client);        }    }    zmsg_destroy (&request);    return 0;}
开发者ID:GA-zz,项目名称:libcurve,代码行数:30,


示例2: get_request

int get_request(zsock_t *sock, struct request *req) {    zmsg_t *msg;    int size;    char *str;    int Y, m, d, H, M, S;    struct tm tm;    msg = zmsg_recv(sock);    size = zmsg_size(msg);    if (size != 2) {        // something's wrong        zmsg_destroy(&msg);        return -1;    }    str = zmsg_popstr(msg);    req->ip = inet_addr(str);    str = zmsg_popstr(msg);    sscanf(str, "%04d%02d%02d%02d%02d%02d", &Y, &m, &d, &H, &M, &S);    tm.tm_year = Y - 1900;    tm.tm_mon = m;    tm.tm_mday = d;    tm.tm_hour = H;    tm.tm_min = M;    tm.tm_sec = S;    req->timestamp = mktime(&tm);    zmsg_destroy(&msg);    return 0;}
开发者ID:hugolu,项目名称:learn-zmq,代码行数:31,


示例3: s_broker_worker_msg

static void s_broker_worker_msg(broker_t *self, zframe_t *sender, zmsg_t *msg){    assert (zmsg_size(msg) >= 1);     //  At least, command    zframe_t *command = zmsg_pop(msg);    char *id_string = zframe_strhex(sender);    int worker_ready = (zhash_lookup(self->workers, id_string) != NULL);    free (id_string);	    worker_t *worker = s_worker_require(self, sender);    if (zframe_streq(command, MDPW_READY)) {        if (worker_ready) {               //  Not first command in session            s_worker_delete(worker, 1);			// Додумать, по идеи синоним сердцебиения		} else {			if (zframe_size(sender) >= 4 &&  memcmp(zframe_data (sender), "mmi.", 4) == 0) {				s_worker_delete(worker, 1);				// Додумать, по идеи синоним сердцебиения			} else {				//  Attach worker to service and mark as idle				zframe_t *service_frame = zmsg_pop(msg);				worker->service = s_service_require(self, service_frame);				worker->service->workers++;				s_worker_waiting(worker);				zframe_destroy(&service_frame);			}		}    } else if (zframe_streq(command, MDPW_REPLY)) {        if (worker_ready) {            //  Remove and save client return envelope and insert the            //  protocol header and service name, then rewrap envelope.            zframe_t *client = zmsg_unwrap(msg);            zmsg_pushstr(msg, worker->service->name);            zmsg_pushstr(msg, MDPC_CLIENT);            zmsg_wrap(msg, client);            zmsg_send(&msg, self->socket);            s_worker_waiting(worker);        } else {			// Просто обрыв связи между воркером и брокером			// синоним сердцебиения            s_worker_delete(worker, 1);		}    } else if (zframe_streq(command, MDPW_HEARTBEAT)) {        if (worker_ready) {            worker->expiry = zclock_time () + HEARTBEAT_EXPIRY;		} else {			// Просто обрыв связи между воркером и брокером			// синоним сердцебиения            s_worker_delete(worker, 1);		}    } else if (zframe_streq (command, MDPW_DISCONNECT)) {        s_worker_delete(worker, 0);	} else {        zclock_log ("E: invalid input message");        zmsg_dump (msg);    }    free (command);    zmsg_destroy (&msg);}
开发者ID:tnako,项目名称:DP,代码行数:60,


示例4: zsock_wait

intzsock_wait (void *self){    assert (self);    //  A signal is a message containing one frame with our 8-byte magic     //  value. If we get anything else, we discard it and continue to look    //  for the signal message    while (true) {        zmsg_t *msg = zmsg_recv (self);        if (!msg)            return -1;        if (zmsg_size (msg) == 1        &&  zmsg_content_size (msg) == 8) {            zframe_t *frame = zmsg_first (msg);            int64_t signal_value = *((int64_t *) zframe_data (frame));            if ((signal_value & 0xFFFFFFFFFFFFFF00L) == 0x7766554433221100L) {                zmsg_destroy (&msg);                return signal_value & 255;            }        }        zmsg_destroy (&msg);    }    return -1;}
开发者ID:HunterChen,项目名称:czmq,代码行数:25,


示例5: s_broker_client_msg

static voids_broker_client_msg(broker_t *self, zframe_t *sender, zmsg_t *msg){	assert(zmsg_size(msg) >= 2);	zframe_t *service_frame = zmsg_pop(msg);	service_t *service = s_service_require(self, service_frame);	zmsg_wrap(msg, zframe_dup(sender));	if (zframe_size(service_frame) >= 4 && memcmp(zframe_data(service_frame), "mmi.", 4) == 0){		char *return_code;		if (zframe_streq(service_frame, "mmi.service")){			char *name = zframe_strdup(zmsg_last(msg));			service_t *service = (service_t *)zhash_lookup(self->services, name);			return_code = service && service->workers ? "200" : "404";			free(name);		}		else			return_code = "501";		zframe_reset(zmsg_last(msg), return_code, strlen(return_code));		zframe_t *client = zmsg_unwrap(msg);		zmsg_prepend(msg, &service_frame);		zmsg_pushstr(msg, MDPC_CLIENT);		zmsg_wrap(msg, client);		zmsg_send(&msg, self->socket);	}	else 		s_service_dispatch(service, msg);	zframe_destroy(&service_frame);}
开发者ID:rryqszq4,项目名称:sweet-clib,代码行数:33,


示例6: s_engine_handle_request

static voids_engine_handle_request (engine_t *self, zmsg_t *request, zframe_t *reply_to){    assert (zmsg_size (request) >= 3);    zframe_t *operation = zmsg_pop (request);    zframe_t *price     = zmsg_pop (request);    zframe_t *volume    = zmsg_pop (request);    if (zframe_streq (operation, "SELL"))        s_engine_handle_sell_request (self, price, volume, reply_to);    else    if (zframe_streq (operation, "BUY"))        s_engine_handle_buy_request (self, price, volume, reply_to);    else {        zclock_log ("E: invalid message: ");        zmsg_dump (request);    }    zframe_destroy (&operation);    zframe_destroy (&price);    zframe_destroy (&volume);    zmsg_destroy (&request);}
开发者ID:lerwys,项目名称:majordomo,代码行数:25,


示例7: zmsg_load

zmsg_t *zmsg_load (zmsg_t *self, FILE *file){    assert (file);    if (!self)        self = zmsg_new ();    if (!self)        return NULL;    while (true) {        size_t frame_size;        size_t rc = fread (&frame_size, sizeof (frame_size), 1, file);        if (rc == 1) {            zframe_t *frame = zframe_new (NULL, frame_size);            rc = fread (zframe_data (frame), frame_size, 1, file);            if (frame_size > 0 && rc != 1) {                zframe_destroy (&frame);                break;          //  Unable to read properly, quit            }            zmsg_append (self, &frame);        }        else            break;              //  Unable to read properly, quit    }    if (!zmsg_size (self)) {        zmsg_destroy (&self);        self = NULL;    }    return self;}
开发者ID:HunterChen,项目名称:czmq,代码行数:30,


示例8: pthread_self

/** *  * @param foundId * @param foundReply * @return  */bool BoomStick::ReadFromReadySocket(std::string& foundId, std::string& foundReply) {   if (0 == mUtilizedThread) {      mUtilizedThread = pthread_self();   } else {      CHECK(pthread_self() == mUtilizedThread);   }   if (!mChamber) {      LOG(WARNING) << "Invalid socket";      return false;   }   bool success = false;   zmsg_t* msg = zmsg_recv(mChamber);   if (!msg) {      foundReply = zmq_strerror(zmq_errno());   } else if (zmsg_size(msg) == 2) {      char* msgChar;      msgChar = zmsg_popstr(msg);      foundId = msgChar;      free(msgChar);      msgChar = zmsg_popstr(msg);      foundReply = msgChar;      free(msgChar);      success = true;   } else {      foundReply = "Malformed reply, expecting 2 parts";   }   if (msg) {      zmsg_destroy(&msg);   }   return success;}
开发者ID:KjellKod,项目名称:QueueNado,代码行数:39,


示例9: s_worker_process

static voids_worker_process (broker_t *self, zframe_t *sender, zmsg_t *msg){    assert (zmsg_size (msg) >= 1);     //  At least, command    zframe_t *command = zmsg_pop (msg);    char *identity = zframe_strhex (sender);    int worker_ready = (zhash_lookup (self->workers, identity) != NULL);    free (identity);    worker_t *worker = s_worker_require (self, sender);    if (zframe_streq (command, MDPW_READY)) {        if (worker_ready)               //  Not first command in session            s_worker_delete (self, worker, 1);        else        if (zframe_size (sender) >= 4  //  Reserved service name        &&  memcmp (zframe_data (sender), "mmi.", 4) == 0)            s_worker_delete (self, worker, 1);        else {            //  Attach worker to service and mark as idle            zframe_t *service_frame = zmsg_pop (msg);            worker->service = s_service_require (self, service_frame);            worker->service->workers++;            s_worker_waiting (self, worker);            zframe_destroy (&service_frame);        }    }    else    if (zframe_streq (command, MDPW_REPLY)) {        if (worker_ready) {            //  Remove & save client return envelope and insert the            //  protocol header and service name, then rewrap envelope.            zframe_t *client = zmsg_unwrap (msg);            zmsg_pushstr (msg, worker->service->name);            zmsg_pushstr (msg, MDPC_CLIENT);            zmsg_wrap (msg, client);            zmsg_send (&msg, self->socket);            s_worker_waiting (self, worker);        }        else            s_worker_delete (self, worker, 1);    }    else    if (zframe_streq (command, MDPW_HEARTBEAT)) {        if (worker_ready)            worker->expiry = zclock_time () + HEARTBEAT_EXPIRY;        else            s_worker_delete (self, worker, 1);    }    else    if (zframe_streq (command, MDPW_DISCONNECT))        s_worker_delete (self, worker, 0);    else {        zclock_log ("E: invalid input message");        zmsg_dump (msg);    }    free (command);    zmsg_destroy (&msg);}
开发者ID:Alex-Benveniste,项目名称:zguide,代码行数:59,


示例10: curve_server_send

intcurve_server_send (curve_server_t *self, zmsg_t **msg_p){    assert (self);    assert (zmsg_size (*msg_p) > 0);    zmsg_send (msg_p, self->data);    return 0;}
开发者ID:GA-zz,项目名称:libcurve,代码行数:8,


示例11: s_agent_handle_data

static ints_agent_handle_data (agent_t *self){    //  Encrypt and send all frames of request    zmsg_t *request = zmsg_recv (self->data);    while (zmsg_size (request)) {        zframe_t *cleartext = zmsg_pop (request);        if (zmsg_size (request))            zframe_set_more (cleartext, 1);        zframe_t *encrypted = curve_codec_encode (self->codec, &cleartext);        if (encrypted)            zframe_send (&encrypted, self->dealer, 0);        else            self->state = exception;    }    zmsg_destroy (&request);    return 0;}
开发者ID:zeromq,项目名称:libcurve,代码行数:18,


示例12: s_broker_worker_msg

static voids_broker_worker_msg(broker_t *self, zframe_t *sender, zmsg_t *msg){	assert(zmsg_size(msg) >= 1);	zframe_t *command = zmsg_pop(msg);	char *id_string = zframe_strhex(sender);	int worker_ready = (zhash_lookup(self->workers, id_string) != NULL);	free(id_string);	worker_t *worker = s_worker_require(self, sender);	if (zframe_streq(command, MDPW_READY)){		if (worker_ready)			s_worker_delete(worker, 1);		else 		if (zframe_size(sender) >= 4 && memcmp(zframe_data(sender), "mmi.", 4) == 0)			s_worker_delete(worker, 1);		else {			zframe_t *service_frame = zmsg_pop(msg);			worker->service = s_service_require(self, service_frame);			worker->service->workers++;			s_worker_waiting(worker);			zframe_destroy(&service_frame);		}	}	else	if (zframe_streq(command, MDPW_REPLY)){		if (worker_ready){			zframe_t *client = zmsg_unwrap(msg);			zmsg_pushstr(msg, worker->service->name);			zmsg_pushstr(msg, MDPC_CLIENT);			zmsg_wrap(msg, client);			zmsg_send(&msg, self->socket);			s_worker_waiting(worker);		}		else 			s_worker_delete(worker, 1);	}	else	if (zframe_streq(command, MDPW_HEARTBEAT)){		if (worker_ready)			worker->expiry = zclock_time() + HEARTBEAT_EXPIRY;		else			s_worker_delete(worker, 1);	}	else	if (zframe_streq(command, MDPW_DISCONNECT))		s_worker_delete(worker, 0);	else {		zclock_log("E: invalid input message");		zmsg_dump(msg);	}	free(command);	zmsg_destroy(&msg);}
开发者ID:rryqszq4,项目名称:sweet-clib,代码行数:56,


示例13: client_execute

static voidclient_execute (client_t *self, int event){    self->next_event = event;    while (self->next_event) {        self->event = self->next_event;        self->next_event = 0;        printf ("State=%s, event=%s/n",            s_state_name [self->state], s_event_name [self->event]);        switch (self->state) {            case start_state:                if (self->event == ohai_event) {                check_credentials_action (self);                    self->state = authenticated_state;                }                break;                            case authenticated_state:                if (self->event == ok_event) {                    zmsg_addstr (self->reply, "OHAI-OK");                    self->state = ready_state;                }                else                if (self->event == error_event) {                    zmsg_addstr (self->reply, "WTF");                    self->state = start_state;                }                break;                            case ready_state:                if (self->event == icanhaz_event) {                    zmsg_addstr (self->reply, "CHEEZBURGER");                }                else                if (self->event == hugz_event) {                    zmsg_addstr (self->reply, "HUGZ-OK");                }                else                if (self->event == heartbeat_event) {                    zmsg_addstr (self->reply, "HUGZ");                }                break;                            case stopped_state:                //  Discard all events silently                break;        }        if (zmsg_size (self->reply) > 1) {            puts ("Send message to client");            zmsg_dump (self->reply);            zmsg_send (&self->reply, self->router);            self->reply = zmsg_new ();            zmsg_add (self->reply, zframe_dup (self->address));        }    }}
开发者ID:AlexGiovanentti,项目名称:zguide,代码行数:56,


示例14: main

int main(int argc, char **argv){		zctx_t *ctx;	zwssock_t *sock;	char *l =  argc > 1 ? argv[1] : listen_on;	int major, minor, patch;	zmq_version (&major, &minor, &patch);	printf("built with: 
C++ zmw_get_wlan_dev函数代码示例
C++ zmsg_send函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。