+#include <TColStd_MapOfInteger.hxx>
+#include <TDF_Label.hxx>
+
+#include <map>
+#include <list>
+#include <vector>
+#include <string>
+
+/*!
+ * \brief Data of GEOM_Object
+ */
+struct TObjectData
+{
+ TCollection_AsciiString _entry;
+ TCollection_AsciiString _studyEntry;
+ TCollection_AsciiString _name;
+ TCollection_AsciiString _pyName;
+ bool _unpublished;
+};
+
+struct TVariable{
+ TCollection_AsciiString myVariable;
+ bool isVariable;
+
+ TVariable(const TCollection_AsciiString& theVariable, bool theFlag = true):
+ myVariable(theVariable),
+ isVariable(theFlag){}
+};
+
+typedef std::vector<TVariable> TState;
+typedef std::vector<TState> TAllStates;
+
+class ObjectStates
+{
+public:
+ Standard_EXPORT ObjectStates();
+ ~ObjectStates();
+
+ TAllStates GetAllStates() const { return _states; }
+
+ TState GetCurrectState() const;
+ Standard_EXPORT void AddState(const TState &theState);
+ void IncrementState();
+
+private:
+ TAllStates _states;
+ int _dumpstate;
+};
+
+typedef std::map<TCollection_AsciiString, ObjectStates* > TVariablesList;
+
+typedef std::map<int, std::list<TDF_Label> > TFreeLabelsList;