Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
54a899e3
Commit
54a899e3
authored
Jan 02, 2005
by
unknown
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
updated EventApi documentation
parent
11a2a356
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
36 additions
and
27 deletions
+36
-27
ndb/include/ndbapi/Ndb.hpp
ndb/include/ndbapi/Ndb.hpp
+10
-5
ndb/include/ndbapi/NdbEventOperation.hpp
ndb/include/ndbapi/NdbEventOperation.hpp
+26
-22
No files found.
ndb/include/ndbapi/Ndb.hpp
View file @
54a899e3
...
@@ -17,8 +17,9 @@
...
@@ -17,8 +17,9 @@
/**
/**
@mainpage NDB API Programmers' Guide
@mainpage NDB API Programmers' Guide
This guide assumes a basic familiarity with MySQL Cluster concepts.
This guide assumes a basic familiarity with MySQL Cluster concepts found
Some of the fundamental ones are described in section @ref secConcepts.
on http://dev.mysql.com/doc/mysql/en/NDBCluster.html .
Some of the fundamental ones are also described in section @ref secConcepts.
The <em>NDB API</em> is a MySQL Cluster application interface
The <em>NDB API</em> is a MySQL Cluster application interface
that implements transactions.
that implements transactions.
...
@@ -34,6 +35,10 @@
...
@@ -34,6 +35,10 @@
- NdbRecAttr represents an attribute value
- NdbRecAttr represents an attribute value
- NdbDictionary represents meta information about tables and attributes.
- NdbDictionary represents meta information about tables and attributes.
- NdbError contains the specification for an error.
- NdbError contains the specification for an error.
It is also possible to receive "events" on changed data in the database.
This is done through the NdbEventOperation class.
There are also some auxiliary classes.
There are also some auxiliary classes.
The main structure of an application program is as follows:
The main structure of an application program is as follows:
...
@@ -515,7 +520,7 @@
...
@@ -515,7 +520,7 @@
/**
/**
@page secConcepts NDB Cluster Concepts
@page secConcepts NDB Cluster Concepts
The <em>NDB Kernel</em> is the collection of
database (DB)
nodes
The <em>NDB Kernel</em> is the collection of
storage
nodes
belonging to an NDB Cluster.
belonging to an NDB Cluster.
The application programmer can for most purposes view the
The application programmer can for most purposes view the
set of all DB nodes as one entity.
set of all DB nodes as one entity.
...
@@ -1160,7 +1165,7 @@ public:
...
@@ -1160,7 +1165,7 @@ public:
* @param eventName
* @param eventName
* unique identifier of the event
* unique identifier of the event
* @param bufferLength
* @param bufferLength
* buffer size for storing event data
*
circular
buffer size for storing event data
*
*
* @return Object representing an event, NULL on failure
* @return Object representing an event, NULL on failure
*/
*/
...
...
ndb/include/ndbapi/NdbEventOperation.hpp
View file @
54a899e3
...
@@ -38,21 +38,15 @@ class NdbEventOperationImpl;
...
@@ -38,21 +38,15 @@ class NdbEventOperationImpl;
* @brief Class of operations for getting change events from database.
* @brief Class of operations for getting change events from database.
*
*
* An NdbEventOperation object is instantiated by
* An NdbEventOperation object is instantiated by
* NdbEventOperation *Ndb::createEventOperation(const char *eventName,
* Ndb::createEventOperation
* int bufferLength)
*
*
* Prior to that an event must have been created in the Database through
* Prior to that an event must have been created in the Database through
*
int NdbDictionary::createEvent(NdbDictionary::Event)
*
NdbDictionary::createEvent
*
*
* bufferLength indicates size of circular buffer to store event info as
* The instance is removed by Ndb::dropEventOperation
* they occur.
*
* The instance is removed by Ndb::dropEventOperation(NdbEventOperation*)
*
*
* For more info see:
* For more info see:
* ndbapi_example5.cpp
* @ref ndbapi_example5.cpp
* Ndb.hpp
* NdbDictionary.hpp
*
*
* Known limitations:
* Known limitations:
*
*
...
@@ -72,18 +66,15 @@ class NdbEventOperationImpl;
...
@@ -72,18 +66,15 @@ class NdbEventOperationImpl;
* Today all events INSERT/DELETE/UPDATE and all changed attributes are
* Today all events INSERT/DELETE/UPDATE and all changed attributes are
* sent to the API, even if only specific attributes have been specified.
* sent to the API, even if only specific attributes have been specified.
* These are however hidden from the user and only relevant data is shown
* These are however hidden from the user and only relevant data is shown
* after next(). However false exits from pollEvents() may occur and thus
* after next().
* the subsequent next() will return zero, since there was no available
* However false exits from Ndb::pollEvents() may occur and thus
* data. Just do pollEvents() again. Will be fixed in later versions.
* the subsequent next() will return zero,
* since there was no available data. Just do Ndb::pollEvents() again.
*
*
* Event code does not check table schema version. Make sure to drop events
* Event code does not check table schema version. Make sure to drop events
* after table is dropped. Will be fixed in later
* after table is dropped. Will be fixed in later
* versions.
* versions.
*
*
* On a replicated system one will receive each event 2 times, one for each
* replica. If a node fails events will not be received twice anymore
* for data in corresponding fragment. Will be optimized in later versions.
*
* If a node failure has occured not all events will be recieved
* If a node failure has occured not all events will be recieved
* anymore. Drop NdbEventOperation and Create again after nodes are up
* anymore. Drop NdbEventOperation and Create again after nodes are up
* again. Will be fixed in later versions.
* again. Will be fixed in later versions.
...
@@ -93,7 +84,7 @@ class NdbEventOperationImpl;
...
@@ -93,7 +84,7 @@ class NdbEventOperationImpl;
*
*
* Known bugs:
* Known bugs:
*
*
* None, except if we can call some of the "isses" above bugs
* None, except if we can call some of the "iss
u
es" above bugs
*
*
* Useful API programs:
* Useful API programs:
*
*
...
@@ -103,8 +94,10 @@ class NdbEventOperationImpl;
...
@@ -103,8 +94,10 @@ class NdbEventOperationImpl;
*/
*/
class
NdbEventOperation
{
class
NdbEventOperation
{
public:
public:
/**
* Retrieve current state of the NdbEventOperation object
*/
enum
State
{
CREATED
,
EXECUTING
,
ERROR
};
enum
State
{
CREATED
,
EXECUTING
,
ERROR
};
State
getState
();
State
getState
();
/**
/**
...
@@ -163,7 +156,7 @@ public:
...
@@ -163,7 +156,7 @@ public:
/**
/**
* Retrieves event resultset if available, inserted into the NdbRecAttrs
* Retrieves event resultset if available, inserted into the NdbRecAttrs
* specified in getValue() and getPreValue(). To avoid polling for
* specified in getValue() and getPreValue(). To avoid polling for
* a resultset, one can use Ndb::pollEvents
(int millisecond_timeout)
* a resultset, one can use Ndb::pollEvents
* which will wait on a mutex until an event occurs or the specified
* which will wait on a mutex until an event occurs or the specified
* timeout occurs.
* timeout occurs.
*
*
...
@@ -171,6 +164,8 @@ public:
...
@@ -171,6 +164,8 @@ public:
* of available events. By sending pOverRun one may query for buffer
* of available events. By sending pOverRun one may query for buffer
* overflow and *pOverRun will indicate the number of events that have
* overflow and *pOverRun will indicate the number of events that have
* overwritten.
* overwritten.
*
* @return number of available events, -1 on failure
*/
*/
int
next
(
int
*
pOverRun
=
0
);
int
next
(
int
*
pOverRun
=
0
);
...
@@ -182,25 +177,34 @@ public:
...
@@ -182,25 +177,34 @@ public:
/**
/**
* Query for occured event type.
* Query for occured event type.
* NdbDictionary::Event::{TE_INSERT,TE_UPDATE,TE_DELETE}
*
* Only valid after next() has returned value >= 0
* @note Only valid after next() has been called and returned value >= 0
*
* @return type of event
*/
*/
NdbDictionary
::
Event
::
TableEvent
getEventType
();
NdbDictionary
::
Event
::
TableEvent
getEventType
();
/**
/**
* Retrieve the GCI of the latest retrieved event
*
*
* @return GCI number
*/
*/
Uint32
getGCI
();
Uint32
getGCI
();
/**
/**
* Retrieve the complete GCI in the cluster (not necessarily
* associated with an event)
*
*
* @return GCI number
*/
*/
Uint32
getLatestGCI
();
Uint32
getLatestGCI
();
#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
/*
/*
*
*
*/
*/
void
print
();
void
print
();
#endif
private:
private:
#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment