mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-07-11 03:42:47 +08:00
git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@63540 954022d7-b5bf-4e40-9824-e11837661b57
51 lines
1.4 KiB
C++
51 lines
1.4 KiB
C++
#pragma once
|
|
|
|
#include "BaseObject.h"
|
|
#include "BinProcessor.h"
|
|
|
|
namespace XLS
|
|
{;
|
|
|
|
class CFStreamCacheReader;
|
|
|
|
// Logical representation of composite objects
|
|
//
|
|
// Another new function is to buffer objects, that had to be read but was absent in the bin stream.
|
|
// The buffered records shall be checked for existence later.
|
|
// This feature is specially for files saved in OpenOffice Calc those don't conform to the Microsoft specification
|
|
// Call them "wanted objects"
|
|
//
|
|
class CompositeObject : public BaseObject
|
|
{
|
|
public:
|
|
CompositeObject();
|
|
~CompositeObject();
|
|
|
|
//virtual const bool doSomething(BinProcessor& proc);
|
|
virtual const bool read(CFStreamCacheReader& reader, BaseObject* parent, const bool mandatory); // Read self and children
|
|
//virtual const bool write(BinWriterProcessor& proc, const bool is_mandatory); // Write self and children
|
|
virtual const bool loadContent(BinProcessor& proc) = 0;
|
|
|
|
virtual const bool loadContentRead(BinReaderProcessor& proc);
|
|
|
|
static const ElementType type = typeCompositeObject;
|
|
|
|
virtual ElementType get_type() { return type; }
|
|
};
|
|
|
|
// This class helps to process parenthesis in ABNF specification
|
|
class ABNFParenthesis : public CompositeObject
|
|
{
|
|
public:
|
|
ABNFParenthesis(){};
|
|
|
|
virtual const bool read(CFStreamCacheReader& reader, BaseObject* parent, const bool is_mandatory);
|
|
|
|
static const ElementType type = typeABNFParenthesis;
|
|
|
|
|
|
};
|
|
|
|
|
|
} // namespace XLS
|