Scippy

    SCIP

    Solving Constraint Integer Programs

    Detailed Description

    methods for user interface dialog

    Author
    Tobias Achterberg

    Definition in file dialog.c.

    #include <assert.h>
    #include <string.h>
    #include <ctype.h>
    #include "scip/scip.h"
    #include "scip/def.h"
    #include "blockmemshell/memory.h"
    #include "scip/set.h"
    #include "scip/pub_misc.h"
    #include "scip/dialog.h"
    #include "scip/struct_dialog.h"

    Go to the source code of this file.

    Functions

    static SCIP_RETCODE readLine (SCIP_DIALOGHDLR *dialoghdlr, const char *prompt, SCIP_Bool *endoffile)
     
    static SCIP_RETCODE addHistory (const char *s)
     
    static int getHistoryLength (void)
     
    static SCIP_RETCODE removeHistory (int pos)
     
    static SCIP_RETCODE writeHistory (const char *filename)
     
    static void linelistFree (SCIP_LINELIST **linelist)
     
    static void linelistFreeAll (SCIP_LINELIST **linelist)
     
    static SCIP_RETCODE readInputLine (SCIP_DIALOGHDLR *dialoghdlr, const char *prompt, SCIP_Bool *endoffile)
     
    SCIP_RETCODE SCIPdialogCopyInclude (SCIP_DIALOG *dialog, SCIP_SET *set)
     
    SCIP_RETCODE SCIPdialoghdlrCreate (SCIP_SET *set, SCIP_DIALOGHDLR **dialoghdlr)
     
    SCIP_RETCODE SCIPdialoghdlrFree (SCIP *scip, SCIP_DIALOGHDLR **dialoghdlr)
     
    SCIP_RETCODE SCIPdialoghdlrExec (SCIP_DIALOGHDLR *dialoghdlr, SCIP_SET *set)
     
    SCIP_RETCODE SCIPdialoghdlrSetRoot (SCIP *scip, SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog)
     
    SCIP_DIALOGSCIPdialoghdlrGetRoot (SCIP_DIALOGHDLR *dialoghdlr)
     
    void SCIPdialoghdlrClearBuffer (SCIP_DIALOGHDLR *dialoghdlr)
     
    SCIP_Bool SCIPdialoghdlrIsBufferEmpty (SCIP_DIALOGHDLR *dialoghdlr)
     
    SCIP_RETCODE SCIPdialoghdlrGetLine (SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog, const char *prompt, char **inputline, SCIP_Bool *endoffile)
     
    SCIP_RETCODE SCIPdialoghdlrGetWord (SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog, const char *prompt, char **inputword, SCIP_Bool *endoffile)
     
    SCIP_RETCODE SCIPdialoghdlrAddInputLine (SCIP_DIALOGHDLR *dialoghdlr, const char *inputline)
     
    SCIP_RETCODE SCIPdialoghdlrAddHistory (SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG *dialog, const char *command, SCIP_Bool escapecommand)
     
    static SCIP_RETCODE ensureSubdialogMem (SCIP_DIALOG *dialog, SCIP_SET *set, int num)
     
    SCIP_RETCODE SCIPdialogCreate (SCIP_DIALOG **dialog, SCIP_DECL_DIALOGCOPY((*dialogcopy)), SCIP_DECL_DIALOGEXEC((*dialogexec)), SCIP_DECL_DIALOGDESC((*dialogdesc)), SCIP_DECL_DIALOGFREE((*dialogfree)), const char *name, const char *desc, SCIP_Bool issubmenu, SCIP_DIALOGDATA *dialogdata)
     
    static SCIP_RETCODE dialogFree (SCIP *scip, SCIP_DIALOG **dialog)
     
    void SCIPdialogCapture (SCIP_DIALOG *dialog)
     
    SCIP_RETCODE SCIPdialogRelease (SCIP *scip, SCIP_DIALOG **dialog)
     
    SCIP_Bool SCIPdialogIsHidden (SCIP_DIALOG *dialog)
     
    void SCIPdialogSetHidden (SCIP_DIALOG *dialog)
     
    SCIP_RETCODE SCIPdialogExec (SCIP_DIALOG *dialog, SCIP_SET *set, SCIP_DIALOGHDLR *dialoghdlr, SCIP_DIALOG **nextdialog)
     
    static SCIP_DECL_SORTPTRCOMP (dialogComp)
     
    SCIP_RETCODE SCIPdialogAddEntry (SCIP_DIALOG *dialog, SCIP_SET *set, SCIP_DIALOG *subdialog)
     
    SCIP_Bool SCIPdialogHasEntry (SCIP_DIALOG *dialog, const char *entryname)
     
    int SCIPdialogFindEntry (SCIP_DIALOG *dialog, const char *entryname, SCIP_DIALOG **subdialog)
     
    SCIP_RETCODE SCIPdialogDisplayMenu (SCIP_DIALOG *dialog, SCIP *scip)
     
    SCIP_RETCODE SCIPdialogDisplayMenuEntry (SCIP_DIALOG *dialog, SCIP *scip)
     
    SCIP_RETCODE SCIPdialogDisplayCompletions (SCIP_DIALOG *dialog, SCIP *scip, const char *entryname)
     
    void SCIPdialogGetPath (SCIP_DIALOG *dialog, const char sepchar, char *path)
     
    const char * SCIPdialogGetName (SCIP_DIALOG *dialog)
     
    const char * SCIPdialogGetDesc (SCIP_DIALOG *dialog)
     
    SCIP_Bool SCIPdialogIsSubmenu (SCIP_DIALOG *dialog)
     
    SCIP_DIALOGSCIPdialogGetParent (SCIP_DIALOG *dialog)
     
    SCIP_DIALOG ** SCIPdialogGetSubdialogs (SCIP_DIALOG *dialog)
     
    int SCIPdialogGetNSubdialogs (SCIP_DIALOG *dialog)
     
    SCIP_DIALOGDATASCIPdialogGetData (SCIP_DIALOG *dialog)
     
    void SCIPdialogSetData (SCIP_DIALOG *dialog, SCIP_DIALOGDATA *dialogdata)
     
    SCIP_RETCODE SCIPdialogWriteHistory (const char *filename)
     

    Function Documentation

    ◆ readLine()

    static SCIP_RETCODE readLine ( SCIP_DIALOGHDLR dialoghdlr,
    const char *  prompt,
    SCIP_Bool endoffile 
    )
    static

    reads a line of input from stdin

    Parameters
    dialoghdlrdialog handler
    promptprompt to display
    endoffilepointer to store whether the end of the input file was reached

    Definition at line 156 of file dialog.c.

    References SCIP_Dialoghdlr::buffer, SCIP_Dialoghdlr::bufferpos, SCIP_Dialoghdlr::buffersize, FALSE, NULL, SCIP_OKAY, and TRUE.

    Referenced by readInputLine().

    ◆ addHistory()

    static SCIP_RETCODE addHistory ( const char *  s)
    static

    puts the given string on the command history

    Parameters
    sstring to add to the command history

    Definition at line 197 of file dialog.c.

    References SCIP_OKAY.

    Referenced by SCIPdialoghdlrAddHistory().

    ◆ getHistoryLength()

    static int getHistoryLength ( void  )
    static

    returns the current length of the history list

    Definition at line 207 of file dialog.c.

    Referenced by SCIPdialoghdlrAddHistory().

    ◆ removeHistory()

    static SCIP_RETCODE removeHistory ( int  pos)
    static

    removes a single element from the history list

    Parameters
    poslist position of history entry to remove

    Definition at line 216 of file dialog.c.

    References SCIP_OKAY.

    Referenced by SCIPdialoghdlrAddHistory().

    ◆ writeHistory()

    static SCIP_RETCODE writeHistory ( const char *  filename)
    static

    writes command history into file of the specified name

    Parameters
    filenamename of file to (over)write history to

    Definition at line 227 of file dialog.c.

    References NULL, and SCIP_OKAY.

    Referenced by SCIPdialogWriteHistory().

    ◆ linelistFree()

    static void linelistFree ( SCIP_LINELIST **  linelist)
    static

    frees a single linelist entry, but not its successors

    Parameters
    linelistpointer to line list

    Definition at line 241 of file dialog.c.

    References BMSfreeMemory, BMSfreeMemoryArray, and NULL.

    Referenced by linelistFreeAll(), and readInputLine().

    ◆ linelistFreeAll()

    static void linelistFreeAll ( SCIP_LINELIST **  linelist)
    static

    frees a linelist entry and all of its successors

    Parameters
    linelistpointer to line list

    Definition at line 253 of file dialog.c.

    References linelistFree(), SCIP_Linelist::nextline, and NULL.

    Referenced by SCIPdialoghdlrFree().

    ◆ readInputLine()

    static SCIP_RETCODE readInputLine ( SCIP_DIALOGHDLR dialoghdlr,
    const char *  prompt,
    SCIP_Bool endoffile 
    )
    static

    reads a line of input from stdin or from the stored input lines in the input list

    Parameters
    dialoghdlrdialog handler
    promptprompt to display
    endoffilepointer to store whether the end of the input file was reached

    Definition at line 271 of file dialog.c.

    References SCIP_Dialoghdlr::buffer, SCIP_Dialoghdlr::bufferpos, SCIP_Dialoghdlr::buffersize, FALSE, SCIP_Linelist::inputline, SCIP_Dialoghdlr::inputlist, SCIP_Dialoghdlr::inputlistptr, linelistFree(), SCIP_Linelist::nextline, NULL, readLine(), SCIP_CALL, SCIP_OKAY, and SCIPstrncpy().

    Referenced by SCIPdialoghdlrGetLine(), and SCIPdialoghdlrGetWord().

    ◆ SCIPdialogCopyInclude()

    SCIP_RETCODE SCIPdialogCopyInclude ( SCIP_DIALOG dialog,
    SCIP_SET set 
    )

    copies the given dialog to a new scip

    Parameters
    dialogdialog
    setSCIP_SET of SCIP to copy to

    Definition at line 318 of file dialog.c.

    References NULL, SCIP_CALL, SCIP_OKAY, SCIPdialogGetName(), and SCIPsetDebugMsg.

    Referenced by SCIPsetCopyPlugins().

    ◆ SCIPdialoghdlrCreate()

    SCIP_RETCODE SCIPdialoghdlrCreate ( SCIP_SET set,
    SCIP_DIALOGHDLR **  dialoghdlr 
    )

    creates a dialog handler

    Parameters
    setglobal SCIP settings
    dialoghdlrpointer to store dialog handler

    Definition at line 336 of file dialog.c.

    References BMSallocMemory, BMSallocMemoryArray, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_MAXSTRLEN, SCIP_OKAY, SCIPdialoghdlrClearBuffer(), SCIPsetIncludeExternalCode(), and SCIPsnprintf().

    Referenced by doScipCreate().

    ◆ SCIPdialoghdlrFree()

    SCIP_RETCODE SCIPdialoghdlrFree ( SCIP scip,
    SCIP_DIALOGHDLR **  dialoghdlr 
    )

    frees a dialog handler and it's dialog tree

    Parameters
    scipSCIP data structure
    dialoghdlrpointer to dialog handler

    Definition at line 367 of file dialog.c.

    References BMSfreeMemory, BMSfreeMemoryArray, linelistFreeAll(), NULL, SCIP_CALL, SCIP_OKAY, and SCIPdialoghdlrSetRoot().

    Referenced by SCIPfree().

    ◆ SCIPdialoghdlrExec()

    SCIP_RETCODE SCIPdialoghdlrExec ( SCIP_DIALOGHDLR dialoghdlr,
    SCIP_SET set 
    )

    executes the root dialog of the dialog handler

    Parameters
    dialoghdlrdialog handler
    setglobal SCIP settings

    Definition at line 385 of file dialog.c.

    References SCIP_Dialoghdlr::buffer, SCIP_Dialoghdlr::bufferpos, NULL, SCIP_Dialoghdlr::rootdialog, SCIP_CALL, SCIP_OKAY, SCIPdialogExec(), and SCIPdialoghdlrClearBuffer().

    Referenced by SCIPstartInteraction().

    ◆ SCIPdialoghdlrSetRoot()

    SCIP_RETCODE SCIPdialoghdlrSetRoot ( SCIP scip,
    SCIP_DIALOGHDLR dialoghdlr,
    SCIP_DIALOG dialog 
    )

    makes given dialog the root dialog of dialog handler; captures dialog and releases former root dialog

    Parameters
    scipSCIP data structure
    dialoghdlrdialog handler
    dialogdialog to be the root

    Definition at line 413 of file dialog.c.

    References NULL, SCIP_Dialoghdlr::rootdialog, SCIP_CALL, SCIP_OKAY, SCIPdialogCapture(), and SCIPdialogRelease().

    Referenced by SCIPdialoghdlrFree(), and SCIPsetRootDialog().

    ◆ ensureSubdialogMem()

    static SCIP_RETCODE ensureSubdialogMem ( SCIP_DIALOG dialog,
    SCIP_SET set,
    int  num 
    )
    static

    ensures, that sub-dialogs array can store at least the given number of sub-dialogs

    Parameters
    dialogdialog
    setglobal SCIP settings
    numminimal storage size for sub-dialogs

    Definition at line 801 of file dialog.c.

    References BMSreallocMemoryArray, NULL, SCIP_ALLOC, SCIP_OKAY, SCIPsetCalcMemGrowSize(), SCIP_Dialog::subdialogs, and SCIP_Dialog::subdialogssize.

    Referenced by SCIPdialogAddEntry().

    ◆ SCIPdialogCreate()

    SCIP_RETCODE SCIPdialogCreate ( SCIP_DIALOG **  dialog,
    SCIP_DECL_DIALOGCOPY((*dialogcopy))  ,
    SCIP_DECL_DIALOGEXEC((*dialogexec))  ,
    SCIP_DECL_DIALOGDESC((*dialogdesc))  ,
    SCIP_DECL_DIALOGFREE((*dialogfree))  ,
    const char *  name,
    const char *  desc,
    SCIP_Bool  issubmenu,
    SCIP_DIALOGDATA dialogdata 
    )

    creates and captures a user interface dialog

    Parameters
    dialogpointer to store the dialog
    namename of dialog: command name appearing in parent's dialog menu
    descdescription of dialog used if description output method is NULL
    issubmenuis the dialog a sub-menu?
    dialogdatauser defined dialog data

    Definition at line 823 of file dialog.c.

    References BMSallocMemory, BMSduplicateMemoryArray, BMSfreeMemory, BMSfreeMemoryArrayNull, FALSE, NULL, SCIP_ALLOC, SCIP_ALLOC_TERMINATE, SCIP_OKAY, and SCIPdialogCapture().

    Referenced by SCIPincludeDialog().

    ◆ dialogFree()

    static SCIP_RETCODE dialogFree ( SCIP scip,
    SCIP_DIALOG **  dialog 
    )
    static

    frees dialog and all of its sub-dialogs

    Parameters
    scipSCIP data structure
    dialogpointer to dialog

    Definition at line 880 of file dialog.c.

    References BMSfreeMemory, BMSfreeMemoryArrayNull, NULL, SCIP_CALL, SCIP_OKAY, and SCIPdialogRelease().

    Referenced by SCIPdialogRelease().

    ◆ SCIPdialogCapture()

    void SCIPdialogCapture ( SCIP_DIALOG dialog)

    captures a dialog

    Parameters
    dialogdialog

    Definition at line 912 of file dialog.c.

    References NULL, and SCIP_Dialog::nuses.

    Referenced by SCIPcaptureDialog(), SCIPdialogAddEntry(), SCIPdialogCreate(), and SCIPdialoghdlrSetRoot().

    ◆ SCIPdialogRelease()

    SCIP_RETCODE SCIPdialogRelease ( SCIP scip,
    SCIP_DIALOG **  dialog 
    )

    releases a dialog

    Parameters
    scipSCIP data structure
    dialogpointer to dialog

    Definition at line 922 of file dialog.c.

    References dialogFree(), NULL, SCIP_CALL, and SCIP_OKAY.

    Referenced by dialogFree(), SCIPdialoghdlrSetRoot(), and SCIPreleaseDialog().

    ◆ SCIPdialogExec()

    SCIP_RETCODE SCIPdialogExec ( SCIP_DIALOG dialog,
    SCIP_SET set,
    SCIP_DIALOGHDLR dialoghdlr,
    SCIP_DIALOG **  nextdialog 
    )

    executes dialog

    Parameters
    dialogdialog
    setglobal SCIP settings
    dialoghdlrdialog handler
    nextdialogpointer to store the next dialog to process

    Definition at line 957 of file dialog.c.

    References NULL, SCIP_CALL, and SCIP_OKAY.

    Referenced by SCIPdialoghdlrExec().

    ◆ SCIP_DECL_SORTPTRCOMP()

    static SCIP_DECL_SORTPTRCOMP ( dialogComp  )
    static

    comparison method for sorting dialogs w.r.t. to their name

    Definition at line 976 of file dialog.c.

    References SCIPdialogGetName().

    ◆ SCIPdialogAddEntry()

    SCIP_RETCODE SCIPdialogAddEntry ( SCIP_DIALOG dialog,
    SCIP_SET set,
    SCIP_DIALOG subdialog 
    )

    adds a sub-dialog to the given dialog as menu entry and captures the sub-dialog

    Parameters
    dialogdialog
    setglobal SCIP settings
    subdialogsub-dialog to add as menu entry in dialog

    Definition at line 982 of file dialog.c.

    References ensureSubdialogMem(), SCIP_Dialog::nsubdialogs, NULL, SCIP_Dialog::parent, SCIP_CALL, SCIP_INVALIDDATA, SCIP_OKAY, SCIPdialogCapture(), SCIPdialogGetName(), SCIPdialogHasEntry(), SCIPerrorMessage, SCIPsortedvecInsertPtr(), and SCIP_Dialog::subdialogs.

    Referenced by SCIPaddDialogEntry().