Example #1
0
DataSourceMetaItem::DataSourceMetaItem(unsigned _flags, MemoryBuffer & in)
{
    flags = _flags;
    in.read(name);
    in.read(xpath);
    type.setown(deserializeType(in));
}
Example #2
0
DataSourceMetaItem::DataSourceMetaItem(unsigned _flags, MemoryBuffer & in)
{
    flags = _flags;
    in.read(name);
    in.read(xpath);
    type.setown(deserializeType(in));
    splitXmlTagNamesFromXPath(xpath.get(), tagname);
}
Example #3
0
static IDefRecordElement * deserializeElement(MemoryBuffer & source)
{
    byte kind;
    source.read(kind);
    switch (kind)
    {
    case DEKnone:
        return NULL;
    case DEKrecord:
        {
            size32_t maxSize;
            unsigned numChildren;
            source.read(maxSize).read(numChildren);
            Owned<IDefRecordBuilder> builder = createDErecord(maxSize);
            for (unsigned i=0; i < numChildren; i++)
                builder->addChildOwn(deserializeElement(source));
            return builder->close();
        }
    case DEKifblock:
        {
            Owned<IValue> value = deserializeValue(source);
            Owned<IDefRecordElement> field = deserializeElement(source);
            Owned<IDefRecordElement> record = deserializeElement(source);
            return createDEifblock(field, value, record);
        }
    case DEKfield:
        {
            _ATOM name = deserializeAtom(source);
            Owned<ITypeInfo> type = deserializeType(source);
            Owned<IDefRecordElement> record = deserializeElement(source);
            size32_t maxSize;
            source.read(maxSize);
            return createDEfield(name, type, record, maxSize);
        }
    default:
        throwUnexpected();
    }
}