Interface IOptionsServer

All Superinterfaces:
IAttributeDelegator, IBranchDelegator, IBranchesDelegator, IChangeDelegator, IChangesDelegator, IClientDelegator, IClientsDelegator, ICommitDelegator, IConfigureDelegator, ICounterDelegator, ICountersDelegator, IDBSchemaDelegator, IDepotDelegator, IDepotsDelegator, IDescribeDelegator, IDiff2Delegator, IDirsDelegator, IDiskspaceDelegator, IDuplicateDelegator, IExportDelegator, IExtensionDelegator, IFileAnnotateDelegator, IFileLogDelegator, IFilesDelegator, IFixDelegator, IFixesDelegator, IFstatDelegator, IGraphCommitLogDelegator, IGraphListTreeDelegator, IGraphReceivePackDelegator, IGraphRevListDelegator, IGraphShowRefDelegator, IGrepDelegator, IGroupDelegator, IGroupsDelegator, IHelixCommandExecutor, IInfoDelegator, IIntegratedDelegator, IInterchangesDelegator, IJobDelegator, IJobsDelegator, IJobSpecDelegator, IJournalWaitDelegator, IKeyDelegator, IKeysDelegator, ILabelDelegator, ILabelsDelegator, ILicenseDelegator, IListDelegator, ILogin2Delegator, ILoginDelegator, ILogoutDelegator, ILogTailDelegator, IMonitorDelegator, IMoveDelegator, IObliterateDelegator, IOpenedDelegator, IPasswdDelegator, IPrintDelegator, IPropertyDelegator, IProtectDelegator, IProtectsDelegator, IReloadDelegator, IRenameClientDelegator, IRenameUserDelegator, IReposDelegator, IReviewDelegator, IReviewsDelegator, ISearchDelegator, IServer, ISizesDelegator, ISpecDelegator, IStatDelegator, IStreamDelegator, IStreamlogDelegator, IStreamsDelegator, ITagDelegator, ITriggersDelegator, IUnloadDelegator, IUserDelegator, IUsersDelegator, IVerifyDelegator
All Known Subinterfaces:
IStreamingServer
All Known Implementing Classes:
NtsServerImpl, OneShotServerImpl, RpcServer, Server

public interface IOptionsServer extends IServer
An extension of the basic IServer interface to provide Options object-based method access to Perforce server functionality and objects.

Note that unless otherwise noted, individual method options objects can be null; if they're null, the individual method Javadoc will spell out what default options apply (if any) in that case.

Note that in individual method Javadoc comments below, all method "throws" clauses are assumed to throw the normal complement of RequestException, ConnectionException, and AccessException with their usual semantics unless otherwise noted. The three standard P4JavaException classes and the broad causes for their being thrown are:

 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.
 
  • Method Details

    • execInputStringMapCmdList

      List<Map<String,Object>> execInputStringMapCmdList(String cmdName, String[] cmdArgs, 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

      List<Map<String,Object>> execInputStringMapCmdList(String cmdName, String[] cmdArgs, 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

      List<Map<String,Object>> execMapCmdList(String cmdName, 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

      List<Map<String,Object>> execQuietMapCmdList(String cmdName, String[] cmdArgs, Map<String,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(String cmdName, String[] cmdArgs, 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(String userName, 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(String userName, String serverId, 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

      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(String ticketsFilePath)
      Set the Perforce authentication tickets file path.
      Parameters:
      ticketsFilePath - non-null Perforce auth tickets file path
      Since:
      2013.1
    • getTicketsFilePath

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

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

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

      InputStream execStreamCmd(String cmdName, String[] cmdArgs, Map<String,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

      InputStream execInputStringStreamCmd(String cmdName, String[] cmdArgs, 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

      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

      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

      String addTrust(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

      String addTrust(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

      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

      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

      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

      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
    • setGlobalOptions

      void setGlobalOptions(List<String> s)
      Set Global Option for perforce commands
      Parameters:
      s - given global options as a list
      Since:
      2025.2
    • getGlobalOptions

      List<String> getGlobalOptions()
      Returns the list of all Global Option for a server
      Returns:
      non-null list of global options
      Since:
      2025.2