Skip to content
  • Steven Murray's avatar
    Added the following C++ template wrapper around the castor::dlf::dlf_writep · 624b0397
    Steven Murray authored
    function in order to allow developers to call the function without the need to
    specify the size of the params array:
    
        template<int n>
          void dlf_writep (Cuuid_t uuid,
                           int severity,
                           int message_no,
                           castor::dlf::Param (&params)[n],
                           struct Cns_fileid *ns_invariant = 0) throw() {
          dlf_writep(uuid, severity, message_no, n, params, 0);
        }
    
    The template causes the size of the array to be determied at compile time.  A
    pointer to castor::dlf::Param will of course not work.  The original
    castor::dlf::dlf_writep function can be used as usual in this case.
    
    The following code snippet shows an example of using the new template:
    
      castor::dlf::Param params[] = {
        castor::dlf::Param("volReqId", vdqmJobRequest.tapeRequestId),
        castor::dlf::Param("vid"     , request.vid                 ),
        castor::dlf::Param("vsn"     , request.vsn                 ),
        castor::dlf::Param("label"   , request.label               ),
        castor::dlf::Param("devtype" , request.devtype             ),
        castor::dlf::Param("density" , request.density             )};
            castor::dlf::dlf_writep(cuuid, DLF_LVL_SYSTEM,
              AGGREGATOR_GAVE_VOLUME_INFO, params);
    624b0397