|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Motif
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Copyright (c) 1987-2012, The Open Group. All rights reserved.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* These libraries and programs are free software; you can
|
|
Packit |
b099d7 |
* redistribute them and/or modify them under the terms of the GNU
|
|
Packit |
b099d7 |
* Lesser General Public License as published by the Free Software
|
|
Packit |
b099d7 |
* Foundation; either version 2 of the License, or (at your option)
|
|
Packit |
b099d7 |
* any later version.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* These libraries and programs are distributed in the hope that
|
|
Packit |
b099d7 |
* they will be useful, but WITHOUT ANY WARRANTY; without even the
|
|
Packit |
b099d7 |
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
Packit |
b099d7 |
* PURPOSE. See the GNU Lesser General Public License for more
|
|
Packit |
b099d7 |
* details.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* You should have received a copy of the GNU Lesser General Public
|
|
Packit |
b099d7 |
* License along with these librararies and programs; if not, write
|
|
Packit |
b099d7 |
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
|
|
Packit |
b099d7 |
* Floor, Boston, MA 02110-1301 USA
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* HISTORY
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
#ifdef HAVE_CONFIG_H
|
|
Packit |
b099d7 |
#include <config.h>
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifdef REV_INFO
|
|
Packit |
b099d7 |
#ifndef lint
|
|
Packit |
b099d7 |
static char rcsid[] = "$XConsortium: MrmItopw.c /main/13 1996/11/13 13:59:22 drk $"
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
*++
|
|
Packit |
b099d7 |
* FACILITY:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* UIL Resource Manager (URM): IDB facility
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* ABSTRACT:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* This module contains the publicly accessible top-level
|
|
Packit |
b099d7 |
* IDB write routines.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
*--
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* INCLUDE FILES
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#include <Mrm/MrmAppl.h>
|
|
Packit |
b099d7 |
#include <Mrm/Mrm.h>
|
|
Packit |
b099d7 |
#include <Mrm/IDB.h>
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* TABLE OF CONTENTS
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* UrmIdbOpenFileWrite Open a file for write access
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* UrmIdbPutIndexedResource Put indexed resource to file
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* UrmIdbPutRIDResource Put resource id'ed resource in file
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
*++
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* PROCEDURE DESCRIPTION:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* IdbOpenFileWrite creates a new IDB database file, with null index
|
|
Packit |
b099d7 |
* structures. This call creates the file and initializes the file
|
|
Packit |
b099d7 |
* header.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* name A system-dependent string specifying the IDB
|
|
Packit |
b099d7 |
* file to be opened.
|
|
Packit |
b099d7 |
* os_ext An operating-system specific structure which
|
|
Packit |
b099d7 |
* supports using specific file system features
|
|
Packit |
b099d7 |
* creator Identifies the database creator (application)
|
|
Packit |
b099d7 |
* creator_version Creator version
|
|
Packit |
b099d7 |
* module Identifies the UIL module
|
|
Packit |
b099d7 |
* module_version Module version
|
|
Packit |
b099d7 |
* file_id_return returns the IDB file id
|
|
Packit |
b099d7 |
* fname_return returns the name of the file actually opened
|
|
Packit |
b099d7 |
* (via strcpy). Should be at least 256 chars.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* FUNCTION VALUE:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* MrmSUCCESS operation succeeded
|
|
Packit |
b099d7 |
* MrmFAILURE operation failed, no further reason
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* SIDE EFFECTS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* 1. Acquires memory for the file descriptor
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
*--
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Cardinal
|
|
Packit |
b099d7 |
UrmIdbOpenFileWrite (String name ,
|
|
Packit |
b099d7 |
MrmOsOpenParamPtr os_ext ,
|
|
Packit |
b099d7 |
String creator ,
|
|
Packit |
b099d7 |
String creator_version ,
|
|
Packit |
b099d7 |
String module ,
|
|
Packit |
b099d7 |
String module_version ,
|
|
Packit |
b099d7 |
IDBFile *file_id_return ,
|
|
Packit |
b099d7 |
char *fname_return )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Local variables
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
Cardinal result ; /* function results */
|
|
Packit |
b099d7 |
IDBLowLevelFilePtr fileid ; /* low-level id for file */
|
|
Packit |
b099d7 |
IDBFile filedesc ; /* new file descriptor */
|
|
Packit |
b099d7 |
int ndx ; /* loop index */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* An OS extension block must be present for Unix, and by default
|
|
Packit |
b099d7 |
* specifies that existing files are over-written.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
MrmOsOpenParam osext ; /* to delete file on open */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
osext.version = MrmOsOpenParamVersion ;
|
|
Packit |
b099d7 |
osext.nam_flg.clobber_flg = TRUE ;
|
|
Packit |
b099d7 |
if ( os_ext == NULL ) os_ext = &osext ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Attempt to open the file. For now, pay no attention to temporary naming
|
|
Packit |
b099d7 |
* issues.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
result =
|
|
Packit |
b099d7 |
Idb__FU_OpenFile(name, URMWriteAccess, os_ext, &fileid, fname_return);
|
|
Packit |
b099d7 |
if ( result != MrmCREATE_NEW ) return result ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* File successfully opened. Acquire a file descriptor and initialize it.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
filedesc = (IDBFile) XtMalloc (sizeof(IDBOpenFile)) ;
|
|
Packit |
b099d7 |
filedesc->validation = IDBOpenFileValid ;
|
|
Packit |
b099d7 |
filedesc->access = URMWriteAccess ;
|
|
Packit |
b099d7 |
filedesc->lowlevel_id = fileid ;
|
|
Packit |
b099d7 |
filedesc->last_record = 0 ;
|
|
Packit |
b099d7 |
filedesc->last_data_record = 0 ;
|
|
Packit |
b099d7 |
filedesc->get_count = 0 ;
|
|
Packit |
b099d7 |
filedesc->put_count = 0 ;
|
|
Packit |
b099d7 |
filedesc->byte_swapped = FALSE ;
|
|
Packit |
b099d7 |
filedesc->in_memory = FALSE ;
|
|
Packit |
b099d7 |
filedesc->uid_buffer = NULL ;
|
|
Packit |
b099d7 |
for ( ndx=IDBrtMin ; ndx<=IDBrtMax ; ndx++ )
|
|
Packit |
b099d7 |
filedesc->rt_counts[ndx] = 0 ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Make sure all variables are initialized that aren't initialized elsewhere
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
filedesc->index_root = 0;
|
|
Packit |
b099d7 |
filedesc->timer = 0;
|
|
Packit |
b099d7 |
filedesc->class_ctable = (UidCompressionTablePtr)NULL;
|
|
Packit |
b099d7 |
filedesc->resource_ctable = (UidCompressionTablePtr)NULL;
|
|
Packit |
b099d7 |
filedesc->user1 = 0;
|
|
Packit |
b099d7 |
filedesc->user2 = 0;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
for ( ndx=0 ; ndx<=IDBhsVersion ; ndx++ )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
filedesc->db_version[ndx] = 0 ;
|
|
Packit |
b099d7 |
filedesc->creator_version[ndx] = 0 ;
|
|
Packit |
b099d7 |
filedesc->module_version[ndx] = 0 ;
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
for ( ndx=0 ; ndx<=IDBhsCreator ; ndx++ )
|
|
Packit |
b099d7 |
filedesc->creator[ndx] = 0 ;
|
|
Packit |
b099d7 |
for ( ndx=0 ; ndx<=IDBhsDate ; ndx++ )
|
|
Packit |
b099d7 |
filedesc->creation_date[ndx] = 0 ;
|
|
Packit |
b099d7 |
for ( ndx=0 ; ndx<=IDBhsModule ; ndx++ )
|
|
Packit |
b099d7 |
filedesc->module[ndx] = 0 ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Write a new file header for this file
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
result = Idb__HDR_InitHeader (filedesc, creator, creator_version,
|
|
Packit |
b099d7 |
module, module_version) ;
|
|
Packit |
b099d7 |
if ( result != MrmSUCCESS )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
UrmIdbCloseFile (filedesc, TRUE) ;
|
|
Packit |
b099d7 |
return result ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* File successfully opened
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
*file_id_return = filedesc ;
|
|
Packit |
b099d7 |
return MrmSUCCESS ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
*++
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* PROCEDURE DESCRIPTION:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* IdbPutIndexedResource creates a resource record holding the
|
|
Packit |
b099d7 |
* group, type, and resource data in the resource context, and saves it
|
|
Packit |
b099d7 |
* under the given index. The group and type must not be null, and the
|
|
Packit |
b099d7 |
* index must not be currently entered in the database index. The
|
|
Packit |
b099d7 |
* resource record is marked public or private depending on the value
|
|
Packit |
b099d7 |
* of the access parameter.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* file_id The IDB file id returned by IdbOpenFile
|
|
Packit |
b099d7 |
* index case-sensitive index for the new entry, must
|
|
Packit |
b099d7 |
* not match any existing entry
|
|
Packit |
b099d7 |
* context_id URM resource context containing data block
|
|
Packit |
b099d7 |
* for entry
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* FUNCTION VALUE:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* MrmSUCCESS operation succeeded
|
|
Packit |
b099d7 |
* MrmEXISTS operation failed, index already exists
|
|
Packit |
b099d7 |
* MrmNUL_GROUP operation failed, null group parameter
|
|
Packit |
b099d7 |
* MrmNUL_TYPE operation failed, null type parameter
|
|
Packit |
b099d7 |
* MrmFAILURE operation failed, no further reason
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* SIDE EFFECTS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
*--
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Cardinal
|
|
Packit |
b099d7 |
UrmIdbPutIndexedResource (IDBFile file_id,
|
|
Packit |
b099d7 |
String index,
|
|
Packit |
b099d7 |
URMResourceContextPtr context_id)
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Local variables
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
Cardinal result ; /* function results */
|
|
Packit |
b099d7 |
IDBRecordBufferPtr bufptr ; /* not used */
|
|
Packit |
b099d7 |
MrmCount recno ; /* not used */
|
|
Packit |
b099d7 |
IDBDataHandle data_entry ; /* return new data entry */
|
|
Packit |
b099d7 |
MrmCode group ; /* the entry's group code */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ( (result=Idb__FIL_Valid(file_id)) != MrmSUCCESS ) return result ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Validity check on group and type, and make sure entry doesn't
|
|
Packit |
b099d7 |
* currently exist.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
if ( UrmRCGroup(context_id) == URMgNul ) return MrmNUL_GROUP ;
|
|
Packit |
b099d7 |
if ( UrmRCType(context_id) == URMtNul) return MrmNUL_TYPE ;
|
|
Packit |
b099d7 |
result = Idb__INX_FindIndex (file_id, index, &bufptr, &recno) ;
|
|
Packit |
b099d7 |
if ( result == MrmSUCCESS) return MrmEXISTS ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Create the data entry for this item
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
result = Idb__DB_PutDataEntry (file_id, context_id, &data_entry) ;
|
|
Packit |
b099d7 |
if ( result != MrmSUCCESS ) return result ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Enter the data entry under the index
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
result = Idb__INX_EnterItem (file_id, index, data_entry) ;
|
|
Packit |
b099d7 |
if ( result != MrmSUCCESS ) return result ;
|
|
Packit |
b099d7 |
file_id->num_indexed++ ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
group = UrmRCGroup (context_id) ;
|
|
Packit |
b099d7 |
if ( group>=URMgMin && group<=URMgMax )
|
|
Packit |
b099d7 |
file_id->group_counts[group]++ ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* item successfully entered
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
return MrmSUCCESS ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
*++
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* PROCEDURE DESCRIPTION:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* IdbPutRIDResource creates a resource record holding the group, type,
|
|
Packit |
b099d7 |
* and resource data, and saves under the given resource id. The group
|
|
Packit |
b099d7 |
* and type must not be null, and the resource must currently have no
|
|
Packit |
b099d7 |
* resource record associated with it. Access is always URMaPrivate
|
|
Packit |
b099d7 |
* regardless of the data context access field.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* file_id The IDB file id returned by IdbOpenFile
|
|
Packit |
b099d7 |
* resource_id resource id for the new entry, should
|
|
Packit |
b099d7 |
* currently have no existing resource record
|
|
Packit |
b099d7 |
* context_id URM resource context holding data block.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* FUNCTION VALUE:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* MrmSUCCESS operation succeeded
|
|
Packit |
b099d7 |
* MrmEXISTS operation failed, index already exists
|
|
Packit |
b099d7 |
* MrmNUL_GROUP operation failed, null group parameter
|
|
Packit |
b099d7 |
* MrmNUL_TYPE operation failed, null type parameter
|
|
Packit |
b099d7 |
* MrmFAILURE operation failed, no further reason
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* SIDE EFFECTS:
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
*--
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Cardinal
|
|
Packit |
b099d7 |
UrmIdbPutRIDResource (IDBFile file_id ,
|
|
Packit |
b099d7 |
MrmResource_id resource_id ,
|
|
Packit |
b099d7 |
URMResourceContextPtr context_id )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Local variables
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
Cardinal result ; /* function results */
|
|
Packit |
b099d7 |
IDBDataHandle data_entry ; /* new data entry */
|
|
Packit |
b099d7 |
MrmCode group ; /* the entry's group code */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ( (result=Idb__FIL_Valid(file_id)) != MrmSUCCESS ) return result ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Validity check on group and type, and make sure entry doesn't
|
|
Packit |
b099d7 |
* currently exist.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
if ( UrmRCGroup(context_id) == URMgNul ) return MrmNUL_GROUP ;
|
|
Packit |
b099d7 |
if ( UrmRCType(context_id) == URMtNul) return MrmNUL_TYPE ;
|
|
Packit |
b099d7 |
result = Idb__RID_ReturnItem (file_id, resource_id, FALSE, &data_entry) ;
|
|
Packit |
b099d7 |
if ( result == MrmSUCCESS) return MrmEXISTS ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Create the data entry for this item
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
result = Idb__DB_PutDataEntry (file_id, context_id, &data_entry) ;
|
|
Packit |
b099d7 |
if ( result != MrmSUCCESS ) return result ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Enter the data entry under the resource id
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
result = Idb__RID_EnterItem (file_id, resource_id, data_entry) ;
|
|
Packit |
b099d7 |
if ( result != MrmSUCCESS ) return result ;
|
|
Packit |
b099d7 |
file_id->num_RID++ ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
group = UrmRCGroup (context_id) ;
|
|
Packit |
b099d7 |
if ( group>=URMgMin && group<=URMgMax )
|
|
Packit |
b099d7 |
file_id->group_counts[group]++ ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* item successfully entered
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
return MrmSUCCESS ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|