/* Gamelon(tm) File I/O Library Sample Code  C Language   */

/* (C)1994 Menai Corporation(tm)  Released for public use */

 

/* Example 8. How to conduct a Wandering Transaction    */

/* alteration.                                          */

 

/* The Wandering Transaction is simply an aggregation   */

/* of multiple individual alterations. As a result, in  */

/* order to specify a Wandering Transaction, the        */

/* program need only indicate the beginning and end of  */

/* the Wandering Transaction as follows:                */

 

/* Beginning file layout:      */

/*  {                       }  */

/*   [2]{         }[3.14159]   */

/*       [5700304]             */

 

#include <stdlib.h>

#include "gfcursor.h"

 

int main(void) {

char newchar = 'u';

short i = 17;

int valid;

CURSOR *c = new_CURSOR(NULL,

"newfile",

AM_SHARED,

NULL,

0);

eCursorQueryValid(c, &valid);

if (!valid)

exit(1);

eCursorMoveIn(c);

eCursorMoveLast(c, OT_OBJ);

eCursorMovePrior(c, OT_OBJ);

eCursorMoveIn(c);

eCursorMovePostLast(c);

eAltBeginWanderingTransaction(c);

eAltInsert(c);

eObjWriteChar(c, newchar);

eCursorMoveOut(c);

eCursorMovePreFirst(c);

eAltAppend(c);

eObjWriteAggregate(c);

eCursorMoveNext(c, OT_OBJ);

eAltModify(c);

/* Note:  Newly added aggregate not      */

/* accessible yet. Object being modified */

/* is the data object containing '2'.    */

eObjWriteShort(c, i);

eAltCommitWanderingTransaction(c);

delete_CURSOR(c);

return 0;

}

 

/* Ending file layout:                 */

/*  {                               }  */

/*   {}[17]{              }[3.14159]   */

/*          [5700304]['u']             */

 

/* Any and all individual simple or block alterations */

/* specified between the Begin Wandering Transaction  */

/* and Commit Wandering Transaction calls will be     */

/* submitted to the file as a single set of changes.  */

/* They will only be written to file if all the       */

/* specified changes can be written to file at the    */

/* same time.                                         */

Return to Samples List

Download this sample source code

 Home | Product | Consulting | Programming | Reviews | Company | Site Map | Guest Book

 Menai Corporation, 1010 El Camino Real, Suite 300, Menlo Park, California 94025-4335
 800-GAMELON (800-426-3566) (US only), 650-853-6450 (voice), 650-853-6453 (fax)
 Questions about our products and services:
info@menai.com.
 Comments about this web site:
webmaster@menai.com.

Copyright © 1996-98 Menai Corporation. All Rights Reserved. Menai, Gamelon and gamelon(stylized) are worldwide trademarks of Menai Corporation, registered in the United States of America, and the .[g] logo is a worldwide trademark of Menai Corporation. All other trademarks are owned by their respective owners.