|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.perforce.p4java.impl.mapbased.server.Server
com.perforce.p4java.impl.mapbased.rpc.RpcServer
com.perforce.p4java.impl.mapbased.rpc.NtsServerImpl
public class NtsServerImpl
NTS (non-thread-safe) version of the P4Java RPC implementation.
By "not thread safe" we really mean that it's up to the consumer to synchronize calls to the server object; if you want a thread-safe implementation see the OneShotServerImpl class (which is marginally slower but thread safe). The intention here is that if you can guarantee that only one thread at a time will access the connect / disconnect and exec series of methods on this object, you can use this class, which will typically have lower network connection latency than the OneShotServerImpl implementation; overll throughput, though, should be roughly comparable for both implementations over time.
Field Summary | |
---|---|
static boolean |
DEFAULT_STATUS
True IFF this is the default implementation. |
protected RpcPacketDispatcher |
dispatcher
|
static String |
IMPL_COMMENTS
Implementation-specific comments (dependencies, limitations, etc.). |
static int |
MINIMUM_SUPPORTED_SERVER_LEVEL
The minimum Perforce server level required by this implementation. |
static String |
PROTOCOL_NAME
The specific protocol name to be used in URIs for this implementation. |
protected ProtocolCommand |
protocolSpecs
|
protected RpcConnection |
rpcConnection
|
static String |
SCREEN_NAME
The short-form name (display name) of this implementation. |
static String |
SSL_PROTOCOL_NAME
The specific SSL protocol name to be used in URIs for this implementation. |
static String |
TRACE_PREFIX
What we use as a P4JTracer trace prefix for methods here. |
Constructor Summary | |
---|---|
NtsServerImpl()
|
Method Summary | |
---|---|
void |
connect()
Try to establish an actual RPC connection to the target Perforce server. |
void |
disconnect()
Try to cleanly disconnect from the Perforce server at the other end of the current connection (with the emphasis on "cleanly"). |
Map<String,Object>[] |
execInputStringMapCmd(String cmdName,
String[] cmdArgs,
String inString)
Issue an arbitrary P4Java command to the Perforce server and return the results as a map. |
List<Map<String,Object>> |
execInputStringMapCmdList(String cmdName,
String[] cmdArgs,
String inString)
Issue an arbitrary P4Java command to the Perforce server and return the results as a list of maps. |
List<Map<String,Object>> |
execInputStringMapCmdList(String cmdName,
String[] cmdArgs,
String inString,
IFilterCallback filterCallback)
Issue an arbitrary P4Java command to the Perforce server and return the results as a list of maps. |
InputStream |
execInputStringStreamCmd(String cmdName,
String[] cmdArgs,
String inString)
Issue an arbitrary P4Java command to the Perforce server and return the results as a stream. |
void |
execInputStringStreamingMapCmd(String cmdName,
String[] cmdArgs,
String inString,
IStreamingCallback callback,
int key)
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.). |
void |
execInputStringStreamingMapComd(String cmdName,
String[] cmdArgs,
String inString,
IStreamingCallback callback,
int key)
Deprecated. As of release 2013.1, replaced by execInputStringStreamingMapCmd(java.lang.String, java.lang.String[], java.lang.String, com.perforce.p4java.server.callback.IStreamingCallback, int) |
Map<String,Object>[] |
execMapCmd(String cmdName,
String[] cmdArgs,
Map<String,Object> inMap)
Issue an arbitrary P4Java command to the Perforce server and return the results as a map. |
protected Map<String,Object>[] |
execMapCmd(String cmdName,
String[] cmdArgs,
Map<String,Object> inMap,
String inString,
boolean ignoreCallbacks,
IStreamingCallback callback,
int callbackKey,
IFilterCallback filterCallback)
|
List<Map<String,Object>> |
execMapCmdList(String cmdName,
String[] cmdArgs,
Map<String,Object> inMap)
Issue an arbitrary P4Java command to the Perforce server and return the results as a list of maps. |
List<Map<String,Object>> |
execMapCmdList(String cmdName,
String[] cmdArgs,
Map<String,Object> inMap,
IFilterCallback filterCallback)
Issue an arbitrary P4Java command to the Perforce server and return the results as a list of maps. |
protected List<Map<String,Object>> |
execMapCmdList(String cmdName,
String[] cmdArgs,
Map<String,Object> inMap,
String inString,
boolean ignoreCallbacks,
IStreamingCallback callback,
int callbackKey,
IFilterCallback filterCallback)
|
Map<String,Object>[] |
execQuietMapCmd(String cmdName,
String[] cmdArgs,
Map<String,Object> inMap)
Issue an arbitrary P4Java command to the Perforce server and return the results as a map without invoking any command callbacks. |
List<Map<String,Object>> |
execQuietMapCmdList(String cmdName,
String[] cmdArgs,
Map<String,Object> inMap)
Issue an arbitrary P4Java command to the Perforce server and return the results as a list of maps without invoking any command callbacks. |
InputStream |
execQuietStreamCmd(String cmdName,
String[] cmdArgs)
Issue an arbitrary P4Java command to the Perforce server and get the results as a stream without invoking any command callbacks. |
InputStream |
execStreamCmd(String cmdName,
String[] cmdArgs)
Issue an arbitrary P4Java command to the Perforce server and get the results as a stream. |
InputStream |
execStreamCmd(String cmdName,
String[] cmdArgs,
Map<String,Object> inMap)
Issue an arbitrary P4Java command to the Perforce server and get the results as a stream. |
protected InputStream |
execStreamCmd(String cmdName,
String[] cmdArgs,
Map<String,Object> inMap,
String inString,
boolean ignoreCallbacks)
Note that this method does the access / request exception processing here rather than passing things up the stack; we may introduce an extended version of this method to take the map array as an output parameter in later releases. |
void |
execStreamingMapCommand(String cmdName,
String[] cmdArgs,
Map<String,Object> inMap,
IStreamingCallback callback,
int key)
Issue a streaming map command to the Perforce server, using an optional map for any input expected by the server (such as label or job specs, etc.). |
RpcConnection |
getRpcConnection()
|
ServerStatus |
init(String host,
int port,
Properties props)
Shorthand for the options-based init() above, but with a null opts arg. |
ServerStatus |
init(String host,
int port,
Properties props,
UsageOptions opts)
Shorthand for the options-based init() above, but with a fasle secure arg. |
ServerStatus |
init(String host,
int port,
Properties props,
UsageOptions opts,
boolean secure)
Shorthand for the options-based init() above, but with a fasle secure arg. |
ServerStatus |
init(String host,
int port,
Properties props,
UsageOptions opts,
boolean secure,
String rsh)
Initialize the server. |
boolean |
setCharsetName(String charsetName)
Need to override this method at this level as we keep the connection open here... |
void |
setRpcConnection(RpcConnection rpcConnection)
|
protected ExternalEnv |
setupCmd(String cmdName,
String[] cmdArgs,
Map<String,Object> inMap,
boolean ignoreCallbacks,
int cmdCallBackKey,
boolean isStream)
Factors out the command setup that's common to stream and map commands. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final String SCREEN_NAME
public static final String IMPL_COMMENTS
public static final String PROTOCOL_NAME
public static final String SSL_PROTOCOL_NAME
public static final int MINIMUM_SUPPORTED_SERVER_LEVEL
public static final boolean DEFAULT_STATUS
public static final String TRACE_PREFIX
protected ProtocolCommand protocolSpecs
protected RpcPacketDispatcher dispatcher
protected RpcConnection rpcConnection
Constructor Detail |
---|
public NtsServerImpl()
Method Detail |
---|
public ServerStatus init(String host, int port, Properties props, UsageOptions opts, boolean secure, String rsh) throws ConfigException, ConnectionException
host
- the Perforce server hostname or IP address as passed in to the factory methodport
- the Perforce server port number as passed in to the factory methodprops
- the properties passed in to the factory methodopts
- the UsageOptions object to be associated with the server object; if null,
the server should construct a new default UsageOptions object.secure
- indicates whether the server is secure (SSL) or not.rsh
- the 'rsh' mode server launch command.
ConfigException
- if there's something wrong with the
specified configuration or associated config files, etc.
ConnectionException
- if the server is unreachable on initialization, and that
unreachability is serious and unrecoverable (there are implementations that don't
really do connections per se, so they may not consider this an error or even try
connecting during initialisation).RpcServer.init(java.lang.String, int, java.util.Properties, com.perforce.p4java.option.UsageOptions, boolean)
public ServerStatus init(String host, int port, Properties props, UsageOptions opts, boolean secure) throws ConfigException, ConnectionException
init
in interface IServerControl
init
in class RpcServer
host
- the Perforce server hostname or IP address as passed in to the factory methodport
- the Perforce server port number as passed in to the factory methodprops
- the properties passed in to the factory methodopts
- the UsageOptions object to be associated with the server object; if null,
the server should construct a new default UsageOptions object.
ConfigException
- if there's something wrong with the
specified configuration or associated config files, etc.
ConnectionException
- if the server is unreachable on initialization, and that
unreachability is serious and unrecoverable (there are implementations that don't
really do connections per se, so they may not consider this an error or even try
connecting during initialisation).RpcServer.init(java.lang.String, int, java.util.Properties, com.perforce.p4java.option.UsageOptions, boolean)
public ServerStatus init(String host, int port, Properties props, UsageOptions opts) throws ConfigException, ConnectionException
init
in interface IServerControl
init
in class RpcServer
host
- the Perforce server hostname or IP address as passed in to the factory methodport
- the Perforce server port number as passed in to the factory methodprops
- the properties passed in to the factory methodopts
- the UsageOptions object to be associated with the server object; if null,
the server should construct a new default UsageOptions object.
ConfigException
- if there's something wrong with the
specified configuration or associated config files, etc.
ConnectionException
- if the server is unreachable on initialization, and that
unreachability is serious and unrecoverable (there are implementations that don't
really do connections per se, so they may not consider this an error or even try
connecting during initialisation).RpcServer.init(java.lang.String, int, java.util.Properties, com.perforce.p4java.option.UsageOptions)
public ServerStatus init(String host, int port, Properties props) throws ConfigException, ConnectionException
init
in interface IServerControl
init
in class RpcServer
host
- the Perforce server hostname or IP address as passed in to the factory methodport
- the Perforce server port number as passed in to the factory method
ConfigException
- if there's something wrong with the
specified configuration or associated config files, etc.
ConnectionException
- if the server is unreachable on initialization, and that
unreachability is serious and unrecoverable (there are implementations that don't
really do connections per se, so they may not consider this an error or even try
connecting during initialisation).RpcServer.init(java.lang.String, int, java.util.Properties)
public void connect() throws ConnectionException, AccessException, RequestException, ConfigException
connect
in interface IServer
connect
in class RpcServer
ConnectionException
- if the Perforce server is unreachable or is not
connected.
AccessException
- if the Perforce server denies access to the caller
RequestException
- if the Perforce server encounters an error during
its processing of the request
ConfigException
- if local I/O exception occursServer.connect()
public void disconnect() throws ConnectionException, AccessException
disconnect
in interface IServer
disconnect
in class RpcServer
ConnectionException
AccessException
Server.disconnect()
public boolean setCharsetName(String charsetName) throws UnsupportedCharsetException
setCharsetName
in interface IServer
setCharsetName
in class Server
charsetName
- charset name; if null, resets the charset to "no charset".
UnsupportedCharsetException
- if the Perforce server doesn't
support or recognize the charset name.Server.setCharsetName(java.lang.String)
public Map<String,Object>[] execMapCmd(String cmdName, String[] cmdArgs, Map<String,Object> inMap) throws ConnectionException, AccessException, RequestException
IServer
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.
execMapCmd
in interface IServer
execMapCmd
in class Server
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.
ConnectionException
- if the Perforce server is unreachable or is not
connected.
AccessException
- if the Perforce server denies access to the caller
RequestException
- if the Perforce server encounters an error during
its processing of the requestServer.execMapCmd(java.lang.String, java.lang.String[], java.util.Map)
public List<Map<String,Object>> execMapCmdList(String cmdName, String[] cmdArgs, Map<String,Object> inMap) throws P4JavaException
IOptionsServer
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.
execMapCmdList
in interface IOptionsServer
execMapCmdList
in class Server
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.
P4JavaException
- if an error occurs processing this method and its parameters.Server.execMapCmdList(java.lang.String, java.lang.String[], java.util.Map)
public List<Map<String,Object>> execMapCmdList(String cmdName, String[] cmdArgs, Map<String,Object> inMap, IFilterCallback filterCallback) throws P4JavaException
IOptionsServer
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.
execMapCmdList
in interface IOptionsServer
execMapCmdList
in class Server
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.filterCallback
- an optional filter callback to decide on skipping or keeping individual
key/value pairs as part of the results map.
P4JavaException
- if an error occurs processing this method and its parameters.Server.execMapCmdList(java.lang.String, java.lang.String[], java.util.Map, com.perforce.p4java.server.callback.IFilterCallback)
public Map<String,Object>[] execQuietMapCmd(String cmdName, String[] cmdArgs, Map<String,Object> inMap) throws ConnectionException, RequestException, AccessException
IServer
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...
execQuietMapCmd
in interface IServer
execQuietMapCmd
in class Server
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.
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 callerServer.execQuietMapCmd(java.lang.String, java.lang.String[], java.util.Map)
public List<Map<String,Object>> execQuietMapCmdList(String cmdName, String[] cmdArgs, Map<String,Object> inMap) throws P4JavaException
IOptionsServer
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...
execQuietMapCmdList
in interface IOptionsServer
execQuietMapCmdList
in class Server
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.
P4JavaException
- if an error occurs processing this method and its parametersServer.execQuietMapCmdList(java.lang.String, java.lang.String[], java.util.Map)
public Map<String,Object>[] execInputStringMapCmd(String cmdName, String[] cmdArgs, String inString) throws P4JavaException
IServer
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.
execInputStringMapCmd
in interface IServer
execInputStringMapCmd
in class Server
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.
P4JavaException
- if an error occurs processing this method and its parametersServer.execInputStringMapCmd(java.lang.String, java.lang.String[], java.lang.String)
public List<Map<String,Object>> execInputStringMapCmdList(String cmdName, String[] cmdArgs, String inString) throws P4JavaException
IOptionsServer
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.
execInputStringMapCmdList
in interface IOptionsServer
execInputStringMapCmdList
in class Server
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.
P4JavaException
- if an error occurs processing this method and its parametersServer.execInputStringMapCmdList(java.lang.String, java.lang.String[], java.lang.String)
public List<Map<String,Object>> execInputStringMapCmdList(String cmdName, String[] cmdArgs, String inString, IFilterCallback filterCallback) throws P4JavaException
IOptionsServer
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.
execInputStringMapCmdList
in interface IOptionsServer
execInputStringMapCmdList
in class Server
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.
P4JavaException
- if an error occurs processing this method and its parametersServer.execInputStringMapCmdList(java.lang.String, java.lang.String[], java.lang.String, com.perforce.p4java.server.callback.IFilterCallback)
@Deprecated public void execInputStringStreamingMapComd(String cmdName, String[] cmdArgs, String inString, IStreamingCallback callback, int key) throws P4JavaException
execInputStringStreamingMapCmd(java.lang.String, java.lang.String[], java.lang.String, com.perforce.p4java.server.callback.IStreamingCallback, int)
IServer
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.
execInputStringStreamingMapComd
in interface IServer
execInputStringStreamingMapComd
in class Server
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.
P4JavaException
- if an error occurs processing this method and its parameters.Server.execInputStringStreamingMapComd(java.lang.String, java.lang.String[], java.lang.String, com.perforce.p4java.server.callback.IStreamingCallback, int)
public void execInputStringStreamingMapCmd(String cmdName, String[] cmdArgs, String inString, IStreamingCallback callback, int key) throws P4JavaException
IOptionsServer
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.
execInputStringStreamingMapCmd
in interface IOptionsServer
execInputStringStreamingMapCmd
in class Server
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.
P4JavaException
- if an error occurs processing this method and its parameters.Server.execInputStringStreamingMapCmd(java.lang.String, java.lang.String[], java.lang.String, com.perforce.p4java.server.callback.IStreamingCallback, int)
protected Map<String,Object>[] execMapCmd(String cmdName, String[] cmdArgs, Map<String,Object> inMap, String inString, boolean ignoreCallbacks, IStreamingCallback callback, int callbackKey, IFilterCallback filterCallback) throws ConnectionException, AccessException, RequestException
ConnectionException
AccessException
RequestException
protected List<Map<String,Object>> execMapCmdList(String cmdName, String[] cmdArgs, Map<String,Object> inMap, String inString, boolean ignoreCallbacks, IStreamingCallback callback, int callbackKey, IFilterCallback filterCallback) throws ConnectionException, AccessException, RequestException
ConnectionException
AccessException
RequestException
public void execStreamingMapCommand(String cmdName, String[] cmdArgs, Map<String,Object> inMap, IStreamingCallback callback, int key) throws P4JavaException
IServer
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.
execStreamingMapCommand
in interface IServer
execStreamingMapCommand
in class Server
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.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.
P4JavaException
- if an error occurs processing this method and its parameters.Server.execStreamingMapCommand(java.lang.String, java.lang.String[], java.util.Map, com.perforce.p4java.server.callback.IStreamingCallback, int)
public InputStream execQuietStreamCmd(String cmdName, String[] cmdArgs) throws ConnectionException, RequestException, AccessException
IServer
Basically equivalent to execStreamCmd 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...
execQuietStreamCmd
in interface IServer
execQuietStreamCmd
in class Server
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.
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 callerServer.execQuietStreamCmd(java.lang.String, java.lang.String[])
public InputStream execStreamCmd(String cmdName, String[] cmdArgs) throws ConnectionException, RequestException, AccessException
IServer
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.
execStreamCmd
in interface IServer
execStreamCmd
in class Server
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.
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 callerServer.execStreamCmd(java.lang.String, java.lang.String[])
public InputStream execStreamCmd(String cmdName, String[] cmdArgs, Map<String,Object> inMap) throws P4JavaException
IOptionsServer
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.
execStreamCmd
in interface IOptionsServer
execStreamCmd
in class Server
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.
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
Server.execStreamCmd(java.lang.String, java.lang.String[], java.util.Map)
public InputStream execInputStringStreamCmd(String cmdName, String[] cmdArgs, String inString) throws P4JavaException
IOptionsServer
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.
execInputStringStreamCmd
in interface IOptionsServer
execInputStringStreamCmd
in class Server
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.
P4JavaException
- if an error occurs processing this method and its parameterscom.perforce.p4java.impl.mapbased.server.Server#execInputStringStreamCmd(java.lang.String, java.lang.String)
protected InputStream execStreamCmd(String cmdName, String[] cmdArgs, Map<String,Object> inMap, String inString, boolean ignoreCallbacks) throws ConnectionException, RequestException, AccessException
ConnectionException
RequestException
AccessException
protected ExternalEnv setupCmd(String cmdName, String[] cmdArgs, Map<String,Object> inMap, boolean ignoreCallbacks, int cmdCallBackKey, boolean isStream) throws ConnectionException, AccessException, RequestException
ConnectionException
AccessException
RequestException
public RpcConnection getRpcConnection()
public void setRpcConnection(RpcConnection rpcConnection)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |