当前位置: 首页>>代码示例>>C++>>正文


C++ TibrvMsg::addString方法代码示例

本文整理汇总了C++中TibrvMsg::addString方法的典型用法代码示例。如果您正苦于以下问题:C++ TibrvMsg::addString方法的具体用法?C++ TibrvMsg::addString怎么用?C++ TibrvMsg::addString使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在TibrvMsg的用法示例。


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

示例1: if

static PyObject*
typemethod_send(PyTibrvNetTransportObject *self, PyObject *args, PyObject *kwds)
{
    char *send_subject = NULL, *reply_subject = NULL;
	PyObject* message_dictionary;

    static char *kwlist[] = {"sendsubject", "message", "replysubject", NULL};

    if (! PyArg_ParseTupleAndKeywords(args, kwds, "sO|s", kwlist, &send_subject, &message_dictionary, &reply_subject))
        return NULL; 
	
	TibrvStatus status;

	TibrvMsg msg;
	status = msg.setSendSubject(send_subject);
	if (status != TIBRV_OK)
	{
		PyErr_Tibrv(status);
		return NULL;
	}

	if (reply_subject != 0)
		msg.setReplySubject(reply_subject);

	if (!PyDict_Check(message_dictionary))
	{
		PyErr_SetString(PyExc_TypeError, "expected message to be dictionary");
		return NULL;
	}

	PyObject *key, *value;
	int pos = 0;

	while (PyDict_Next(message_dictionary, &pos, &key, &value))
	{
		if (PyObject_Is<const char*>(key))
		{
			const char* mnemonic = PyObject_As<const char*>(key);

			if (PyObject_Is<tibrv_i32>(value))
				status = msg.addI32(mnemonic, PyObject_As<tibrv_i32>(value));
			else if (PyObject_Is<const char*>(value))
				status = msg.addString(mnemonic, PyObject_As<const char*>(value));
			else if (PyObject_Is<tibrv_f64>(value))
				status = msg.addF64(mnemonic, PyObject_As<tibrv_f64>(value));
			else if (PyObject_Is<tibrv_bool>(value))
				status = msg.addBool(mnemonic, PyObject_As<tibrv_bool>(value));
			else if (PyObject_Is<tibrvMsgDateTime>(value))
				status = msg.addDateTime(mnemonic, PyObject_As<tibrvMsgDateTime>(value));
			else
			{
				PyErr_SetString(PyExc_TypeError, "invalid type for tibco message");
				return NULL;
			}

			if (status != TIBRV_OK)
			{
				PyErr_Tibrv(status);
				return NULL;
			}
		}
	}

	status = self->transport->send(msg);
	if (status != TIBRV_OK)
	{
		PyErr_Tibrv(status);
		return NULL;
	}

	Py_INCREF(Py_None);
    return Py_None;
}
开发者ID:rob-blackbourn,项目名称:PyTibrv,代码行数:73,代码来源:PyTibrvNetTransport.cpp


注:本文中的TibrvMsg::addString方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。