• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java RecordParser类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



RecordParser类属于io.vertx.core.parsetools包,在下文中一共展示了RecordParser类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: HttpPart

import io.vertx.core.parsetools.RecordParser; //导入依赖的package包/类
public HttpPart(Buffer bodyBuffer) {
  this.buffer = Buffer.buffer();
  List<String> headersList = new ArrayList<>();
  // We need to extract headers and content from buffer
  RecordParser parser = RecordParser.newDelimited("\r\n", new Handler<Buffer>() {
    int pos = 0;
    boolean startContent = false;

    @Override
    public void handle(Buffer frame) {
      if (frame.length() == 0) {
        if (pos > 0) {
          startContent = true;
        }
      } else {
        if (!startContent) {
          headersList.add(frame.toString().trim());
        } else {
          buffer.appendBuffer(frame);
        }
      }
      pos++;
    }
  });
  parser.handle(bodyBuffer);
  this.headers = new CaseInsensitiveHeaders();
  for (String header : headersList) {
    int offset = header.indexOf(":");
    this.headers.add(header.substring(0, offset), header.substring(offset + 1).trim());
  }

  this.contentType = HttpUtils.extractContentType(headers);
  this.contentDisposition = HttpUtils.extractContentDisposition(headers);

}
 
开发者ID:etourdot,项目名称:vertx-marklogic,代码行数:36,代码来源:HttpPart.java


示例2: initialHandhakeProtocolParser

import io.vertx.core.parsetools.RecordParser; //导入依赖的package包/类
public RecordParser initialHandhakeProtocolParser() {
    NetSocket sock = netSocket;
    final RecordParser parser = RecordParser.newDelimited("\n", h -> {
        String cmd = h.toString();
        if("START SESSION".equalsIgnoreCase(cmd)) {
            sock.pause();
            start();
            logger.info("Bridge Server - start session with " +
                    "tenant: " + getTenant() +
                    ", ip: " + sock.remoteAddress() +
                    ", bridgeUUID: " + getBridgeUUID()
            );
            sock.resume();
        } else {
            String tenant = cmd;
            String tenantFromCert = new CertInfo(sock).getTenant();
            if(tenantFromCert != null)
                tenant = tenantFromCert;

            setTenant(tenant);
        }
    });
    return parser;
}
 
开发者ID:GruppoFilippetti,项目名称:vertx-mqtt-broker,代码行数:25,代码来源:EventBusNetBridge.java


示例3: reset

import io.vertx.core.parsetools.RecordParser; //导入依赖的package包/类
/**
 * 在解析出错时,通过重新创建parser对象,将整个缓冲区重置
 */
protected void reset() {
  parser = RecordParser.newFixed(TCP_HEADER_LENGTH, this::onParse);
  status = ParseStatus.TCP_HEADER;

  parser.handle(Buffer.buffer(0));
}
 
开发者ID:apache,项目名称:incubator-servicecomb-java-chassis,代码行数:10,代码来源:TcpParser.java


示例4: initialHandhakeProtocolParser

import io.vertx.core.parsetools.RecordParser; //导入依赖的package包/类
public RecordParser initialHandhakeProtocolParser() {
    if(!(webSocket instanceof ServerWebSocket)) {
        throw new IllegalStateException("This must be a server! websocket instance is of type '"+webSocket.getClass().getSimpleName()+"'");
    }
    ServerWebSocket sock = (ServerWebSocket)webSocket;
    final RecordParser parser = RecordParser.newDelimited("\n", h -> {
        String cmd = h.toString();
        if ("START SESSION".equalsIgnoreCase(cmd)) {
            sock.pause();
            start();
            logger.info("Bridge Server - start session with " +
                    "tenant: " + getTenant() +
                    ", ip: " + sock.remoteAddress() +
                    ", bridgeUUID: " + getBridgeUUID()
            );
            sock.resume();
        } else {
            String tenant = cmd;
            String tenantFromCert = new CertInfo(sock).getTenant();
            if (tenantFromCert != null)
                tenant = tenantFromCert;

            setTenant(tenant);
        }
    });
    return parser;
}
 
开发者ID:GruppoFilippetti,项目名称:vertx-mqtt-broker,代码行数:28,代码来源:EventBusWebsocketBridge.java


示例5: start

import io.vertx.core.parsetools.RecordParser; //导入依赖的package包/类
@Override
public void start() throws Exception {
    address = MQTTSession.ADDRESS;

    JsonObject conf = config();

    localBridgePort = conf.getInteger("local_bridge_port", 7007);
    idleTimeout = conf.getInteger("socket_idle_timeout", 120);
    ssl_cert_key = conf.getString("ssl_cert_key");
    ssl_cert = conf.getString("ssl_cert");
    ssl_trust = conf.getString("ssl_trust");


    // [TCP -> BUS] listen TCP publish to BUS
    NetServerOptions opt = new NetServerOptions()
            .setTcpKeepAlive(true)
            .setIdleTimeout(idleTimeout)
            .setPort(localBridgePort)
    ;

    if(ssl_cert_key != null && ssl_cert != null && ssl_trust != null) {
        opt.setSsl(true).setClientAuth(ClientAuth.REQUIRED)
            .setPemKeyCertOptions(new PemKeyCertOptions()
                .setKeyPath(ssl_cert_key)
                .setCertPath(ssl_cert)
            )
            .setPemTrustOptions(new PemTrustOptions()
                .addCertPath(ssl_trust)
            )
        ;
    }

    netServer = vertx.createNetServer(opt);
    netServer.connectHandler(sock -> {
        final EventBusNetBridge ebnb = new EventBusNetBridge(sock, vertx.eventBus(), address);
        sock.closeHandler(aVoid -> {
            logger.info("Bridge Server - closed connection from client ip: " + sock.remoteAddress());
            ebnb.stop();
        });
        sock.exceptionHandler(throwable -> {
            logger.error("Bridge Server - Exception: " + throwable.getMessage(), throwable);
            ebnb.stop();
        });

        logger.info("Bridge Server - new connection from client ip: " + sock.remoteAddress());

        RecordParser parser = ebnb.initialHandhakeProtocolParser();
        sock.handler(parser::handle);

    }).listen();
}
 
开发者ID:GruppoFilippetti,项目名称:vertx-mqtt-broker,代码行数:52,代码来源:EventBusBridgeServerVerticle.java


示例6: GraphiteServer

import io.vertx.core.parsetools.RecordParser; //导入依赖的package包/类
public GraphiteServer(Configuration configuration) {
    port = configuration.getGraphitePort();
    recordParser = RecordParser.newDelimited("\n", this::handleRecord);
}
 
开发者ID:hawkular,项目名称:hawkular-metrics,代码行数:5,代码来源:GraphiteServer.java


示例7: RuleBasedPacketParser

import io.vertx.core.parsetools.RecordParser; //导入依赖的package包/类
private RuleBasedPacketParser(JsonObject config, final Handler<Buffer> output) {
    this.outputHandler = output;

    final Rule firstRule = Rule.build(config);
    currentRule = firstRule;

    innerParser = RecordParser.newFixed(currentRule.length(null), buffer -> {
        if (buff == null) {
            buff = buffer;
        } else {
            buff.appendBuffer(buffer);
        }
        if (currentRule == null) {
    		parsedRecords.add(buff.copy());
        	parsedBufferLength = parsedBufferLength + buff.length();
        	if (parsedBufferLength == fullBufferLength) {
        		parsedRecords.forEach( parsedRecord -> outputHandler.handle(parsedRecord));	
        		parsedRecords.clear();
        		parsedBufferLength = 0;
        	}
        	buff = null;
            currentRule = firstRule;
        }

        final int nextLength = currentRule.length(buffer);
        if (nextLength == 0) {
    		parsedRecords.add(buff.copy());
        	parsedBufferLength = parsedBufferLength + buff.length();
        	if (parsedBufferLength == fullBufferLength) {
        		parsedRecords.forEach( parsedRecord -> outputHandler.handle(parsedRecord));	
        		parsedRecords.clear();
        		parsedBufferLength = 0;
        	}
        	buff = null;
            currentRule = firstRule;
            innerParser.fixedSizeMode(currentRule.length(null));
            currentRule = currentRule.nextRule(null);
            return;
        }

        innerParser.fixedSizeMode(nextLength);
        currentRule = currentRule.nextRule(buffer);
    });

    currentRule = currentRule.nextRule(null);
}
 
开发者ID:wired-mind,项目名称:usher,代码行数:47,代码来源:RuleBasedPacketParser.java


示例8: init

import io.vertx.core.parsetools.RecordParser; //导入依赖的package包/类
@Override
public void init(JsonObject configObj, Vertx vertx) {
    this.configObj = configObj;
    this.vertx = vertx;
    rawParser = RecordParser.newDelimited(configObj.getString("delimiter", HTTP_DELIM), null);
}
 
开发者ID:wired-mind,项目名称:usher,代码行数:7,代码来源:TokenSplitter.java


示例9: start

import io.vertx.core.parsetools.RecordParser; //导入依赖的package包/类
@Override
public void start() throws Exception {
    address = MQTTSession.ADDRESS;

    JsonObject conf = config();

    localBridgePort = conf.getInteger("local_bridge_port", 7007);
    idleTimeout = conf.getInteger("socket_idle_timeout", 120);
    ssl_cert_key = conf.getString("ssl_cert_key");
    ssl_cert = conf.getString("ssl_cert");
    ssl_trust = conf.getString("ssl_trust");


    // [WebSocket -> BUS] listen WebSocket publish to BUS
    HttpServerOptions opt = new HttpServerOptions()
            .setTcpKeepAlive(true)
            .setIdleTimeout(idleTimeout)
            .setPort(localBridgePort)
    ;

    if(ssl_cert_key != null && ssl_cert != null && ssl_trust != null) {
        opt.setSsl(true).setClientAuth(ClientAuth.REQUIRED)
            .setPemKeyCertOptions(new PemKeyCertOptions()
                .setKeyPath(ssl_cert_key)
                .setCertPath(ssl_cert)
            )
            .setPemTrustOptions(new PemTrustOptions()
                .addCertPath(ssl_trust)
            )
        ;
    }

    netServer = vertx.createHttpServer(opt);
    netServer.websocketHandler(sock -> {
        final EventBusWebsocketBridge ebnb = new EventBusWebsocketBridge(sock, vertx.eventBus(), address);
        sock.closeHandler(aVoid -> {
            logger.info("Bridge Server - closed connection from client ip: " + sock.remoteAddress());
            ebnb.stop();
        });
        sock.exceptionHandler(throwable -> {
            logger.error("Bridge Server - Exception: " + throwable.getMessage(), throwable);
            ebnb.stop();
        });

        logger.info("Bridge Server - new connection from client ip: " + sock.remoteAddress());

        RecordParser parser = ebnb.initialHandhakeProtocolParser();
        sock.handler(parser::handle);

    }).listen();
}
 
开发者ID:GruppoFilippetti,项目名称:vertx-mqtt-broker,代码行数:52,代码来源:EventBusBridgeWebsocketServerVerticle.java


示例10: open

import io.vertx.core.parsetools.RecordParser; //导入依赖的package包/类
public void open(final Handler<AsyncResult<Client>> handler) {

        netClient = vertx.createNetClient();

        netClient.connect(port, host, result -> {
            if (result.failed()) {
                handler.handle(Future.failedFuture(result.cause()));
            } else {
                netSocket = result.result();

                final RecordParser rp = RecordParser.newFixed(4, null);
                rp.setOutput(new Handler<Buffer>() {
                    boolean s = true;

                    @Override
                    public void handle(Buffer buffer) {
                        //System.out.println("handle:" + buffer.length());
                        if (s) {
                            int size = Integer.reverseBytes(buffer.getInt(0));
                            //System.out.println(size);
                            rp.fixedSizeMode(size - 4);
                        } else {
                            Reply reply = new Reply();
                            reply.read(new BsonDecoder(buffer));
                            //System.out.println(reply);
                            //System.out.println(reply.getDocuments());
                            Handler<AsyncResult<Reply>> callback = callbacks.remove(reply.getResponseId());
                            if (callback != null) {
                                outstanding--;
                                callback.handle(Future.succeededFuture(reply));
                            } else {
                                System.err.println("no callback:" + callback + "  for " + reply.getResponseId());
                            }
                            rp.fixedSizeMode(4);
                        }
                        s = !s;
                    }

                });
                netSocket.closeHandler($ -> {
                    System.err.println("close handler");
                });
                netSocket.exceptionHandler(e -> {
                    System.err.println("exception " + e);
                });
                netSocket.handler(rp);

                database("admin").command("ismaster", 0, 1, Utils.handler(handler, r -> {
                    maxBsonSize = r.getInt("maxBsonObjectSize");

                    System.out.println("got ismaster callback");
                    handler.handle(Future.succeededFuture(this));
                }));
            }
        });
    }
 
开发者ID:bckfnn,项目名称:vertx-native-mongo,代码行数:57,代码来源:Client.java



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java JsonPropertyDescription类代码示例发布时间:2022-05-22
下一篇:
Java PlayerSelector类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap