Open (Daemon subroutine): Difference between revisions

From m204wiki
Jump to navigation Jump to search
 
(10 intermediate revisions by 3 users not shown)
Line 4: Line 4:
==Syntax==
==Syntax==
{{Template:Daemon:Open syntax}}
{{Template:Daemon:Open syntax}}
===Syntax terms===
===Syntax terms===
<table class="syntaxTable">
<table class="syntaxTable">
<tr><th>%daemon</th>
<tr><th nowrap>%daemon</th>
<td>A previously defined <var>[[Daemon class|Daemon]]</var> object. </td></tr>
<td>A previously defined <var>Daemon</var> object. </td></tr>
 
<tr><th>string</th>
<tr><th>string</th>
<td>The name of the file or group to be opened on the daemon thread. <var class="term">string</var> <b><i>is</i></b> case sensitive; you must use all uppercase characters.
<td>The name of the file or group to be opened on the daemon thread. <var class="term">string</var> <b><i>is</i></b> case sensitive; you must use all-uppercase characters.
<p>Use the following syntax for <var class="term">string</var> (note that Temp groups are not allowed):</p>
<p>Use the following syntax for <var class="term">string</var> (note that Temp groups are not allowed):</p>
<p class="syntax"><span class="squareb">[</span><span class="literal">File</span> <span class="squareb">| [</span><span class="literal">Perm</span><span class="squareb">]</span> <span class="literal">Group</span><span class="squareb">]</span> <span class="term">name</span><span class="squareb">]</span> </p></td></tr>
<p class="syntax"><span class="squareb">[</span><span class="literal">File</span> <span class="squareb">| [</span><span class="literal">Perm</span><span class="squareb">]</span> <span class="literal">Group</span><span class="squareb">]</span> <span class="term">name</span><span class="squareb">]</span> </p></td></tr>
<tr><th><var>Default</var></th>
<tr><th><var>Default</var></th>
<td>An optional, but [[Methods#Named parameters|name required]], parameter which specifies whether the file or group to be opened will be the default file or group for this the daemon thread. <var class="term">Default</var> is a [[Boolean enumeration]] which defaults to <code>False</code>, meaning that the <var>Open</var> method does not change the default file on the daemon thread.</td></tr>
<td>An optional, [[Methods#Named parameters|name required]], parameter which specifies whether the file or group to be opened will be the default file or group for this the daemon thread. <var>Default</var> is a [[Boolean enumeration]] that defaults to <var>False</var>, meaning that the <var>Open</var> method does not change the default file on the daemon thread.</td></tr>
</table>
</table>


==Exceptions==
==Exceptions==
This subroutine can throw the following exception:<dl>
This subroutine can throw the following exceptions:
<dt><var>[[DaemonLost_class|DaemonLost]]</var>
<dl>
<dd>If the daemon object is lost (probably restarted), a <var>DaemonLost</var> exception is thrown. This exception will only be thrown in <var class="product">[[Sirius Mods|Sirius Mods]]</var> Version 7.6 and later.
<dt><var>[[DaemonLost_class|DaemonLost]]</var>  
<dd>If the daemon object is lost (probably restarted), a <var>DaemonLost</var> exception is thrown. This exception will only be thrown in <var class="product">Sirius Mods</var> Version 7.6 and later.
 
<dt><var>[[IncorrectDaemonState class|IncorrectDaemonState]]</var>
<dd>If the daemon thread is asynchronous,
an <var>IncorrectDaemonState</var> exception is thrown. This exception will only be thrown in <var class="product">Sirius Mods</var> version 8.1 and later.  
</dl>
</dl>


==Usage notes==
==Usage notes==
<ul>
<ul>
<li><var>Open</var> cannot open a file or group that is not already open on the master thread. To open a file not open on the master thread, issue an OPEN command using the [[Run (Daemon function)]].  
<li><var>Open</var> cannot open a file or group that is not already open on the master thread. To open a file not open on the master thread, issue an <var>OPEN</var> command using the <var>[[Run (Daemon function)|Run]]</var> method.  
<li>It is a request-cancelling error to use <var>Open</var> against a file or group that the issuing user does not have open.
<li>It is a request-cancelling error to use <var>Open</var> against a file or group that the issuing user does not have open.
<li>It is a (catchable) request-cancelling error if a group open fails because of an FTBL full condition.</ul>
<li>It is a (catchable) request-cancelling error if a group open fails because of an FTBL full condition.</ul>

Latest revision as of 00:05, 30 January 2013

Open a file/group on the Daemon thread (Daemon class)

Open is used to open a file or group on the daemon thread that is already open on the invoking (master) thread. The file or group is opened with the same privileges with which it is open on the master thread.

Syntax

daemon:Open( string, [Default= boolean]) Throws DaemonLost, IncorrectDaemonState

Syntax terms

%daemon A previously defined Daemon object.
string The name of the file or group to be opened on the daemon thread. string is case sensitive; you must use all-uppercase characters.

Use the following syntax for string (note that Temp groups are not allowed):

[File | [Perm] Group] name]

Default An optional, name required, parameter which specifies whether the file or group to be opened will be the default file or group for this the daemon thread. Default is a Boolean enumeration that defaults to False, meaning that the Open method does not change the default file on the daemon thread.

Exceptions

This subroutine can throw the following exceptions:

DaemonLost
If the daemon object is lost (probably restarted), a DaemonLost exception is thrown. This exception will only be thrown in Sirius Mods Version 7.6 and later.
IncorrectDaemonState
If the daemon thread is asynchronous, an IncorrectDaemonState exception is thrown. This exception will only be thrown in Sirius Mods version 8.1 and later.

Usage notes

  • Open cannot open a file or group that is not already open on the master thread. To open a file not open on the master thread, issue an OPEN command using the Run method.
  • It is a request-cancelling error to use Open against a file or group that the issuing user does not have open.
  • It is a (catchable) request-cancelling error if a group open fails because of an FTBL full condition.

Examples

These are all valid Open calls:

%daem:open('MYPROC') %daem:open('GROUP SIRSYS') %daem:open('PERM GROUP MUMBLE') %daem:open('FILE SIRLOCAL')

See also