MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
VariableStepDR Struct Reference

#include <varstep.h>

Inheritance diagram for VariableStepDR:
Collaboration diagram for VariableStepDR:

Public Member Functions

virtual DriveRead (unsigned uLabel, const DataManager *pDM, MBDynParser &HP)
 
- Public Member Functions inherited from DriveRead
virtual ~DriveRead (void)
 

Detailed Description

Definition at line 69 of file varstep.h.

Member Function Documentation

Drive * VariableStepDR::Read ( unsigned  uLabel,
const DataManager pDM,
MBDynParser HP 
)
virtual

Implements DriveRead.

Definition at line 262 of file varstep.cc.

References Drive::BO_ANY, Drive::BO_LOWER, Drive::BO_NONE, Drive::BO_UPPER, filename, IncludeParser::GetFileName(), HighParser::GetInt(), IncludeParser::GetLineData(), HighParser::GetYesNo(), HighParser::IsKeyWord(), MBDYN_EXCEPT_ARGS, DataManager::pGetDrvHdl(), and SAFENEWWITHCONSTRUCTOR.

263 {
264  integer idrives = HP.GetInt();
265  if (idrives <= 0) {
266  silent_cerr("VariableStepFileDrive(" << uLabel << "): "
267  "invalid channels number " << idrives
268  << " at line " << HP.GetLineData()
269  << std::endl);
271  }
272 
273  bool bl(true);
274  if (HP.IsKeyWord("interpolation")) {
275  if (HP.IsKeyWord("const")) {
276  bl = false;
277 
278  } else if (!HP.IsKeyWord("linear")) {
279  silent_cerr("VariableStepFileDrive(" << uLabel << "): "
280  "unknown value for \"interpolation\" "
281  "at line " << HP.GetLineData() << std::endl);
283  }
284  }
285 
286  bool pz(true);
288 
289  if (HP.IsKeyWord("pad" "zeros") || HP.IsKeyWord("pad" "zeroes")) {
290  if (!HP.GetYesNo(pz)) {
291  silent_cerr("VariableStepFileDrive(" << uLabel << "): "
292  "unknown value for \"pad zeros\" "
293  "at line " << HP.GetLineData() << std::endl);
295  }
296 
297  } else if (HP.IsKeyWord("bailout")) {
298  if (HP.IsKeyWord("none")) {
299  bo = Drive::BO_NONE;
300 
301  } else if (HP.IsKeyWord("upper")) {
302  bo = Drive::BO_UPPER;
303 
304  } else if (HP.IsKeyWord("lower")) {
305  bo = Drive::BO_LOWER;
306 
307  } else if (HP.IsKeyWord("any")) {
308  bo = Drive::BO_ANY;
309 
310  } else {
311  silent_cerr("VariableStepFileDrive(" << uLabel << "): "
312  "invalid bailout parameter "
313  "at line " << HP.GetLineData()
314  << std::endl);
316  }
317  }
318 
319  const char* filename = HP.GetFileName();
320 
321  Drive* pDr = NULL;
324  VariableStepFileDrive(uLabel, pDM->pGetDrvHdl(),
325  filename, idrives, bl, pz, bo));
326 
327  return pDr;
328 }
static char * filename
Definition: ann_sf.c:71
#define MBDYN_EXCEPT_ARGS
Definition: except.h:63
virtual integer GetInt(integer iDefval=0)
Definition: parser.cc:1050
Definition: drive.h:89
virtual const char * GetFileName(enum Delims Del=DEFAULTDELIM)
Definition: parsinc.cc:673
Bailout
Definition: drive.h:101
const DriveHandler * pGetDrvHdl(void) const
Definition: dataman.h:340
virtual bool IsKeyWord(const char *sKeyWord)
Definition: parser.cc:910
#define SAFENEWWITHCONSTRUCTOR(pnt, item, constructor)
Definition: mynewmem.h:698
virtual bool GetYesNo(bool &bRet)
Definition: parser.cc:1022
long int integer
Definition: colamd.c:51
virtual HighParser::ErrOut GetLineData(void) const
Definition: parsinc.cc:697

Here is the call graph for this function:


The documentation for this struct was generated from the following files: