private static <T> T slowCreate(final EventProducer consumer, Class<T> clazz) { int msgIdx = FieldReferenceOffsetManager.lookupTemplateLocator(clazz.getAnnotation(ProngTemplateMessage.class).templateId(), Pipe.from(consumer.input)); if (PipeReader.tryReadFragment(consumer.input)) { T result = (T) Proxy.newProxyInstance( clazz.getClassLoader(), new Class[] { clazz }, new InputPipeInvocationHandler(consumer.input, PipeReader.getMsgIdx(consumer.input), clazz)); consumer.cached = result; //TODO: needs smarter pool but this is fine for now. consumer.cachedMsgId = PipeReader.getMsgIdx(consumer.input); return result; } else { return null; } }
private static <T> T slowCreate(final EventProducer consumer, Class<T> clazz) { int msgIdx = FieldReferenceOffsetManager.lookupTemplateLocator(clazz.getAnnotation(ProngTemplateMessage.class).templateId(), Pipe.from(consumer.input)); if (PipeReader.tryReadFragment(consumer.input)) { T result = (T) Proxy.newProxyInstance( clazz.getClassLoader(), new Class[] { clazz }, new InputPipeInvocationHandler(consumer.input, PipeReader.getMsgIdx(consumer.input), clazz)); consumer.cached = result; //TODO: needs smarter pool but this is fine for now. consumer.cachedMsgId = PipeReader.getMsgIdx(consumer.input); return result; } else { return null; } }
private static <T> T slowCreate(final EventProducer consumer, Class<T> clazz) { int msgIdx = FieldReferenceOffsetManager.lookupTemplateLocator(clazz.getAnnotation(ProngTemplateMessage.class).templateId(), Pipe.from(consumer.input)); if (PipeReader.tryReadFragment(consumer.input)) { T result = (T) Proxy.newProxyInstance( clazz.getClassLoader(), new Class[] { clazz }, new InputPipeInvocationHandler(consumer.input, PipeReader.getMsgIdx(consumer.input), clazz)); consumer.cached = result; //TODO: needs smarter pool but this is fine for now. consumer.cachedMsgId = PipeReader.getMsgIdx(consumer.input); return result; } else { return null; } }