/* AddRef * creates a new reference * ignores NULL references */ LIB_EXPORT rc_t CC KFileFormatAddRef ( const KFileFormat *self ) { FUNC_ENTRY(); if (self != NULL) atomic32_inc (& ((KFileFormat*) self)->refcount); return 0; }
rc_t BufferQRelease (const BufferQ *cself) { BufferQ * self = (BufferQ*)cself; rc_t rc = 0; if ( self != NULL ) { if ( atomic32_dec_and_test (&self->refcount)) { const Buffer * b; while (rc == 0) { rc = BufferQPopBuffer (self, &b, NULL); BufferRelease (b); } /* this might need rework especially if KQueue changes */ if ((GetRCState(rc) == rcExhausted) && (GetRCObject(rc) == rcTimeout)) rc = 0; if (rc == 0) { rc = KQueueRelease (self->q); if (rc == 0) { free (self); return 0; } } atomic32_inc (&((BufferQ*)self)->refcount); } } return rc; }
LIB_EXPORT rc_t CC KDatabaseVOpenDBUpdate ( KDatabase *self, KDatabase **dbp, const char *name, va_list args ) { rc_t rc; char path [ 256 ]; if ( dbp == NULL ) return RC ( rcDB, rcDatabase, rcOpening, rcParam, rcNull ); * dbp = NULL; if ( self == NULL ) return RC ( rcDB, rcDatabase, rcOpening, rcSelf, rcNull ); if ( self -> read_only ) return RC ( rcDB, rcDatabase, rcOpening, rcDatabase, rcReadonly ); rc = KDBVMakeSubPath ( self -> dir, path, sizeof path, "db", 2, name, args ); if ( rc == 0 ) { rc = KDBManagerVOpenDBUpdateInt ( self -> mgr, dbp, self -> dir, path, NULL ); if ( rc == 0 ) { KDatabase *db = ( KDatabase* ) * dbp; db -> dad = self; atomic32_inc ( & self -> refcount ); } } return rc; }
/* AddRef * Release * all objects are reference counted * NULL references are ignored */ LIB_EXPORT rc_t CC KColumnBlobAddRef ( const KColumnBlob *cself ) { if ( cself != NULL ) { atomic32_inc ( & ( ( KColumnBlob* ) cself ) -> refcount ); } return 0; }
static rc_t KFFClassAddRef (const KFFClass * self) { rc_t rc = 0; FUNC_ENTRY(); if (self != NULL) atomic32_inc (&((KFFClass*)self)->refcount); return rc; }
BOOL CC Our_HandlerRoutine( DWORD dwCtrlType ) { BOOL res = FALSE; switch( dwCtrlType ) { case CTRL_C_EVENT : ReportSilence (); atomic32_inc ( & quitting ); res = TRUE; break; } return res; }
LIB_EXPORT rc_t CC KDatabaseVCreateDB ( KDatabase *self, KDatabase **dbp, KCreateMode cmode, const char *name, va_list args ) { rc_t rc; char path [ 256 ]; if ( dbp == NULL ) return RC ( rcDB, rcDatabase, rcCreating, rcParam, rcNull ); * dbp = NULL; if ( self == NULL ) return RC ( rcDB, rcDatabase, rcCreating, rcSelf, rcNull ); if ( self -> read_only ) return RC ( rcDB, rcDatabase, rcCreating, rcDatabase, rcReadonly ); rc = KDBVMakeSubPath ( self -> dir, path, sizeof path, "db", 2, name, args ); if ( rc == 0 ) { /* ensure that the "db" namespace directory is there */ rc = KDirectoryCreateDir ( self -> dir, 0775, kcmOpen, "db" ); if ( rc == 0 ) { rc = KDBManagerVCreateDBInt ( self -> mgr, dbp, self -> dir, cmode, path, NULL ); if ( rc == 0 ) { KDatabase *db = ( KDatabase* ) * dbp; db -> dad = self; atomic32_inc ( & self -> refcount ); } } } return rc; }
rc_t VBlobHeaderAddRef ( const VBlobHeader *self ) { if (self) atomic32_inc(&(((VBlobHeader *)self)->refcount)); return 0; }
rc_t BlobHeadersAddRef ( const BlobHeaders *self ) { if (self) atomic32_inc(&(((BlobHeaders *)self)->refcount)); return 0; }
static rc_t VBlobHeaderDataAddRef ( const struct VBlobHeaderData *self ) { if (self) atomic32_inc(&(((struct VBlobHeaderData *)self)->refcount)); return 0; }
/* AddRef * Release */ rc_t BAMReaderAddRef ( const BAMReader *self ) { if (self != NULL) atomic32_inc(&((BAMReader *)self)->refcount); return 0; }
/* AddRef * Release * ignores NULL references */ LIB_EXPORT rc_t CC KQueueAddRef ( const KQueue *cself ) { if ( cself != NULL ) atomic32_inc ( & ( ( KQueue* ) cself ) -> refcount ); return 0; }
rc_t ProcessOneAddRef (const ProcessOne * self) { if (self != NULL) atomic32_inc (&((ProcessOne*)self)->refcount); return 0; }
LIB_EXPORT rc_t CC AlignAccessDBAddRef(const AlignAccessDB *cself) { if (cself != NULL) atomic32_inc(&((AlignAccessDB *)cself)->refcount); return 0; }
rc_t BufferQAddRef (const BufferQ * self) { if (self != NULL) atomic32_inc (&((BufferQ*)self)->refcount); return 0; }
rc_t CopierAddRef (const Copier * self) { if (self != NULL) atomic32_inc (&((Copier*)self)->refcount); return 0; }
/* AddRef * creates a new reference * ignores NULL references */ LIB_EXPORT rc_t CC KArrayFileAddRef ( const KArrayFile *self ) { if ( self != NULL ) atomic32_inc ( & ( ( KArrayFile* ) self ) -> refcount ); return 0; }
/* LoadSchema * looks in metadata for stored schema */ static rc_t CC VPhysicalLoadV1Schema ( VPhysical *self, VTypedecl *td, VSchema *schema, const KMDataNode *node ) { rc_t rc; KMDataNodeSchemaFillData pb; pb . node = node; pb . pos = 0; pb . add_v0 = true; /* add stored declaration to cursor schema */ rc = VSchemaParseTextCallback ( schema, "VPhysicalLoadV1Schema", KMDataNodeFillSchema, & pb ); if ( rc == 0 ) { size_t size; char type_expr [ 256 ]; /* retrieve and resolve "type" attribute */ rc = KMDataNodeReadAttr ( node, "type", type_expr, sizeof type_expr, & size ); if ( rc == 0 ) rc = VSchemaResolveTypedecl ( schema, td, type_expr ); /* if a decoding schema exists */ if ( rc == 0 && pb . pos != 0 ) { char sphysical_name [ 512 ]; /* preserve schema function expression */ size_t decoding_xsize; char decoding_expr [ 256 ]; rc = KMDataNodeReadAttr ( node, "schema", decoding_expr, sizeof decoding_expr, & decoding_xsize ); if ( rc == 0 ) { /* look for "encoding" */ const KMDataNode *enc; rc = KMetadataOpenNodeRead ( self -> meta, & enc, "encoding" ); if ( rc == 0 ) { #if ALLOW_V1_UPDATE if ( ! self -> read_only ) { /* add stored declaration to cursor schema */ pb . node = enc; pb . pos = 0; pb . add_v0 = true; rc = VSchemaParseTextCallback ( schema, "VPhysicalLoadV1Schema", KMDataNodeFillSchema, & pb ); } if ( rc == 0 ) #endif { /* preserve schema function expression */ size_t encoding_xsize; char encoding_expr [ 256 ], enc_type [ 256 ]; rc = KMDataNodeReadAttr ( enc, "schema", encoding_expr, sizeof encoding_expr, & encoding_xsize ); if ( rc == 0 ) { rc = KMDataNodeReadAttr ( enc, "type", enc_type, sizeof enc_type, & size ); } if ( rc == 0 ) { #if ALLOW_V1_UPDATE if ( self -> read_only ) { #endif /* build sphysical name */ sprintf ( sphysical_name, "%s_only", decoding_expr ); /* build physical decl */ pb . pos = sprintf ( pb . buff, "version 1;" "physical %s %s:phys#1" "{decode{%s k=@;return %s(k);}}" , type_expr , sphysical_name , enc_type , decoding_expr ); #if ALLOW_V1_UPDATE } else { /* strip off common namespace */ size_t i, ns_size; string_match ( decoding_expr, decoding_xsize, encoding_expr, encoding_xsize, -1, & ns_size ); if ( ns_size != 0 ) { char *p = string_rchr ( decoding_expr, ns_size, ':' ); ns_size = ( p == NULL ) ? 0U : ( uint32_t ) ( p - decoding_expr ) + 1U; } /* build sphysical name */ sprintf ( sphysical_name, "%s_%s", decoding_expr, & encoding_expr [ ns_size ] ); for ( i = ns_size; sphysical_name [ i ] != 0; ++ i ) { if ( sphysical_name [ i ] == ':' ) sphysical_name [ i ] = '_'; } /* build physical decl */ pb . pos = sprintf ( pb . buff, "version 1;" "physical %s %s:phys#1" "{encode{return %s(@);}" "decode{%s k=@;return %s(k);}}" , type_expr , sphysical_name , encoding_expr , enc_type , decoding_expr ); } #endif } } KMDataNodeRelease ( enc ); } else if ( GetRCState ( rc ) == rcNotFound ) { /* build sphysical name */ sprintf ( sphysical_name, "%s_only", decoding_expr ); /* build decode-only physical decl */ pb . pos = sprintf ( pb . buff, "version 1;" "physical %s %s:phys#1" "{decode{opaque k=@;return %s(k);}}" , type_expr , sphysical_name , decoding_expr ); rc = 0; } if ( rc == 0 ) { /* parse synthesized schema into cursor VSchema */ rc = VSchemaParseText ( schema, "VPhysicalLoadV1Schema", pb . buff, pb . pos ); if ( rc == 0 ) { VTypedecl etd; /* create a new expression object */ sprintf ( pb . buff, "%s:phys#1", sphysical_name ); rc = VSchemaImplicitPhysEncExpr ( schema, & etd, & self -> enc, pb . buff, "VPhysicalLoadV1Schema" ); if ( rc != 0 ) { PLOGERR ( klogInt, ( klogInt, rc, "failed to establish column type from '$(expr)'", "expr=%s", pb . buff )); } else if ( self -> smbr != NULL && self -> smbr -> type == NULL ) { /* back-patch schema */ ( ( SPhysMember* ) self -> smbr ) -> type = self -> enc; atomic32_inc ( & ( ( SExpression* ) self -> enc ) -> refcount ); } } } } } } KMDataNodeRelease ( node ); return rc; }
/* AddRef * Release */ LIB_EXPORT rc_t CC KRWLockAddRef ( const KRWLock *cself ) { if ( cself != NULL ) atomic32_inc ( & ( ( KRWLock* ) cself ) -> refcount ); return 0; }
rc_t CCCopyAddRef (const CCCopy * self) { if (self != NULL) atomic32_inc (&((CCCopy*)self)->refcount); return 0; }
LIB_EXPORT rc_t CC AlignAccessMgrAddRef( const AlignAccessMgr *self ) { if (self != NULL) atomic32_inc(&((AlignAccessMgr *)self)->refcount); return 0; }
/* AddRef * Release */ LIB_EXPORT rc_t CC KConditionAddRef ( const KCondition *cself ) { if ( cself != NULL ) atomic32_inc ( & ( ( KCondition* ) cself ) -> refcount ); return 0; }
/* AddRef * Release */ LIB_EXPORT rc_t CC KThreadAddRef ( const KThread *cself ) { if ( cself != NULL ) atomic32_inc ( & ( ( KThread* ) cself ) -> refcount ); return 0; }
/* AddRef * Release */ static rc_t CC NCBISRAPathAddRef ( const NCBISRAPath *cself ) { atomic32_inc ( & ( ( NCBISRAPath* ) cself ) -> refcount ); return 0; }