3404 ier = idba_enq(session%sehandle, btable,dat%value)
3406 ier = idba_enq(session%sehandle, btable,dat%value)
3408 ier = idba_enq(session%sehandle, btable,dat%value)
3416 if (
c_e(session%count) .and. session%count > 0)
then 3417 ier = idba_voglioancora(session%sehandle, acount)
3419 allocate (metaanddata%dataattrv%dataattr(1)%attrv%dcv(acount))
3421 ier = idba_ancora(session%sehandle, btable)
3422 ier = idba_enq(session%sehandle, btable,
value)
3423 allocate (metaanddata%dataattrv%dataattr(1)%attrv%dcv(j)%dat,source=dbadatac(btable,
value))
3426 allocate (metaanddata%dataattrv%dataattr(1)%attrv%dcv(0))
3431 if (
c_e(session%count))
then 3432 session%count=session%count-1
3434 if (session%count > 0 )
then 3435 ier = idba_dammelo(session%sehandle, btable)
3441 do i=1,
size(metaanddata%dataattrv%dataattr)
3442 if (.not.
allocated(metaanddata%dataattrv%dataattr(i)%attrv%dcv))
then 3443 allocate (metaanddata%dataattrv%dataattr(i)%attrv%dcv(0))
3449 end subroutine dbasession_ingest_metaanddata
3453 subroutine dbasession_ingest_metaanddatav(session,metaanddatav,noattr,filter)
3454 class(dbasession),
intent(inout) :: session
3455 type(dbametaanddata),
intent(inout),
allocatable :: metaanddatav(:)
3456 logical,
intent(in),
optional :: noattr
3457 type(dbafilter),
intent(in),
optional :: filter
3459 type(dbametaanddata),
allocatable :: metaanddatavbuf(:)
3463 if (
present(filter))
then 3464 call filter%dbaset(session)
3466 call session%unsetall()
3469 call session%ingest()
3472 if (
c_e(session%count))
then 3474 allocate(metaanddatavbuf(session%count))
3476 do while (session%count >0)
3478 call session%ingest(metaanddatavbuf(i),noattr=noattr,filter=filter)
3482 IF (
SIZE(metaanddatavbuf) == i)
THEN 3484 CALL move_alloc(metaanddatavbuf, metaanddatav)
3487 metaanddatav=metaanddatavbuf(:i)
3488 DEALLOCATE(metaanddatavbuf)
3492 if (
allocated(metaanddatav))
deallocate(metaanddatav)
3493 allocate(metaanddatav(0))
3497 end subroutine dbasession_ingest_metaanddatav
3501 subroutine dbasession_ingest_metaanddatal(session,metaanddatal,noattr,filter)
3502 class(dbasession),
intent(inout) :: session
3503 type(dbametaanddatalist),
intent(out) :: metaanddatal
3504 logical,
intent(in),
optional :: noattr
3505 type(dbafilter),
intent(in),
optional :: filter
3507 type(dbametaanddata),
allocatable :: metaanddatavbuf(:)
3510 if (session%memdb .and. .not. session%loadfile)
then 3512 do while (session%messages_read_next())
3513 call session%set(filter=filter)
3514 call session%ingest()
3515 call session%ingest(metaanddatavbuf,noattr=noattr,filter=filter)
3516 do i=1,
size(metaanddatavbuf)
3517 call metaanddatal%append(metaanddatavbuf(i))
3520 call session%remove_all()
3521 deallocate (metaanddatavbuf)
3526 call session%ingest()
3528 do while (
c_e(session%count) .and. session%count >0)
3529 call session%ingest(metaanddatavbuf,noattr=noattr,filter=filter)
3530 do i=1,
size(metaanddatavbuf)
3531 if (
present(filter))
then 3533 if (filter%contextana)
then 3534 if (datetime_new() /= metaanddatavbuf(i)%metadata%datetime%datetime) cycle
3537 call metaanddatal%append(metaanddatavbuf(i))
3539 if (session%file)
call session%ingest()
3540 deallocate (metaanddatavbuf)
3544 end subroutine dbasession_ingest_metaanddatal
3547 subroutine dbasession_ingest_metaanddatai(session,metaanddata)
3548 class(dbasession),
intent(inout) :: session
3549 type(dbametaanddatai),
intent(inout),
optional :: metaanddata
3552 character(len=9) :: btable
3555 if (.not.
present(metaanddata))
then 3556 ier = idba_voglioquesto(session%sehandle, session%count)
3558 ier = idba_dammelo(session%sehandle, btable)
3559 ier = idba_enq(session%sehandle, btable,
value)
3560 metaanddata%dbadatai=dbadatai(btable,
value)
3561 call metaanddata%metadata%dbaenq(session)
3562 session%count=session%count-1
3564 end subroutine dbasession_ingest_metaanddatai
3568 subroutine dbasession_ingest_metaanddataiv(session,metaanddatav)
3569 class(dbasession),
intent(inout) :: session
3570 type(dbametaanddatai),
intent(inout),
allocatable :: metaanddatav(:)
3574 call session%ingest_metaanddatai()
3575 if (
c_e(session%count))
then 3576 allocate(metaanddatav(session%count))
3578 do while (session%count >0)
3580 call session%ingest_metaanddatai(metaanddatav(i))
3583 allocate(metaanddatav(0))
3586 end subroutine dbasession_ingest_metaanddataiv
3590 subroutine dbasession_ingest_metaanddatab(session,metaanddata)
3591 class(dbasession),
intent(inout) :: session
3592 type(dbametaanddatab),
intent(inout),
optional :: metaanddata
3595 character(len=9) :: btable
3596 integer(kind=int_b) :: value
3598 if (.not.
present(metaanddata))
then 3599 ier = idba_voglioquesto(session%sehandle, session%count)
3601 ier = idba_dammelo(session%sehandle, btable)
3602 ier = idba_enq(session%sehandle, btable,
value)
3603 metaanddata%dbadatab=dbadatab(btable,
value)
3604 call metaanddata%metadata%dbaenq(session)
3605 session%count=session%count-1
3607 end subroutine dbasession_ingest_metaanddatab
3611 subroutine dbasession_ingest_metaanddatabv(session,metaanddatav)
3612 class(dbasession),
intent(inout) :: session
3613 type(dbametaanddatab),
intent(inout),
allocatable :: metaanddatav(:)
3617 call session%ingest_metaanddatab()
3618 if (
c_e(session%count))
then 3619 allocate(metaanddatav(session%count))
3621 do while (session%count >0)
3623 call session%ingest_metaanddatab(metaanddatav(i))
3626 allocate(metaanddatav(0))
3629 end subroutine dbasession_ingest_metaanddatabv
3633 subroutine dbasession_ingest_metaanddatad(session,metaanddata)
3634 class(dbasession),
intent(inout) :: session
3635 type(dbametaanddatad),
intent(inout),
optional :: metaanddata
3638 character(len=9) :: btable
3639 doubleprecision :: value
3641 if (.not.
present(metaanddata))
then 3642 ier = idba_voglioquesto(session%sehandle, session%count)
3644 ier = idba_dammelo(session%sehandle, btable)
3645 ier = idba_enq(session%sehandle, btable,
value)
3646 metaanddata%dbadatad=dbadatad(btable,
value)
3647 call metaanddata%metadata%dbaenq(session)
3648 session%count=session%count-1
3650 end subroutine dbasession_ingest_metaanddatad
3654 subroutine dbasession_ingest_metaanddatadv(session,metaanddatav)
3655 class(dbasession),
intent(inout) :: session
3656 type(dbametaanddatad),
intent(inout),
allocatable :: metaanddatav(:)
3660 call session%ingest_metaanddatad()
3661 if (
c_e(session%count))
then