blob: 196f21fb3b34ff43bf85384a7623d893c266250b [file] [log] [blame]
Deepak Panickal6f9c4682014-05-16 10:51:01 +00001//===-- MICmdArgValFile.h ---------------------------------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
Deepak Panickal6f9c4682014-05-16 10:51:01 +000010#pragma once
11
12// In-house headers:
13#include "MICmdArgValBase.h"
14
15// Declarations:
16class CMICmdArgContext;
17
18//++ ============================================================================
Zachary Turner1d6af022014-11-17 18:06:21 +000019// Details: MI common code class. Command argument class. Arguments object
20// needing specialization derived from the CMICmdArgValBase class.
21// An argument knows what type of argument it is and how it is to
22// interpret the options (context) string to find and validate a matching
23// argument and so extract a value from it .
24// Based on the Interpreter pattern.
25// Gotchas: None.
26// Authors: Illya Rudkin 15/04/2014.
27// Changes: None.
Deepak Panickal6f9c4682014-05-16 10:51:01 +000028//--
Zachary Turner1d6af022014-11-17 18:06:21 +000029class CMICmdArgValFile : public CMICmdArgValBaseTemplate<CMIUtilString>
Deepak Panickal6f9c4682014-05-16 10:51:01 +000030{
Zachary Turner1d6af022014-11-17 18:06:21 +000031 // Methods:
32 public:
33 /* ctor */ CMICmdArgValFile(void);
34 /* ctor */ CMICmdArgValFile(const CMIUtilString &vrArgName, const bool vbMandatory, const bool vbHandleByCmd);
35 //
36 bool IsFilePath(const CMIUtilString &vrFileNamePath) const;
37 CMIUtilString GetFileNamePath(const CMIUtilString &vrTxt) const;
Deepak Panickal6f9c4682014-05-16 10:51:01 +000038
Zachary Turner1d6af022014-11-17 18:06:21 +000039 // Overridden:
40 public:
41 // From CMICmdArgValBase
42 /* dtor */ virtual ~CMICmdArgValFile(void);
43 // From CMICmdArgSet::IArg
44 virtual bool Validate(CMICmdArgContext &vwArgContext);
Deepak Panickald2499282014-08-08 16:47:42 +000045
Zachary Turner1d6af022014-11-17 18:06:21 +000046 // Methods:
47 private:
48 bool IsValidChars(const CMIUtilString &vrText) const;
Deepak Panickal6f9c4682014-05-16 10:51:01 +000049};