Files
core/ASCOfficeXlsFile2/source/XlsFormat/Logic/CompositeObject.h
Elen.Subbotina be6f5a785e XlsFile2
git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@63540 954022d7-b5bf-4e40-9824-e11837661b57
2016-05-21 00:14:40 +03:00

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