From 5dd9eb1f679124e7cddd12fa17ca1a58ae468e85 Mon Sep 17 00:00:00 2001
From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期三, 02 八月 2017 10:23:33 +0800
Subject: [PATCH] panshen add capnproto lib

---
 VisitFace/RtspNativeCodec/app/libs/capnproto/include/capnp/dynamic.h |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/VisitFace/RtspNativeCodec/app/libs/capnproto/include/dynamic.h b/VisitFace/RtspNativeCodec/app/libs/capnproto/include/capnp/dynamic.h
similarity index 98%
rename from VisitFace/RtspNativeCodec/app/libs/capnproto/include/dynamic.h
rename to VisitFace/RtspNativeCodec/app/libs/capnproto/include/capnp/dynamic.h
index fcefcc3..58192d0 100644
--- a/VisitFace/RtspNativeCodec/app/libs/capnproto/include/dynamic.h
+++ b/VisitFace/RtspNativeCodec/app/libs/capnproto/include/capnp/dynamic.h
@@ -179,6 +179,8 @@
   template <typename T, typename = kj::EnableIf<kind<FromReader<T>>() == Kind::STRUCT>>
   inline Reader(T&& value): Reader(toDynamic(value)) {}
 
+  inline operator AnyStruct::Reader() const { return AnyStruct::Reader(reader); }
+
   inline MessageSize totalSize() const { return reader.totalSize().asPublic(); }
 
   template <typename T>
@@ -234,6 +236,7 @@
   friend class Orphan<DynamicStruct>;
   friend class Orphan<DynamicValue>;
   friend class Orphan<AnyPointer>;
+  friend class AnyStruct::Reader;
 };
 
 class DynamicStruct::Builder {
@@ -245,6 +248,8 @@
 
   template <typename T, typename = kj::EnableIf<kind<FromBuilder<T>>() == Kind::STRUCT>>
   inline Builder(T&& value): Builder(toDynamic(value)) {}
+
+  inline operator AnyStruct::Reader() { return AnyStruct::Builder(builder); }
 
   inline MessageSize totalSize() const { return asReader().totalSize(); }
 
@@ -323,6 +328,7 @@
   friend class Orphan<DynamicStruct>;
   friend class Orphan<DynamicValue>;
   friend class Orphan<AnyPointer>;
+  friend class AnyStruct::Builder;
 };
 
 class DynamicStruct::Pipeline {
@@ -363,6 +369,8 @@
 
   template <typename T, typename = kj::EnableIf<kind<FromReader<T>>() == Kind::LIST>>
   inline Reader(T&& value): Reader(toDynamic(value)) {}
+
+  inline operator AnyList::Reader() const { return AnyList::Reader(reader); }
 
   template <typename T>
   typename T::Reader as() const;
@@ -406,6 +414,8 @@
 
   template <typename T, typename = kj::EnableIf<kind<FromBuilder<T>>() == Kind::LIST>>
   inline Builder(T&& value): Builder(toDynamic(value)) {}
+
+  inline operator AnyList::Builder() { return AnyList::Builder(builder); }
 
   template <typename T>
   typename T::Builder as();
@@ -1516,6 +1526,16 @@
   return AnyStruct::Builder(builder);
 }
 
+template <>
+inline DynamicStruct::Reader AnyStruct::Reader::as<DynamicStruct>(StructSchema schema) const {
+  return DynamicStruct::Reader(schema, _reader);
+}
+
+template <>
+inline DynamicStruct::Builder AnyStruct::Builder::as<DynamicStruct>(StructSchema schema) {
+  return DynamicStruct::Builder(schema, _builder);
+}
+
 template <typename T>
 typename T::Pipeline DynamicStruct::Pipeline::releaseAs() {
   static_assert(kind<T>() == Kind::STRUCT,

--
Gitblit v1.8.0