3384 ier = idba_voglioancora(session%sehandle, acount)
3386 ier = idba_ancora(session%sehandle, btable)
3387 ier = idba_enq(session%sehandle, btable,
value)
3389 do j=1,
size(metaanddata%dataattrv%dataattr(1)%attrv%dcv)
3391 if (metaanddata%dataattrv%dataattr(1)%attrv%dcv(j)%dat%btable == btable)
then 3393 select type ( dat => metaanddata%dataattrv%dataattr(1)%attrv%dcv(j)%dat )
3395 ier = idba_enq(session%sehandle, btable,dat%value)
3397 ier = idba_enq(session%sehandle, btable,dat%value)
3399 ier = idba_enq(session%sehandle, btable,dat%value)
3401 ier = idba_enq(session%sehandle, btable,dat%value)
3403 ier = idba_enq(session%sehandle, btable,dat%value)
3411 if (c_e(session%count) .and. session%count > 0)
then 3412 ier = idba_voglioancora(session%sehandle, acount)
3414 allocate (metaanddata%dataattrv%dataattr(1)%attrv%dcv(acount))
3416 ier = idba_ancora(session%sehandle, btable)
3417 ier = idba_enq(session%sehandle, btable,
value)
3418 allocate (metaanddata%dataattrv%dataattr(1)%attrv%dcv(j)%dat,source=dbadatac(btable,
value))
3421 allocate (metaanddata%dataattrv%dataattr(1)%attrv%dcv(0))
3426 if (c_e(session%count))
then 3427 session%count=session%count-1
3429 if (session%count > 0 )
then 3430 ier = idba_dammelo(session%sehandle, btable)
3436 do i=1,
size(metaanddata%dataattrv%dataattr)
3437 if (.not.
allocated(metaanddata%dataattrv%dataattr(i)%attrv%dcv))
then 3438 allocate (metaanddata%dataattrv%dataattr(i)%attrv%dcv(0))
3444 end subroutine dbasession_ingest_metaanddata
3448 subroutine dbasession_ingest_metaanddatav(session,metaanddatav,noattr,filter)
3449 class(dbasession),
intent(inout) :: session
3450 type(dbametaanddata),
intent(inout),
allocatable :: metaanddatav(:)
3451 logical,
intent(in),
optional :: noattr
3452 type(dbafilter),
intent(in),
optional :: filter
3454 type(dbametaanddata),
allocatable :: metaanddatavbuf(:)
3458 if (
present(filter))
then 3459 call filter%dbaset(session)
3461 call session%unsetall()
3464 call session%ingest()
3467 if (c_e(session%count))
then 3469 allocate(metaanddatavbuf(session%count))
3471 do while (session%count >0)
3473 call session%ingest(metaanddatavbuf(i),noattr=noattr,filter=filter)
3477 IF (
SIZE(metaanddatavbuf) == i)
THEN 3479 CALL move_alloc(metaanddatavbuf, metaanddatav)
3482 metaanddatav=metaanddatavbuf(:i)
3483 DEALLOCATE(metaanddatavbuf)
3487 if (
allocated(metaanddatav))
deallocate(metaanddatav)
3488 allocate(metaanddatav(0))
3492 end subroutine dbasession_ingest_metaanddatav
3496 subroutine dbasession_ingest_metaanddatal(session,metaanddatal,noattr,filter)
3497 class(dbasession),
intent(inout) :: session
3498 type(dbametaanddatalist),
intent(out) :: metaanddatal
3499 logical,
intent(in),
optional :: noattr
3500 type(dbafilter),
intent(in),
optional :: filter
3502 type(dbametaanddata),
allocatable :: metaanddatavbuf(:)
3505 if (session%memdb .and. .not. session%loadfile)
then 3507 do while (session%messages_read_next())
3508 call session%set(filter=filter)
3509 call session%ingest()
3510 call session%ingest(metaanddatavbuf,noattr=noattr,filter=filter)
3511 do i=1,
size(metaanddatavbuf)
3512 call metaanddatal%append(metaanddatavbuf(i))
3515 call session%remove_all()
3516 deallocate (metaanddatavbuf)
3521 call session%ingest()
3523 do while (c_e(session%count) .and. session%count >0)
3524 call session%ingest(metaanddatavbuf,noattr=noattr,filter=filter)
3525 do i=1,
size(metaanddatavbuf)
3526 if (
present(filter))
then 3528 if (filter%contextana)
then 3529 if (datetime_new() /= metaanddatavbuf(i)%metadata%datetime%datetime) cycle
3532 call metaanddatal%append(metaanddatavbuf(i))
3534 if (session%file)
call session%ingest()
3535 deallocate (metaanddatavbuf)
3539 end subroutine dbasession_ingest_metaanddatal
3542 subroutine dbasession_ingest_metaanddatai(session,metaanddata)
3543 class(dbasession),
intent(inout) :: session
3544 type(dbametaanddatai),
intent(inout),
optional :: metaanddata
3547 character(len=9) :: btable
3550 if (.not.
present(metaanddata))
then 3551 ier = idba_voglioquesto(session%sehandle, session%count)
3553 ier = idba_dammelo(session%sehandle, btable)
3554 ier = idba_enq(session%sehandle, btable,
value)
3555 metaanddata%dbadatai=dbadatai(btable,
value)
3556 call metaanddata%metadata%dbaenq(session)
3557 session%count=session%count-1
3559 end subroutine dbasession_ingest_metaanddatai
3563 subroutine dbasession_ingest_metaanddataiv(session,metaanddatav)
3564 class(dbasession),
intent(inout) :: session
3565 type(dbametaanddatai),
intent(inout),
allocatable :: metaanddatav(:)
3569 call session%ingest_metaanddatai()
3570 if (c_e(session%count))
then 3571 allocate(metaanddatav(session%count))
3573 do while (session%count >0)
3575 call session%ingest_metaanddatai(metaanddatav(i))
3578 allocate(metaanddatav(0))
3581 end subroutine dbasession_ingest_metaanddataiv
3585 subroutine dbasession_ingest_metaanddatab(session,metaanddata)
3586 class(dbasession),
intent(inout) :: session
3587 type(dbametaanddatab),
intent(inout),
optional :: metaanddata
3590 character(len=9) :: btable
3591 integer(kind=int_b) :: value
3593 if (.not.
present(metaanddata))
then 3594 ier = idba_voglioquesto(session%sehandle, session%count)
3596 ier = idba_dammelo(session%sehandle, btable)
3597 ier = idba_enq(session%sehandle, btable,
value)
3598 metaanddata%dbadatab=dbadatab(btable,
value)
3599 call metaanddata%metadata%dbaenq(session)
3600 session%count=session%count-1
3602 end subroutine dbasession_ingest_metaanddatab
3606 subroutine dbasession_ingest_metaanddatabv(session,metaanddatav)
3607 class(dbasession),
intent(inout) :: session
3608 type(dbametaanddatab),
intent(inout),
allocatable :: metaanddatav(:)
3612 call session%ingest_metaanddatab()
3613 if (c_e(session%count))
then 3614 allocate(metaanddatav(session%count))
3616 do while (session%count >0)
3618 call session%ingest_metaanddatab(metaanddatav(i))
3621 allocate(metaanddatav(0))
3624 end subroutine dbasession_ingest_metaanddatabv
3628 subroutine dbasession_ingest_metaanddatad(session,metaanddata)
3629 class(dbasession),
intent(inout) :: session
3630 type(dbametaanddatad),
intent(inout),
optional :: metaanddata
3633 character(len=9) :: btable
3634 doubleprecision :: value
3636 if (.not.
present(metaanddata))
then 3637 ier = idba_voglioquesto(session%sehandle, session%count)
3639 ier = idba_dammelo(session%sehandle, btable)
3640 ier = idba_enq(session%sehandle, btable,
value)
3641 metaanddata%dbadatad=dbadatad(btable,
value)