Author: jstephens
Date: 2006-05-29 14:28:01 +0200 (Mon, 29 May 2006)
New Revision: 2220
Log:
Remaining NdbBlob class members.
Updated NdbBlob class diagram.
Added missing entity def (caused validation error in make depend).
Make depend.
Reformat ndb-classes.xml.
Modified:
trunk/ndbapi/Makefile
trunk/ndbapi/images/NdbBlob-class.png
trunk/ndbapi/ndb-classes.xml
trunk/ndbapi/ndb.en.ent
trunk/ndbapi/xmi/Ndb.xmi
Modified: trunk/ndbapi/Makefile
===================================================================
--- trunk/ndbapi/Makefile 2006-05-28 04:31:46 UTC (rev 2219)
+++ trunk/ndbapi/Makefile 2006-05-29 12:28:01 UTC (rev 2220)
@@ -39,7 +39,7 @@
# Dependency list for NDB API document
# This variable is updated by "make depend"
-NDBAPI_SRCS = $(NDBAPI_SRCS_EXTRA) ndbapi.xml overview.xml tips-tricks-problems.xml mgm-api.xml ndb-classes.xml images/Ndb-class.png images/Ndb-cluster-connection-class.png images/NdbBlob-class.png images/___.png errors.xml examples.xml
+NDBAPI_SRCS = $(NDBAPI_SRCS_EXTRA) ndbapi.xml overview.xml tips-tricks-problems.xml mgm-api.xml ndb-classes.xml images/Ndb-class.png images/Ndb-cluster-connection-class.png images/NdbBlob-class.png errors.xml examples.xml
ndbapi-prepped.xml: $(NDBAPI_SRCS)
Modified: trunk/ndbapi/images/NdbBlob-class.png
===================================================================
(Binary files differ)
Modified: trunk/ndbapi/ndb-classes.xml
===================================================================
--- trunk/ndbapi/ndb-classes.xml 2006-05-28 04:31:46 UTC (rev 2219)
+++ trunk/ndbapi/ndb-classes.xml 2006-05-29 12:28:01 UTC (rev 2220)
@@ -149,7 +149,9 @@
</row>
<row>
<entry><literal>startTransaction()</literal></entry>
- <entry>Begins a transaction. (See <xref linkend="class-ndbtransaction"/>.)</entry>
+ <entry>Begins a transaction. (See
+ <xref
+ linkend="class-ndbtransaction"/>.)</entry>
</row>
<row>
<entry><literal>closeTransaction()</literal></entry>
@@ -170,7 +172,9 @@
</row>
<row>
<entry><literal>getNdbError()</literal></entry>
- <entry>Retrieves an error. (See <xref linkend="struct-ndberror"/>.)</entry>
+ <entry>Retrieves an error. (See
+ <xref
+ linkend="struct-ndberror"/>.)</entry>
</row>
</tbody>
</tgroup>
@@ -248,7 +252,8 @@
<replaceable>ndb_cluster_connection</replaceable> is an
instance of <literal>Ndb_cluster_connection</literal>,
which represents a cluster connectstring. (See
- <xref linkend="class-ndb-cluster-connection"/>.)
+ <xref
+ linkend="class-ndb-cluster-connection"/>.)
</para>
</listitem>
@@ -374,7 +379,8 @@
<para>
Each scan or index operation uses an extra
<literal>NdbTransaction</literal> object. See
- <xref linkend="class-ndbtransaction"/>.
+ <xref
+ linkend="class-ndbtransaction"/>.
</para>
</note>
@@ -761,9 +767,10 @@
<para>
<replaceable>table</replaceable>: A pointer to a
<literal>Table</literal> object. (See
- <xref linkend="class-table"/>.) This is used to
- determine on which node the Transaction Co-Ordinator
- should run.
+ <xref
+ linkend="class-table"/>.) This
+ is used to determine on which node the Transaction
+ Co-Ordinator should run.
</para>
</listitem>
@@ -793,7 +800,8 @@
<para>
An <literal>NdbTransaction</literal> object. See
- <xref linkend="class-ndbtransaction"/>.
+ <xref
+ linkend="class-ndbtransaction"/>.
</para>
</formalpara>
@@ -832,7 +840,8 @@
these two methods to close the transaction once it has been
completed, whether or not the transaction succeeded.
- <remark role="todo">
+ <remark
+ role="todo">
[js] Update the previous link to point directly to the
method once the section for it has been created.
</remark>
@@ -1084,7 +1093,8 @@
<quote>giving up</quote> and reporting that no events
were available (that is, before the methyod
automatically returns
- <emphasis role="bold">0</emphasis>).
+ <emphasis role="bold"
+ >0</emphasis>).
</para>
</listitem>
@@ -1093,7 +1103,8 @@
The index of the most recent global checkpoint.
Normally, this may safely be permitted to assume its
default value, which is
- <emphasis role="bold">0</emphasis>.
+ <emphasis role="bold"
+ >0</emphasis>.
</para>
</listitem>
@@ -1205,7 +1216,8 @@
object representing the next event in a subscription queue, if
there is such an event. If there is no event in the queue, it
returns <literal>NULL</literal> instead. (See
- <xref linkend="class-ndbeventoperation"/>.)
+ <xref
+ linkend="class-ndbeventoperation"/>.)
</para>
</formalpara>
@@ -1289,7 +1301,8 @@
passing the code (an <literal>int</literal>) to it as a
parameter. For a listing of NDB API error codes and
corresponding error messages, see
- <xref linkend="ndb-error-messages"/>.
+ <xref
+ linkend="ndb-error-messages"/>.
</para>
</formalpara>
@@ -1337,20 +1350,20 @@
<section id="class-ndb-cluster-connection">
<title>The <literal>Ndb_cluster_connection</literal> Class</title>
-
+
<abstract>
<para>
Represents a connection to a cluster of data nodes.
</para>
-
+
</abstract>
-
- <formalpara>
+ <formalpara>
+
<title>Description</title>
-
- <para>
+
+ <para>
Any NDB application program should begin with the creation of a
single <literal>Ndb_cluster_connection</literal> object, and
should make use of one and only one
@@ -1387,8 +1400,7 @@
<tbody>
<row>
<entry><literal>Ndb_cluster_connection()</literal></entry>
- <entry>Constructor; Creates a connection to a cluster of
- data nodes.</entry>
+ <entry>Constructor; Creates a connection to a cluster of data nodes.</entry>
</row>
<row>
<entry><literal>connect()</literal></entry>
@@ -1409,7 +1421,8 @@
<mediaobject>
<imageobject>
- <imagedata fileref="images/Ndb-cluster-connection-class.png" format="PNG"/>
+ <imagedata fileref="images/Ndb-cluster-connection-class.png"
+ format="PNG"/>
</imageobject>
<textobject>
<phrase lang="en">UML Diagram showing methods and signatures of
@@ -1421,237 +1434,279 @@
The sections that follow provide more detailed descriptions,
signatures, and examples of use for each of these methods.
</para>
-
+
<section id="class-ndb-cluster-connection-constructor">
+
<title><literal>Ndb_cluster_connection</literal> Class Constructor</title>
-
- <formalpara>
- <title>Description</title>
-
- <para>
- This method creates a connection to a MySQL cluster, that is, to a
- cluster of data nodes. The object returned by this method is
- required in order to instantiate an <literal>Ndb</literal> object.
- (See <xref linkend="class-ndb"/>.) Thus, every NDB API application
- requires the use of an <literal>Ndb_cluster_connection</literal>.
- </para>
- </formalpara>
-
- <formalpara>
- <title>Signature</title>
-
- <para>
+
+ <formalpara>
+
+ <title>Description</title>
+
+ <para>
+ This method creates a connection to a MySQL cluster, that is,
+ to a cluster of data nodes. The object returned by this method
+ is required in order to instantiate an <literal>Ndb</literal>
+ object. (See <xref linkend="class-ndb"
+ />.) Thus,
+ every NDB API application requires the use of an
+ <literal>Ndb_cluster_connection</literal>.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Signature</title>
+
+ <para>
<programlisting>
Ndb_cluster_connection
(
const char *<replaceable>connectstring</replaceable> = 0
)
</programlisting>
- </para>
- </formalpara>
-
- <formalpara>
- <title>Parameters</title>
-
- <para>
- This method requires a singel parameter — a
- <replaceable>connectstring</replaceable> pointing to the location
- of the management server.
- </para>
- </formalpara>
-
- <formalpara>
- <title>Returns</title>
-
- <para>
- An instance of <literal>Ndb_cluster_connection</literal>.
- </para>
- </formalpara>
-
- <formalpara>
- <title>Example</title>
-
- <para>
-
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Parameters</title>
+
+ <para>
+ This method requires a singel parameter — a
+ <replaceable>connectstring</replaceable> pointing to the
+ location of the management server.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Returns</title>
+
+ <para>
+ An instance of <literal>Ndb_cluster_connection</literal>.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Example</title>
+
+ <para>
<programlisting>
[<emphasis>To be written...</emphasis>]
</programlisting>
- </para>
- </formalpara>
-
-
-</section><section id="class-ndb-cluster-connection-connect">
- <title><literal>Ndb_cluster_connection::connect()</literal></title>
-
- <formalpara>
- <title>Description</title>
-
- <para>
- This method connects to a cluster management server.
- </para>
- </formalpara>
-
- <formalpara>
- <title>Signature</title>
-
- <para>
+ </para>
+
+ </formalpara>
+
+ </section>
+
+ <section id="class-ndb-cluster-connection-connect">
+
+ <title><literal>Ndb_cluster_connection::connect()</literal></title>
+
+ <formalpara>
+
+ <title>Description</title>
+
+ <para>
+ This method connects to a cluster management server.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Signature</title>
+
+ <para>
<programlisting>
int connect
(
int <replaceable>retries</replaceable> = 0
)
</programlisting>
- </para>
- </formalpara>
-
- <formalpara>
- <title>Parameters</title>
-
- <para>
- This method takes a single (optional) parameter
- <replaceable>retries</replaceable>, which specifies the number of
- times to retry the connection in the event of failure. The default
- value (<literal>0</literal>) means that no additional attempts to
- connect will be made in the event of failure; a negative value for
- <replaceable>retries</replaceable> results in the connection
- attempt being repeated indefinitely.
- </para>
- </formalpara>
-
- <formalpara>
- <title>Returns</title>
-
- <para>
- This method returns an <literal>int</literal>, which can have one
- of the following 3 values:
-
- <itemizedlist>
- <listitem>
- <para>
- <emphasis role="bold">0</emphasis>: The connection attempt
- was successful.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis role="bold">1</emphasis>: Indicates a recoverable
- error.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis role="bold">-1</emphasis>: Indicates an
- unrecoverable error.
- </para>
- </listitem>
- </itemizedlist>
-
- </para>
- </formalpara>
-
- <formalpara>
- <title>Example</title>
-
- <para>
-
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Parameters</title>
+
+ <para>
+ This method takes a single (optional) parameter
+ <replaceable>retries</replaceable>, which specifies the number
+ of times to retry the connection in the event of failure. The
+ default value (<literal>0</literal>) means that no additional
+ attempts to connect will be made in the event of failure; a
+ negative value for <replaceable>retries</replaceable> results
+ in the connection attempt being repeated indefinitely.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Returns</title>
+
+ <para>
+ This method returns an <literal>int</literal>, which can have
+ one of the following 3 values:
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">0</emphasis>: The connection
+ attempt was successful.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">1</emphasis>: Indicates a
+ recoverable error.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">-1</emphasis>: Indicates an
+ unrecoverable error.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Example</title>
+
+ <para>
<programlisting>
[<emphasis>To be written...</emphasis>]
</programlisting>
- </para>
- </formalpara>
-
-
-</section><section id="class-ndb-cluster-connection-wait-until-ready">
- <title><literal>Ndb_cluster_connection::wait_until_ready()</literal></title>
-
- <formalpara>
- <title>Description</title>
-
- <para>
- This method waits until the requested connection with one or more
- data nodes is successful.
- </para>
- </formalpara>
-
- <formalpara>
- <title>Signature</title>
-
- <para>
+ </para>
+
+ </formalpara>
+
+ </section>
+
+ <section id="class-ndb-cluster-connection-wait-until-ready">
+
+ <title><literal>Ndb_cluster_connection::wait_until_ready()</literal></title>
+
+ <formalpara>
+
+ <title>Description</title>
+
+ <para>
+ This method waits until the requested connection with one or
+ more data nodes is successful.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Signature</title>
+
+ <para>
<programlisting>
int wait_until_ready
(
int <replaceable>timeout</replaceable>
)
</programlisting>
- </para>
- </formalpara>
-
- <formalpara>
- <title>Parameters</title>
-
- <para>
- This method takes one parameter; <remark>timeout</remark>
- specifies the number of second to wait until the first
- <quote>live</quote> data node is detected. This parameter has no
- default value.
- </para>
- </formalpara>
-
- <formalpara>
- <title>Returns</title>
-
- <para>
- <literal>wait_until_ready()</literal> returns an
- <literal>int</literal>, whose value is interpreted as follows:
+ </para>
- <itemizedlist>
- <listitem>
+ </formalpara>
+
+ <formalpara>
+
+ <title>Parameters</title>
+
<para>
- <emphasis role="bold">= 0</emphasis>: All nodes are <quote>live</quote>.
+ This method takes one parameter;
+
+ <remark>
+ timeout
+ </remark>
+
+ specifies the number of second to wait until the first
+ <quote>live</quote> data node is detected. This parameter has
+ no default value.
</para>
- </listitem>
-
- <listitem>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Returns</title>
+
<para>
- <emphasis role="bold">> 0</emphasis>: At least one node is
- <quote>live</quote>.
+ <literal>wait_until_ready()</literal> returns an
+ <literal>int</literal>, whose value is interpreted as follows:
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">= 0</emphasis>: All nodes are
+ <quote>live</quote>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">> 0</emphasis>: At least one
+ node is <quote>live</quote>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">< 0</emphasis>: An error
+ occurred.
+ </para>
+ </listitem>
+
+ </itemizedlist>
</para>
- </listitem>
-
- <listitem>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Example</title>
+
<para>
- <emphasis role="bold">< 0</emphasis>: An error occurred.
- </para>
- </listitem>
- </itemizedlist>
-
- </para>
- </formalpara>
-
- <formalpara>
- <title>Example</title>
-
- <para>
-
<programlisting>
[<emphasis>To be written...</emphasis>]
</programlisting>
- </para>
- </formalpara>
-
-
-</section>
+ </para>
+ </formalpara>
+
+ </section>
+
</section>
<section id="class-ndbblob">
<title>The <literal>NdbBlob</literal> Class</title>
- <abstract>
-
+ <abstract>
+
<para>
This class represents a handle to a <literal>BLOB</literal>
column and provides read and write access to
@@ -1660,11 +1715,9 @@
<literal>BLOB</literal> data; these are also described in this
section.
</para>
-
- </abstract>
-
-
+ </abstract>
+
<formalpara>
<title>Description</title>
@@ -1673,111 +1726,126 @@
An instance of <literal>NdbBlob</literal> is created using the
<literal>NdbOperation::getBlobHandle()</literal> method during
the operation preparation phase. (See
- <xref linkend="class-ndboperation"/>.) This object acts as a
- handle on a <literal>BLOB</literal> column.
+ <xref
+ linkend="class-ndboperation"/>.) This object
+ acts as a handle on a <literal>BLOB</literal> column.
</para>
</formalpara>
-
+
<formalpara id="ndbblob-states">
+
<title><literal>NdbBlob</literal> States</title>
-
+
<para>
A <literal>BLOB</literal> handle can be in any one of the
- following states:
-
- <itemizedlist>
- <listitem>
- <para>
- <emphasis role="bold">idle</emphasis>:
- <remark role="todo">
- [js] What is this for?
- </remark>
- </para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis role="bold">prepared</emphasis>: this is the
- state of the <literal>NdbBlob</literal> prior to operation
- execution.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis role="bold">active</emphasis>: This is the
- <literal>BLOB</literal> handle's state following execution or
- the fetching of the next result, but before the transaction is
- committed.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis role="bold">closed</emphasis>: This state occurs
- after the transaction has been committed.
- </para>
- </listitem>
-
- <listitem>
- <para>
- <emphasis role="bold">invalid</emphasis>: This follows a
- rollback or the close of a transaction.
- </para>
- </listitem>
- </itemizedlist>
+ following states:
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">idle</emphasis>:
+
+ <remark role="todo"
+ >
+ [js] What is this for?
+ </remark>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">prepared</emphasis>: this is the
+ state of the <literal>NdbBlob</literal> prior to operation
+ execution.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">active</emphasis>: This is the
+ <literal>BLOB</literal> handle's state following execution
+ or the fetching of the next result, but before the
+ transaction is committed.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">closed</emphasis>: This state occurs
+ after the transaction has been committed.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <emphasis role="bold">invalid</emphasis>: This follows a
+ rollback or the close of a transaction.
+ </para>
+ </listitem>
+
+ </itemizedlist>
</para>
+
</formalpara>
-
+
<formalpara>
+
<title><literal>BLOB</literal> Data Storage</title>
-
+
<para>
<literal>BLOB</literal> data is stored in 2 locations:
<itemizedlist>
+
<listitem>
<para>
The header and inline bytes are stored in the blob
attribute.
</para>
</listitem>
-
+
<listitem>
<para>
The blob's data segments are stored in a separate table
- named
+ named
<literal>NDB$BLOB_<replaceable>tid</replaceable>_<literal>cid</literal></literal>,
where <replaceable>tid</replaceable> is the table ID, and
- <replaceable>cid</replaceable> is the
- <literal>BLOB</literal> column ID.
+ <replaceable>cid</replaceable> is the blob column ID.
</para>
</listitem>
+
</itemizedlist>
-
+
The inline and data segment sizes can be set using the
appropriate <literal>NdbDictionary::Column()</literal> methods
- when the table is created. See <xref linkend="class-column"/>,
- for more information about these methods.
+ when the table is created. See
+ <xref
+ linkend="class-column"/>, for more information
+ about these methods.
</para>
+
</formalpara>
-
+
<formalpara>
+
<title>Data Access Types</title>
+
<para>
<literal>NdbBlob</literal> supports 3 types of data access:
-
+
<itemizedlist>
+
<listitem>
<para>
In the preparation phase, the <literal>NdbBlob</literal>
methods <literal>getValue()</literal> and
<literal>setValue()</literal> are used to prepare a read
- or write of a <literal>BLOB</literal> value of known size.
+ or write of a <literal>BLOB</literal> value of known size.
</para>
</listitem>
-
+
<listitem>
<para>
Also in the preparation phase,
@@ -1786,7 +1854,7 @@
active.
</para>
</listitem>
-
+
<listitem>
<para>
In the active phase, <literal>readData()</literal> and
@@ -1794,58 +1862,70 @@
<literal>BLOB</literal> values having arbitrary sizes.
</para>
</listitem>
+
</itemizedlist>
-
+
These data access types can be applied in combination, provided
that they are used in the order given above.
</para>
+
</formalpara>
-
+
<formalpara>
+
<title><literal>BLOB</literal> Operations</title>
-
- <para><literal>BLOB</literal> operations take effect when the next
+
+ <para>
+ <literal>BLOB</literal> operations take effect when the next
transaction is executed. In some cases,
<literal>NdbBlob</literal> is forced to perform implicit
- execution. To avoid this, you should always operate on complete
+ execution. To avoid this, you should always operate on complete
blob data segments, and use
- <literal>NdbTransaction::executePendingBlobOps()</literal> to
+ <literal>NdbTransaction::executePendingBlobOps()</literal> to
flush reads and writes. There is no penalty for doing this if
nothing is pending. It is not necessary to do so following
execution (obviously) or after next scan result is obtained.
<literal>NdbBlob</literal> also supports reading post- or
pre-blob data from events. The handle can be read after the next
event on the main table has been retrieved. The data becomes
- available immediately. (See
- <xref linkend="class-ndbeventoperation"/>.)
+ available immediately. (See
+ <xref
+ linkend="class-ndbeventoperation"/>.)
</para>
+
</formalpara>
-
+
+ <remark role="todo">
+ [js] Need to provide some cross-references and/or point to some
+ specific examples here if possible.
+ </remark>
+
<formalpara>
- <title><literal>BLOB</literal>s and
- <literal>NdbOperation</literal>s</title>
-
+
+ <title><literal>BLOB</literal>s and <literal>NdbOperation</literal>s</title>
+
<para>
<literal>NdbOperation</literal> methods acting on
<literal>NdbBlob</literal> objects have the following
characteristics:
-
+
<itemizedlist>
+
<listitem>
<para>
<literal>NdbOperation::insertTuple()</literal> must use
<literal>NdbBlob::setValue()</literal> if the
- <literal>BLOB</literal> column is non-nullable.
+ <literal>BLOB</literal> column is non-nullable.
</para>
</listitem>
-
+
<listitem>
<para>
<literal>NdbOperation::readTuple()</literal> used with an
exclusive lock can also update an existing value.
</para>
</listitem>
-
+
<listitem>
<para>
<literal>NdbOperation::updateTuple()</literal> can
@@ -1853,7 +1933,7 @@
<literal>NdbBlob::setValue()</literal>.
</para>
</listitem>
-
+
<listitem>
<para>
<literal>NdbOperation::writeTuple()</literal> always
@@ -1862,82 +1942,87 @@
<literal>BLOB</literal> column is non-nullable.
</para>
</listitem>
-
+
<listitem>
<para>
<literal>NdbOperation::deleteTuple()</literal> creates
- implicit, non-accessible <literal>BLOB</literal> handles.
+ implicit, non-accessible <literal>BLOB</literal> handles.
</para>
</listitem>
-
+
<listitem>
<para>
A scan with an exclusive lock can also update an existing
value.
</para>
</listitem>
-
+
<listitem>
- <para>
+ <para>
A scan update operation with lock takeover must perform
its own <literal>NdbOperation::getBlobHandle()</literal>.
</para>
</listitem>
-
- </itemizedlist>
-
+
+ </itemizedlist>
+
See <xref linkend="class-ndboperation"/>.
</para>
+
</formalpara>
-
+
<formalpara>
+
<title>Known Issues</title>
-
+
<para>
The following are known issues or limitations encountered when
working with <literal>NdbBlob</literal> objects:
-
+
<itemizedlist>
+
<listitem>
<para>
Lock mode upgrade should be handled automatically.
</para>
</listitem>
-
+
<listitem>
<para>
Lock mode vs. an allowed operation is not checked.
</para>
</listitem>
-
+
<listitem>
<para>
Too many pending <literal>BLOB</literal> operations can
overflow the I/O buffers.
</para>
</listitem>
-
+
<listitem>
<para>
The table and its <literal>BLOB</literal> data segment
tables are not created atomically.
</para>
</listitem>
-
+
</itemizedlist>
-
</para>
+
</formalpara>
-
- <formalpara>
+
+ <formalpara id="class-ndbblob-typedefs">
+
<title>Public Types</title>
-
+
<para>
The <literal>NdbBlob</literal> class defines two public types:
-
+
<itemizedlist>
+
<listitem>
- <para>
+ <para>
<programlisting>
typedef int ActiveHook
(
@@ -1945,7 +2030,7 @@
void *<replaceable>arg</replaceable>
)
</programlisting>
-
+
This is a callback for
<literal>NdbBlob::setActiveHook()</literal>, and is
invoked immediately once the prepared operation has been
@@ -1961,7 +2046,7 @@
the event of an error.
</para>
</listitem>
-
+
<listitem>
<para>
<programlisting>
@@ -1974,18 +2059,19 @@
Invalid = 9
}
</programlisting>
-
+
An <literal>NdbBlob</literal> may assume any one of these
- states (for descriptions, see
- <xref linkend="ndbblob-states"/>).
+ states (for descriptions, see
+ <xref
+ linkend="ndbblob-states"/>).
</para>
</listitem>
+
</itemizedlist>
-
</para>
+
</formalpara>
-
-
+
<formalpara>
<title>Public Methods</title>
@@ -2025,12 +2111,12 @@
<entry>Defines a callback for blob handle activation</entry>
</row>
<row>
- <entry><literal>getDefined()</literal></entry>
- <entry>Checks whether a blob value is defined</entry>
+ <entry><literal>getVersion()</literal></entry>
+ <entry>Checks whether a blob is statement-based or event-based</entry>
</row>
<row>
<entry><literal>getNull()</literal></entry>
- <entry>Check whether a blob value is <literal>NULL</literal></entry>
+ <entry>Checks whether a blob value is <literal>NULL</literal></entry>
</row>
<row>
<entry><literal>setNull()</literal></entry>
@@ -2087,15 +2173,23 @@
</tbody>
</tgroup>
</informaltable>
-
+
<note>
<para>
- Most <literal>NdbBlob</literal> methods (those whose return type
- is <literal>int</literal>) return <literal>0</literal> on
- success and <literal>-1</literal> in the event of failure.
+ <literal>blobsFirstBlob()</literal> and
+ <literal>blobsNextBlob()</literal> are static methods.
</para>
</note>
+ <tip>
+ <para>
+ Most <literal>NdbBlob</literal> methods (nearly all of those
+ whose return type is <literal>int</literal>) return
+ <literal>0</literal> on success and <literal>-1</literal> in the
+ event of failure.
+ </para>
+ </tip>
+
<para>
This UML diagram provides the signatures of all the available
methods of the <literal>NdbBlob</literal> class:
@@ -2111,87 +2205,1444 @@
</textobject>
</mediaobject>
+ <note>
+ <para>
+ This class has no public constructor. You can obtain a blob
+ handle using
+ <literal>NdbEventOperation::getBlobHandle()</literal>. (See
+ <xref linkend="class-ndbeventoperation"/>.)
+ </para>
+ </note>
+
<para>
The sections that follow provide more detailed descriptions,
signatures, and examples of use for each of these methods.
</para>
-
-<section id="struct-head">
- <title>The <literal>Head</literal> Structure</title>
-
- <abstract>
- <para>
-
- </para>
+ <section id="class-ndbblob-getstate">
- </abstract>
+ <title><literal>NdbBlob::getState()</literal></title>
- <formalpara>
+ <formalpara>
- <title>Description</title>
+ <title>Description</title>
- <para>
-
- </para>
+ <para>
+ This method gets the current state of the
+ <literal>NdbBlob</literal> object for which it is invoked.
+ Possible states are described in
+ <xref linkend="class-ndbblob-typedefs"/>.
+ </para>
- </formalpara>
+ </formalpara>
- <formalpara>
+ <formalpara>
- <title>Public Methods</title>
+ <title>Signature</title>
- <para>
- The following table lists the public methods of this class and
- the purpose or use of each method:
- </para>
+ <para>
+<programlisting>
+State getState()
+</programlisting>
+ </para>
- </formalpara>
+ </formalpara>
- <informaltable>
- <tgroup cols="2">
- <colspec colwidth="35*"/>
- <colspec colwidth="65*"/>
- <thead>
- <row>
- <entry>Method</entry>
- <entry>Purpose / Use</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry><literal></literal></entry>
- <entry></entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
+ <formalpara>
- <para>
- This UML diagram provides the signatures of all the available
- methods of the <literal>Head</literal> class:
- </para>
+ <title>Parameters</title>
- <mediaobject>
- <imageobject>
- <imagedata fileref="images/___.png" format="PNG"/>
- </imageobject>
- <textobject>
- <phrase lang="en">UML Diagram showing methods and signatures of
- the <literal>Head</literal> class.</phrase>
- </textobject>
- </mediaobject>
+ <para>
+ None.
+ </para>
- <para>
- The sections that follow provide more detailed descriptions,
- signatures, and examples of use for each of these methods.
- </para>
-
-
-</section>
+ </formalpara>
+ <formalpara>
+ <title>Returns</title>
+ <para>
+ A <literal>State</literal> value. For possible values, see
+ <xref linkend="class-ndbblob-typedefs"/>.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Example</title>
+
+ <para>
+<programlisting>
+[<emphasis>To be written...</emphasis>]
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ </section>
+
+ <section id="class-ndbblob-getvalue">
+
+ <title><literal>NdbBlob::getValue()</literal></title>
+
+ <formalpara>
+
+ <title>Description</title>
+
+ <para>
+ Use this method to prepare to read a blob value; the value is
+ available following invocation. Use
+ <literal>getNull()</literal> to check for a
+ <literal>NULL</literal> value; use
+ <literal>getLength()</literal> to get the actual length of the
+ blob, and to check for truncation.
+ <literal>getValue()</literal> sets the current read/write
+ position to the point following the end of the data which was
+ read.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Signature</title>
+
+ <para>
+<programlisting>
+int getValue
+ (
+ void *<replaceable>data</replaceable>,
+ Uint32 <replaceable>bytes</replaceable>
+ )
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Parameters</title>
+
+ <para>
+ This method takes two parameters — a pointer to the
+ <replaceable>data</replaceable> to be read, and the number of
+ <replaceable>bytes</replaceable> to be read.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Returns</title>
+
+ <para>
+ <literal>0</literal> on success, <literal>-1</literal> on
+ failure.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Example</title>
+
+ <para>
+<programlisting>
+[<emphasis>To be written...</emphasis>]
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ </section>
+
+ <section id="class-ndbblob-setvalue">
+
+ <title><literal>NdbBlob::setValue()</literal></title>
+
+ <formalpara>
+
+ <title>Description</title>
+
+ <para>
+ This method is used to prepare for inserting or updating a
+ blob value. Any existing blob data that is longer than the new
+ data is truncated. The data buffer must remain valid until the
+ operation has been executed. <literal>setValue()</literal>
+ sets the current read/write position to the point following
+ the end of the data. You can set
+ <replaceable>data</replaceable> to a null pointer
+ (<literal>0</literal>) in order to create a
+ <literal>NULL</literal> value.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Signature</title>
+
+ <para>
+<programlisting>
+int setValue
+ (
+ const void *<replaceable>data</replaceable>,
+ Uint32 <replaceable>bytes</replaceable>
+ )
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Parameters</title>
+
+ <para>
+ <remark role="todo">
+ [js] Not really explained in existing docs/sources.
+ </remark>
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Returns</title>
+
+ <para>
+ <literal>0</literal> on success, <literal>-1</literal> on
+ failure.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Example</title>
+
+ <para>
+<programlisting>
+[<emphasis>To be written...</emphasis>]
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ </section>
+
+ <section id="class-ndbblob-setactivehook">
+
+ <title><literal>NdbBlob::setActiveHook()</literal></title>
+
+ <formalpara>
+
+ <title>Description</title>
+
+ <para>
+ This method defines a callback for blob handle activation. The
+ queue of prepared operations will be executed in no-commit
+ mode up to this point; then, the callback is invoked. For
+ additional information, see
+ <xref linkend="class-ndbblob-typedefs"/>.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Signature</title>
+
+ <para>
+<programlisting>
+int setActiveHook
+ (
+ ActiveHook *<replaceable>activeHook</replaceable>,
+ void *<replaceable>arg</replaceable>
+ )
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Parameters</title>
+
+ <para>
+ <remark role="todo">
+ [js] These need to be explained.
+ </remark>
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Returns</title>
+
+ <para>
+ <literal>0</literal> on success, <literal>-1</literal> on
+ failure.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Example</title>
+
+ <para>
+<programlisting>
+[<emphasis>To be written...</emphasis>]
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ </section>
+
+ <section id="class-ndbblob-getversion">
+
+ <title><literal>NdbBlob::getVersion()</literal></title>
+
+ <formalpara>
+
+ <title>Description</title>
+
+ <para>
+ This method is used to distinguish whether a blob operation is
+ statement-based or event-based.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Signature</title>
+
+ <para>
+<programlisting>
+void getVersion
+ (
+ int &<replaceable>version</replaceable>
+ )
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Parameters</title>
+
+ <para>
+ This method takes a single parameter, an integer reference to
+ the blob version (operation type).
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Returns</title>
+
+ <para>
+ One of the following three values:
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <literal>-1</literal>: This is a <quote>normal</quote>
+ (statement-based) blob.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>0</literal>: This is an event-operation based
+ blob, following a change in its data.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>1</literal>: This is an event-operation based
+ blob, prior to any change in its data.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </para>
+
+ </formalpara>
+
+ <note>
+ <para>
+ <literal>getVersion()</literal> is always successful, assuming
+ that it is invoked as a method of a valid
+ <literal>NdbBlob</literal> instance.
+ </para>
+ </note>
+
+ <formalpara>
+
+ <title>Example</title>
+
+ <para>
+<programlisting>
+[<emphasis>To be written...</emphasis>]
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ </section>
+
+ <section id="class-ndbblob-getnull">
+
+ <title><literal>NdbBlob::getNull()</literal></title>
+
+ <formalpara>
+
+ <title>Description</title>
+
+ <para>
+ This method checks whether the blob's value is
+ <literal>NULL</literal>.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Signature</title>
+
+ <para>
+<programlisting>
+int getNull
+ (
+ void
+ )
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Parameters</title>
+
+ <para>
+ None.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Returns</title>
+
+ <para>
+ One of the following values, interpreted as shown here:
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <literal>-1</literal>: The blob is undefined. If this is
+ a non-event blob, this result causes a state error.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>0</literal>: The blob has a non-null value.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>1</literal>: The blob's value is
+ <literal>NULL</literal>.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Example</title>
+
+ <para>
+<programlisting>
+[<emphasis>To be written...</emphasis>]
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ </section>
+
+ <section id="class-ndbblob-setnull">
+
+ <title><literal>NdbBlob::setNull()</literal></title>
+
+ <formalpara>
+
+ <title>Description</title>
+
+ <para>
+ This method sets the value of a blob to
+ <literal>NULL</literal>.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Signature</title>
+
+ <para>
+<programlisting>
+int setNull
+ (
+ void
+ )
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Parameters</title>
+
+ <para>
+ None.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Returns</title>
+
+ <para>
+ <literal>0</literal> on success; <literal>-1</literal> on
+ failure.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Example</title>
+
+ <para>
+<programlisting>
+[<emphasis>To be written...</emphasis>]
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ </section>
+
+ <section id="class-ndbblob-setlength">
+
+ <title><literal>NdbBlob::setLength()</literal></title>
+
+ <formalpara>
+
+ <title>Description</title>
+
+ <para>
+ This method gets the blob's current length in bytes.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Signature</title>
+
+ <para>
+<programlisting>
+int getLength
+ (
+ Uint64 &<replaceable>length</replaceable>
+ )
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Parameters</title>
+
+ <para>
+ A reference to the length.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Returns</title>
+
+ <para>
+ The blob's length in bytes. For a <literal>NULL</literal>
+ blob, this method returns <literal>0</literal>. to distinguish
+ between a blob whose length is <literal>0</literal> blob and
+ one which is <literal>NULL</literal>, use the
+ <literal>getNull()</literal> method.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Example</title>
+
+ <para>
+<programlisting>
+[<emphasis>To be written...</emphasis>]
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ </section>
+
+ <section id="class-ndbblob-truncate">
+
+ <title><literal>NdbBlob::truncate()</literal></title>
+
+ <formalpara>
+
+ <title>Description</title>
+
+ <para>
+ This method is used to truncate a blob to a given length.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Signature</title>
+
+ <para>
+<programlisting>
+int truncate
+ (
+ Uint64 <replaceable>length</replaceable> = 0
+ )
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Parameters</title>
+
+ <para>
+ <literal>truncate()</literal> takes a single parameter which
+ specifies the new <replaceable>length</replaceable> to which
+ the blob is to be truncated. This method has no effect if
+ <replaceable>length</replaceable> is greater than the blob's
+ current length (which you can check using
+ <literal>getLength()</literal>).
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Returns</title>
+
+ <para>
+ <literal>0</literal> on success, <literal>-1</literal> on
+ failure.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Example</title>
+
+ <para>
+<programlisting>
+[<emphasis>To be written...</emphasis>]
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ </section>
+
+ <section id="class-ndbblob-getpos">
+
+ <title><literal>NdbBlob::getPos()</literal></title>
+
+ <formalpara>
+
+ <title>Description</title>
+
+ <para>
+ This method gets the current read/write position in a blob.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Signature</title>
+
+ <para>
+<programlisting>
+int getPos
+ (
+ Uint64 &<replaceable>pos</replaceable>
+ )
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Parameters</title>
+
+ <para>
+ One parameter, a reference to the position.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Returns</title>
+
+ <para>
+ <literal>0</literal> on success, <literal>-1</literal> on
+ failure. (Following a successful invocation,
+ <replaceable>pos</replaceable> will hold the current
+ read/write position within the blob, in bytes.)
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Example</title>
+
+ <para>
+<programlisting>
+[<emphasis>To be written...</emphasis>]
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ </section>
+
+ <section id="class-ndbblob-setpos">
+
+ <title><literal>NdbBlob::setPos()</literal></title>
+
+ <formalpara>
+
+ <title>Description</title>
+
+ <para>
+ This method sets the position within the blob at which to read
+ or write data.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Signature</title>
+
+ <para>
+<programlisting>
+int setPos
+ (
+ Uint64 <replaceable>pos</replaceable>
+ )
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Parameters</title>
+
+ <para>
+ The setPos() method takes a single parameter
+ <replaceable>pos</replaceable> (an unsigned 64-bit integer),
+ which is the position for reading or writing data. The value
+ of <replaceable>pos</replaceable> must be between
+ <literal>0</literal> and the blob's current length.
+ </para>
+
+ </formalpara>
+
+ <important>
+ <para>
+ <quote>Sparse</quote> blobs are not supported in the NDB API;
+ there can be no unused data positions within a blob.
+ </para>
+ </important>
+
+ <formalpara>
+
+ <title>Returns</title>
+
+ <para>
+ <literal>0</literal> on success, <literal>-1</literal> on
+ failure.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Example</title>
+
+ <para>
+<programlisting>
+[<emphasis>To be written...</emphasis>]
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ </section>
+
+ <section id="class-ndbblob-readdata">
+
+ <title>NdbBlob::readData()</title>
+
+ <formalpara>
+
+ <title>Description</title>
+
+ <para>
+ This method is used to read data from a blob.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Signature</title>
+
+ <para>
+<programlisting>
+int readData
+ (
+ void *<replaceable>data</replaceable>,
+ Uint32 &<replaceable>bytes</replaceable>
+ )
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Parameters</title>
+
+ <para>
+ <literal>readData()</literal> accepts a pointer to the data to
+ be read, and a reference to the number of bytes read.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Returns</title>
+
+ <para>
+ <literal>0</literal> on success, <literal>-1</literal> on
+ failure. Following a successful invocation,
+ <replaceable>data</replaceable> points to the data that was
+ read, and <replaceable>bytes</replaceable> holds the number of
+ bytes read.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Example</title>
+
+ <para>
+<programlisting>
+[<emphasis>To be written...</emphasis>]
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ </section>
+
+ <section id="class-ndbblob-writedata">
+
+ <title><literal>NdbBlob::writeData()</literal></title>
+
+ <formalpara>
+
+ <title>Description</title>
+
+ <para>
+ This method is used to write data to an
+ <literal>NdbBlob</literal>. After a successful invocation, the
+ read/write position will be at the first byte following the
+ data that was written to the blob.
+ </para>
+
+ </formalpara>
+
+ <note>
+ <para>
+ A write past the current end of the blob data extends the blob
+ automatically.
+ </para>
+ </note>
+
+ <formalpara>
+
+ <title>Signature</title>
+
+ <para>
+<programlisting>
+int writeData
+ (
+ const void *<replaceable>data</replaceable>,
+ Uint32 <replaceable>bytes</replaceable>
+ )
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Parameters</title>
+
+ <para>
+ This method takes two parameters, a pointer to the
+ <replaceable>data</replaceable> to be written, and the number
+ of <replaceable>bytes</replaceable> to write.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Returns</title>
+
+ <para>
+ <literal>0</literal> on success, <literal>-1</literal> on
+ failure.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Example</title>
+
+ <para>
+<programlisting>
+[<emphasis>To be written...</emphasis>]
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ </section>
+
+ <section id="class-ndbblob-getcolumn">
+
+ <title><literal>NdbBlob::getColumn()</literal></title>
+
+ <formalpara>
+
+ <title>Description</title>
+
+ <para>
+ Use this method to get the <literal>BLOB</literal> column to
+ which the <literal>NdbBlob</literal> belongs.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Signature</title>
+
+ <para>
+<programlisting>
+const Column *getColumn
+ (
+ void
+ )
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Parameters</title>
+
+ <para>
+ None.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Returns</title>
+
+ <para>
+ A Column object. (See <xref linkend="class-column"/>.)
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Example</title>
+
+ <para>
+<programlisting>
+[<emphasis>To be written...</emphasis>]
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ </section>
+
+ <section id="class-ndbblob-getndberror">
+
+ <title><literal>NdbBlob::getNdbError()</literal></title>
+
+ <formalpara>
+
+ <title>Description</title>
+
+ <para>
+ Use this method to obtain an error object. The error may be
+ blob-specific or may be copied from a failed implicit
+ operation.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Signature</title>
+
+ <para>
+<programlisting>
+const NdbError &getNdbError
+ (
+ void
+ ) const
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Parameters</title>
+
+ <para>
+ None.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Returns</title>
+
+ <para>
+ An <literal>NdbError</literal> object. See
+ <xref linkend="struct-ndberror"/>.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Example</title>
+
+ <para>
+<programlisting>
+[<emphasis>To be written...</emphasis>]
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ </section>
+
+ <section id="class-ndbblob-blobsfirstblob">
+
+ <title><literal>NdbBlob::blobsFirstBlob()</literal></title>
+
+ <formalpara>
+
+ <title>Description</title>
+
+ <para>
+ This method initialises a list of blobs belonging to the
+ current operation and returns the first blob in the list.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Signature</title>
+
+ <para>
+<programlisting>
+NdbBlob *blobsFirstBlob
+ (
+ void
+ )
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Parameters</title>
+
+ <para>
+ None.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Returns</title>
+
+ <para>
+ A pointer to the desired blob.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Example</title>
+
+ <para>
+<programlisting>
+[<emphasis>To be written...</emphasis>]
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ </section>
+
+ <section id="class-ndbblob-blobsnextblob">
+
+ <title><literal>NdbBlob::blobsNextBlob()</literal></title>
+
+ <formalpara>
+
+ <title>Description</title>
+
+ <para>
+ Use the method to obtain the next in a list of blobs that was
+ intialised using <literal>blobsFirstBlob()</literal>. See
+ <xref linkend="class-ndbblob-blobsfirstblob"/>.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Signature</title>
+
+ <para>
+<programlisting>
+NdbBlob *blobsNextBlob
+ (
+ void
+ )
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Parameters</title>
+
+ <para>
+ None.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Returns</title>
+
+ <para>
+ A pointer to the desired blob.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Example</title>
+
+ <para>
+<programlisting>
+[<emphasis>To be written...</emphasis>]
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ </section>
+
+ <section id="class-ndbblob-getblobeventname">
+
+ <title><literal>NdbBlob::getBlobEventName()</literal></title>
+
+ <formalpara>
+
+ <title>Description</title>
+
+ <para>
+ This method gets a blob event name. The blob event is created
+ if the main event monitors the blob column. The name includes
+ the main event name.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Signature</title>
+
+ <para>
+<programlisting>
+static int getBlobEventName
+ (
+ char *<replaceable>name</replaceable>,
+ Ndb *<replaceable>ndb</replaceable>,
+ const char *<replaceable>event</replaceable>,
+ const char *<replaceable>column</replaceable>
+ )
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Parameters</title>
+
+ <para>
+ This method takes 4 parameters:
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <replaceable>name</replaceable>: The name of the blob
+ event.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <replaceable>ndb</replaceable>: The relevant
+ <literal>Ndb</literal> object.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <replaceable>event</replaceable>: The name of the main
+ event.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <replaceable>column</replaceable>: The blob column.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Returns</title>
+
+ <para>
+ <literal>0</literal> on success, <literal>-1</literal> on
+ failure.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Example</title>
+
+ <para>
+<programlisting>
+[<emphasis>To be written...</emphasis>]
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ </section>
+
+ <section id="class-ndbblob-getblobtabletname">
+
+ <title><literal>NdbBlob::getBlobTabletName()</literal></title>
+
+ <formalpara>
+
+ <title>Description</title>
+
+ <para>
+ This method gets the blob data segment table name.
+ </para>
+
+ </formalpara>
+
+ <note>
+ <para>
+ This method is generally of use only for testing and debugging
+ purposes.
+ </para>
+ </note>
+
+ <formalpara>
+
+ <title>Signature</title>
+
+ <para>
+<programlisting>
+static int getBlobTableName
+ (
+ char *<replaceable>name</replaceable>,
+ Ndb *<replaceable>ndb</replaceable>,
+ const char *<replaceable>table</replaceable>,
+ const char *<replaceable>column</replaceable>
+ )
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Parameters</title>
+
+ <para>
+ This method takes 4 parameters:
+
+ <itemizedlist>
+
+ <listitem>
+ <para>
+ <replaceable>name</replaceable>: The name of the blob
+ data segment table.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <replaceable>ndb</replaceable>: The relevant
+ <literal>Ndb</literal> object.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <replaceable>table</replaceable>: The name of the main
+ table.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <replaceable>column</replaceable>: The blob column.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Returns</title>
+
+ <para>
+ <literal>0</literal> on success, <literal>-1</literal> on
+ failure.
+ </para>
+
+ </formalpara>
+
+ <formalpara>
+
+ <title>Example</title>
+
+ <para>
+<programlisting>
+[<emphasis>To be written...</emphasis>]
+</programlisting>
+ </para>
+
+ </formalpara>
+
+ </section>
+
</section>
<section id="class-ndbdictionary">
@@ -2214,7 +3665,7 @@
<!-- </abstract> -->
- <section id="list-struct">
+ <section id="struct-list">
<title>The <literal>List</literal> Structure</title>
@@ -2224,7 +3675,7 @@
<!-- </abstract> -->
- <section id="element-struct">
+ <section id="struct-element">
<title>The <literal>Element</literal> Structure</title>
Modified: trunk/ndbapi/ndb.en.ent
===================================================================
--- trunk/ndbapi/ndb.en.ent 2006-05-28 04:31:46 UTC (rev 2219)
+++ trunk/ndbapi/ndb.en.ent 2006-05-29 12:28:01 UTC (rev 2220)
@@ -10,4 +10,5 @@
<!ENTITY refman-base-url "http://dev.mysql.com/doc/refman/5.1/en/">
<!ENTITY copy "©">
-<!ENTITY reg "®">
\ No newline at end of file
+<!ENTITY reg "®">
+<!ENTITY mdash "—">
\ No newline at end of file
Modified: trunk/ndbapi/xmi/Ndb.xmi
===================================================================
--- trunk/ndbapi/xmi/Ndb.xmi 2006-05-28 04:31:46 UTC (rev 2219)
+++ trunk/ndbapi/xmi/Ndb.xmi 2006-05-29 12:28:01 UTC (rev 2220)
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<XMI xmlns:UML="http://schema.omg.org/spec/UML/1.3" verified="false" timestamp="2006-05-28T11:32:07" xmi.version="1.2" >
+<XMI xmlns:UML="http://schema.omg.org/spec/UML/1.3" verified="false" timestamp="2006-05-29T22:20:25" xmi.version="1.2" >
<XMI.header>
<XMI.documentation>
<XMI.exporter>umbrello uml modeller http://uml.sf.net</XMI.exporter>
@@ -108,7 +108,7 @@
1 = recoverable error,
-1 = non-recoverable error." isSpecification="false" isLeaf="false" visibility="public" xmi.id="2284" isRoot="false" isAbstract="false" isQuery="false" name="connect" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13278" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17103" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2285" value="" type="2275" name="retries" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2286" value="" type="2275" name="delay" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2287" value="" type="2275" name="verbose" />
@@ -126,7 +126,7 @@
> 0: At least one node is "live".
< 0: Error." isSpecification="false" isLeaf="false" visibility="public" xmi.id="2290" isRoot="false" isAbstract="false" isQuery="false" name="wait_until_ready" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13279" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17104" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2291" value="" type="2275" name="timeout" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
@@ -260,10 +260,10 @@
<UML:Attribute isSpecification="false" visibility="private" xmi.id="2637" type="2489" name="theLength" />
<UML:Attribute isSpecification="false" visibility="private" xmi.id="2638" type="2489" name="thePos" />
<UML:Attribute comment="// errors" isSpecification="false" visibility="private" xmi.id="2639" type="2547" name="theError" />
- <UML:Attribute comment="// for keeping in lists" isSpecification="false" visibility="private" xmi.id="2640" type="2550" name="theNext" />
+ <UML:Attribute comment="or keeping in lists" isSpecification="false" visibility="private" xmi.id="2640" type="2550" name="theNext" />
<UML:Operation comment="Get the state of a NdbBlob object." isSpecification="false" isLeaf="false" visibility="public" xmi.id="2487" isRoot="false" isAbstract="false" isQuery="false" name="getState" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13280" type="2481" />
+ <UML:Parameter kind="return" xmi.id="17105" type="2481" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation comment="Prepares to read a blob value. The value is available following
@@ -271,7 +271,7 @@
the real length and to check for truncation. Sets the current
read/write position to the point after the data has been read." isSpecification="false" isLeaf="false" visibility="public" xmi.id="2491" isRoot="false" isAbstract="false" isQuery="false" name="getValue" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13281" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17106" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2494" value="" type="2493" name="data" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2496" value="" type="2495" name="bytes" />
</UML:BehavioralFeature.parameter>
@@ -282,7 +282,7 @@
to the point following the end of the data. You can set the data to
a null pointer (0) in order to create a <code>NULL</code> value." isSpecification="false" isLeaf="false" visibility="public" xmi.id="2497" isRoot="false" isAbstract="false" isQuery="false" name="setValue" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13282" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17107" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2499" value="" type="2498" name="data" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2500" value="" type="2495" name="bytes" />
</UML:BehavioralFeature.parameter>
@@ -291,54 +291,57 @@
operations will be executed in no-commit mode up to this point;
then the callback is invoked." isSpecification="false" isLeaf="false" visibility="public" xmi.id="2503" isRoot="false" isAbstract="false" isQuery="false" name="setActiveHook" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13283" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17108" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2505" value="" type="2504" name="activeHook" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2506" value="" type="2493" name="arg" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
- <UML:Operation comment="Checks whether the blob value is defined (<code>NULL</code> or not). This is used
-as the first call on an event-based blob. The argument is set to -1 for
-undefined. Unlike getNull() this does not cause an error on the handle." isSpecification="false" isLeaf="false" visibility="public" xmi.id="2507" isRoot="false" isAbstract="false" isQuery="false" name="getDefined" >
+ <UML:Operation comment="<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:9pt;font-family:Andale Mono">
+<p>Returns -1 for normal statement based blob and 0/1 for event operation post/pre data blob. Always succeeds.</p>
+</body></html>
+" isSpecification="false" isLeaf="false" visibility="public" xmi.id="2507" isRoot="false" isAbstract="false" isQuery="false" name="getVersion" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13284" type="2275" />
- <UML:Parameter isSpecification="false" visibility="private" xmi.id="2509" value="" type="2508" name="isNull" />
+ <UML:Parameter isSpecification="false" visibility="private" xmi.id="2509" value="" type="2508" name="version" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
- <UML:Operation comment="Checks whether the blob is <code>NULL</code>." isSpecification="false" isLeaf="false" visibility="public" xmi.id="2510" isRoot="false" isAbstract="false" isQuery="false" name="getNull" >
+ <UML:Operation comment="<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:9pt;font-family:Andale Mono">
+<p>Checks whether the blob is <span style="font-family:Courier New">NULL</span>.</p>
+</body></html>
+" isSpecification="false" isLeaf="false" visibility="public" xmi.id="2510" isRoot="false" isAbstract="false" isQuery="false" name="getNull" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13285" type="2275" />
- <UML:Parameter isSpecification="false" visibility="private" xmi.id="2513" value="" type="2512" name="isNull" />
+ <UML:Parameter kind="return" xmi.id="17109" type="2275" />
+ <UML:Parameter isSpecification="false" visibility="private" xmi.id="2513" value="" type="2508" name="isNull" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation comment="Sets the blob to <code>NULL</code>." isSpecification="false" isLeaf="false" visibility="public" xmi.id="2514" isRoot="false" isAbstract="false" isQuery="false" name="setNull" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13286" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17110" type="2275" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation comment="Gets the current blob length in bytes. Use getNull() to distinguish
between a blob of zero length and a <code>NULL</code> blob." isSpecification="false" isLeaf="false" visibility="public" xmi.id="2515" isRoot="false" isAbstract="false" isQuery="false" name="getLength" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13287" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17111" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2517" value="" type="2516" name="length" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation comment="Truncates the blob to a given length. Has no effect if the length
given is larger than current length." isSpecification="false" isLeaf="false" visibility="public" xmi.id="2518" isRoot="false" isAbstract="false" isQuery="false" name="truncate" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13288" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17112" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2519" value="" type="2489" name="length" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation comment="Gets the current read/write position." isSpecification="false" isLeaf="false" visibility="public" xmi.id="2520" isRoot="false" isAbstract="false" isQuery="false" name="getPos" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13289" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17113" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2521" value="" type="2516" name="pos" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation comment="Sets the read/write position. Must be between 0 and current length.
Note that "sparse" blobs are not supported." isSpecification="false" isLeaf="false" visibility="public" xmi.id="2522" isRoot="false" isAbstract="false" isQuery="false" name="setPos" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13290" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17114" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2523" value="" type="2489" name="pos" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
@@ -347,7 +350,7 @@
end of the blob returns the actual number of bytes read in the
in/out bytes parameter." isSpecification="false" isLeaf="false" visibility="public" xmi.id="2524" isRoot="false" isAbstract="false" isQuery="false" name="readData" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13291" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17115" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2525" value="" type="2493" name="data" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2527" value="" type="2526" name="bytes" />
</UML:BehavioralFeature.parameter>
@@ -356,56 +359,56 @@
first byte following the end of the data written. A write past the
end of the blob extends the blob value." isSpecification="false" isLeaf="false" visibility="public" xmi.id="2528" isRoot="false" isAbstract="false" isQuery="false" name="writeData" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13292" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17116" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2529" value="" type="2498" name="data" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2530" value="" type="2495" name="bytes" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation comment="Returns the blob column." isSpecification="false" isLeaf="false" visibility="public" xmi.id="2531" isRoot="false" isAbstract="false" isQuery="false" name="getColumn" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13293" type="2534" />
+ <UML:Parameter kind="return" xmi.id="17117" type="2534" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
- <UML:Operation comment="Gets the blob segment's table name. Useful only for testing
-programs." isSpecification="false" isLeaf="false" visibility="public" xmi.id="2535" isRoot="false" isAbstract="false" isQuery="false" name="getBlobTableName" ownerScope="classifier" >
- <UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13294" type="2275" />
- <UML:Parameter isSpecification="false" visibility="private" xmi.id="2536" value="" type="2295" name="name" />
- <UML:Parameter isSpecification="false" visibility="private" xmi.id="2538" value="" type="2537" name="ndb" />
- <UML:Parameter isSpecification="false" visibility="private" xmi.id="2539" value="" type="2281" name="table" />
- <UML:Parameter isSpecification="false" visibility="private" xmi.id="2540" value="" type="2281" name="column" />
- </UML:BehavioralFeature.parameter>
- </UML:Operation>
- <UML:Operation comment="Gets the blob event name. The blob event is created if the main event
-monitors the blob column. The name includes main event name." isSpecification="false" isLeaf="false" visibility="public" xmi.id="2541" isRoot="false" isAbstract="false" isQuery="false" name="getBlobEventName" ownerScope="classifier" >
- <UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13295" type="2275" />
- <UML:Parameter isSpecification="false" visibility="private" xmi.id="2542" value="" type="2295" name="name" />
- <UML:Parameter isSpecification="false" visibility="private" xmi.id="2543" value="" type="2537" name="ndb" />
- <UML:Parameter isSpecification="false" visibility="private" xmi.id="2544" value="" type="2281" name="event" />
- <UML:Parameter isSpecification="false" visibility="private" xmi.id="2545" value="" type="2281" name="column" />
- </UML:BehavioralFeature.parameter>
- </UML:Operation>
<UML:Operation comment="Returns an error object. The error may be blob-specific (below) or
may be copied from a failed implicit operation." isSpecification="false" isLeaf="false" visibility="public" xmi.id="2546" isRoot="false" isAbstract="false" isQuery="false" name="getNdbError" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13296" type="2548" />
+ <UML:Parameter kind="return" xmi.id="17118" type="2548" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation comment="Returns information about all blobs in this operation.
Gets the first blob in the list." isSpecification="false" isLeaf="false" visibility="public" xmi.id="2549" isRoot="false" isAbstract="false" isQuery="false" name="blobsFirstBlob" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13297" type="2550" />
+ <UML:Parameter kind="return" xmi.id="17119" type="2550" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation comment="Returns info about all blobs in this operation.
Gets the next blob in the list. Initialise with blobsFirstBlob()." isSpecification="false" isLeaf="false" visibility="public" xmi.id="2551" isRoot="false" isAbstract="false" isQuery="false" name="blobsNextBlob" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13298" type="2550" />
+ <UML:Parameter kind="return" xmi.id="17120" type="2550" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
+ <UML:Operation comment="Gets the blob event name. The blob event is created if the main event
+monitors the blob column. The name includes main event name." isSpecification="false" isLeaf="false" visibility="public" xmi.id="2541" isRoot="false" isAbstract="false" isQuery="false" name="getBlobEventName" ownerScope="classifier" >
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" xmi.id="17121" type="2275" />
+ <UML:Parameter isSpecification="false" visibility="private" xmi.id="2542" value="" type="2295" name="name" />
+ <UML:Parameter isSpecification="false" visibility="private" xmi.id="2543" value="" type="2537" name="ndb" />
+ <UML:Parameter isSpecification="false" visibility="private" xmi.id="2544" value="" type="2281" name="event" />
+ <UML:Parameter isSpecification="false" visibility="private" xmi.id="2545" value="" type="2281" name="column" />
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
+ <UML:Operation comment="Gets the blob segment's table name. Useful only for testing
+programs." isSpecification="false" isLeaf="false" visibility="public" xmi.id="2535" isRoot="false" isAbstract="false" isQuery="false" name="getBlobTableName" ownerScope="classifier" >
+ <UML:BehavioralFeature.parameter>
+ <UML:Parameter kind="return" xmi.id="17122" type="2275" />
+ <UML:Parameter isSpecification="false" visibility="private" xmi.id="2536" value="" type="2295" name="name" />
+ <UML:Parameter isSpecification="false" visibility="private" xmi.id="2538" value="" type="2537" name="ndb" />
+ <UML:Parameter isSpecification="false" visibility="private" xmi.id="2539" value="" type="2281" name="table" />
+ <UML:Parameter isSpecification="false" visibility="private" xmi.id="2540" value="" type="2281" name="column" />
+ </UML:BehavioralFeature.parameter>
+ </UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2557" isRoot="false" isAbstract="false" isQuery="false" name="setState" >
<UML:BehavioralFeature.parameter>
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2558" value="" type="2481" name="newState" />
@@ -448,121 +451,121 @@
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2644" isRoot="false" isAbstract="false" isQuery="false" name="release" />
<UML:Operation comment="// classify operations" isSpecification="false" isLeaf="false" visibility="private" xmi.id="2645" isRoot="false" isAbstract="false" isQuery="false" name="isTableOp" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13299" type="2511" />
+ <UML:Parameter kind="return" xmi.id="17123" type="2511" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2646" isRoot="false" isAbstract="false" isQuery="false" name="isIndexOp" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13300" type="2511" />
+ <UML:Parameter kind="return" xmi.id="17124" type="2511" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2647" isRoot="false" isAbstract="false" isQuery="false" name="isKeyOp" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13301" type="2511" />
+ <UML:Parameter kind="return" xmi.id="17125" type="2511" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2648" isRoot="false" isAbstract="false" isQuery="false" name="isReadOp" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13302" type="2511" />
+ <UML:Parameter kind="return" xmi.id="17126" type="2511" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2649" isRoot="false" isAbstract="false" isQuery="false" name="isInsertOp" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13303" type="2511" />
+ <UML:Parameter kind="return" xmi.id="17127" type="2511" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2650" isRoot="false" isAbstract="false" isQuery="false" name="isUpdateOp" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13304" type="2511" />
+ <UML:Parameter kind="return" xmi.id="17128" type="2511" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2651" isRoot="false" isAbstract="false" isQuery="false" name="isWriteOp" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13305" type="2511" />
+ <UML:Parameter kind="return" xmi.id="17129" type="2511" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2652" isRoot="false" isAbstract="false" isQuery="false" name="isDeleteOp" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13306" type="2511" />
+ <UML:Parameter kind="return" xmi.id="17130" type="2511" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2653" isRoot="false" isAbstract="false" isQuery="false" name="isScanOp" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13307" type="2511" />
+ <UML:Parameter kind="return" xmi.id="17131" type="2511" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation comment="// computations" isSpecification="false" isLeaf="false" visibility="private" xmi.id="2654" isRoot="false" isAbstract="false" isQuery="false" name="getPartNumber" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13308" type="2495" />
+ <UML:Parameter kind="return" xmi.id="17132" type="2495" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2655" value="" type="2489" name="pos" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2656" isRoot="false" isAbstract="false" isQuery="false" name="getPartCount" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13309" type="2495" />
+ <UML:Parameter kind="return" xmi.id="17133" type="2495" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2657" isRoot="false" isAbstract="false" isQuery="false" name="getDistKey" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13310" type="2495" />
+ <UML:Parameter kind="return" xmi.id="17134" type="2495" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2658" value="" type="2495" name="part" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation comment="// getters and setters" isSpecification="false" isLeaf="false" visibility="private" xmi.id="2659" isRoot="false" isAbstract="false" isQuery="false" name="getTableKeyValue" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13311" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17135" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2660" value="" type="2585" name="anOp" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2661" isRoot="false" isAbstract="false" isQuery="false" name="setTableKeyValue" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13312" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17136" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2662" value="" type="2585" name="anOp" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2663" isRoot="false" isAbstract="false" isQuery="false" name="setAccessKeyValue" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13313" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17137" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2664" value="" type="2585" name="anOp" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2665" isRoot="false" isAbstract="false" isQuery="false" name="setPartKeyValue" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13314" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17138" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2666" value="" type="2585" name="anOp" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2667" value="" type="2495" name="part" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2668" isRoot="false" isAbstract="false" isQuery="false" name="getHeadInlineValue" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13315" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17139" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2669" value="" type="2585" name="anOp" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2670" isRoot="false" isAbstract="false" isQuery="false" name="getHeadFromRecAttr" />
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2671" isRoot="false" isAbstract="false" isQuery="false" name="setHeadInlineValue" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13316" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17140" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2672" value="" type="2585" name="anOp" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation comment="// data operations" isSpecification="false" isLeaf="false" visibility="private" xmi.id="2673" isRoot="false" isAbstract="false" isQuery="false" name="readDataPrivate" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13317" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17141" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2674" value="" type="2295" name="buf" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2675" value="" type="2526" name="bytes" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2676" isRoot="false" isAbstract="false" isQuery="false" name="writeDataPrivate" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13318" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17142" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2677" value="" type="2281" name="buf" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2678" value="" type="2495" name="bytes" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2679" isRoot="false" isAbstract="false" isQuery="false" name="readParts" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13319" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17143" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2680" value="" type="2295" name="buf" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2681" value="" type="2495" name="part" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2682" value="" type="2495" name="count" />
@@ -570,7 +573,7 @@
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2683" isRoot="false" isAbstract="false" isQuery="false" name="readTableParts" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13320" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17144" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2684" value="" type="2295" name="buf" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2685" value="" type="2495" name="part" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2686" value="" type="2495" name="count" />
@@ -578,7 +581,7 @@
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2687" isRoot="false" isAbstract="false" isQuery="false" name="readEventParts" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13321" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17145" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2688" value="" type="2295" name="buf" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2689" value="" type="2495" name="part" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2690" value="" type="2495" name="count" />
@@ -586,7 +589,7 @@
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2691" isRoot="false" isAbstract="false" isQuery="false" name="insertParts" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13322" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17146" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2692" value="" type="2281" name="buf" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2693" value="" type="2495" name="part" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2694" value="" type="2495" name="count" />
@@ -594,7 +597,7 @@
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2695" isRoot="false" isAbstract="false" isQuery="false" name="updateParts" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13323" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17147" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2696" value="" type="2281" name="buf" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2697" value="" type="2495" name="part" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2698" value="" type="2495" name="count" />
@@ -602,35 +605,35 @@
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2699" isRoot="false" isAbstract="false" isQuery="false" name="deleteParts" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13324" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17148" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2700" value="" type="2495" name="part" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2701" value="" type="2495" name="count" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2702" isRoot="false" isAbstract="false" isQuery="false" name="deletePartsUnknown" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13325" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17149" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2703" value="" type="2495" name="part" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation comment="// pending operations" isSpecification="false" isLeaf="false" visibility="private" xmi.id="2704" isRoot="false" isAbstract="false" isQuery="false" name="executePendingBlobReads" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13326" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17150" type="2275" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2705" isRoot="false" isAbstract="false" isQuery="false" name="executePendingBlobWrites" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13327" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17151" type="2275" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation comment="// callbacks" isSpecification="false" isLeaf="false" visibility="private" xmi.id="2706" isRoot="false" isAbstract="false" isQuery="false" name="invokeActiveHook" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13328" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17152" type="2275" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation comment="// blob handle maintenance" isSpecification="false" isLeaf="false" visibility="private" xmi.id="2707" isRoot="false" isAbstract="false" isQuery="false" name="atPrepare" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13329" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17153" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2708" value="" type="2583" name="aCon" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2709" value="" type="2585" name="anOp" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2710" value="" type="2564" name="aColumn" />
@@ -638,7 +641,7 @@
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2711" isRoot="false" isAbstract="false" isQuery="false" name="atPrepare" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13330" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17154" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2712" value="" type="2587" name="anOp" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2713" value="" type="2587" name="aBlobOp" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2714" value="" type="2564" name="aColumn" />
@@ -647,35 +650,35 @@
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2716" isRoot="false" isAbstract="false" isQuery="false" name="prepareColumn" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13331" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17155" type="2275" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2717" isRoot="false" isAbstract="false" isQuery="false" name="preExecute" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13332" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17156" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2719" value="" type="2718" name="anExecType" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2720" value="" type="2512" name="batch" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2721" isRoot="false" isAbstract="false" isQuery="false" name="postExecute" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13333" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17157" type="2275" />
<UML:Parameter isSpecification="false" visibility="private" xmi.id="2722" value="" type="2718" name="anExecType" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2723" isRoot="false" isAbstract="false" isQuery="false" name="preCommit" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13334" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17158" type="2275" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2724" isRoot="false" isAbstract="false" isQuery="false" name="atNextResult" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13335" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17159" type="2275" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2725" isRoot="false" isAbstract="false" isQuery="false" name="atNextEvent" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13336" type="2275" />
+ <UML:Parameter kind="return" xmi.id="17160" type="2275" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
<UML:Operation comment="// errors" isSpecification="false" isLeaf="false" visibility="private" xmi.id="2726" isRoot="false" isAbstract="false" isQuery="false" name="setErrorCode" >
@@ -709,7 +712,7 @@
</UML:Operation>
<UML:Operation isSpecification="false" isLeaf="false" visibility="private" xmi.id="2740" isRoot="false" isAbstract="false" isQuery="false" name="next" >
<UML:BehavioralFeature.parameter>
- <UML:Parameter kind="return" xmi.id="13337" type="2550" />
+ <UML:Parameter kind="return" xmi.id="17161" type="2550" />
</UML:BehavioralFeature.parameter>
</UML:Operation>
</UML:Classifier.feature>
@@ -1032,7 +1035,7 @@
</UML:Model>
</XMI.content>
<XMI.extensions xmi.extender="umbrello" >
- <docsettings viewid="2319" documentation="" uniqueid="13337" />
+ <docsettings viewid="2803" documentation="" uniqueid="17161" />
<diagrams>
<diagram snapgrid="1" showattsig="0" fillcolor="#ffffcc" linewidth="0" zoom="100" showgrid="1" showopsig="1" usefillcolor="1" snapx="10" canvaswidth="1004" snapy="10" showatts="0" xmi.id="299" documentation="" type="402" showops="1" showpackage="0" name="Ndb-class" localid="900000" showstereotype="0" showscope="0" snapcsgrid="1" font="Andale Mono,10,-1,5,50,0,0,0,0,0" linecolor="#993333" canvasheight="1239" >
<widgets>
@@ -1051,29 +1054,29 @@
</diagram>
<diagram snapgrid="1" showattsig="1" fillcolor="#ffffc0" linewidth="0" zoom="100" showgrid="1" showopsig="1" usefillcolor="1" snapx="10" canvaswidth="937" snapy="10" showatts="1" xmi.id="2803" documentation="" type="402" showops="1" showpackage="0" name="NdbBlob-class" localid="900000" showstereotype="0" showscope="1" snapcsgrid="0" font="Andale Mono,10,-1,5,50,0,0,0,0,0" linecolor="#ff0000" canvasheight="619" >
<widgets>
- <classwidget usesdiagramfillcolour="0" width="653" showattsigs="603" usesdiagramusefillcolour="0" x="101" y="36" showopsigs="602" linewidth="none" fillcolour="#ccffff" height="317" usefillcolor="1" showpubliconly="1" showattributes="0" isinstance="0" xmi.id="2480" showoperations="1" showpackage="0" showscope="0" font="Andale Mono,8,-1,5,75,0,0,0,0,0" linecolor="#993333" />
- <enumwidget usesdiagramfillcolour="0" width="82" usesdiagramusefillcolour="1" x="309" y="455" linewidth="none" fillcolour="#ccffff" height="110" usefillcolor="1" isinstance="0" xmi.id="2481" showpackage="0" showstereotype="1" font="Andale Mono,8,-1,5,50,0,0,0,0,0" linecolor="#993333" />
- <classwidget usesdiagramfillcolour="0" width="80" showattsigs="601" usesdiagramusefillcolour="0" x="550" y="478" showopsigs="601" linewidth="none" fillcolour="#ccffff" height="44" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="2501" showoperations="1" showpackage="0" showscope="1" showstereotype="1" font="Andale Mono,8,-1,5,75,0,0,0,0,0" linecolor="#993333" />
+ <classwidget usesdiagramfillcolour="0" width="653" showattsigs="603" usesdiagramusefillcolour="0" x="134" y="22" showopsigs="602" linewidth="none" fillcolour="#ccffff" height="317" usefillcolor="1" showpubliconly="1" showattributes="0" isinstance="0" xmi.id="2480" showoperations="1" showpackage="0" showscope="0" font="Andale Mono,8,-1,5,75,0,0,0,0,0" linecolor="#993333" />
+ <enumwidget usesdiagramfillcolour="0" width="82" usesdiagramusefillcolour="1" x="349" y="405" linewidth="none" fillcolour="#ccffff" height="110" usefillcolor="1" isinstance="0" xmi.id="2481" showpackage="0" showstereotype="1" font="Andale Mono,8,-1,5,50,0,0,0,0,0" linecolor="#993333" />
+ <classwidget usesdiagramfillcolour="0" width="80" showattsigs="601" usesdiagramusefillcolour="0" x="580" y="428" showopsigs="601" linewidth="none" fillcolour="#ccffff" height="44" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="2501" showoperations="1" showpackage="0" showscope="1" showstereotype="1" font="Andale Mono,8,-1,5,75,0,0,0,0,0" linecolor="#993333" />
</widgets>
<messages/>
<associations>
<assocwidget totalcounta="4" indexa="1" visibilityB="200" totalcountb="3" indexb="1" linewidth="none" widgetbid="2481" widgetaid="2480" roleBdoc="" documentation="" roleAdoc="" type="509" changeabilityA="900" changeabilityB="900" linecolor="none" visibilityA="200" >
<linepath>
- <startpoint startx="260" starty="353" />
- <endpoint endx="340" endy="455" />
+ <startpoint startx="300" starty="339" />
+ <endpoint endx="380" endy="405" />
</linepath>
</assocwidget>
<assocwidget totalcounta="4" indexa="2" visibilityB="200" totalcountb="3" indexb="2" linewidth="none" widgetbid="2481" widgetaid="2480" xmi.id="2556" type="510" changeabilityA="900" changeabilityB="900" linecolor="none" visibilityA="200" >
<linepath>
- <startpoint startx="430" starty="353" />
- <endpoint endx="360" endy="455" />
+ <startpoint startx="460" starty="339" />
+ <endpoint endx="400" endy="405" />
</linepath>
<floatingtext usesdiagramfillcolour="1" width="80" usesdiagramusefillcolour="1" x="341" y="434" linewidth="none" posttext="" role="710" fillcolour="none" height="22" usefillcolor="1" pretext="+" isinstance="0" xmi.id="8011" text="theState" font="Andale Mono,10,-1,5,50,0,0,0,0,0" linecolor="none" />
</assocwidget>
<assocwidget totalcounta="4" indexa="3" visibilityB="200" totalcountb="2" indexb="1" linewidth="none" widgetbid="2501" widgetaid="2480" roleBdoc="" documentation="" roleAdoc="" type="509" changeabilityA="900" changeabilityB="900" linecolor="none" visibilityA="200" >
<linepath>
- <startpoint startx="590" starty="353" />
- <endpoint endx="590" endy="478" />
+ <startpoint startx="620" starty="339" />
+ <endpoint endx="620" endy="428" />
</linepath>
</assocwidget>
</associations>
@@ -1187,11 +1190,11 @@
<listitem open="0" type="815" id="2524" />
<listitem open="0" type="815" id="2528" />
<listitem open="0" type="815" id="2531" />
- <listitem open="0" type="815" id="2535" />
- <listitem open="0" type="815" id="2541" />
<listitem open="0" type="815" id="2546" />
<listitem open="0" type="815" id="2549" />
<listitem open="0" type="815" id="2551" />
+ <listitem open="0" type="815" id="2541" />
+ <listitem open="0" type="815" id="2535" />
<listitem open="0" type="815" id="2557" />
<listitem open="0" type="815" id="2560" />
<listitem open="0" type="815" id="2566" />
| Thread |
|---|
| • svn commit - mysqldoc@docsrva: r2220 - in trunk/ndbapi: . images xmi | jon | 29 May |