Interface IOptionsServer

    • Method Detail

      • execInputStringMapCmdList

        java.util.List<java.util.Map<java.lang.String,​java.lang.Object>> execInputStringMapCmdList​(java.lang.String cmdName,
                                                                                                         java.lang.String[] cmdArgs,
                                                                                                         java.lang.String inString)
                                                                                                  throws P4JavaException
        Issue an arbitrary P4Java command to the Perforce server and return the results as a list of maps.

        This method is intended for low-level commands in the spirit and format of the p4 command line interpreter, and offers a simple way to issue commands to the associated Perforce server without the overhead of the more abstract Java interfaces and methods.

        No guidance is given here on the format of the returned map; however, it produces the same output as the p4 command line interpreter in -G (Python map) mode.

        Note that this method does not allow you to set "usage" options for the command; these may be added later. Note also that although option arguments passed to this method must be in a form recognized by the p4 command line interpreter, that does not mean the method is being implemented by the interpreter -- the actual implementation depends on the options used to get the server object in the first place from the server factory.

        Parameters:
        cmdName - the command to be issued; must be non-null, and correspond to a Perforce command recognized by P4Java and defined in CmdSpec.
        cmdArgs - the array of command arguments (options and file arguments, etc.) to be sent to the Perforce server. These must be in the form used by the corresponding p4 command line interpreter. Ignored if null.
        inString - an optional string to be sent to the server as standard input unchanged (this must be in the format expected by the server, typically as required when using the "-i" flag to the p4 command line app for the same command). You must remember to issue the relevant command-specific option to enable this if needed.
        Returns:
        a non-null Java Map of results; these results are as returned from issuing the command using the -G option with the p4 command line interpreter.
        Throws:
        P4JavaException - if an error occurs processing this method and its parameters
        Since:
        2013.1
      • execInputStringMapCmdList

        java.util.List<java.util.Map<java.lang.String,​java.lang.Object>> execInputStringMapCmdList​(java.lang.String cmdName,
                                                                                                         java.lang.String[] cmdArgs,
                                                                                                         java.lang.String inString,
                                                                                                         IFilterCallback filterCallback)
                                                                                                  throws P4JavaException
        Issue an arbitrary P4Java command to the Perforce server and return the results as a list of maps.

        This method is intended for low-level commands in the spirit and format of the p4 command line interpreter, and offers a simple way to issue commands to the associated Perforce server without the overhead of the more abstract Java interfaces and methods.

        No guidance is given here on the format of the returned map; however, it produces the same output as the p4 command line interpreter in -G (Python map) mode.

        Note that this method does not allow you to set "usage" options for the command; these may be added later. Note also that although option arguments passed to this method must be in a form recognized by the p4 command line interpreter, that does not mean the method is being implemented by the interpreter -- the actual implementation depends on the options used to get the server object in the first place from the server factory.

        Parameters:
        cmdName - the command to be issued; must be non-null, and correspond to a Perforce command recognized by P4Java and defined in CmdSpec.
        cmdArgs - the array of command arguments (options and file arguments, etc.) to be sent to the Perforce server. These must be in the form used by the corresponding p4 command line interpreter. Ignored if null.
        inString - an optional string to be sent to the server as standard input unchanged (this must be in the format expected by the server, typically as required when using the "-i" flag to the p4 command line app for the same command). You must remember to issue the relevant command-specific option to enable this if needed.
        filterCallback - an optional filter callback to decide on skipping or keeping individual key/value pairs as part of the results map.
        Returns:
        a non-null Java Map of results; these results are as returned from issuing the command using the -G option with the p4 command line interpreter.
        Throws:
        P4JavaException - if an error occurs processing this method and its parameters
        Since:
        2013.1
      • execMapCmdList

        java.util.List<java.util.Map<java.lang.String,​java.lang.Object>> execMapCmdList​(java.lang.String cmdName,
                                                                                              java.lang.String[] cmdArgs,
                                                                                              IFilterCallback filterCallback,
                                                                                              IParallelCallback parallelCallback)
                                                                                       throws P4JavaException
        Issue an arbitrary P4Java command to the Perforce server and return the results as a list of maps.

        This method is intended for low-level commands in the spirit and format of the p4 command line interpreter, and offers a simple way to issue commands to the associated Perforce server without the overhead of the more abstract Java interfaces and methods.

        No guidance is given here on the format of the returned map; however, it produces the same output as the p4 command line interpreter in -G (Python map) mode.

        Note that this method does not allow you to set "usage" options for the command; these may be added later. Note also that although option arguments passed to this method must be in a form recognized by the p4 command line interpreter, that does not mean the method is being implemented by the interpreter -- the actual implementation depends on the options used to get the server object in the first place from the server factory.

        Parameters:
        cmdName - the command to be issued; must be non-null, and correspond to a Perforce command recognized by P4Java and defined in CmdSpec.
        cmdArgs - the array of command arguments (options and file arguments, etc.) to be sent to the Perforce server. These must be in the form used by the corresponding p4 command line interpreter. Ignored if null.
        filterCallback - an optional filter callback to decide on skipping or keeping individual key/value pairs as part of the results map.
        parallelCallback - an optional parallel sync/submit callback to provide a multi-threaded file transfer implementation.
        Returns:
        a non-null Java Map of results; these results are as returned from issuing the command using the -G option with the p4 command line interpreter.
        Throws:
        P4JavaException - if an error occurs processing this method and its parameters
        Since:
        2017.1
      • execQuietMapCmdList

        java.util.List<java.util.Map<java.lang.String,​java.lang.Object>> execQuietMapCmdList​(java.lang.String cmdName,
                                                                                                   java.lang.String[] cmdArgs,
                                                                                                   java.util.Map<java.lang.String,​java.lang.Object> inMap)
                                                                                            throws P4JavaException
        Issue an arbitrary P4Java command to the Perforce server and return the results as a list of maps without invoking any command callbacks.

        Basically equivalent to execMapCmd with temporary disabling of any ICommandCallback calls and / or listeners; this turns out to be useful for various reasons we won't go into here...

        Parameters:
        cmdName - the command to be issued; must be non-null, and correspond to a Perforce command recognized by P4Java and defined in CmdSpec.
        cmdArgs - the array of command arguments (options and file arguments, etc.) to be sent to the Perforce server. These must be in the form used by the corresponding p4 command line interpreter. Ignored if null.
        inMap - an optional map to be sent to the server as standard input, using the Python map format (-G) form. You must remember to issue the relevant command-specific option to enable this if needed.
        Returns:
        a non-null Java Map of results; these results are as returned from issuing the command using the -G option with the p4 command line interpreter.
        Throws:
        P4JavaException - if an error occurs processing this method and its parameters
        Since:
        2013.1
      • execInputStringStreamingMapCmd

        void execInputStringStreamingMapCmd​(java.lang.String cmdName,
                                            java.lang.String[] cmdArgs,
                                            java.lang.String inString,
                                            IStreamingCallback callback,
                                            int key)
                                     throws P4JavaException
        Issue a streaming map command to the Perforce server, using an optional string for any input expected by the server (such as label or job specs, etc.).

        Streaming commands allow users to get each result from a suitably-issued command as it comes in from the server, rather than waiting for the entire command method to complete (and getting the results back as a completed List or Map or whatever).

        The results are sent to the user using the IStreamingCallback handleResult method; see the IStreamingCallback Javadoc for details. The payload passed to handleResult is usually the raw map gathered together deep in the RPC protocol layer, and the user is assumed to have the knowledge and technology to be able to parse it and use it suitably in much the same way as a user unpacks or processes the results from the other low-level exec methods like execMapCommand.

        NOTE: 'streaming' here has nothing at all to do with Perforce 'streams', which are (or will be) implemented elsewhere.

        Parameters:
        cmdName - the command to be issued; must be non-null, and correspond to a Perforce command recognized by P4Java and defined in CmdSpec.
        cmdArgs - the array of command arguments (options and file arguments, etc.) to be sent to the Perforce server. These must be in the form used by the corresponding p4 command line interpreter. Ignored if null.
        inString - an optional string to be sent to the server as standard input unchanged (this must be in the format expected by the server, typically as required when using the "-i" flag to the p4 command line app for the same command). You must remember to issue the relevant command-specific option to enable this if needed.
        callback - a non-null IStreamingCallback to be used to process the incoming results.
        key - an opaque integer key that is passed to the IStreamingCallback callback methods to identify the action as being associated with this specific call.
        Throws:
        P4JavaException - if an error occurs processing this method and its parameters.
        Since:
        2013.1
      • getUsageOptions

        UsageOptions getUsageOptions()
        Get the UsageOptions object associated with this server.
        Returns:
        possibly-null UsageOptions object.
      • setUsageOptions

        IOptionsServer setUsageOptions​(UsageOptions opts)
        Set the UsageOptions object associated with this server. Note that changing this object (or its contents) while a server is busy can cause issues.
        Parameters:
        opts - non-null UsageOptions object to associate with this server.
        Returns:
        the current server.
      • setAuthTicket

        void setAuthTicket​(java.lang.String userName,
                           java.lang.String authTicket)
        Set the server's Perforce authentication ticket for the specified user to the passed-in string.

        Parameters:
        userName - non-null Perforce user name
        authTicket - possibly-null Perforce authentication ticket
        Since:
        2011.2
      • setAuthTicket

        void setAuthTicket​(java.lang.String userName,
                           java.lang.String serverId,
                           java.lang.String authTicket)
        Set the server's Perforce authentication ticket for the specified user to the passed-in string.

        Parameters:
        userName - non-null Perforce user name
        serverId - possibly-null Perforce server's auth.id/IP:port
        authTicket - possibly-null Perforce authentication ticket
        Since:
        2021.2
      • getAuthId

        java.lang.String getAuthId()
        Return the Perforce Server's authId. This may be: addr:port or clusterId or authId If the connection hasn't been made yet, this could be null.
        Returns:
        possibly-null Perforce authentication id
        Since:
        2016.1
      • setTicketsFilePath

        void setTicketsFilePath​(java.lang.String ticketsFilePath)
        Set the Perforce authentication tickets file path.
        Parameters:
        ticketsFilePath - non-null Perforce auth tickets file path
        Since:
        2013.1
      • getTicketsFilePath

        java.lang.String getTicketsFilePath()
        Return the Perforce authentication tickets file path.
        Returns:
        possibly-null Perforce auth tickets file path
        Since:
        2013.1
      • setTrustFilePath

        void setTrustFilePath​(java.lang.String trustFilePath)
        Set the Perforce trust file path.
        Parameters:
        trustFilePath - non-null Perforce trust file path
        Since:
        2013.1
      • getTrustFilePath

        java.lang.String getTrustFilePath()
        Return the Perforce trust file path.
        Returns:
        possibly-null Perforce trust file path
        Since:
        2013.1
      • execStreamCmd

        java.io.InputStream execStreamCmd​(java.lang.String cmdName,
                                          java.lang.String[] cmdArgs,
                                          java.util.Map<java.lang.String,​java.lang.Object> inMap)
                                   throws P4JavaException
        Issue an arbitrary P4Java command to the Perforce server and get the results as a stream.

        This method is intended for low-level commands in the spirit and format of the p4 command line interpreter, and offers a simple way to issue commands to the associated Perforce server without the overhead of the more abstract Java interfaces and methods.

        Note that this method is intended for things like getting file contents, and may have unpredictable results on commands not originally expected to return i/o streams.

        Note that this method does not allow you to set "usage" options for the command; these may be added later. Note also that although option arguments passed to this method must be in a form recognized by P4Java (as defined by the CmdSpec enum), that does not mean the method is being implemented by the interpreter -- the actual implementation depends on the options used to get the server object in the first place from the server factory.

        Parameters:
        cmdName - the command to be issued; must be non-null, and correspond to a Perforce command recognized by P4Java and defined in CmdSpec.
        cmdArgs - the array of command arguments (options and file arguments, etc.) to be sent to the Perforce server. These must be in the form used by the corresponding p4 command line interpreter. Ignored if null.
        inMap - an optional map to be sent to the server as standard input, using the Python map format (-G) form. You must remember to issue the relevant command-specific option to enable this if needed.
        Returns:
        an InputStream on the command output. This will never be null, but it may be empty. You must properly close this stream after use or temporary files may be left lying around the VM's java.io.tmpdir area.
        Throws:
        ConnectionException - if the Perforce server is unreachable or is not connected.
        RequestException - if the Perforce server encounters an error during its processing of the request
        AccessException - if the Perforce server denies access to the caller
        P4JavaException
        Since:
        2013.1
      • execInputStringStreamCmd

        java.io.InputStream execInputStringStreamCmd​(java.lang.String cmdName,
                                                     java.lang.String[] cmdArgs,
                                                     java.lang.String inString)
                                              throws P4JavaException
        Issue an arbitrary P4Java command to the Perforce server and return the results as a stream.

        This method is intended for low-level commands in the spirit and format of the p4 command line interpreter, and offers a simple way to issue commands to the associated Perforce server without the overhead of the more abstract Java interfaces and methods.

        Note that this method is intended for things like getting file contents, and may have unpredictable results on commands not originally expected to return i/o streams.

        Note that this method does not allow you to set "usage" options for the command; these may be added later. Note also that although option arguments passed to this method must be in a form recognized by the p4 command line interpreter, that does not mean the method is being implemented by the interpreter -- the actual implementation depends on the options used to get the server object in the first place from the server factory.

        Parameters:
        cmdName - the command to be issued; must be non-null, and correspond to a Perforce command recognized by P4Java and defined in CmdSpec.
        cmdArgs - the array of command arguments (options and file arguments, etc.) to be sent to the Perforce server. These must be in the form used by the corresponding p4 command line interpreter. Ignored if null.
        inString - an optional string to be sent to the server as standard input unchanged (this must be in the format expected by the server, typically as required when using the "-i" flag to the p4 command line app for the same command). You must remember to issue the relevant command-specific option to enable this if needed.
        Returns:
        an InputStream on the command output. This will never be null, but it may be empty. You must properly close this stream after use or temporary files may be left lying around the VM's java.io.tmpdir area.
        Throws:
        P4JavaException - if an error occurs processing this method and its parameters
        Since:
        2013.1
      • getTrust

        java.lang.String getTrust()
                           throws P4JavaException
        Return the fingerprint for the Perforce SSL connection.

        Note that this fingerprint is generated from the connection, it may not be the same as the one (if any) stored in the trust file.

        Returns:
        possibly-null fingerprint for the Perforce SSL connection.
        Throws:
        P4JavaException - if an error occurs processing this method and its parameters.
        Since:
        2012.1
      • addTrust

        java.lang.String addTrust​(TrustOptions opts)
                           throws P4JavaException
        Approve and add the fingerprint for the Perforce SSL connection. The fingerprint or replacement will be stored in the trust file. If the attribute TrustOptions.isReplacement() is true, then the replacement fingerprint will be stored. Otherwise, the normal fingerprint is stored.

        Note that an exception would be thrown if there is an identity change detected. If you want to trust the new key use the 'force' option.

        Parameters:
        opts - TrustOptions object describing optional parameters; if null, no options are set.
        Returns:
        non-null result message string from the trust operation; this may include the fingerprint for the Perforce server public key.
        Throws:
        P4JavaException - if an error occurs processing this method and its parameters.
        Since:
        2012.1
      • addTrust

        java.lang.String addTrust​(java.lang.String fingerprintValue)
                           throws P4JavaException
        Approve and add the specified fingerprint for the Perforce SSL connection. The fingerprint will be stored in the trust file.
        Parameters:
        fingerprintValue - non-null fingerprint value to be added.
        Returns:
        non-null result message string from the trust operation; this may include the fingerprint for the Perforce server public key.
        Throws:
        P4JavaException - if an error occurs processing this method and its parameters.
        Since:
        2012.1
      • addTrust

        java.lang.String addTrust​(java.lang.String fingerprintValue,
                                  TrustOptions opts)
                           throws P4JavaException
        Approve and add the specified fingerprint or replacement for the Perforce SSL connection. The fingerprint or replacement will be stored in the trust file. If the attribute TrustOptions.isReplacement() is true, then the replacement fingerprint will be stored. Otherwise, the normal fingerprint is stored.
        Parameters:
        fingerprintValue - non-null fingerprint value to be added.
        opts - TrustOptions object describing optional parameters; if null, no options are set.
        Returns:
        non-null result message string from the trust operation; this may include the fingerprint for the Perforce server public key.
        Throws:
        P4JavaException - if an error occurs processing this method and its parameters.
        Since:
        2015.1
      • removeTrust

        java.lang.String removeTrust()
                              throws P4JavaException
        Remove the fingerprint for the Perforce SSL connection. The fingerprint will removed from the trust file.
        Returns:
        non-null result message string from the trust operation; this may include the fingerprint for the Perforce server public key.
        Throws:
        P4JavaException - if an error occurs processing this method and its parameters.
        Since:
        2012.1
      • removeTrust

        java.lang.String removeTrust​(TrustOptions opts)
                              throws P4JavaException
        Remove the fingerprint or replacement for the Perforce SSL connection. The fingerprint or replacement will removed from the trust file. If the attribute TrustOptions.isReplacement() is true, then the replacement fingerprint will be removed. Otherwise the normal fingerprint is removed.
        Parameters:
        opts - TrustOptions object describing optional parameters; if null, no options are set.
        Returns:
        non-null result message string from the trust operation; this may include the fingerprint for the Perforce server public key.
        Throws:
        P4JavaException - if an error occurs processing this method and its parameters.
        Since:
        2015.1
      • getTrusts

        java.util.List<Fingerprint> getTrusts()
                                       throws P4JavaException
        List all fingerprints in the trust file.
        Returns:
        non-null list of known fingerprints in the trust file.
        Throws:
        P4JavaException - if an error occurs processing this method and its parameters.
        Since:
        2012.1
      • getTrusts

        java.util.List<Fingerprint> getTrusts​(TrustOptions opts)
                                       throws P4JavaException
        List all fingerprints or replacements in the trust file. If the attribute TrustOptions.isReplacement() is true, then replacement fingerprints will be returned. Otherwise, normal fingerprints are returned.
        Parameters:
        opts - TrustOptions object describing optional parameters; if null, no options are set.
        Returns:
        non-null list of fingerprints in the trust file.
        Throws:
        P4JavaException - if an error occurs processing this method and its parameters.
        Since:
        2015.1