- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
本文整理了Java中org.zeromq.ZFrame
类的一些代码示例,展示了ZFrame
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ZFrame
类的具体详情如下:
包路径:org.zeromq.ZFrame
类名称:ZFrame
[英]ZFrame The ZFrame class provides methods to send and receive single message frames across 0MQ sockets. A 'frame' corresponds to one underlying zmq_msg_t in the libzmq code. When you read a frame from a socket, the more() method indicates if the frame is part of an unfinished multipart message. The send() method normally destroys the frame, but with the ZFRAME_REUSE flag, you can send the same frame many times. Frames are binary, and this class has no special support for text data.
[中]ZFrame类提供了跨0MQ套接字发送和接收单个消息帧的方法。“frame”对应于libzmq代码中的一个底层zmq_msg_t。从套接字读取帧时,more()方法指示该帧是否是未完成的多部分消息的一部分。send()方法通常会破坏帧,但使用ZFRAME_REUSE标志,可以多次发送同一帧。帧是二进制的,这个类不支持文本数据。
代码示例来源:origin: twosigma/beakerx
private String verifyDelim(ZFrame zframe) {
String delim = new String(zframe.getData(), StandardCharsets.UTF_8);
if (!DELIM.equals(delim)) {
throw new RuntimeException("Delimiter <IDS|MSG> not found");
}
return delim;
}
代码示例来源:origin: org.zeromq/jeromq
/**
* Creates a new frame that duplicates an existing frame
* @return
* Duplicate of frame; message contents copied into new byte array
*/
public ZFrame duplicate()
{
return new ZFrame(this.data);
}
代码示例来源:origin: org.zeromq/jeromq
public void print(String prefix)
{
ZData.print(System.out, prefix, getData(), size());
}
}
代码示例来源:origin: org.zeromq/jeromq
/**
* Creates copy of this ZMsg.
* Also duplicates all frame content.
* @return
* The duplicated ZMsg object, else null if this ZMsg contains an empty frame set
*/
public ZMsg duplicate()
{
if (frames.isEmpty()) {
return null;
}
else {
ZMsg msg = new ZMsg();
for (ZFrame f : frames) {
msg.add(f.duplicate());
}
return msg;
}
}
代码示例来源:origin: org.opendaylight.netide/shim
if (poller.pollin(0)) {
ZMsg message = ZMsg.recvMsg(socket);
byte[] data = message.getLast().getData();
if (coreListener != null) {
Message msg = NetIPConverter.parseConcreteMessage(data);
if (message.getFirst().toString().equals(STOP_COMMAND)) {
break;
} else {
代码示例来源:origin: org.zeromq/jeromq
/**
* Receive a new frame off the socket, Returns newly-allocated frame, or
* null if there was no input waiting, or if the read was interrupted.
* @param socket
* Socket to read from
* @param flags
* Pass flags to 0MQ socket.recv call
* @return
* received frame, else null
*/
public static ZFrame recvFrame(Socket socket, int flags)
{
ZFrame f = new ZFrame();
byte[] data = f.recv(socket, flags);
if (data == null) {
return null;
}
return f;
}
代码示例来源:origin: org.zeromq/jeromq
/**
* Dump the message in human readable format. This should only be used
* for debugging and tracing, inefficient in handling large messages.
**/
public void dump(Appendable out)
{
try {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
pw.printf("--------------------------------------\n");
for (ZFrame frame : frames) {
pw.printf("[%03d] %s\n", frame.size(), frame.toString());
}
out.append(sw.getBuffer());
sw.close();
}
catch (IOException e) {
throw new RuntimeException("Message dump exception " + super.toString(), e);
}
}
代码示例来源:origin: org.zeromq/jeromq
/**
* Pop frame off front of message, caller now owns frame.
* If next frame is empty, pops and destroys that empty frame
* (e.g. useful when unwrapping ROUTER socket envelopes)
* @return
* Unwrapped frame
*/
public ZFrame unwrap()
{
if (size() == 0) {
return null;
}
ZFrame f = pop();
ZFrame empty = getFirst();
if (empty.hasData() && empty.size() == 0) {
empty = pop();
empty.destroy();
}
return f;
}
代码示例来源:origin: org.zeromq/jeromq
/**
* Sends frame to socket if it contains data.
* Use this method to send a frame and destroy the data after.
* @param socket
* 0MQ socket to send frame
* @param flags
* Valid send() method flags, defined in org.zeromq.ZMQ class
* @return
* True if success, else False
*/
public boolean sendAndDestroy(Socket socket, int flags)
{
boolean ret = send(socket, flags);
if (ret) {
destroy();
}
return ret;
}
代码示例来源:origin: org.zeromq/jeromq
/**
* Pop a ZFrame and return the toString() representation of it.
*
* @return toString version of pop'ed frame, or null if no frame exists.
*/
public String popString()
{
ZFrame frame = pop();
if (frame == null) {
return null;
}
return frame.toString();
}
代码示例来源:origin: org.zeromq/jeromq
/**
* Destructor.
* Explicitly destroys all ZFrames contains in the ZMsg
*/
public void destroy()
{
for (ZFrame f : frames) {
f.destroy();
}
frames.clear();
}
代码示例来源:origin: org.zeromq/jeromq
@Override
public boolean equals(Object o)
{
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
ZMsg zMsg = (ZMsg) o;
//based on AbstractList
Iterator<ZFrame> e1 = frames.iterator();
Iterator<ZFrame> e2 = zMsg.frames.iterator();
while (e1.hasNext() && e2.hasNext()) {
ZFrame o1 = e1.next();
ZFrame o2 = e2.next();
if (!(o1 == null ? o2 == null : o1.equals(o2))) {
return false;
}
}
return !(e1.hasNext() || e2.hasNext());
}
代码示例来源:origin: org.zeromq/jeromq
/**
* Add a String as a new ZFrame to the end of list
* @param str
* String to add to list
*/
public void addString(String str)
{
frames.add(new ZFrame(str));
}
代码示例来源:origin: org.zeromq/jeromq
for (ZFrame f : msg) {
file.writeInt(f.size());
file.write(f.getData());
代码示例来源:origin: net.unit8.enkan/enkan-repl-pseudo
@Override
public void run() {
while(!Thread.currentThread().isInterrupted()) {
ZMsg msg = ZMsg.recvMsg(socket);
ZFrame clientAddress = msg.pop();
String input = msg.popString();
int cursor = Integer.parseInt(msg.popString());
int[] anchor = {-1};
ZMsg reply = new ZMsg();
reply.add(clientAddress.duplicate());
String trimmedCommand = input.trim();
if (trimmedCommand.startsWith("/")) {
if (!trimmedCommand.contains(" ")) {
Predicate<String> filter = trimmedCommand.equals("/") ?
n -> true : n -> n.startsWith(trimmedCommand.substring(1));
commandNames.stream()
.filter(filter)
.forEach(s -> reply.add("/" + s));
anchor[0] = 0;
}
}
reply.send(socket, true);
}
}
代码示例来源:origin: twosigma/beakerx
private Message readMessage(ZMQ.Socket socket) {
ZMsg zmsg = null;
Message message = null;
try {
zmsg = ZMsg.recvMsg(socket);
ZFrame[] parts = new ZFrame[zmsg.size()];
zmsg.toArray(parts);
byte[] uuid = parts[MessageParts.UUID].getData();
byte[] header = parts[MessageParts.HEADER].getData();
byte[] parent = parts[MessageParts.PARENT].getData();
byte[] metadata = parts[MessageParts.METADATA].getData();
byte[] content = parts[MessageParts.CONTENT].getData();
byte[] expectedSig = parts[MessageParts.HMAC].getData();
verifyDelim(parts[MessageParts.DELIM]);
verifySignatures(expectedSig, header, parent, metadata, content);
message = new Message(parse(header, Header.class));
if (uuid != null) {
message.getIdentities().add(uuid);
}
message.setParentHeader(parse(parent, Header.class));
message.setMetadata(parse(metadata, LinkedHashMap.class));
message.setContent(parse(content, LinkedHashMap.class));
} finally {
if (zmsg != null) {
zmsg.destroy();
}
}
return message;
}
代码示例来源:origin: org.zeromq/jeromq
public void addFirst(byte[] data)
{
addFirst(new ZFrame(data));
}
代码示例来源:origin: kawasima/enkan
@Override
public void run() {
while(!Thread.currentThread().isInterrupted()) {
ZMsg msg = ZMsg.recvMsg(socket);
ZFrame clientAddress = msg.pop();
String input = msg.popString();
int cursor = Integer.parseInt(msg.popString());
int[] anchor = {-1};
ZMsg reply = new ZMsg();
reply.add(clientAddress.duplicate());
String trimmedCommand = input.trim();
if (trimmedCommand.startsWith("/")) {
if (!trimmedCommand.contains(" ")) {
Predicate<String> filter = trimmedCommand.equals("/") ?
n -> true : n -> n.startsWith(trimmedCommand.substring(1));
commandNames.stream()
.filter(filter)
.forEach(s -> reply.add("/" + s));
anchor[0] = 0;
}
}
reply.send(socket, true);
}
}
代码示例来源:origin: fiber-space/jupyter-kernel-jsr223
throw new RuntimeException("[jupyter-kernel.jar] Message incomplete. Didn't receive required message parts");
uuid = zframes[MessageParts.UUID].getData();
String delim = new String(zframes[MessageParts.DELIM].getData(),
StandardCharsets.UTF_8);
if (!delim.equals(delimiter)) {
throw new RuntimeException("[jupyter-kernel.jar] Incorrectly formatted message. Delimiter <IDS|MSG> not found");
byte[] header = zframes[MessageParts.HEADER].getData();
byte[] parent = zframes[MessageParts.PARENT].getData();
byte[] meta = zframes[MessageParts.METADATA].getData();
byte[] content = zframes[MessageParts.CONTENT].getData();
byte[] hmac = zframes[MessageParts.HMAC].getData();
代码示例来源:origin: org.zeromq/jeromq
public void push(byte[] data)
{
push(new ZFrame(data));
}
我尝试理解[c代码 -> 汇编]代码 void node::Check( data & _data1, vector& _data2) { -> push ebp -> mov ebp,esp ->
我需要在当前表单(代码)的上下文中运行文本文件中的代码。其中一项要求是让代码创建新控件并将其添加到当前窗体。 例如,在Form1.cs中: using System.Windows.Forms; ..
我有此 C++ 代码并将其转换为 C# (.net Framework 4) 代码。有没有人给我一些关于 malloc、free 和 sprintf 方法的提示? int monate = ee; d
我的网络服务器代码有问题 #include #include #include #include #include #include #include int
给定以下 html 代码,将列表中的第三个元素(即“美丽”一词)以斜体显示的 CSS 代码是什么?当然,我可以给这个元素一个 id 或一个 class,但 html 代码必须保持不变。谢谢
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
我试图制作一个宏来避免重复代码和注释。 我试过这个: #define GrowOnPage(any Page, any Component) Component.Width := Page.Surfa
我正在尝试将我的旧 C++ 代码“翻译”成头条新闻所暗示的 C# 代码。问题是我是 C# 中的新手,并不是所有的东西都像 C++ 中那样。在 C++ 中这些解决方案运行良好,但在 C# 中只是不能。我
在 Windows 10 上工作,R 语言的格式化程序似乎没有在 Visual Studio Code 中完成它的工作。我试过R support for Visual Studio Code和 R-T
我正在处理一些报告(计数),我必须获取不同参数的计数。非常简单但乏味。 一个参数的示例查询: qCountsEmployee = ( "select count(*) from %s wher
最近几天我尝试从 d00m 调试网络错误。我开始用尽想法/线索,我希望其他 SO 用户拥有可能有用的宝贵经验。我希望能够提供所有相关信息,但我个人无法控制服务器环境。 整个事情始于用户注意到我们应用程
我有一个 app.js 文件,其中包含如下 dojo amd 模式代码: require(["dojo/dom", ..], function(dom){ dom.byId('someId').i
我对“-gencode”语句中的“code=sm_X”选项有点困惑。 一个例子:NVCC 编译器选项有什么作用 -gencode arch=compute_13,code=sm_13 嵌入库中? 只有
我为我的表格使用 X-editable 框架。 但是我有一些问题。 $(document).ready(function() { $('.access').editable({
我一直在通过本教程学习 flask/python http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-wo
我想将 Vim 和 EMACS 用于 CNC、G 代码和 M 代码。 Vim 或 EMACS 是否有任何语法或模式来处理这种类型的代码? 最佳答案 一些快速搜索使我找到了 this vim 和 thi
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve this
这个问题在这里已经有了答案: Enabling markdown highlighting in Vim (5 个回答) 6年前关闭。 当我在 Vim 中编辑包含 Markdown 代码的 READM
我正在 Swift3 iOS 中开发视频应用程序。基本上我必须将视频 Assets 和音频与淡入淡出效果合并为一个并将其保存到 iPhone 画廊。为此,我使用以下方法: private func d
pipeline { agent any stages { stage('Build') { steps { e
我是一名优秀的程序员,十分优秀!