Loading files
// Copyright (c) 1998-1999 Matra Datavision
// Copyright (c) 1999-2014 OPEN CASCADE SAS
//
// This file is part of Open CASCADE Technology software library.
//
// This library is free software; you can redistribute it and/or modify it under
// the terms of the GNU Lesser General Public License version 2.1 as published
// by the Free Software Foundation, with special exception defined in the file
// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
// distribution for complete text of the license and disclaimer of any warranty.
//
// Alternatively, this file may be used under the terms of Open CASCADE
// commercial license or contractual agreement.
#ifndef _Storage_Macros_HeaderFile
#define _Storage_Macros_HeaderFile 1
#include <Storage_SolveMode.hxx>
// PROTOTYPES
#define Storage_DECLARE_SCHEMA_METHODS(schema) \
public: \
Standard_EXPORT occ::handle<Storage_CallBack> CallBackSelection(const TCollection_AsciiString&) \
const; \
Standard_EXPORT occ::handle<Storage_CallBack> AddTypeSelection( \
const occ::handle<Standard_Persistent>&) const; \
Standard_EXPORT const NCollection_Sequence<TCollection_AsciiString>& SchemaKnownTypes() const;
// Read_TypeSelection
//
#define Storage_BEGIN_READ_SELECTION(schema) \
occ::handle<Storage_CallBack> schema::CallBackSelection(const TCollection_AsciiString& rt) const \
{ \
occ::handle<Standard_Persistent> p; \
occ::handle<Storage_CallBack> cback;
#define Storage_READ_SELECTION(schema, classe, callback) \
if (strcmp(rt.ToCString(), #classe) == 0) \
{ \
cback = new callback; \
return cback; \
}
#define Storage_END_READ_SELECTION(schema) \
cback = ResolveUnknownType(rt, p, Storage_WriteSolve); \
return cback; \
}
// SchemaKnownTypes
//
#define Storage_BEGIN_SCHEMA_TYPES(schema) \
const NCollection_Sequence<TCollection_AsciiString>& schema::SchemaKnownTypes() const \
{ \
static NCollection_Sequence<TCollection_AsciiString> aSeq; \
static bool jsuidjaalai = false; \
if (!jsuidjaalai) \
{ \
jsuidjaalai = true;
#define Storage_SCHEMA_TYPES(classe) aSeq.Append(#classe);
#define Storage_END_SCHEMA_TYPES(schema) \
} \
return aSeq; \
}
// ADD_TypeSelection
//
#define Storage_BEGIN_ADD_TYPES(schema) \
occ::handle<Storage_CallBack> schema::AddTypeSelection( \
const occ::handle<Standard_Persistent>& p) const \
{ \
occ::handle<Storage_CallBack> cback; \
if (!p.IsNull()) \
{ \
const occ::handle<Standard_Type>& t = p->DynamicType(); \
static TCollection_AsciiString theTypeName; \
theTypeName = t->Name(); \
if (HasTypeBinding(theTypeName)) \
{ \
cback = TypeBinding(theTypeName); \
cback->Add(p, this); \
return cback; \
}
#define Storage_ADD_TYPES(schema, classe, callback) \
if (t == STANDARD_TYPE(classe)) \
{ \
cback = new callback; \
BindType(theTypeName, cback); \
cback->Add(p, this); \
return cback; \
}
#define Storage_END_ADD_TYPES(schema) \
cback = ResolveUnknownType(theTypeName, p, Storage_AddSolve); \
if (!cback.IsNull()) \
{ \
cback->Add(p, this); \
} \
return cback; \
} \
return cback; \
}
#endif
3d097a032This file is pinned to the selected release. Download the original to open it in your design tool.