// This file is generated by WOK (CPPExt). // Please do not edit this file; modify original file instead. // The copyright and license terms as defined for the original file apply to // this header file considered to be the "object code" form of the original source. #ifndef _IFSelect_SessionPilot_HeaderFile #define _IFSelect_SessionPilot_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_DefineHandle_HeaderFile #include #endif #ifndef _Handle_IFSelect_SessionPilot_HeaderFile #include #endif #ifndef _Handle_IFSelect_WorkSession_HeaderFile #include #endif #ifndef _TCollection_AsciiString_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _TColStd_Array1OfAsciiString_HeaderFile #include #endif #ifndef _TColStd_Array1OfInteger_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _Handle_Standard_Transient_HeaderFile #include #endif #ifndef _TColStd_SequenceOfAsciiString_HeaderFile #include #endif #ifndef _IFSelect_Activator_HeaderFile #include #endif #ifndef _Standard_CString_HeaderFile #include #endif #ifndef _Handle_IFSelect_WorkLibrary_HeaderFile #include #endif #ifndef _IFSelect_ReturnStatus_HeaderFile #include #endif #ifndef _Handle_IFSelect_SignCounter_HeaderFile #include #endif #ifndef _IFSelect_PrintCount_HeaderFile #include #endif class IFSelect_WorkSession; class Standard_Transient; class IFSelect_WorkLibrary; class TCollection_AsciiString; class IFSelect_SignCounter; //! A SessionPilot is intended to make easier the use of a
//! WorkSession. It receives commands, under alphanumeric form,
//! then calls a library of Activators to interprete and run them.
//!
//! Then, WorkSession just records data required to work :
//! Rules for Selection, Dispatch ... ; File Data (InterfaceModel
//! and results of Evaluations and Transfer as required).
//! SessionPilot records and works with alphanumeric commands and
//! their results (under a very simple form). It calls a list of
//! Activators to perform the actions.
//!
//! A Command can have several forms :
//! - classic execution, to list, evaluate, or enrich the session
//! - command which creates a new item (a Selection for instance)
//! such a command should not add it to the session, but make it
//! recorded by the Pilot (method RecordItem). The Pilot will
//! add the item in the session, with no name
//! -> such a command may be called :
//! - directly, it will add an item with no name
//! - by command xset, in the following form :
//! xset name command ... calls the command and adds the item
//! to the session under the specified name (if not yet known)
//!
//! Thus, to a specific Norm or way of working, only Activators
//! change. A specific Initialisation can be done by starting
//! with a specific set of commands.
//!
//! In addition, SessionPilot is a sub-type of Activator, to
//! recognize some built-in commands : exit/x, help/?, control of
//! command line, and commands xstep xset ... See method Do
//!
//! At least, empty lines and comment lines (beginning by '#')
//! are skipped (comment lines are display if read from file)
class IFSelect_SessionPilot : public IFSelect_Activator { public: //! Creates an empty SessionPilot, with a prompt which will be
//! displayed on querying commands. If not precised (""), this
//! prompt is set to "Test-XSTEP>"
Standard_EXPORT IFSelect_SessionPilot(const Standard_CString prompt = ""); //! Returns the WorkSession which is worked on
Standard_EXPORT Handle_IFSelect_WorkSession Session() const; //! Returns the WorKlibrary (Null if not set). WorkLibrary is used
//! to Read and Write Files, according to the Norm
Standard_EXPORT Handle_IFSelect_WorkLibrary Library() const; //! Returns the Record Mode for Commands. Default is False.
Standard_EXPORT Standard_Boolean RecordMode() const; //! Sets a WorkSession to be worked on
Standard_EXPORT void SetSession(const Handle(IFSelect_WorkSession)& WS) ; //! Sets a WorkLibrary
Standard_EXPORT void SetLibrary(const Handle(IFSelect_WorkLibrary)& WL) ; //! Changes the RecordMode.
Standard_EXPORT void SetRecordMode(const Standard_Boolean mode) ; //! Sets the value of the Command Line to be interpreted
//! Also prepares the interpretation (splitting by blanks)
Standard_EXPORT void SetCommandLine(const TCollection_AsciiString& command) ; //! Returns the Command Line to be interpreted
Standard_EXPORT const TCollection_AsciiString& CommandLine() const; //! Returns the part of the command line which begins at argument
//! between 0 and NbWords-1 (by default, all the line)
//! Empty string if out of range
Standard_EXPORT Standard_CString CommandPart(const Standard_Integer numarg = 0) const; //! Returns the count of words of the Command Line, separated by
//! blanks : 0 if empty, one if a command without args, else it
//! gives the count of args minus one.
//! Warning : limited to 10 (command title + 9 args)
Standard_EXPORT Standard_Integer NbWords() const; //! Returns a word given its rank in the Command Line. Begins at 0
//! which is the Command Title, 1 is the 1st arg., etc...
Standard_EXPORT const TCollection_AsciiString& Word(const Standard_Integer num) const; //! Returns a word given its rank, as a CString.
//! As for Word, begins at 0 (the command name), etc...
Standard_EXPORT Standard_CString Arg(const Standard_Integer num) const; //! Removes a word given its rank. Returns True if Done, False if
//! is out of range
Standard_EXPORT Standard_Boolean RemoveWord(const Standard_Integer num) ; //! Returns the count of recorded Commands
Standard_EXPORT Standard_Integer NbCommands() const; //! Returns a recorded Command, given its rank (from 1)
Standard_EXPORT const TCollection_AsciiString& Command(const Standard_Integer num) const; //! Allows to associate a Transient Value with the last execution
//! as a partial result
//! Returns RetDone if item is not Null, RetFail if item is Null
//! Remark : it is nullified for each Perform
Standard_EXPORT IFSelect_ReturnStatus RecordItem(const Handle(Standard_Transient)& item) ; //! Returns the Transient Object which was recorded with the
//! current Line Command. If none was, returns a Null Handle
Standard_EXPORT Handle_Standard_Transient RecordedItem() const; //! Clears the recorded informations (commands, objects)
Standard_EXPORT void Clear() ; //! Reads commands from a Script File, named . By default
//! (file = ""), reads from standard input with a prompt
//! Else (reading from a file), the read commands are displayed
//! onto standard output. Allows nested reads. Reading is stopped
//! either by command x or exit, or by reaching end of file
//! Return Value follows the rules of Do : RetEnd for normal end,
//! RetFail if script could not be opened
Standard_EXPORT IFSelect_ReturnStatus ReadScript(const Standard_CString file = "") ; //! Executes the Command, itself (for built-in commands, which
//! have priority) or by using the list of Activators.
//! The value returned is : RetVoid if nothing done (void command)
//! RetDone if execution OK, RetEnd if END OF SESSION, RetError if
//! command unknown or incorrect, RetFail if error on execution
//! If execution is OK and RecordMode is set, this Command Line is
//! recorded to the list (see below).
Standard_EXPORT IFSelect_ReturnStatus Perform() ; //! Executes the Commands, except that the command name (word 0)
//! is aliased. The rest of the command line is unchanged
//! If is empty, Executes with no change
//!
//! Error status is returned if the alias is unknown as command
Standard_EXPORT IFSelect_ReturnStatus ExecuteAlias(const TCollection_AsciiString& aliasname) ; //! Sets the Command then tries to execute it. Return value :
//! same as for Perform
Standard_EXPORT IFSelect_ReturnStatus Execute(const TCollection_AsciiString& command) ; //! Executes a Counter in a general way
//! If is greater than count of command words, it counts
//! all the model. Else it considers the word as the
//! identifier of a Selection
//! gives the mode of printing results, default is
//! CountByItem
Standard_EXPORT IFSelect_ReturnStatus ExecuteCounter(const Handle(IFSelect_SignCounter)& counter,const Standard_Integer numword,const IFSelect_PrintCount mode = IFSelect_CountByItem) ; //! Interprets a string value as an entity number :
//! if it gives an integer, returns its value
//! else, considers it as ENtityLabel (preferably case sensitive)
//! in case of failure, returns 0
Standard_EXPORT Standard_Integer Number(const Standard_CString val) const; //! Processes specific commands, which are :
//! x or exit for end of session
//! ? or help for help messages
//! xcommand to control command lines (Record Mode, List, Clear,
//! File Output ...)
//! xsource to execute a command file (no nesting allowed),
//! in case of error, source is stopped and keyword recovers
//! xstep is a simple prefix (useful in a wider environment, to
//! avoid conflicts on command names)
//! xset control commands which create items with names
Standard_EXPORT IFSelect_ReturnStatus Do(const Standard_Integer number,const Handle(IFSelect_SessionPilot)& session) ; //! Help for specific commands (apart from general command help)
Standard_EXPORT Standard_CString Help(const Standard_Integer number) const; DEFINE_STANDARD_RTTI(IFSelect_SessionPilot) protected: private: Handle_IFSelect_WorkSession thesession; TCollection_AsciiString theprompt; TCollection_AsciiString thecommand; Standard_Integer thenbwords; TColStd_Array1OfAsciiString thewords; TColStd_Array1OfInteger thewordeb; Standard_Boolean therecord; Standard_Integer thenumrec; Handle_Standard_Transient theobjrec; TColStd_SequenceOfAsciiString thecomlist; }; // other Inline functions and methods (like "C++: function call" methods) #endif