Migrating From PhysX SDK 2.x to 3.x¶
This guide describes how to upgrade applications that have an integration of PhysX 2.x to using PhysX 3.x. As the changes are numerous and significant, the level of work involved in upgrading to PhysX 3 should be carefully assessed before starting to adapt an application's integration code.
Removed Features¶
This section lists features of PhysX 2 that do not have a PhysX 3 equivalent. Applications that rely on these features may need fundamental changes, or should stay with using PhysX 2.
Compartments¶
PhysX 2 scenes supported scene compartments. A separate compartment could be assigned to simulating rigid bodies, deformables or fluids. The compartments could be simulated in parallel and the scene code contained some extra logic for interaction between compartments. Compartments were added as an afterthought to an SDK that was not originally designed to support interaction between multiple simulation technologies. This design deficiency was addressed from the ground up in PhysX 3 and comparments were no longer needed.
One missing detail is separate time steps are no longer directly supported in 3. A possible workaround is to create multiple PxScenes and step them at different rates. In this scenario the force exchange implementation would be entirely up to the user. Another possible approach is to simulate the entire scene using the minimum timestep formerly required for any of the compartments.
Deformables¶
PhysX 2 supported a wide range of deformable mesh simulation features such as environmental cloth, soft bodies, inflatable balloons and plastic deformation of rigid metal. For performance and code quality reasons, 3.3 temporarily stopped supporting many of 2.8 deformable features in favor of a much simpler and higher performance cloth simulation engine. In PhysX 3 dot releases, we will be incrementally adding back features such as environmental simulation. For the time being there is no substitute for many applications of PhysX 2 deformables.
NxUtilLib¶
The assorted utility functions that were in this library was either moved elsewhere or deleted. Sweep, overlap and ray tests are available in PxGeometryQuery. Inertial tensor diagonalization is in PxDiagonalize(). Density computation from mass is gone. Floating point unit manipulation routines are gone. Geometrical helpers are in general gone.
Anisotropic Friction¶
Friction on a surface in PhysX 2 could be configured to be stronger in one direction than in another. This is no longer supported in PhysX 3, and there is no known workaround that will give comparable behavior.
Basics¶
SDK Header¶
In PhysX 2, the symbols of the SDK could be included in the user's relevant source files through the following header:
#include "NxPhysics.h"
In PhysX 3, this should be replaced with:
#include "PxPhysicsAPI.h"
SDK Redistribution¶
Unlike versions of PhysX prior to 2.8.4, PhysX 3 no longer needs a 'system software' installation on Windows.
API Conventions¶
The Nx prefix of API classes has changed to a Px prefix. Descriptors for many classes were removed and replaced with creation parameters inline in the creation function.
For example, a capsule was created with PhysX 2 like this:
NxCapsuleShapeDesc capsuleDesc;
capsuleDesc.height = height;
capsuleDesc.radius = radius;
capsuleDesc.materialIndex= myMaterial->getMaterialIndex();
NxShape* aCapsuleShape = aCapsuleActor->createShape(capsuleDesc);
In PhysX 3 it is created more succinctly like this:
PxShape* aCapsuleShape = PxRigidActorExt::createExclusiveShape(*aCapsuleActor,
PxCapsuleGeometry(radius, halfHeight), myMaterial);
Callback Classes¶
PhysX 2 callback classes are listed below, followed by the corresponding PhysX 3 class, if there is one:
| NxUserAllocator | PxAllocatorCallback |
| NxUserOutputStream | PxErrorCallback |
| NxUserContactReport | PxSimulationEventCallback |
| NxUserNotify | PxSimulationEventCallback |
| NxUserTriggerReport | PxSimulationEventCallback |
The following PhysX 2 callback classes have no PhysX 3 direct equivalent:
| NxUserRaycastReport | Ray casting Results. Results are now passed to the user using a PxHitBuffer object. |
| NxUserEntityReport | Sweep and Overlap results. Results are now passed to the user using a PxHitBuffer object. |
| NxStream | Data serialization. Serialized data is now written directly to binary buffers. |
Below is a list of new callback classes that offer functionality that did not exist in PhysX 2 yet:
| PxBroadPhaseCallback | Broad-phase related events. |
| PxSimulationFilterCallback | Contact filtering. |
| PxUserControllerHitReport | Reports character controller events. |
| PxControllerBehaviorCallback | Customizes behavior of character controller collisions. |
| PxContactModifyCallback | Modification of contact constraints. |
| PxCCDContactModifyCallback | Modification of CCD contact constraints. |
| PxConstraintConnector | Custom constraints. |
| PxProcessPxBaseCallback | Serialization. |
| PxQueryFilterCallback | Scene query filtering. |
| PxSpatialLocationCallback | Scene Queries against PxSpatialIndex. |
| PxSpatialOverlapCallback | Scene Queries against PxSpatialIndex. |
Memory Management¶
NxUserAllocator is renamed to PxAllocatorCallback. An important change since PhysX 2: The SDK now requires that the memory that is returned be 16-byte aligned. On many platforms malloc() returns memory that is 16-byte aligned, but on Windows the system function _aligned_malloc() provides this capability.
Debug Rendering¶
Debug visualization formerly provided by NxScene::getDebugRenderable() is now handled by PxScene::getRenderBuffer() and related functions.
Error Reporting¶
NxUserOutputStream is now called PxErrorCallback, but works the same way. There is no separate reportAssertViolation() function. Asserts are only contained in the debug build which only ships with the source release and go directly to platform hooks.
Type Casting¶
PhysX 2 style downcasting:
NxSphereShape * sphere = shape->isSphere();
is replaced by the following template syntax:
const PxRigidDynamic* myActor = actor->is<PxRigidDynamic>();
Multithreading¶
Compared to PhysX 2, there are now more situations where it is legal to call the SDK from multiple threads. See the section on Multithreading for details.
While PhysX 2 simulation threads were managed internally by the SDK, and the user could simply specify the number to use, PhysX 3 allows the application to take over all of the simulation's thread scheduling. It is also possible for the application to define its own tasks and submit them to the SDK's default scheduler. See the section on TaskManagement for details.
Startup and Shutdown¶
PxCreatePhysicsSDK() has been renamed PxCreatePhysics(), and the parameters have slightly changed. A foundation instance must first be created explicitly using PxCreateFoundation().
Extensions¶
A lot of non-essential utility code has been moved to the extensions library. For example, NxActor::addForceAtPos() is now exposed as PxRigidBodyExt::addForceAtPos(). If a former function appears to be missing, look there. It is available after calling PxInitExtensions().
Heightfields¶
Heightfields now need to be pre-cooked like convexes and meshes. PhysX 3 heightfields can be set to use the same internal collision logic as meshes so they have uniform behavior.
Cooking¶
The PhysX 2 cooking library was created by calling:
NxCookingInterface *gCooking = NxGetCookingLib(NX_PHYSICS_SDK_VERSION);
gCooking->NxInitCooking();
It can now be accessed through a single PxCreateCooking() call. Cooking function names are slightly changed, e.g. NxCookTriangleMesh() is now invoked as cooking.cookTriangleMesh().
Serialization¶
PhysX 3 has two serialization systems: 'RepX' based on XML, and a separate system for fast binary data. Neither approach is similar to PhysX 2's save-to-desc and load-from-desc based serialization code, though the PhysX 3 'RepX' serialization is similar to PhysX 2's NxUStream.
API Design Changes¶
Changed Actor Hierarchy¶
PhysX 2 only had a single actor class, and it was possible to call any method on any instance of this class even if it wasn't applicable to the kind of actor object in question. For example, isSleeping() could be called on static actors which did not have any sleep logic. In PhysX 3, we decoupled actor into a hierarchy of specialized sub-classes. For example, PxCloth and PxParticleSystem are now subclasses of PxActor.
Actor Creation¶
In PhysX 2, the objects inside each scene were created by the scene class itself. In PhysX 3, objects are created by PxPhysics, and need to be added to a scene as a separate subsequent step by calling:
mScene->addActor(actor);
Material Indexes¶
PhysX 2 uses so-called material indexes for stored materials. Material indices are supported in PhysX 3 only to specify per-triangle materials in meshes and heightfields. In other cases the material object is referenced directly.
Continuous Collision Detection¶
PhysX 2 uses CCD skeleton meshes for CCD. PhysX 3 no longer needs this data so all skeleton related code can simply be removed.
Pose Description¶
In PhysX 2 pose is specified using a matrix. In PhysX 3, pose is specified using a PxTransform type that consists of a PxVec3 for translation and a PxQuat for rotation. Constructors are provided to convert 4x4 matrices to PxTransform objects and 3x3 matrices from quaternions, as well as conversely.
Shape Description¶
PhysX 2 has multiple subclasses of NxShape, one for each type of geometry, with corresponding NxShapeDesc classes. PhysX 3 has only a single PxShape class, to which a PxGeometry object is passed on creation. To determine the geometry type of a shape, call PxShape::getGeometryType(). To extract a PxGeometry object from a shape of unknown type, use PxShape::getGeometry().
Skin Width¶
PhysX 2's NX_SKIN_WIDTH and NxShapeDesc::skinWidth was replaced with PxShape::setContactOffset() and setRestOffset(). See Tuning Shape Collision Behavior.
Joints¶
The D6 driveType in PhysX 2 no longer exists in PhysX 3. Now drive for D6 is always spring-like: if you want position drive you set the 'spring' value non-zero, if you want velocity drive you set the damping field non-zero, and if you set both you get a damped spring. Some specialized joints like NxJointDriveDesc, NxJointLimitSoftDesc (PhysX 2 names) now were moved to Extensions (see the extensions folder inside PhysX 3 include directory).
If you have used the deleted NxSpringAndDamperEffector, you should now use a joint with a spring property.
All special axes for a joint (rotation axis for revolute, translation axis for prismatic, twist axis for D6) now use the x-axis.
Joint limits now require a contact offset, which determines the distance from the limit at which it becomes active. It functions similarly to the contactOffset parameter for collision detection.
Time Stepping¶
PhysX 2 had two different time stepping modes: NX_TIMESTEP_FIXED (SDK subdivided into fixes steps) and NX_TIMESTEP_VARIABLE (user specified steps). This was passed to the setTiming() function. This controlled SDK-internal substepping code that computed the proper size of the next time step, and called an internal simulate function with this elapsed time.
PhysX 3 discards with the substepping code altogether, and exposes only the internal simulate function directly:
mScene->simulate(mStepSize);
In PhysX 2 it was legal to call simulate with a timestep of zero to force the execution of various side-effects of simulation. PhysX 3 neither requires nor supports this.
The fetchResults function stayed the same, however there is no more flag to specify which simulation to fetch, as there is now only a single simulation.
Simulation Parameters¶
The global speeds below which objects go to sleep, NX_DEFAULT_SLEEP_LIN_VEL_SQUARED and NX_DEFAULT_SLEEP_ANG_VEL_SQUARED are gone. PhysX 3 instead features per-body function PxRigidDynamic::setSleepThreshold() which is an energy based setting, more similar to the PhysX 2 NX_DEFAULT_SLEEP_ENERGY.
The global NX_BOUNCE_THRESHOLD is replaced by PxSceneDesc::bounceThresholdVelocity.
The NX_DYN_FRICT_SCALING, NX_STA_FRICT_SCALING scaling factors have been removed. These values should now be pre-baked into friction coefficients.
The NX_MAX_ANGULAR_VELOCITY value has been removed.
NX_ADAPTIVE_FORCE has been renamed PxScenFlag.ADAPTIVE_FORCE.
Collision Filtering¶
PhysX 2 supported multiple fixed function mechanisms for filtering pairwise shape collisions such as collision groups. In PhysX 2 multiple group tags could be created, specified as collidable with each other and assigned to shapes.
PhysX 3, supports user callbacks for collision filtering with a restriction that arbitrary memory cannot be accessed by filtering code so that it can be executed on PS3 SPUs or on GPUs with optimal performance. If performance is not a priority, similar functionality can be achieved via conventional callbacks (PxSimulationFilterCallback).
When migrating PhysX 2 code, note that we provide the class PxDefaultSimulationFilterShader in PhysX 3, which emulates a portion of PhysX 2 filtering behavior. Start by checking if this class is sufficient. As this is an extension class, the source code is available and may be extended or customized.
To migrate your fixed function PhysX 2 filtering code on your own, you need to be aware of its exact behavior and implement it as a callback or shader. Let us look at the precise 2.8 mechanisms and make some recommendations for porting:
virtual void NxScene::setShapePairFlags(NxShape& shapeA,
NxShape& shapeB,
NxU32 nxContactPairFlag //0 or NX_IGNORE_PAIR
)
virtual void NxScene::setActorPairFlags(NxActor& actorA,
NxActor& actorB,
NxU32 nxContactPairFlag
)
The first function stored explicit shape pairs in a hash, and a lookup returned the bit indicating to filter or not. The second did the same for actor pairs. Because of the arbitrary size of the pair hash, implementing this mechanism as a shader with fixed memory is difficult in practice, but implementing as a callback should be trivial using a data structure such as the STL hash_map where Key is a struct holding the two pointers and Data is the bit flag.
Another scheme provided by PhysX 2 were collision groups:
virtual void NxShape::setGroup(NxCollisionGroup collisionGroup)
virtual void NxScene::setGroupCollisionFlag(NxCollisionGroup group1,
NxCollisionGroup group2,
bool enable
)
This approach let the user assign shapes to one of 32 collision groups, and then let each pair of groups be assigned a boolean pair flag. This approach lends itself better to a shader based implementation. To do this, you should reserve a word of each shape's filterData (say word0) to hold the group index, and assign this as before. Next, define a matrix to hold the group pair bits, and a function to set it:
NxU32 groupCollisionFlags[32];
//init all group pairs to true:
for (unsigned i = 0; i < 32; i ++)
groupCollisionFlags[i] = 0xffffffff;
void setU32CollisionFlag(NxU32 groups1, NxU32 groups2, bool enable)
{
NX_ASSERT(groups1 < 32 && groups2 < 32);
if (enable)
{
//be symmetric:
groupCollisionFlags[groups1] |= (1 << groups2);
groupCollisionFlags[groups2] |= (1 << groups1);
}
else
{
groupCollisionFlags[groups1] &= ~(1 << groups2);
groupCollisionFlags[groups2] &= ~(1 << groups1);
}
}
Unfortunately it is not possible to change this state after the scene is created. This is because if the matrix could change during simulation, it would force an arbitrary amount of existing contact pairs to be refiltered. In a large simulation, this could be an unacceptable amount of computation. Therefore the matrix must be initialized to its final state before the scene is created, like this:
PxSceneDesc desc;
...
desc.filterShaderData = groupCollisionFlags;
desc.filterShaderDataSize = 32 * sizeof(PxU32);
scene = sdk.createScene(desc);
Finally, you need to code the filter shader to access this data:
PxFilterFlags FilterShader(
PxFilterObjectAttributes attributes0, PxFilterData filterData0,
PxFilterObjectAttributes attributes1, PxFilterData filterData1,
PxPairFlags& pairFlags, const void* constantBlock, PxU32 constantBlockSize)
{
// let triggers through, and do any other prefiltering you need.
if(PxFilterObjectIsTrigger(attributes0) || PxFilterObjectIsTrigger(attributes1))
{
pairFlags = PxPairFlag::eTRIGGER_DEFAULT;
return PxFilterFlag::eDEFAULT;
}
// generate contacts for all that were not filtered above
pairFlags = PxPairFlag::eCONTACT_DEFAULT;
PxU32 ShapeGroup0 = filterData0.word0 & 31;
PxU32 ShapeGroup1 = filterData1.word0 & 31;
PxU32* groupCollisionFlags = (PxU32*)constantBlock;
if ((groupCollisionFlags[ShapeGroup0] & (1 << ShapeGroup1)) == 0)
return PxFilterFlag::eSUPPRESS;
else
return PxFilterFlag::eDEFAULT;
}
Scene Queries¶
The API for scene query functions that return multiple intersections (e.g. PxScene::raycast(...)) has changed. In PhysX 3, raycast/overlap/sweep functions expect a pre-allocated buffer or a callback class as a parameter in order to return multiple intersections. If you do not know the maximum number of intersections in advance you can inherit from PxHitCallback and override processTouches virtual function to receive an arbitrary number of intersections via multiple callbacks using only a fixed size buffer. Please refer to the Scene Query section of the guide for more details and examples.
Raycasts¶
The interface for making raycasts was changed in PhysX 3. Now you should pass an origin (PxVec3) and a direction (PxVec3) instead of a NxRay that combined these fields in PhysX 2.
Overlaps¶
Routines like overlapSphereShapes, overlapAABBShapes, overlapOBBShapes, overlapCapsuleShapes are now all covered with PxScene::overlap (passing in a PxSphereGeometry, PxBoxGeometry or PxCapsuleGeometry as a first parameter).
Sweep Tests¶
PhysX 2 provides a linearCapsuleSweep that takes two points to define the capsule's two spherical ends. In PhysX 3 we have a general sweep() routine that takes a PxGeometry and an initial PxTransform position. Capsules were defined in PhysX 2 as two points. They should be converted to an initial transformation (PxTransform) that consists of PxVec3 for position and PxQuat for rotation. PxCapsuleGeometry's length is along the x axis in local space.


x
This is a simple module which contains a function
References:
No label: some_value
some_value
External modules: module path module path
Sectioned-labels: package.path
, package.path
Across multiple lines: a multiline label. a multiline label
Admonitions
Old syntax
danger
Some warning
With a label
Some warning
New syntax
warning
Critical content demanding immediate user attention due to potential risks.
With a label
Critical content demanding immediate user attention due to potential risks.
Colours
#fff #fda087
Attributes on code blocks
print("Hello")
print("Hello")
Attributes on headers
Some header
| some_value = 0 |
|---|
- some_value = 0 Source


The MongoDB driver is not installing correctly
Most of the problems are with the native BSON parser and there can be a multitude of reasons why it’s not installing correctly and the driver is falling back to the js implementation of the serializer. This post will hopefully help you track down what the problem is on your system. We will start looking at it from a checklist point of view.
Build Essentials Linux/Unix
If you don’t have the build essentials it won’t build. In the case of linux you will need gcc and g++, node.js with all the headers and python. The easiest way to figure out what’s missing is by trying to build the js-bson project. You can do this by performing the following steps.
git clone https://github.com/mongodb/js-bson.git
cd js-bson
npm install
make test
If all the steps complete you have the right toolchain installed. If you get node-gyp not found you need to install it globally by doing.
npm install -g node-gyp
If correctly compile and runs the tests you are golden. We can now try to install the mongod driver by performing the following command.
cd yourproject
npm install mongod
If it still fails the next step is to examine the npm log. Rerun the command but in this case in verbose mode.
npm --loglevel verbose install mongodb
This will print out all the steps npm is performing while trying to install the module.
Build Essentials Windows
In windows there are pre-compiled binaries for bson. However these only work on 0.10.x or earlier as 0.11.x contains the completely breaking v8 API. So if you want to run 0.11.x you will have to set up your own build toolchain. So far I’ve only had luck with the following combination.
Visual Studio c++ 2010 (do not use higher versions)
Windows 7 64bit SDK
Python 2.7 or higher
Unfortunately you cannot easily use the make file under windows (I have not been able to do so correctly using MinGw).
Open visual studio command prompt. Ensure node.exe is in your path and install node-gyp.
npm install -g node-gyp
Next you will have to build the project manually to test it. Use any tool you use with git and grab the repo.
git clone https://github.com/mongodb/js-bson.git
cd js-bson
npm install
node-gyp rebuild
This should rebuild the driver successfully if you have everything set up correctly.
Other possible issues
Your python installation might be hosed making gyp break. I always recommend that you test your deployment environment first by trying to build node itself on the server in question as this should unearth any issues with broken packages (and there are a lot of broken packages out there).
Another thing is to ensure your user has write permission to wherever the node modules are being installed.


[§11-392] House bulletins. The costs of preparing, printing, and circulating house bulletins and the writings, drawings, and photographs contained therein, except for paid political advertisements, shall be exempt from the provisions of this part. [L 2010, c 211, pt of §2]


Document Issued denotes all documents that you have issued in the corresponding filing period which you have pushed to GSTN. Enter the first and last serial number of each document for the corresponding filing period, the total number of documents and the number of cancelled documents.
| S.No | Nature of Document | Sr. No. From | Sr. No. To | Total Number | Total Cancelled | Net Issued | |
|---|---|---|---|---|---|---|---|
| {{i + 1}} | {{item.doc ? item.doc : '-' }} | {{item.from ? item.from : '-'}} | {{item.to ? item.to : '-'}} | {{item.totnum ? item.totnum : '-'}} | {{item.cancel ? item.cancel : '-'}} | {{item.netIssue ? item.netIssue : '-'}} |


--- layout: data_model title: malwareMetaDataInlineType this_version: 4.1 ---
| Field Name | Type | Description |
|---|---|---|
| @versionrequired | decimal |
The version of the schema. This is currently fixed to be 1.1.
|
| @idrequired | string |
A required identifier for the document.
|
| company1..1 | string |
The company name for the entity generating the xml document, for example "AVG Technologies".
|
| author1..1 | string |
The author of the document, for example "Matt Williamson" or "Igor Muttik".
|
| comment1..1 | string |
A human readable comment.
|
| timestamp1..1 | dateTime |
The time that the document was created.
|
| objects0..1 | objectsInlineType |
Objects are globally unique files, urls, domain, registry, ipAddress etc. The data within the object is supporting data for the globally unique object. For example, files have an id (by convention the hash, sha256 if available, else weaker ones), and the data for the file is the hashes, sizes etc. Urls have an id (the url itself), and data which is simply the url parts broken out. There are no dates, etc in the objects. These are first class, global objects.
|
| objectProperties0..1 | objectPropertiesInlineType |
Properties of objects that do not make sense as relationships. e.g. file names, url parameter strings, registry value data.
|
| relationships0..1 | relationshipsInlineType |
Relationships between objects.
|
| fieldData0..1 | fieldDataInlineType |
Prevalence data.
|


After a long and successful career as a nonprofit development & communications director, I'm currently in a bootcamp for web design that's kinda kicking my ass, although I'm loving every minute of it.
When I'm not sorting through piles of code, I'm usually reading, watching Star Trek, knitting, or trying to get all the cat hair off my clothes.
A Cause For Paws
One of my first projects, this showcases cats and dogs for adoption at a fictional animal shelter.
Technologies used: HTML, CSS, Github
EpiCupcakes Shop
A simple web page for a fabulous, albeit fictional, cupcake shop.
Technologies used: HTML, CSS, Bootstrap, Github
Placeholder for future projects!
Professional Experience


|
cds
1.2.0
|
A variation of Michael & Scott's lock-free queue. More...
#include <cds/container/moir_queue.h>
Data Structures | |
| struct | rebind |
| Rebind template arguments. More... |
Public Types | |
| typedef T | value_type |
| Value type stored in the stack. | |
| typedef base_class::gc | gc |
| Garbage collector used. | |
| typedef base_class::back_off | back_off |
| Back-off strategy used. | |
| typedef options::allocator_type | allocator_type |
| Allocator type used for allocate/deallocate the nodes. | |
|
typedef options::options::item_counter | item_counter |
| Item counting policy used. | |
| typedef options::options::stat | stat |
| Internal statistics policy used. | |
| typedef base_class::memory_model | memory_model |
| Memory ordering. See cds::opt::memory_model option. |
Public Member Functions | |
| MoirQueue () | |
| Initializes empty queue. | |
| ~MoirQueue () | |
| Destructor clears the queue. | |
| size_t | size () const |
| Returns queue's item count (see intrusive::MSQueue::size for explanation) | |
| const stat & | statistics () const |
| Returns refernce to internal statistics. | |
| bool | enqueue (const value_type &val) |
Enqueues val value into the queue. | |
| template<typename Type , typename Func > | |
| bool | enqueue (const Type &data, Func f) |
Enqueues data to queue using copy functor. | |
| template<typename Type , typename Func > | |
| bool | dequeue (Type &dest, Func f) |
| Dequeues a value using copy functor. | |
| bool | dequeue (value_type &dest) |
| Dequeues a value from the queue. | |
| bool | push (const value_type &val) |
| Synonym for enqueue function. | |
| template<typename Type , typename Func > | |
| bool | push (const Type &data, Func f) |
| Synonym for template version of enqueue function. | |
| bool | pop (value_type &dest) |
| Synonym for dequeue function. | |
| template<typename Type , typename Func > | |
| bool | pop (Type &dest, Func f) |
| Synonym for template version of dequeue function. | |
| bool | empty () const |
| Checks if the queue is empty. | |
| void | clear () |
| Clear the queue. |
Protected Types | |
| typedef options::node_type | node_type |
| queue node type (derived from intrusive::single_link::node) |
Additional Inherited Members | |
| Private Types inherited from cds::intrusive::MSQueue< GC, intrusive::single_link::node< T >, Options... > | |
|
typedef intrusive::single_link::node < T > | value_type |
| type of value stored in the queue | |
| typedef options::hook | hook |
| hook type | |
| typedef hook::node_type | node_type |
| node type | |
| typedef options::disposer | disposer |
| disposer used | |
|
typedef get_node_traits < value_type, node_type, hook > ::type | node_traits |
| node traits | |
|
typedef single_link::get_link_checker < node_type, options::link_checker >::type | link_checker |
| link checker | |
| typedef GC | gc |
| Garbage collector. | |
| typedef options::back_off | back_off |
| back-off strategy | |
| typedef options::item_counter | item_counter |
| Item counting policy used. | |
| typedef options::stat | stat |
| Internal statistics policy used. | |
| typedef options::memory_model | memory_model |
| Memory ordering. See cds::opt::memory_model option. | |
| Private Member Functions inherited from cds::intrusive::MoirQueue< GC, intrusive::single_link::node< T >, Options... > | |
| value_type * | dequeue () |
| Dequeues a value from the queue. | |
| value_type * | pop () |
| Synonym for dequeue function. |
A variation of Michael & Scott's lock-free queue.
It is non-intrusive version of intrusive::MoirQueue.
T
is a type stored in the queue. It should be default-constructible, copy-constructible, assignable type.
Options
description see MSQueue
|
inline |
Clear the queue.
The function repeatedly calls dequeue until it returns NULL. The disposer defined in template Options
is called for each item that can be safely disposed.
|
inline |
Dequeues a value using copy functor.
Func
is a functor called to copy dequeued value to dest
of type Type
which may be differ from type T
stored in the queue. The functor's interface is:
You may use boost:ref
construction to pass functor f
by reference.
Requirements The functor Func
should not throw any exception.
|
inline |
Dequeues a value from the queue.
If queue is not empty, the function returns true
, dest
contains copy of dequeued value. The assignment operator for type value_type is invoked. If queue is empty, the function returns false
, dest
is unchanged.
|
inline |
Enqueues val
value into the queue.
The function makes queue node in dynamic memory calling copy constructor for val
and then it calls intrusive::MSQueue::enqueue. Returns true
if success, false
otherwise.
|
inline |
Enqueues data
to queue using copy functor.
Func
is a functor called to copy value data
of type Type
which may be differ from type T
stored in the queue. The functor's interface is:
You may use boost:ref
construction to pass functor f
by reference.
Requirements The functor Func
should not throw any exception.


Username:
Email:
First Name:
Last Name:
Phone:
Address Line1:
City:
Zip:
State:
Role: Individual Merchant


- acquireExclusive() - Method in class org.cojen.tupl.util.Latch
-
Acquire the exclusive latch, barging ahead of any waiting threads if
possible.
- acquireExclusiveInterruptibly() - Method in class org.cojen.tupl.util.Latch
-
Acquire the exclusive latch, aborting if interrupted.
- acquireShared() - Method in class org.cojen.tupl.util.Latch
-
Acquire a shared latch, barging ahead of any waiting threads if possible.
- acquireSharedInterruptibly() - Method in class org.cojen.tupl.util.Latch
-
Acquire a shared latch, aborting if interrupted.
- add(Index.Stats) - Method in class org.cojen.tupl.Index.Stats
-
Adds stats into a new object.
- algorithm() - Method in class org.cojen.tupl.CipherCrypto
-
Returns "AES" by default; override to change the algorithm.
- alreadyOwned() - Method in enum org.cojen.tupl.LockResult
-
Returns true if lock was already owned when requested.
- analyze(byte[], byte[]) - Method in interface org.cojen.tupl.Index
-
Estimates the size of this index with a single random probe.
- applyCachePrimer(InputStream) - Method in interface org.cojen.tupl.Database
-
Prime the cache, from a set encoded
earlier
.
- attach(Object) - Method in interface org.cojen.tupl.Transaction
-
Attach an arbitrary object to this transaction instance, for tracking it.
- attachment() - Method in interface org.cojen.tupl.Transaction
-
Returns any attachment which was set earlier.
- AttributedFileFactory - Class in org.cojen.tupl.io
-
Applies file attributes to newly created files and directories.
- AttributedFileFactory(String, String) - Constructor for class org.cojen.tupl.io.AttributedFileFactory
-
- AttributedFileFactory(FileAttribute<?>[], FileAttribute<?>[]) - Constructor for class org.cojen.tupl.io.AttributedFileFactory
-
- autoload(boolean) - Method in interface org.cojen.tupl.Cursor
-
By default, values are loaded automatically, as they are seen.
- autoload() - Method in interface org.cojen.tupl.Cursor
-
Returns the current autoload mode.
- autoload(boolean) - Method in class org.cojen.tupl.WrappedCursor
-
By default, values are loaded automatically, as they are seen.
- autoload() - Method in class org.cojen.tupl.WrappedCursor
-
Returns the current autoload mode.
- await(Latch, long, long) - Method in class org.cojen.tupl.util.LatchCondition
-
Blocks the current thread until a signal is received.
- awaitShared(Latch, long, long) - Method in class org.cojen.tupl.util.LatchCondition
-
Blocks the current thread until a signal is received.
- cachedPages - Variable in class org.cojen.tupl.Database.Stats
-
- cachedPages() - Method in class org.cojen.tupl.Database.Stats
-
Returns the current size of the cache, in pages.
- CacheExhaustedException - Exception in org.cojen.tupl
-
Thrown when the database cache is full and no more data can be loaded into
it.
- CacheExhaustedException() - Constructor for exception org.cojen.tupl.CacheExhaustedException
-
- cachePage(long, byte[]) - Method in class org.cojen.tupl.io.PageArray
-
If supported, copies a page into the cache, but does not write it.
- cachePage(long, byte[], int) - Method in class org.cojen.tupl.io.PageArray
-
If supported, copies a page into the cache, but does not write it.
- cachePage(long, long) - Method in class org.cojen.tupl.io.PageArray
-
If supported, copies a page into the cache, but does not write it.
- cachePage(long, long, int) - Method in class org.cojen.tupl.io.PageArray
-
If supported, copies a page into the cache, but does not write it.
- cachePriming(boolean) - Method in class org.cojen.tupl.DatabaseConfig
-
Enable automatic cache priming, which writes a priming set into a special file when the
database is cleanly shutdown.
- capacityLimit(long) - Method in interface org.cojen.tupl.Database
-
Set a soft capacity limit for the database, to prevent filling up the storage
device.
- capacityLimit() - Method in interface org.cojen.tupl.Database
-
Returns the current capacity limit, rounded down by page size.
- capacityLimitOverride(long) - Method in interface org.cojen.tupl.Database
-
Set capacity limits for the current thread, allowing it to perform tasks which can free
up space.
- category - Variable in enum org.cojen.tupl.EventType
-
- CauseCloseable - Interface in org.cojen.tupl.io
-
Closeable interface which allows a failure cause to be specified.
- check() - Method in interface org.cojen.tupl.Transaction
-
Checks the validity of the transaction.
- checkpoint() - Method in interface org.cojen.tupl.Database
-
Durably sync and checkpoint all changes to the database.
- checkpointDelayThreshold(long, TimeUnit) - Method in class org.cojen.tupl.DatabaseConfig
-
Set the maximum delay before an automatic
checkpoint
is
performed, regardless of the redo log size threshold.
- checkpointed(long) - Method in interface org.cojen.tupl.ext.ReplicationManager
-
Indicates that all data prior to the given log position has been durably
checkpointed.
- checkpointFinish(Database, Object) - Method in interface org.cojen.tupl.ext.TransactionHandler
-
Wait for a concurrent checkpoint to finish.
- checkpointRate(long, TimeUnit) - Method in class org.cojen.tupl.DatabaseConfig
-
Set the rate at which
checkpoints
are
automatically performed.
- checkpointSizeThreshold(long) - Method in class org.cojen.tupl.DatabaseConfig
-
Set the minimum redo log size required for an automatic
checkpoint
to actually be performed.
- checkpointStart(Database) - Method in interface org.cojen.tupl.ext.TransactionHandler
-
Called to durably write all changes.
- CipherCrypto - Class in org.cojen.tupl
-
Crypto implementation which uses
Cipher
and defaults to the AES algorithm with a
128-bit key.
- CipherCrypto() - Constructor for class org.cojen.tupl.CipherCrypto
-
Construct with a new key, available from the
secretKey
method.
- CipherCrypto(byte[]) - Constructor for class org.cojen.tupl.CipherCrypto
-
Construct with an existing key, which is wrapped with
SecretKeySpec
.
- CipherCrypto(SecretKey) - Constructor for class org.cojen.tupl.CipherCrypto
-
Construct with an existing key.
- clear() - Method in class org.cojen.tupl.util.LatchCondition
-
Clears out all waiting threads and interrupts them.
- clone() - Method in class org.cojen.tupl.Database.Stats
-
- clone() - Method in class org.cojen.tupl.DatabaseConfig
-
- clone() - Method in class org.cojen.tupl.Index.Stats
-
- close() - Method in interface org.cojen.tupl.Database
-
Closes the database, ensuring durability of committed transactions.
- close(Throwable) - Method in interface org.cojen.tupl.Database
-
Closes the database after an unexpected failure.
- close() - Method in interface org.cojen.tupl.Index
-
Closes this index reference, causing it to appear empty and
unmodifiable
.
- close(Throwable) - Method in interface org.cojen.tupl.io.CauseCloseable
-
- close(Throwable) - Method in class org.cojen.tupl.io.FilePageArray
-
- close(Throwable) - Method in class org.cojen.tupl.io.MappedPageArray
-
- close() - Method in class org.cojen.tupl.io.PageArray
-
- close(Throwable) - Method in class org.cojen.tupl.io.PageArray
-
- close(Throwable) - Method in class org.cojen.tupl.io.StripedPageArray
-
- close(Closeable, Throwable) - Static method in class org.cojen.tupl.io.Utils
-
Closes a resource, which may throw a new exception.
- close() - Method in interface org.cojen.tupl.Snapshot
-
Can be called by another thread to abort the snapshot, causing any
thread in the writeTo method to throw an exception.
- ClosedIndexException - Exception in org.cojen.tupl
-
Thrown when attempting to modify the contents of an index through a closed
reference.
- ClosedIndexException() - Constructor for exception org.cojen.tupl.ClosedIndexException
-
- closeOnFailure(Closeable, Throwable) - Static method in class org.cojen.tupl.io.Utils
-
Closes the given resource, passing the cause if the resource implements
CauseCloseable
.
- closeQuietly(IOException, Closeable) - Static method in class org.cojen.tupl.io.Utils
-
Closes a resource without throwing another exception.
- closeQuietly(IOException, Closeable, Throwable) - Static method in class org.cojen.tupl.io.Utils
-
Closes a resource without throwing another exception.
- commit(byte[]) - Method in interface org.cojen.tupl.Cursor
-
Combined store and commit to the linked transaction.
- commit() - Method in interface org.cojen.tupl.Transaction
-
Commits all modifications made within the current transaction scope.
- commit(byte[]) - Method in class org.cojen.tupl.WrappedCursor
-
Always throws UnmodifiableViewException by default.
- commitAll() - Method in interface org.cojen.tupl.Transaction
-
Commits and exits all transaction scopes.
- Compact - Class in org.cojen.tupl.tools
-
Simple database file compaction utility.
- compactFile(CompactionObserver, double) - Method in interface org.cojen.tupl.Database
-
Compacts the database by shrinking the database file.
- CompactionObserver - Class in org.cojen.tupl
-
Index compaction observer.
- CompactionObserver() - Constructor for class org.cojen.tupl.CompactionObserver
-
- compareKeyTo(byte[]) - Method in interface org.cojen.tupl.Cursor
-
Compare the current key to the one given.
- compareKeyTo(byte[], int, int) - Method in interface org.cojen.tupl.Cursor
-
Compare the current key to the one given.
- compareKeyTo(byte[]) - Method in class org.cojen.tupl.WrappedCursor
-
Compare the current key to the one given.
- compareKeyTo(byte[], int, int) - Method in class org.cojen.tupl.WrappedCursor
-
Compare the current key to the one given.
- compareUnsigned(byte[], byte[]) - Static method in class org.cojen.tupl.io.Utils
-
Performs a lexicographical comparison between two unsigned byte arrays.
- compareUnsigned(byte[], int, int, byte[], int, int) - Static method in class org.cojen.tupl.io.Utils
-
Performs a lexicographical comparison between two unsigned byte arrays.
- confirm(long) - Method in interface org.cojen.tupl.ext.ReplicationManager.Writer
-
Blocks until all data up to the given log position is confirmed.
- confirm(long, long) - Method in interface org.cojen.tupl.ext.ReplicationManager.Writer
-
Blocks until all data up to the given log position is confirmed.
- ConfirmationFailureException - Exception in org.cojen.tupl
-
- ConfirmationFailureException() - Constructor for exception org.cojen.tupl.ConfirmationFailureException
-
- ConfirmationFailureException(String) - Constructor for exception org.cojen.tupl.ConfirmationFailureException
-
- ConfirmationFailureException(Throwable) - Constructor for exception org.cojen.tupl.ConfirmationFailureException
-
- ConfirmationFailureException(String, Throwable) - Constructor for exception org.cojen.tupl.ConfirmationFailureException
-
- ConfirmationInterruptedException - Exception in org.cojen.tupl
-
- ConfirmationInterruptedException() - Constructor for exception org.cojen.tupl.ConfirmationInterruptedException
-
- ConfirmationTimeoutException - Exception in org.cojen.tupl
-
- ConfirmationTimeoutException(long) - Constructor for exception org.cojen.tupl.ConfirmationTimeoutException
-
- copy() - Method in interface org.cojen.tupl.Cursor
-
Returns a new independent Cursor, positioned where this one is, and
linked to the same transaction.
- copyPage(long, long) - Method in class org.cojen.tupl.io.MappedPageArray
-
- copyPage(long, long) - Method in class org.cojen.tupl.io.PageArray
-
- copyPage(long, long) - Method in class org.cojen.tupl.io.StripedPageArray
-
- copyPageFromPointer(long, long) - Method in class org.cojen.tupl.io.MappedPageArray
-
- copyPageFromPointer(long, long) - Method in class org.cojen.tupl.io.PageArray
-
- copyPageFromPointer(long, long) - Method in class org.cojen.tupl.io.StripedPageArray
-
- CorruptDatabaseException - Exception in org.cojen.tupl
-
Thrown when the internal structure of the
database
is
corrupt.
- CorruptDatabaseException(String) - Constructor for exception org.cojen.tupl.CorruptDatabaseException
-
- CorruptDatabaseException(Throwable) - Constructor for exception org.cojen.tupl.CorruptDatabaseException
-
- count(byte[], byte[]) - Method in interface org.cojen.tupl.View
-
Non-transactionally counts the number of entries within the given range.
- createCachePrimer(OutputStream) - Method in interface org.cojen.tupl.Database
-
Writes a cache priming set into the given stream, which can then be used later to
prime
the cache.
- createDirectories(File) - Method in class org.cojen.tupl.io.AttributedFileFactory
-
- createDirectories(File) - Method in interface org.cojen.tupl.io.FileFactory
-
Create the given directory path for read/write access, unless the directory path already
exists.
- createDirectory(File) - Method in class org.cojen.tupl.io.AttributedFileFactory
-
- createDirectory(File) - Method in interface org.cojen.tupl.io.FileFactory
-
Create the given directory for read/write access, unless the directory already exists.
- createFile(File) - Method in class org.cojen.tupl.io.AttributedFileFactory
-
- createFile(File) - Method in interface org.cojen.tupl.io.FileFactory
-
Create the given file for read/write access, unless the file already exists.
- createFilePath(boolean) - Method in class org.cojen.tupl.DatabaseConfig
-
Set true to create directories for the base and data file, if they don't
already exist.
- Crypto - Interface in org.cojen.tupl
-
Support for encrypting an entire database.
- Cursor - Interface in org.cojen.tupl
-
Maintains a logical position in a
View
.
- cursorCount - Variable in class org.cojen.tupl.Database.Stats
-
- cursorCount() - Method in class org.cojen.tupl.Database.Stats
-
Returns the amount of cursors which are in a non-reset state.
- customRedo(byte[], long, byte[]) - Method in interface org.cojen.tupl.Transaction
-
Supply a message for a custom redo handler.
- customTransactionHandler(TransactionHandler) - Method in class org.cojen.tupl.DatabaseConfig
-
Provide a handler for custom transactional operations.
- customUndo(byte[]) - Method in interface org.cojen.tupl.Transaction
-
Supply a message for a custom undo handler.
- Database - Interface in org.cojen.tupl
-
Primary database interface, containing a collection of transactional indexes.
- Database.Stats - Class in org.cojen.tupl
-
- DatabaseConfig - Class in org.cojen.tupl
-
Configuration options used when
opening
a database.
- DatabaseConfig() - Constructor for class org.cojen.tupl.DatabaseConfig
-
- DatabaseException - Exception in org.cojen.tupl
-
Exception thrown which indicates a
database
problem not due
to general I/O problems.
- DatabaseException() - Constructor for exception org.cojen.tupl.DatabaseException
-
- DatabaseException(String) - Constructor for exception org.cojen.tupl.DatabaseException
-
- DatabaseException(Throwable) - Constructor for exception org.cojen.tupl.DatabaseException
-
- DatabaseException(String, Throwable) - Constructor for exception org.cojen.tupl.DatabaseException
-
- DatabaseFullException - Exception in org.cojen.tupl
-
Thrown when database is full and no more data can be stored into it.
- DatabaseFullException() - Constructor for exception org.cojen.tupl.DatabaseFullException
-
- DatabaseFullException(Throwable) - Constructor for exception org.cojen.tupl.DatabaseFullException
-
- DatabaseFullException(String) - Constructor for exception org.cojen.tupl.DatabaseFullException
-
- dataFile(File) - Method in class org.cojen.tupl.DatabaseConfig
-
Set the data file for the database, which by default resides in the same
directory as the base file.
- dataFiles(File...) - Method in class org.cojen.tupl.DatabaseConfig
-
Stripe the database data file across several files, expected to be on
separate devices.
- dataPageArray(PageArray) - Method in class org.cojen.tupl.DatabaseConfig
-
Use a custom storage layer instead of the default data file.
- DeadlockException - Exception in org.cojen.tupl
-
Thrown when a lock request by a
transaction
timed out
due to a deadlock.
- DeadlockSet - Class in org.cojen.tupl
-
Set of lock requests which were in a deadlock.
- decodeIntBE(byte[], int) - Static method in class org.cojen.tupl.io.Utils
-
Decodes a 32-bit integer, in big-endian format.
- decodeIntLE(byte[], int) - Static method in class org.cojen.tupl.io.Utils
-
Decodes a 32-bit integer, in little-endian format.
- decodeLongBE(byte[], int) - Static method in class org.cojen.tupl.io.Utils
-
Decodes a 64-bit integer, in big-endian format.
- decodeLongLE(byte[], int) - Static method in class org.cojen.tupl.io.Utils
-
Decodes a 64-bit integer, in little-endian format.
- decodeUnsignedInt48BE(byte[], int) - Static method in class org.cojen.tupl.io.Utils
-
Decodes a 48-bit unsigned integer, in big-endian format.
- decodeUnsignedInt48LE(byte[], int) - Static method in class org.cojen.tupl.io.Utils
-
Decodes a 48-bit unsigned integer, in little-endian format.
- decodeUnsignedShortBE(byte[], int) - Static method in class org.cojen.tupl.io.Utils
-
Decodes a 16-bit unsigned integer, in big-endian format.
- decodeUnsignedShortLE(byte[], int) - Static method in class org.cojen.tupl.io.Utils
-
Decodes a 16-bit unsigned integer, in little-endian format.
- decrement(byte[], int, int) - Static method in class org.cojen.tupl.io.Utils
-
Subtracts one from an unsigned integer, represented as a byte array.
- decryptPage(long, int, byte[], int, byte[], int) - Method in class org.cojen.tupl.CipherCrypto
-
- decryptPage(long, int, long, int, long, int) - Method in class org.cojen.tupl.CipherCrypto
-
- decryptPage(long, int, byte[], int) - Method in interface org.cojen.tupl.Crypto
-
Called by multiple threads to decrypt a fixed-size database
page.
- decryptPage(long, int, byte[], int, byte[], int) - Method in interface org.cojen.tupl.Crypto
-
Called by multiple threads to decrypt a fixed-size database
page.
- decryptPage(long, int, long, int) - Method in interface org.cojen.tupl.Crypto
-
Called by multiple threads to decrypt a fixed-size database
page.
- decryptPage(long, int, long, int, long, int) - Method in interface org.cojen.tupl.Crypto
-
Called by multiple threads to decrypt a fixed-size database
page.
- delete(Buffer) - Static method in class org.cojen.tupl.io.Utils
-
Attempt to delete the given direct or mapped byte buffer.
- delete(Transaction, byte[]) - Method in interface org.cojen.tupl.View
-
Unconditionally removes the entry associated with the given key.
- deleteIndex(Index) - Method in interface org.cojen.tupl.Database
-
Fully closes and deletes the given index, but does not immediately reclaim the pages it
occupied.
- destroy(DatabaseConfig) - Static method in interface org.cojen.tupl.Database
-
Delete the contents of an existing database, and replace it with an
empty one.
- DirectAccess - Class in org.cojen.tupl.io
-
Backdoor access to DirectByteBuffer.
- DirectAccess() - Constructor for class org.cojen.tupl.io.DirectAccess
-
- directPageAccess(boolean) - Method in class org.cojen.tupl.DatabaseConfig
-
Set true to allocate all pages off the Java heap, offering increased performance and
reduced garbage collection activity.
- directPagePointer(long) - Method in class org.cojen.tupl.io.MappedPageArray
-
- directPagePointer(long) - Method in class org.cojen.tupl.io.PageArray
-
- directPagePointer(long) - Method in class org.cojen.tupl.io.StripedPageArray
-
- dirSync(File) - Static method in class org.cojen.tupl.io.FileIO
-
Durably flushes the given directory, if required.
- dirtyPage(long) - Method in class org.cojen.tupl.io.MappedPageArray
-
Indicate that the contents of the given page will be modified.
- dirtyPage(long) - Method in class org.cojen.tupl.io.PageArray
-
- divide(double) - Method in class org.cojen.tupl.Index.Stats
-
Divide the stats by a scalar into a new object.
- divideAndRound(double) - Method in class org.cojen.tupl.Index.Stats
-
Divide the stats by a scalar and round to whole numbers into a new object.
- downgrade() - Method in class org.cojen.tupl.util.Latch
-
Downgrade the held exclusive latch into a shared latch.
- drop() - Method in interface org.cojen.tupl.Index
-
Fully closes and removes an empty index.
- durabilityMode(DurabilityMode) - Method in class org.cojen.tupl.DatabaseConfig
-
Set the default transaction durability mode, which is
SYNC
if not overridden.
- DurabilityMode - Enum in org.cojen.tupl
-
Various
transaction
durability modes, which control the durability
strength of committed transactions.
- durabilityMode(DurabilityMode) - Method in interface org.cojen.tupl.Transaction
-
Sets the durability mode for the entire transaction, not just the current scope.
- durabilityMode() - Method in interface org.cojen.tupl.Transaction
-
Returns the durability mode of this transaction.
- encodeInt48BE(byte[], int, long) - Static method in class org.cojen.tupl.io.Utils
-
Encodes a 48-bit integer, in big-endian format.
- encodeInt48LE(byte[], int, long) - Static method in class org.cojen.tupl.io.Utils
-
Encodes a 48-bit integer, in little-endian format.
- encodeIntBE(byte[], int, int) - Static method in class org.cojen.tupl.io.Utils
-
Encodes a 32-bit integer, in big-endian format.
- encodeIntLE(byte[], int, int) - Static method in class org.cojen.tupl.io.Utils
-
Encodes a 32-bit integer, in little-endian format.
- encodeLongBE(byte[], int, long) - Static method in class org.cojen.tupl.io.Utils
-
Encodes a 64-bit integer, in big-endian format.
- encodeLongLE(byte[], int, long) - Static method in class org.cojen.tupl.io.Utils
-
Encodes a 64-bit integer, in little-endian format.
- encodeShortBE(byte[], int, int) - Static method in class org.cojen.tupl.io.Utils
-
Encodes a 16-bit integer, in big-endian format.
- encodeShortLE(byte[], int, int) - Static method in class org.cojen.tupl.io.Utils
-
Encodes a 16-bit integer, in little-endian format.
- encoding() - Method in interface org.cojen.tupl.ext.ReplicationManager
-
Return a fixed non-zero value which identifies the replication manager implementation
and its encoding format.
- encrypt(Crypto) - Method in class org.cojen.tupl.DatabaseConfig
-
Enable full encryption of the data files, transaction logs, snapshots, and cache priming
sets.
- encryptPage(long, int, byte[], int, byte[], int) - Method in class org.cojen.tupl.CipherCrypto
-
- encryptPage(long, int, long, int, long, int) - Method in class org.cojen.tupl.CipherCrypto
-
- encryptPage(long, int, byte[], int) - Method in interface org.cojen.tupl.Crypto
-
Called by multiple threads to encrypt a fixed-size database
page.
- encryptPage(long, int, byte[], int, byte[], int) - Method in interface org.cojen.tupl.Crypto
-
Called by multiple threads to encrypt a fixed-size database
page.
- encryptPage(long, int, long, int) - Method in interface org.cojen.tupl.Crypto
-
Called by multiple threads to encrypt a fixed-size database
page.
- encryptPage(long, int, long, int, long, int) - Method in interface org.cojen.tupl.Crypto
-
Called by multiple threads to encrypt a fixed-size database
page.
- enter() - Method in interface org.cojen.tupl.Transaction
-
Enters a nested transaction scope.
- entryCount - Variable in class org.cojen.tupl.Index.Stats
-
- entryCount() - Method in class org.cojen.tupl.Index.Stats
-
Returns the estimated number of index entries.
- equals(Object) - Method in class org.cojen.tupl.Database.Stats
-
- equals(Object) - Method in class org.cojen.tupl.Index.Stats
-
- eventListener(EventListener) - Method in class org.cojen.tupl.DatabaseConfig
-
Set a listener which receives notifications of actions being performed
by the database.
- EventListener - Interface in org.cojen.tupl
-
Listener which receives notifications of actions being performed by the
database.
- EventPrinter - Class in org.cojen.tupl
-
Event listener implementation which prints events to an output stream.
- EventPrinter() - Constructor for class org.cojen.tupl.EventPrinter
-
Prints events to standard out.
- EventPrinter(PrintStream) - Constructor for class org.cojen.tupl.EventPrinter
-
Prints events to the given stream.
- EventType - Enum in org.cojen.tupl
-
Defines the various types of events that an
EventListener
can receive.
- EventType.Category - Enum in org.cojen.tupl
-
Event type category.
- evict(Transaction, byte[], byte[], Filter, boolean) - Method in interface org.cojen.tupl.Index
-
Select a few entries, and delete them from the index.
- evictPage(long, byte[]) - Method in class org.cojen.tupl.io.PageArray
-
Same as writePage, except that the given buffer might be altered and a replacement might
be returned.
- evictPage(long, long) - Method in class org.cojen.tupl.io.PageArray
-
Same as writePage, except that the given buffer might be altered and a replacement might
be returned.
- evictPage(long, byte[]) - Method in class org.cojen.tupl.io.StripedPageArray
-
- evictPage(long, long) - Method in class org.cojen.tupl.io.StripedPageArray
-
- exchange(Transaction, byte[], byte[]) - Method in interface org.cojen.tupl.View
-
Unconditionally associates a value with the given key, returning the previous value.
- EXCLUSIVE - Static variable in class org.cojen.tupl.util.Latch
-
- exit() - Method in interface org.cojen.tupl.Transaction
-
Exits the current transaction scope, rolling back all uncommitted
modifications made within.
- fileFactory(FileFactory) - Method in class org.cojen.tupl.DatabaseConfig
-
Optionally define a custom factory for every file and directory created by the
database.
- FileFactory - Interface in org.cojen.tupl.io
-
Provides control over how files and directories are created.
- FileIO - Class in org.cojen.tupl.io
-
Lowest I/O interface to a file or device.
- FileIO() - Constructor for class org.cojen.tupl.io.FileIO
-
- FilePageArray - Class in org.cojen.tupl.io
-
Basic
PageArray
implementation which accesses a file.
- FilePageArray(int, File, EnumSet<OpenOption>) - Constructor for class org.cojen.tupl.io.FilePageArray
-
- FilePageArray(int, File, FileFactory, EnumSet<OpenOption>) - Constructor for class org.cojen.tupl.io.FilePageArray
-
- Filter - Interface in org.cojen.tupl
-
View transformer which filters out entries which don't belong.
- find(byte[]) - Method in interface org.cojen.tupl.Cursor
-
Moves the Cursor to find the given key.
- find(byte[]) - Method in class org.cojen.tupl.WrappedCursor
-
Moves the Cursor to find the given key.
- findGe(byte[]) - Method in interface org.cojen.tupl.Cursor
-
Moves the Cursor to find the first available entry greater than or equal
to the given key.
- findGe(byte[]) - Method in class org.cojen.tupl.WrappedCursor
-
Moves the Cursor to find the first available entry greater than or equal
to the given key.
- findGt(byte[]) - Method in interface org.cojen.tupl.Cursor
-
Moves the Cursor to find the first available entry greater than the
given key.
- findGt(byte[]) - Method in class org.cojen.tupl.WrappedCursor
-
Moves the Cursor to find the first available entry greater than the
given key.
- findIndex(byte[]) - Method in interface org.cojen.tupl.Database
-
Returns the given named index, returning null if not found.
- findIndex(String) - Method in interface org.cojen.tupl.Database
-
Returns the given named index, returning null if not found.
- findLe(byte[]) - Method in interface org.cojen.tupl.Cursor
-
Moves the Cursor to find the first available entry less than or equal to
the given key.
- findLe(byte[]) - Method in class org.cojen.tupl.WrappedCursor
-
Moves the Cursor to find the first available entry less than or equal to
the given key.
- findLt(byte[]) - Method in interface org.cojen.tupl.Cursor
-
Moves the Cursor to find the first available entry less than the given
key.
- findLt(byte[]) - Method in class org.cojen.tupl.WrappedCursor
-
Moves the Cursor to find the first available entry less than the given
key.
- findNearby(byte[]) - Method in interface org.cojen.tupl.Cursor
-
Optimized version of the regular find method, which can perform fewer search steps if
the given key is in close proximity to the current one.
- findNearby(byte[]) - Method in class org.cojen.tupl.WrappedCursor
-
Optimized version of the regular find method, which can perform fewer search steps if
the given key is in close proximity to the current one.
- first() - Method in interface org.cojen.tupl.Cursor
-
Moves the Cursor to find the first available entry.
- first() - Method in class org.cojen.tupl.WrappedCursor
-
Moves the Cursor to find the first available entry.
- flip() - Method in interface org.cojen.tupl.ext.ReplicationManager
-
Called to acknowledge mode change from replica to leader, or vice versa.
- flush() - Method in interface org.cojen.tupl.Database
-
Flushes, but does not sync, all non-flushed transactions.
- freeBytes - Variable in class org.cojen.tupl.Index.Stats
-
- freeBytes() - Method in class org.cojen.tupl.Index.Stats
-
Returns the estimated amount of free bytes in the index.
- freePages - Variable in class org.cojen.tupl.Database.Stats
-
- freePages() - Method in class org.cojen.tupl.Database.Stats
-
Returns the amount of unused pages in the database.
- IllegalUpgradeException - Exception in org.cojen.tupl
-
Thrown when attempting to acquire an upgradable or exclusive lock when a
shared lock is already held.
- IllegalUpgradeException() - Constructor for exception org.cojen.tupl.IllegalUpgradeException
-
- increment(byte[], int, int) - Static method in class org.cojen.tupl.io.Utils
-
Adds one to an unsigned integer, represented as a byte array.
- index - Variable in class org.cojen.tupl.CompactionObserver
-
Index currently being compacted.
- Index - Interface in org.cojen.tupl
-
Mapping of keys to values, ordered by key, in lexicographical
order.
- index - Variable in class org.cojen.tupl.VerificationObserver
-
Index currently being verified.
- Index.Stats - Class in org.cojen.tupl
-
Collection of stats from the
analyze
method.
- indexBegin(Index) - Method in class org.cojen.tupl.CompactionObserver
-
Called before full index compaction begins.
- indexBegin(Index, int) - Method in class org.cojen.tupl.tools.Verify
-
- indexBegin(Index, int) - Method in class org.cojen.tupl.VerificationObserver
-
Called before full index verification begins.
- indexById(long) - Method in interface org.cojen.tupl.Database
-
Returns an index by its identifier, returning null if not found.
- indexById(byte[]) - Method in interface org.cojen.tupl.Database
-
Returns an index by its identifier, returning null if not found.
- indexComplete(Index) - Method in class org.cojen.tupl.CompactionObserver
-
Called after index compaction has finished.
- indexComplete(Index, boolean, String) - Method in class org.cojen.tupl.VerificationObserver
-
Called after index verification has finished.
- indexNodeFailed(long, int, String) - Method in class org.cojen.tupl.tools.Verify
-
- indexNodeFailed(long, int, String) - Method in class org.cojen.tupl.VerificationObserver
-
Called after an index node fails verification.
- indexNodePassed(long, int, int, int, int) - Method in class org.cojen.tupl.tools.Verify
-
- indexNodePassed(long, int, int, int, int) - Method in class org.cojen.tupl.VerificationObserver
-
Called after an index node passes verification.
- indexNodeVisited(long) - Method in class org.cojen.tupl.CompactionObserver
-
Called after an index node has been visted by the compactor.
- indexRegistryById() - Method in interface org.cojen.tupl.Database
-
Returns an
unmodifiable
View which maps all available
index identifiers to names.
- indexRegistryByName() - Method in interface org.cojen.tupl.Database
-
Returns an
unmodifiable
View which maps all available
index names to identifiers.
- initCipher(Cipher, int, SecretKey) - Method in class org.cojen.tupl.CipherCrypto
-
Called to initialize a new or re-used
Cipher
, generating a random initialization
vector.
- initCipher(Cipher, int, SecretKey, IvParameterSpec) - Method in class org.cojen.tupl.CipherCrypto
-
Called to initialize a new or re-used
Cipher
, using the given initialization
vector.
- insert(Transaction, byte[], byte[]) - Method in interface org.cojen.tupl.View
-
Associates a value with the given key, unless a corresponding value already
exists.
- InvalidTransactionException - Exception in org.cojen.tupl
-
Thrown when acting upon a broken transaction instance.
- InvalidTransactionException() - Constructor for exception org.cojen.tupl.InvalidTransactionException
-
- InvalidTransactionException(String) - Constructor for exception org.cojen.tupl.InvalidTransactionException
-
- InvalidTransactionException(Throwable) - Constructor for exception org.cojen.tupl.InvalidTransactionException
-
- InvalidTransactionException(String, Throwable) - Constructor for exception org.cojen.tupl.InvalidTransactionException
-
- inverseTransformKey(byte[]) - Method in interface org.cojen.tupl.Transformer
-
Apply an inverse transformation of the given key, if supported.
- inverseTransformKeyGt(byte[]) - Method in interface org.cojen.tupl.Transformer
-
Apply an inverse transformation of the given key, strictly greater than the one given.
- inverseTransformKeyLt(byte[]) - Method in interface org.cojen.tupl.Transformer
-
Apply an inverse transformation of the given key, strictly less than the one given.
- inverseTransformValue(byte[], byte[], byte[]) - Method in interface org.cojen.tupl.Filter
-
- inverseTransformValue(byte[], byte[], byte[]) - Method in interface org.cojen.tupl.Transformer
-
Apply an inverse transformation of the given value, if supported.
- isAllowed(byte[], byte[]) - Method in interface org.cojen.tupl.Filter
-
Return true if the given key and value are not to be filtered out.
- isClosed() - Method in interface org.cojen.tupl.Index
-
- isEmpty() - Method in class org.cojen.tupl.io.FilePageArray
-
- isEmpty() - Method in class org.cojen.tupl.io.MappedPageArray
-
- isEmpty() - Method in class org.cojen.tupl.io.PageArray
-
- isEmpty() - Method in class org.cojen.tupl.io.StripedPageArray
-
- isEmpty() - Method in class org.cojen.tupl.util.LatchCondition
-
Returns true if no waiters are enqueued.
- isGuilty() - Method in exception org.cojen.tupl.DeadlockException
-
- isHeld() - Method in enum org.cojen.tupl.LockResult
-
Returns true if lock was just acquired or was already owned.
- isNested() - Method in interface org.cojen.tupl.Transaction
-
Returns true if the current transaction scope is nested.
- isReadOnly() - Method in class org.cojen.tupl.io.FileIO
-
- isReadOnly() - Method in class org.cojen.tupl.io.FilePageArray
-
- isReadOnly() - Method in class org.cojen.tupl.io.MappedPageArray
-
- isReadOnly() - Method in class org.cojen.tupl.io.PageArray
-
- isReadOnly() - Method in class org.cojen.tupl.io.StripedPageArray
-
- isRepeatable() - Method in enum org.cojen.tupl.LockMode
-
Returns true if acquired locks are retained for the duration of the
transaction.
- isSupported() - Static method in class org.cojen.tupl.io.DirectAccess
-
- isTimedOut() - Method in enum org.cojen.tupl.LockResult
-
Rreturns true if lock request timed out.
- isUnmodifiable() - Method in interface org.cojen.tupl.View
-
- LargeKeyException - Exception in org.cojen.tupl
-
Thrown when attempting to load a key which cannot fit into memory.
- LargeKeyException(long) - Constructor for exception org.cojen.tupl.LargeKeyException
-
- LargeKeyException(long, Throwable) - Constructor for exception org.cojen.tupl.LargeKeyException
-
- LargeValueException - Exception in org.cojen.tupl
-
Thrown when attempting to load a value which cannot fit into memory.
- LargeValueException(long) - Constructor for exception org.cojen.tupl.LargeValueException
-
- LargeValueException(long, Throwable) - Constructor for exception org.cojen.tupl.LargeValueException
-
- last() - Method in interface org.cojen.tupl.Cursor
-
Moves the Cursor to find the last available entry.
- last() - Method in class org.cojen.tupl.WrappedCursor
-
Moves the Cursor to find the last available entry.
- lastLockedIndex() - Method in interface org.cojen.tupl.Transaction
-
Returns the index id of the last lock acquired, within the current scope.
- lastLockedKey() - Method in interface org.cojen.tupl.Transaction
-
Returns the key of the last lock acquired, within the current scope.
- Latch - Class in org.cojen.tupl.util
-
Non-reentrant read/write latch, using unfair acquisition.
- Latch() - Constructor for class org.cojen.tupl.util.Latch
-
- Latch(int) - Constructor for class org.cojen.tupl.util.Latch
-
- LatchCondition - Class in org.cojen.tupl.util
-
Manages a queue of waiting threads, associated with a
Latch
instance.
- LatchCondition() - Constructor for class org.cojen.tupl.util.LatchCondition
-
- leaderNotify(Runnable) - Method in interface org.cojen.tupl.ext.ReplicationManager.Writer
-
Invokes the given callback upon a leadership change.
- length() - Method in class org.cojen.tupl.io.FileIO
-
- length() - Method in interface org.cojen.tupl.Snapshot
-
Returns total amount of bytes expected to be written to the snapshot
stream.
- level - Variable in enum org.cojen.tupl.EventType
-
- link(Transaction) - Method in interface org.cojen.tupl.Cursor
-
Link to a transaction, which can be null for auto-commit mode.
- link() - Method in interface org.cojen.tupl.Cursor
-
Returns the transaction the cursor is currently linked to.
- link(Transaction) - Method in class org.cojen.tupl.WrappedCursor
-
Link to a transaction, which can be null for auto-commit mode.
- link() - Method in class org.cojen.tupl.WrappedCursor
-
Returns the transaction the cursor is currently linked to.
- load() - Method in interface org.cojen.tupl.Cursor
-
Loads or reloads the value at the cursor's current position.
- load(Transaction, byte[]) - Method in interface org.cojen.tupl.View
-
Returns a copy of the value for the given key, or null if no matching entry exists.
- load() - Method in class org.cojen.tupl.WrappedCursor
-
Loads or reloads the value at the cursor's current position.
- lock() - Method in interface org.cojen.tupl.Cursor
-
Locks the current entry, as if by calling load.
- lock() - Method in class org.cojen.tupl.WrappedCursor
-
Locks the current entry, as if by calling load.
- lockCheck(long, byte[]) - Method in interface org.cojen.tupl.Transaction
-
Checks the lock ownership for the given key.
- lockCheck(Transaction, byte[]) - Method in interface org.cojen.tupl.View
-
Checks the lock ownership for the given key.
- lockCount - Variable in class org.cojen.tupl.Database.Stats
-
- lockCount() - Method in class org.cojen.tupl.Database.Stats
-
Returns the amount of locks currently allocated.
- lockExclusive(long, byte[]) - Method in interface org.cojen.tupl.Transaction
-
Attempts to acquire an exclusive lock for the given key, denying any
additional locks.
- lockExclusive(long, byte[], long) - Method in interface org.cojen.tupl.Transaction
-
Attempts to acquire an exclusive lock for the given key, denying any
additional locks.
- lockExclusive(Transaction, byte[]) - Method in interface org.cojen.tupl.View
-
Explicitly acquire an exclusive lock for the given key, denying any additional
locks.
- LockFailureException - Exception in org.cojen.tupl
-
- LockFailureException() - Constructor for exception org.cojen.tupl.LockFailureException
-
- LockFailureException(String) - Constructor for exception org.cojen.tupl.LockFailureException
-
- LockFailureException(Throwable) - Constructor for exception org.cojen.tupl.LockFailureException
-
- LockFailureException(String, Throwable) - Constructor for exception org.cojen.tupl.LockFailureException
-
- LockInterruptedException - Exception in org.cojen.tupl
-
Thrown when a lock request by a
transaction
was
interrupted by another thread.
- LockInterruptedException() - Constructor for exception org.cojen.tupl.LockInterruptedException
-
- LockMode - Enum in org.cojen.tupl
-
- lockMode(LockMode) - Method in interface org.cojen.tupl.Transaction
-
Sets the lock mode for the current scope.
- lockMode() - Method in interface org.cojen.tupl.Transaction
-
Returns the current lock mode.
- LockResult - Enum in org.cojen.tupl
-
Result code returned by transactional operations which acquire locks.
- lockShared(long, byte[]) - Method in interface org.cojen.tupl.Transaction
-
Attempts to acquire a shared lock for the given key, denying exclusive
locks.
- lockShared(long, byte[], long) - Method in interface org.cojen.tupl.Transaction
-
Attempts to acquire a shared lock for the given key, denying exclusive
locks.
- lockShared(Transaction, byte[]) - Method in interface org.cojen.tupl.View
-
Explicitly acquire a shared lock for the given key, denying exclusive locks.
- lockTimeout(long, TimeUnit) - Method in class org.cojen.tupl.DatabaseConfig
-
Set the default lock acquisition timeout, which is 1 second if not
overridden.
- lockTimeout(long, TimeUnit) - Method in interface org.cojen.tupl.Transaction
-
Sets the lock timeout for the current scope.
- lockTimeout(TimeUnit) - Method in interface org.cojen.tupl.Transaction
-
Returns the current lock timeout, in the given unit.
- LockTimeoutException - Exception in org.cojen.tupl
-
- LockTimeoutException(long) - Constructor for exception org.cojen.tupl.LockTimeoutException
-
- LockTimeoutException(long, Object) - Constructor for exception org.cojen.tupl.LockTimeoutException
-
- lockUpgradable(long, byte[]) - Method in interface org.cojen.tupl.Transaction
-
Attempts to acquire an upgradable lock for the given key, denying
exclusive and additional upgradable locks.
- lockUpgradable(long, byte[], long) - Method in interface org.cojen.tupl.Transaction
-
Attempts to acquire an upgradable lock for the given key, denying
exclusive and additional upgradable locks.
- lockUpgradable(Transaction, byte[]) - Method in interface org.cojen.tupl.View
-
Explicitly acquire an upgradable lock for the given key, denying exclusive and
additional upgradable locks.
- lockUpgradeRule(LockUpgradeRule) - Method in class org.cojen.tupl.DatabaseConfig
-
Set the default lock upgrade rule, which is
STRICT
if not
overridden.
- LockUpgradeRule - Enum in org.cojen.tupl
-
Defines transaction lock upgrade behavior when using the
REPEATABLE_READ
lock mode.
- nestingLevel() - Method in interface org.cojen.tupl.Transaction
-
Counts the current transaction scope nesting level.
- newCipher(String) - Method in class org.cojen.tupl.CipherCrypto
-
Called to instantiate all
Cipher
instances, with the given transformation.
- newCursor(Transaction) - Method in interface org.cojen.tupl.View
-
- newDecryptingStream(long, InputStream) - Method in class org.cojen.tupl.CipherCrypto
-
- newDecryptingStream(long, InputStream) - Method in interface org.cojen.tupl.Crypto
-
Called to wrap an InputStream for supporting decryption.
- newEncryptingStream(long, OutputStream) - Method in class org.cojen.tupl.CipherCrypto
-
- newEncryptingStream(long, OutputStream) - Method in interface org.cojen.tupl.Crypto
-
Called to wrap an OutputStream for supporting encryption.
- newPageCipher() - Method in class org.cojen.tupl.CipherCrypto
-
Called to instantiate a
Cipher
for encrypting and decrypting database pages,
using the fixed instance
algorithm
.
- newStreamCipher() - Method in class org.cojen.tupl.CipherCrypto
-
Called to instantiate a
Cipher
for encrypting and decrypting redo logs, using
the fixed instance
algorithm
.
- newTemporaryIndex() - Method in interface org.cojen.tupl.Database
-
Creates a new unnamed temporary index.
- newTransaction() - Method in interface org.cojen.tupl.Database
-
Returns a new Transaction with the
default
durability mode.
- newTransaction(DurabilityMode) - Method in interface org.cojen.tupl.Database
-
Returns a new Transaction with the given durability mode.
- newTransaction(DurabilityMode) - Method in interface org.cojen.tupl.View
-
Returns a new transaction which is compatible with this view.
- next() - Method in interface org.cojen.tupl.Cursor
-
Moves to the Cursor to the next available entry.
- next() - Method in class org.cojen.tupl.WrappedCursor
-
Moves to the Cursor to the next available entry.
- nextLe(byte[]) - Method in interface org.cojen.tupl.Cursor
-
Moves to the Cursor to the next available entry, but only when less than
or equal to the given limit key.
- nextLe(byte[]) - Method in class org.cojen.tupl.WrappedCursor
-
Moves to the Cursor to the next available entry, but only when less than
or equal to the given limit key.
- nextLt(byte[]) - Method in interface org.cojen.tupl.Cursor
-
Moves to the Cursor to the next available entry, but only when less than
the given limit key.
- nextLt(byte[]) - Method in class org.cojen.tupl.WrappedCursor
-
Moves to the Cursor to the next available entry, but only when less than
the given limit key.
- NOT_LOADED - Static variable in interface org.cojen.tupl.Cursor
-
Empty marker which indicates that value exists but has not been
loaded
.
- notify(EventType, String, Object...) - Method in interface org.cojen.tupl.EventListener
-
- notify(EventType, String, Object...) - Method in class org.cojen.tupl.EventPrinter
-
- notifyDrop(Index) - Method in interface org.cojen.tupl.ext.ReplicationManager
-
Notification to replica after an index is dropped.
- notifyRename(Index, byte[], byte[]) - Method in interface org.cojen.tupl.ext.ReplicationManager
-
Notification to replica after an index is renamed.
- notifyStore(Index, byte[], byte[]) - Method in interface org.cojen.tupl.ext.ReplicationManager
-
Notification to replica when an entry is stored into an index.
- PageArray - Class in org.cojen.tupl.io
-
Defines a persistent, array of fixed sized pages.
- PageArray(int) - Constructor for class org.cojen.tupl.io.PageArray
-
- pageSize - Variable in class org.cojen.tupl.Database.Stats
-
- pageSize() - Method in class org.cojen.tupl.Database.Stats
-
Returns the allocation page size.
- pageSize(int) - Method in class org.cojen.tupl.DatabaseConfig
-
Set the page size, which is 4096 bytes by default.
- pageSize() - Method in class org.cojen.tupl.io.PageArray
-
Returns the fixed size of all pages in the array, in bytes.
- position() - Method in interface org.cojen.tupl.ext.ReplicationManager.Writer
-
Returns the next position a leader will write to.
- position() - Method in interface org.cojen.tupl.Snapshot
-
Returns the
position
that the snapsnot applies to.
- preallocate(long) - Method in interface org.cojen.tupl.Database
-
Preallocates pages for immediate use.
- prepare(long, int) - Method in class org.cojen.tupl.io.DirectAccess
-
Returns an instance-specific thread-local ByteBuffer which references any memory
address.
- previous() - Method in interface org.cojen.tupl.Cursor
-
Moves to the Cursor to the previous available entry.
- previous() - Method in class org.cojen.tupl.WrappedCursor
-
Moves to the Cursor to the previous available entry.
- previousGe(byte[]) - Method in interface org.cojen.tupl.Cursor
-
Moves to the Cursor to the previous available entry, but only when
greater than or equal to the given limit key.
- previousGe(byte[]) - Method in class org.cojen.tupl.WrappedCursor
-
Moves to the Cursor to the previous available entry, but only when
greater than or equal to the given limit key.
- previousGt(byte[]) - Method in interface org.cojen.tupl.Cursor
-
Moves to the Cursor to the previous available entry, but only when
greater than the given limit key.
- previousGt(byte[]) - Method in class org.cojen.tupl.WrappedCursor
-
Moves to the Cursor to the previous available entry, but only when
greater than the given limit key.
- random(byte[], byte[]) - Method in interface org.cojen.tupl.Cursor
-
Moves the Cursor to a random entry, but not guaranteed to be chosen from
a uniform distribution.
- random(byte[], byte[]) - Method in class org.cojen.tupl.WrappedCursor
-
Moves the Cursor to a random entry, but not guaranteed to be chosen from
a uniform distribution.
- read(byte[], int, int) - Method in interface org.cojen.tupl.ext.ReplicationManager
-
Blocks at most once, reading as much replication input as possible.
- read(long, byte[], int, int) - Method in class org.cojen.tupl.io.FileIO
-
- read(long, ByteBuffer) - Method in class org.cojen.tupl.io.FileIO
-
- read(long, long, int, int) - Method in class org.cojen.tupl.io.FileIO
-
- readFully(InputStream, byte[], int, int) - Static method in class org.cojen.tupl.io.Utils
-
Fully reads the required length of bytes, throwing an EOFException if the end of stream
is reached too soon.
- readPage(long, byte[], int, int) - Method in class org.cojen.tupl.io.FilePageArray
-
- readPage(long, long, int, int) - Method in class org.cojen.tupl.io.FilePageArray
-
- readPage(long, byte[], int, int) - Method in class org.cojen.tupl.io.MappedPageArray
-
- readPage(long, long, int, int) - Method in class org.cojen.tupl.io.MappedPageArray
-
- readPage(long, byte[]) - Method in class org.cojen.tupl.io.PageArray
-
- readPage(long, byte[], int, int) - Method in class org.cojen.tupl.io.PageArray
-
- readPage(long, long) - Method in class org.cojen.tupl.io.PageArray
-
- readPage(long, long, int, int) - Method in class org.cojen.tupl.io.PageArray
-
- readPage(long, byte[], int, int) - Method in class org.cojen.tupl.io.StripedPageArray
-
- readPage(long, long, int, int) - Method in class org.cojen.tupl.io.StripedPageArray
-
- readPosition() - Method in interface org.cojen.tupl.ext.ReplicationManager
-
Returns the next position a replica will read from, which must be confirmed.
- recover(EventListener) - Method in interface org.cojen.tupl.ext.ReplicationManager
-
Called after replication threads have started, providing an opportunity to wait until
replication has sufficiently "caught up".
- redo(Database, Transaction, byte[]) - Method in interface org.cojen.tupl.ext.TransactionHandler
-
Non-transactionally apply an idempotent redo operation.
- redo(Database, Transaction, byte[], long, byte[]) - Method in interface org.cojen.tupl.ext.TransactionHandler
-
Non-transactionally apply an idempotent redo operation.
- ref(long, int) - Static method in class org.cojen.tupl.io.DirectAccess
-
Returns a thread-local ByteBuffer which references any memory address.
- ref2(long, int) - Static method in class org.cojen.tupl.io.DirectAccess
-
Returns a second independent thread-local ByteBuffer.
- release(boolean) - Method in class org.cojen.tupl.util.Latch
-
Convenience method, which releases the held exclusive or shared latch.
- releaseEither() - Method in class org.cojen.tupl.util.Latch
-
Releases exclusive or shared latch.
- releaseExclusive() - Method in class org.cojen.tupl.util.Latch
-
Release the held exclusive latch.
- releaseShared() - Method in class org.cojen.tupl.util.Latch
-
Release a held shared latch.
- remap() - Method in class org.cojen.tupl.io.FileIO
-
If file is mapped, remaps it if the file length has changed.
- remove(Transaction, byte[], byte[]) - Method in interface org.cojen.tupl.View
-
Removes the entry associated with the given key, but only if the given value
matches.
- renameIndex(Index, byte[]) - Method in interface org.cojen.tupl.Database
-
Renames the given index to the one given.
- renameIndex(Index, String) - Method in interface org.cojen.tupl.Database
-
Renames the given index to the one given.
- replace(Transaction, byte[], byte[]) - Method in interface org.cojen.tupl.View
-
Associates a value with the given key, but only if a corresponding value already exists.
- replicate(ReplicationManager) - Method in class org.cojen.tupl.DatabaseConfig
-
- ReplicationManager - Interface in org.cojen.tupl.ext
-
Interface which replaces the redo log, for replicating transactional operations.
- ReplicationManager.Writer - Interface in org.cojen.tupl.ext
-
- reportFailure(String) - Method in class org.cojen.tupl.VerificationObserver
-
- requireValue() - Method in interface org.cojen.tupl.Transformer
-
Returns true by default, indicating that the transform methods always require a value
instance to be provided.
- reset() - Method in interface org.cojen.tupl.Cursor
-
Resets Cursor and moves it to an undefined position.
- reset() - Method in interface org.cojen.tupl.Transaction
-
Exits all transaction scopes, rolling back all uncommitted modifications.
- reset(Throwable) - Method in interface org.cojen.tupl.Transaction
-
Reset the transaction due to the given cause.
- reset() - Method in class org.cojen.tupl.WrappedCursor
-
Resets Cursor and moves it to an undefined position.
- restoreFromSnapshot(DatabaseConfig, InputStream) - Static method in interface org.cojen.tupl.Database
-
Restore from a
snapshot
, into the data files defined by the given
configuration.
- resumeCheckpoints() - Method in interface org.cojen.tupl.Database
-
Resume automatic checkpoints after having been temporarily
suspended
.
- rethrow(Throwable) - Static method in class org.cojen.tupl.io.Utils
-
Rethrows the given exception without the compiler complaining about it being checked or
not.
- rethrow(Throwable, Throwable) - Static method in class org.cojen.tupl.io.Utils
-
Rethrows the given exception without the compiler complaining about it being checked or
not.
- reverse() - Method in enum org.cojen.tupl.Ordering
-
- rootCause(Throwable) - Static method in class org.cojen.tupl.io.Utils
-
Returns the root cause of the given exception.
- round() - Method in class org.cojen.tupl.Index.Stats
-
Round the stats to whole numbers into a new object.
- secondaryCacheSize(long) - Method in class org.cojen.tupl.DatabaseConfig
-
Set the size of the secondary off-heap cache, which is empty by default.
- secretKey() - Method in class org.cojen.tupl.CipherCrypto
-
- setCheckpointLock(Database, Lock) - Method in interface org.cojen.tupl.ext.TransactionHandler
-
Called once when the database is opened, providing a shared lock which is later acquired
exclusively by checkpoints.
- setLength(long) - Method in class org.cojen.tupl.io.FileIO
-
Attempt to set the length of the file.
- setPageCount(long) - Method in class org.cojen.tupl.io.FilePageArray
-
- setPageCount(long) - Method in class org.cojen.tupl.io.MappedPageArray
-
- setPageCount(long) - Method in class org.cojen.tupl.io.PageArray
-
Set the total count of pages, truncating or growing the array as necessary.
- setPageCount(long) - Method in class org.cojen.tupl.io.StripedPageArray
-
- SHARED - Static variable in class org.cojen.tupl.util.Latch
-
- shutdown() - Method in interface org.cojen.tupl.Database
-
Cleanly closes the database, ensuring durability of all modifications.
- signal() - Method in class org.cojen.tupl.util.LatchCondition
-
Signals the first waiter, of any type.
- signalAll() - Method in class org.cojen.tupl.util.LatchCondition
-
Signals all waiters, of any type.
- signalNext() - Method in class org.cojen.tupl.util.LatchCondition
-
Signals the first waiter, of any type.
- signalNextShared() - Method in class org.cojen.tupl.util.LatchCondition
-
Signals the first waiter, but only if it's a shared waiter.
- signalShared() - Method in class org.cojen.tupl.util.LatchCondition
-
Signals the first waiter, but only if it's a shared waiter.
- size() - Method in class org.cojen.tupl.DeadlockSet
-
- skip(long) - Method in interface org.cojen.tupl.Cursor
-
Moves the Cursor by a relative amount of entries.
- skip(long, byte[], boolean) - Method in interface org.cojen.tupl.Cursor
-
Moves the Cursor by a relative amount of entries, stopping sooner if the limit key is
reached.
- skip(long) - Method in class org.cojen.tupl.WrappedCursor
-
Moves the Cursor by a relative amount of entries.
- skip(long, byte[], boolean) - Method in class org.cojen.tupl.WrappedCursor
-
Moves the Cursor by a relative amount of entries, stopping sooner if the limit key is
reached.
- Snapshot - Interface in org.cojen.tupl
-
Control object used to capture a database snapshot.
- source - Variable in class org.cojen.tupl.WrappedCursor
-
- start(long) - Method in interface org.cojen.tupl.ext.ReplicationManager
-
Start the replication manager in replica mode.
- stats() - Method in interface org.cojen.tupl.Database
-
Returns a collection of database statistics.
- Stats() - Constructor for class org.cojen.tupl.Database.Stats
-
- Stats(double, double, double, double, double) - Constructor for class org.cojen.tupl.Index.Stats
-
- store(byte[]) - Method in interface org.cojen.tupl.Cursor
-
Stores a value into the current entry, leaving the position
unchanged.
- store(Transaction, byte[], byte[]) - Method in interface org.cojen.tupl.View
-
Unconditionally associates a value with the given key.
- store(byte[]) - Method in class org.cojen.tupl.WrappedCursor
-
Always throws UnmodifiableViewException by default.
- StripedPageArray - Class in org.cojen.tupl.io
-
- StripedPageArray(PageArray...) - Constructor for class org.cojen.tupl.io.StripedPageArray
-
- subtract(Index.Stats) - Method in class org.cojen.tupl.Index.Stats
-
Subtract stats into a new object.
- suspendCheckpoints() - Method in interface org.cojen.tupl.Database
-
Temporarily suspend automatic checkpoints without waiting for any in-progress checkpoint
to complete.
- sync() - Method in interface org.cojen.tupl.Database
-
Persists all non-flushed and non-sync'd transactions.
- sync() - Method in interface org.cojen.tupl.ext.ReplicationManager
-
Durably flushes all local data to non-volatile storage, up to the current position.
- sync(boolean) - Method in class org.cojen.tupl.io.FileIO
-
Durably flushes all writes to the underlying device.
- sync(boolean) - Method in class org.cojen.tupl.io.FilePageArray
-
- sync(boolean) - Method in class org.cojen.tupl.io.MappedPageArray
-
- sync(boolean) - Method in class org.cojen.tupl.io.PageArray
-
Durably flushes all writes to the underlying device.
- sync(boolean) - Method in class org.cojen.tupl.io.StripedPageArray
-
- syncConfirm(long) - Method in interface org.cojen.tupl.ext.ReplicationManager
-
Durably flushes all local data to non-volatile storage, up to the given confirmed
position, and then blocks until fully confirmed.
- syncConfirm(long, long) - Method in interface org.cojen.tupl.ext.ReplicationManager
-
Durably flushes all local data to non-volatile storage, up to the given confirmed
position, and then blocks until fully confirmed.
- syncPage(long) - Method in class org.cojen.tupl.io.MappedPageArray
-
- syncPage(long) - Method in class org.cojen.tupl.io.PageArray
-
Durably flushes the page at the given index, but implementation might flush more pages.
- syncPage(long) - Method in class org.cojen.tupl.io.StripedPageArray
-
- syncWrites(boolean) - Method in class org.cojen.tupl.DatabaseConfig
-
Set true to ensure all writes to the main database file are immediately
durable, although not checkpointed.
- toString(SecretKey) - Static method in class org.cojen.tupl.CipherCrypto
-
Returns a String with a parseable Java byte array declaration.
- toString(byte[]) - Static method in class org.cojen.tupl.CipherCrypto
-
Returns a String with a parseable Java byte array declaration.
- toString() - Method in class org.cojen.tupl.Database.Stats
-
- toString() - Method in class org.cojen.tupl.DeadlockSet
-
- toString() - Method in class org.cojen.tupl.Index.Stats
-
- toString() - Method in class org.cojen.tupl.tools.Verify
-
- totalBytes - Variable in class org.cojen.tupl.Index.Stats
-
- totalBytes() - Method in class org.cojen.tupl.Index.Stats
-
Returns the estimated total amount of bytes in the index.
- totalPages - Variable in class org.cojen.tupl.Database.Stats
-
- totalPages() - Method in class org.cojen.tupl.Database.Stats
-
Returns the total amount of pages in the database.
- Transaction - Interface in org.cojen.tupl
-
Defines a logical unit of work.
- transactionCount() - Method in class org.cojen.tupl.Database.Stats
-
Returns the amount of fully-established transactions which are in a non-reset
state.
- TransactionHandler - Interface in org.cojen.tupl.ext
-
Handler for custom transactional operations.
- transactionsCreated() - Method in class org.cojen.tupl.Database.Stats
-
Returns the total amount of fully-established transactions created over the life of
the database.
- transformedOrdering(Ordering) - Method in interface org.cojen.tupl.Transformer
-
Returns the natural ordering of keys, after they have been transformed.
- Transformer - Interface in org.cojen.tupl
-
Interface which supports filtering and transforming the entries within a
View
.
- transformKey(byte[], byte[]) - Method in interface org.cojen.tupl.Transformer
-
Transform or filter out the given key.
- transformValue(byte[], byte[], byte[]) - Method in interface org.cojen.tupl.Filter
-
- transformValue(byte[], byte[], byte[]) - Method in interface org.cojen.tupl.Transformer
-
Transform or filter out the given value.
- tryAcquire(int) - Method in class org.cojen.tupl.util.Latch
-
- tryAcquireExclusive() - Method in class org.cojen.tupl.util.Latch
-
Attempt to acquire the exclusive latch, barging ahead of any waiting
threads if possible.
- tryAcquireExclusiveNanos(long) - Method in class org.cojen.tupl.util.Latch
-
Attempt to acquire the exclusive latch, aborting if interrupted.
- tryAcquireShared() - Method in class org.cojen.tupl.util.Latch
-
Attempt to acquire a shared latch, barging ahead of any waiting threads
if possible.
- tryAcquireShared(int) - Method in class org.cojen.tupl.util.Latch
-
- tryAcquireSharedNanos(long) - Method in class org.cojen.tupl.util.Latch
-
Attempt to acquire a shared latch, aborting if interrupted.
- tryLockExclusive(long, byte[], long) - Method in interface org.cojen.tupl.Transaction
-
Attempts to acquire an exclusive lock for the given key, denying any
additional locks.
- tryLockExclusive(Transaction, byte[], long) - Method in interface org.cojen.tupl.View
-
Explicitly acquire an exclusive lock for the given key, denying any additional
locks.
- tryLockShared(long, byte[], long) - Method in interface org.cojen.tupl.Transaction
-
Attempts to acquire a shared lock for the given key, denying exclusive
locks.
- tryLockShared(Transaction, byte[], long) - Method in interface org.cojen.tupl.View
-
Explicitly acquire a shared lock for the given key, denying exclusive locks.
- tryLockUpgradable(long, byte[], long) - Method in interface org.cojen.tupl.Transaction
-
Attempts to acquire an upgradable lock for the given key, denying
exclusive and additional upgradable locks.
- tryLockUpgradable(Transaction, byte[], long) - Method in interface org.cojen.tupl.View
-
Explicitly acquire an upgradable lock for the given key, denying exclusive and
additional upgradable locks.
- tryRelease(int) - Method in class org.cojen.tupl.util.Latch
-
- tryReleaseShared(int) - Method in class org.cojen.tupl.util.Latch
-
- tryUpgrade() - Method in class org.cojen.tupl.util.Latch
-
Attempt to upgrade a held shared latch into an exclusive latch.
- txnCount - Variable in class org.cojen.tupl.Database.Stats
-
- txnsCreated - Variable in class org.cojen.tupl.Database.Stats
-
- uncachePage(long) - Method in class org.cojen.tupl.io.PageArray
-
If supported, removes a page from the cache.
- uncaught(Throwable) - Static method in class org.cojen.tupl.io.Utils
-
Convenience method to pass the given exception to the current thread's uncaught
exception handler.
- undo(Database, byte[]) - Method in interface org.cojen.tupl.ext.TransactionHandler
-
Non-transactionally apply an idempotent undo operation.
- UNLATCHED - Static variable in class org.cojen.tupl.util.Latch
-
- unlock() - Method in interface org.cojen.tupl.Transaction
-
Fully releases last lock acquired, within the current scope.
- unlockToShared() - Method in interface org.cojen.tupl.Transaction
-
Releases last lock acquired, within the current scope, retaining a
shared lock.
- unlockToUpgradable() - Method in interface org.cojen.tupl.Transaction
-
Releases last lock acquired or upgraded, within the current scope,
retaining an upgradable lock.
- unmap() - Method in class org.cojen.tupl.io.FileIO
-
Unmaps the file from main memory, leaving the file open.
- UnmodifiableReplicaException - Exception in org.cojen.tupl
-
Thrown when attempting to make changes to a read-only replica.
- UnmodifiableReplicaException() - Constructor for exception org.cojen.tupl.UnmodifiableReplicaException
-
- UnmodifiableViewException - Exception in org.cojen.tupl
-
Thrown when attempting to make a change to an index or view which doesn't
permit modifications.
- UnmodifiableViewException() - Constructor for exception org.cojen.tupl.UnmodifiableViewException
-
- unref(ByteBuffer) - Static method in class org.cojen.tupl.io.DirectAccess
-
Optionally unreference a buffer.
- update(Transaction, byte[], byte[], byte[]) - Method in interface org.cojen.tupl.View
-
Associates a value with the given key, but only if the given old value matches.
- Utils - Class in org.cojen.tupl.io
-
Generic data and I/O utility methods.
- Utils() - Constructor for class org.cojen.tupl.io.Utils
-
- value() - Method in interface org.cojen.tupl.Cursor
-
Returns an uncopied reference to the current value, which might be null
or
Cursor.NOT_LOADED
.
- value() - Method in class org.cojen.tupl.WrappedCursor
-
Returns an uncopied reference to the current value, which might be null
or
Cursor.NOT_LOADED
.
- valueBytes - Variable in class org.cojen.tupl.Index.Stats
-
- valueBytes() - Method in class org.cojen.tupl.Index.Stats
-
Returns the estimated amount of bytes occupied by values in the index.
- valueOf(String) - Static method in enum org.cojen.tupl.DurabilityMode
-
Returns the enum constant of this type with the specified name.
- valueOf(String) - Static method in enum org.cojen.tupl.EventType.Category
-
Returns the enum constant of this type with the specified name.
- valueOf(String) - Static method in enum org.cojen.tupl.EventType
-
Returns the enum constant of this type with the specified name.
- valueOf(String) - Static method in enum org.cojen.tupl.io.OpenOption
-
Returns the enum constant of this type with the specified name.
- valueOf(String) - Static method in enum org.cojen.tupl.LockMode
-
Returns the enum constant of this type with the specified name.
- valueOf(String) - Static method in enum org.cojen.tupl.LockResult
-
Returns the enum constant of this type with the specified name.
- valueOf(String) - Static method in enum org.cojen.tupl.LockUpgradeRule
-
Returns the enum constant of this type with the specified name.
- valueOf(String) - Static method in enum org.cojen.tupl.Ordering
-
Returns the enum constant of this type with the specified name.
- values() - Static method in enum org.cojen.tupl.DurabilityMode
-
Returns an array containing the constants of this enum type, in
the order they are declared.
- values() - Static method in enum org.cojen.tupl.EventType.Category
-
Returns an array containing the constants of this enum type, in
the order they are declared.
- values() - Static method in enum org.cojen.tupl.EventType
-
Returns an array containing the constants of this enum type, in
the order they are declared.
- values() - Static method in enum org.cojen.tupl.io.OpenOption
-
Returns an array containing the constants of this enum type, in
the order they are declared.
- values() - Static method in enum org.cojen.tupl.LockMode
-
Returns an array containing the constants of this enum type, in
the order they are declared.
- values() - Static method in enum org.cojen.tupl.LockResult
-
Returns an array containing the constants of this enum type, in
the order they are declared.
- values() - Static method in enum org.cojen.tupl.LockUpgradeRule
-
Returns an array containing the constants of this enum type, in
the order they are declared.
- values() - Static method in enum org.cojen.tupl.Ordering
-
Returns an array containing the constants of this enum type, in
the order they are declared.
- VerificationObserver - Class in org.cojen.tupl
-
Index verification observer.
- VerificationObserver() - Constructor for class org.cojen.tupl.VerificationObserver
-
- verify(VerificationObserver) - Method in interface org.cojen.tupl.Database
-
Verifies the integrity of the database and all indexes.
- verify(VerificationObserver) - Method in interface org.cojen.tupl.Index
-
Verifies the integrity of the index.
- Verify - Class in org.cojen.tupl.tools
-
Simple database verification utility.
- Verify() - Constructor for class org.cojen.tupl.tools.Verify
-
- View - Interface in org.cojen.tupl
-
Mapping of keys to values, in no particular order.
- ViewConstraintException - Exception in org.cojen.tupl
-
Thrown when attempting to perform an illegal view alteration.
- ViewConstraintException() - Constructor for exception org.cojen.tupl.ViewConstraintException
-
- ViewConstraintException(String) - Constructor for exception org.cojen.tupl.ViewConstraintException
-
- viewGe(byte[]) - Method in interface org.cojen.tupl.View
-
Returns a sub-view, backed by this one, whose keys are greater than or
equal to the given key.
- viewGt(byte[]) - Method in interface org.cojen.tupl.View
-
Returns a sub-view, backed by this one, whose keys are greater than the
given key.
- viewLe(byte[]) - Method in interface org.cojen.tupl.View
-
Returns a sub-view, backed by this one, whose keys are less than or
equal to the given key.
- viewLt(byte[]) - Method in interface org.cojen.tupl.View
-
Returns a sub-view, backed by this one, whose keys are less than the
given key.
- viewPrefix(byte[], int) - Method in interface org.cojen.tupl.View
-
Returns a sub-view, backed by this one, whose keys start with the given prefix.
- viewReverse() - Method in interface org.cojen.tupl.View
-
Returns a view, backed by this one, whose natural order is reversed.
- viewTransformed(Transformer) - Method in interface org.cojen.tupl.View
-
Returns a sub-view, backed by this one, whose entries have been filtered out and
transformed.
- viewUnmodifiable() - Method in interface org.cojen.tupl.View
-
Returns a view, backed by this one, whose entries cannot be modified.


Health Buddy
Home
(current)
Schedule
Update Condition
Condition History
Community
Profile
Update Availability