Commit 2febad38 authored by EXT Arnaud Clère's avatar EXT Arnaud Clère
Browse files

comments on meta()

parent 2eb3e181
......@@ -177,7 +177,7 @@ public:
template<typename T> T_ bind (T& t, T&& defaultT) { return outer->_bind(QBindDefault<T>{t,defaultT})? std::move(outer) : T_ (); }
// Literal metadata support
/**/ Val<T_> meta (QMetaData&& m) { auto v=m; return meta(v); }
/**/ Val<T_> meta (QMetaData&& m) { return meta ( m); }
/**/ Seq<T_> sequence( quint32 s) { return sequence(&s); }
/**/ Rec<T_> record ( quint32 s) { return record (&s); }
......@@ -206,8 +206,6 @@ public:
Val<Seq<T_>> item() { return outer->_item() ? Val<Seq<T_>>(std::move(*this)) : Val<Seq<T_>>(); }
// Shortcuts
/**/ Val<Seq<T_>> meta ( QMetaData&& m) { return item().meta ( m); }
/**/ Val<Seq<T_>> meta ( QMetaData& m) { return item().meta ( m); }
/**/ Seq<Seq<T_>> sequence(quint32* s=nullptr) { return item().sequence ( s); }
/**/ Rec<Seq<T_>> record (quint32* s=nullptr) { return item().record ( s); }
/**/ Seq<T_> null ( ) { return item().null ( ); }
......@@ -244,8 +242,6 @@ public:
Val<Rec<T_>> item( QName n) { return outer->_item(n) ? Val<Rec<T_>>(std::move(*this)) : Val<Rec<T_>>(); }
// Shortcuts
/**/ Val<Rec<T_>> meta (QName n, QMetaData&& m) { return item(n).meta ( m); }
/**/ Val<Rec<T_>> meta (QName n, QMetaData& m) { return item(n).meta ( m); }
/**/ Seq<Rec<T_>> sequence(QName n, quint32* s=nullptr) { return item(n).sequence ( s); }
/**/ Rec<Rec<T_>> record (QName n, quint32* s=nullptr) { return item(n).record ( s); }
/**/ Rec<T_> null (QName n ) { return item(n).null ( ); }
......@@ -304,7 +300,7 @@ protected:
template<class T_> friend class Seq;
template<class T_> friend class Rec;
void _meta ( QMetaData& d) { if (Q_LIKELY(impl) ) impl->_meta (d); }
void _meta ( QMetaData& d) { if (Q_LIKELY(impl) ) impl->_meta (d); } //!< idempotent (can be called by more than one code)
bool _sequence(quint32* s=nullptr) { return Q_LIKELY(impl) && impl->_sequence(s); }
bool _record (quint32* s=nullptr) { return Q_LIKELY(impl) && impl->_record (s); }
bool _null ( ) { return Q_LIKELY(impl) && impl->_null ( ); }
......@@ -915,7 +911,7 @@ struct QBind<QList<T>, TResult> {
#include <QtCore/qmap.h>
// TODO QBind<QMap<TKey,T>,_> with meta({qmColumns,"key,value"}).sequence().record().bind("key",i.key()).bind("value",i.value())
// TODO QBind<QMap<TKey,T>,_> with meta({{qmColumns,"key,value"}}).sequence().record().bind("key",i.key()).bind("value",i.value())
template<typename T, class TResult> //=Cursor
struct QBind<QMap<QString,T>, TResult> {
......
......@@ -109,9 +109,8 @@ public:
// Shortcuts
/**/ Val<Cursor> value ( ) { return Cursor(this).value(); }
/**/ Val<Cursor> meta ( QMetaData&& m) { return Cursor(this).value().meta ( m); }
/**/ Val<Cursor> meta ( QMetaData& m) { return Cursor(this).value().meta ( m); }
/**/ Seq<Cursor> sequence(quint32* s=nullptr) { return Cursor(this).value().sequence ( s); }
/**/ Val<Cursor> meta ( QMetaData&& m) { return Cursor(this).value().meta(m); }
/**/ Seq<Cursor> sequence(quint32* s=nullptr) { return Cursor(this).value().sequence(s); }
template<typename T> Cursor bind ( T&& t) { return Cursor(this).value().bind(std::forward<T>(t)); }
protected:
bool _isOk() noexcept { return io; }
......@@ -123,7 +122,7 @@ protected:
if (Q_LIKELY(cols)) { putInteger (*cols , cbor::MapType ); }
else { putMajorValue(cbor::IndefiniteLength, cbor::MapType ); } return true; }
bool _null ( ) { putSimpleValue(cbor::Null ); return true; }
bool _bind ( const char* s) { auto size = strlen(s); putInteger(size, cbor::TextStringType); io->append(s, size); return true; }
bool _bind ( const char* s) { auto size = qstrlen(s); putInteger(size, cbor::TextStringType); io->append(s, size); return true; }
bool _bind ( QString&& s) { QUtf8String u(s.toUtf8());
putInteger (quint64(u.size()), cbor::TextStringType); io->append(u); return true; }
//static const char mimeHeader[] = "Content-Type:text/plain;charset=utf-16\xD\xA\xD\xA";
......@@ -187,9 +186,8 @@ public:
// Shortcuts
/**/ Val<Cursor> value ( ) { return Cursor(this).value(); }
/**/ Val<Cursor> meta ( QMetaData&& m) { return Cursor(this).value().meta ( m); }
/**/ Val<Cursor> meta ( QMetaData& m) { return Cursor(this).value().meta ( m); }
/**/ Seq<Cursor> sequence(quint32* s=nullptr) { return Cursor(this).value().sequence ( s); }
/**/ Val<Cursor> meta ( QMetaData&& m) { return Cursor(this).value().meta(m); }
/**/ Seq<Cursor> sequence(quint32* s=nullptr) { return Cursor(this).value().sequence(s); }
template<typename T> Cursor bind ( T&& t) { return Cursor(this).value().bind(std::forward<T>(t)); }
protected:
bool _sequence(quint32* =nullptr) { levels.push(Step(nullptr)); return true; }
......@@ -294,10 +292,9 @@ public:
QVector<Error> errors;
// Shortcuts
/**/ Val<Cursor> value ( ) { return Cursor(this).value() ; }
/**/ Val<Cursor> meta ( QMetaData&& m) { return Cursor(this).value().meta (m) ; }
/**/ Val<Cursor> meta ( QMetaData& m) { return Cursor(this).value().meta (m) ; }
/**/ Seq<Cursor> sequence(quint32* s=nullptr) { return Cursor(this).value().sequence (s) ; }
/**/ Val<Cursor> value ( ) { return Cursor(this).value(); }
/**/ Val<Cursor> meta ( QMetaData&& m) { return Cursor(this).value().meta(m); }
/**/ Seq<Cursor> sequence(quint32* s=nullptr) { return Cursor(this).value().sequence(s); }
template<typename T> Cursor bind ( T&& t) { return Cursor(this).value().bind(std::forward<T>(t)); }
protected:
bool _sequence(quint32* s=nullptr) { if (caching) { cacheLevel++; return caching->_sequence(s); }
......
......@@ -60,9 +60,8 @@ public:
BindMode mode() const noexcept { return BindMode::Write; }
// Shortcuts
Val<Cur<QDataWriter>> value ( ) { return Cur<QDataWriter>(this).value() ; }
Val<Cur<QDataWriter>> meta ( QMetaData&& m) { return Cur<QDataWriter>(this).value().meta (m); }
Val<Cur<QDataWriter>> meta ( QMetaData& m) { return Cur<QDataWriter>(this).value().meta (m); }
Val<Cur<QDataWriter>> value ( ) { return Cur<QDataWriter>(this).value(); }
Val<Cur<QDataWriter>> meta ( QMetaData&& m) { return Cur<QDataWriter>(this).value().meta(m); }
Seq<Cur<QDataWriter>> sequence(quint32* s=nullptr) { return Cur<QDataWriter>(this).value().sequence(s); }
template<typename T> Cur<QDataWriter> bind(T&& t) { return Cur<QDataWriter>(this).value().bind(std::forward<T>(t)); }
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment