Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

No Format
    qmfAgentLocate := {qmfQuery}

    qmfAgentIndicate := {qmfAgentInfo}

    qmfAgentInfo := agent_info: {name: (sstr),
                                 vendor: (sstr),
                                 product: (sstr),
                                 version: (sstr),   -- optional
                                 platform: (sstr),  -- optional
                                 arch: (sstr)}      -- optional

    qmfQuery := query: {what: qmfQueryTarget,
                        where: qmfQueryPredicate}  -- optional

    qmfQueryTarget := {schema_package: (void)} ||
                      {schema_id: (void)} ||
                      {schema: (void)} ||
                      {agent: (void)} ||
                      {object_id: qmfClassSpecifier} ||
                      {object: qmfClassSpecifier}

    qmfClassSpecifier := {class_name: (sstr),
                          package_name: (sstr),    -- optional
                          hash: (bin128)}          -- optional

    qmfQueryPredicate := {qmfCompare} ||
                         {and: listOf(qmfQueryPredicate)} ||
                         {or: listOf(qmfQueryPredicate)} ||
                         {not: qmfQueryPredicate}

    qmfCompare := list(eq, (sstr), amqpValue) ||
                  list(ne, (sstr), amqpValue) ||
                  list(lt, (sstr), amqpValue) ||
                  list(gt, (sstr), amqpValue) ||
                  list(le, (sstr), amqpValue) ||
                  list(ge, (sstr), amqpValue) ||
                  list(exists, (sstr)) ||
                  list(is-type, (sstr), amqpTypeCode) ||
                  list(is-subtype, (sstr), (sstr)) ||
                  list(re-match, (sstr), (lstr))

    qmfData := {values: mapOf(amqpValue),
                subtypes: mapOf(sstr) }    -- optional, keys must be in values

    qmfDescribedData := {(qmfData),
                         class_id: qmfClassId }

    qmfManagedData := {(qmfDescribedData),
                       object_id: (lstr),
                       create_time: (datetime),
                       delete_time: (datetime),  -- optional
                       update_time: (datetime) }

    qmfClassId := {package: (sstr),
                   name: (sstr),
                   hash: (bin128) }

    qmfObjectClass := {(qmfData[qmfProperty|qmfMethod]),
                       class_id: qmfClassId,
                       desc: (lstr),
                       superclass: qmfClassId }

    qmfProperty := {amqp_type: (uint8amqpTypeCode),
                    access_rule: (sstr),
                    optional: (void),
                    unit: (sstr),
                    desc: (lstr),
                    subtype: (sstr),
                    discrete: (void),
                    min: (amqp_type),
                    max: (amqp_type),
                    maxlen: (uint32) }

    qmfMethod := {desc: (lstr),
                  arguments: mapOf(qmfArgument) }

    qmdArgument := {amqp_type: (uint8),
                    unit: (sstr),
                    desc: (lstr),
                    subtype: (sstr),
                    input: (void)
                    output: (void)