ALib C++ Framework
by
Library Version: 2511 R0
Documentation generated by doxygen
Loading...
Searching...
No Matches
alib::files::FileExpressions Class Reference

Description:

This class implements an ALib Expression Compiler Plugin and thus enables "run-time expressions" to work with nodes of FTree

Unless multithreaded compilation of expressions is planned, an application should create one singleton of this class.

Method CreateFilter creates an object of inner type Filter, which implements the FFilter interface used with scan parameters of overloaded function ScanFiles. This allows run-time evaluation of filter rules, for example, rules coming from the command-line, from configuration files or from interactive end-user input (hence from an UX/UI).

Of course, the expression compiler can also be used directly without using the inner Filter class for evaluation, and expressions then do not need to return a boolean "yes/no" result.

See also
For a quick tutorial, see the Programmer's Manual.

Implemented Expression Features

Compiler plug-in that provides expressions on filesystem entries, stored in nodes of class FTree.

All identifier and function names are defined to be matched case-insensitive and can be abbreviated along their CamelHumps. This means an identifier called

CamelHumpCounter

can be abbreviated to:

CamelHC
CHCounter
CamHuCo
CHC
chc
cHc

and so on.

Furthermore, the matchable tokens are not hard-coded but resourced with ALib Camp singleton FILES. With that, for example, language translations might be performed.

Types:


This plug-in introduces the following types to the expression compiler:

Each type is auto-cast to built-in expression type Integer to allow all common operators, especially bitwise boolean operators.

Constants:


Type Name Min. Abbreviation Description
Permissions OwnerRead ore Used test result of function Permission.
Permissions OwnerWrite ow Used test result of function Permission.
Permissions OwnerExecute oe Used test result of function Permission.
Permissions GroupRead gr Used test result of function Permission.
Permissions GroupWrite gw Used test result of function Permission.
Permissions GroupExecute ge Used test result of function Permission.
Permissions OthersRead otr Used test result of function Permission.
Permissions OthersWrite otw Used test result of function Permission.
Permissions OthersExecute ote Used test result of function Permission.
Types Directory dir Used to compare the result of function Type.
Types SymbolicLinkDir sld Used to compare the result of function Type.
Types Regular reg Used to compare the result of function Type.
Types SymbolicLink sl Used to compare the result of function Type.
Types Block block Used to compare the result of function Type.
Types Character character Used to compare the result of function Type.
Types Fifo fifo Used to compare the result of function Type.
Types Socket socket Used to compare the result of function Type.


Constant Constructor Functions:


Return Type Name Min. Abbreviation Signature Description
Integer KiloBytes KB int Returns the given number multiplied with 2^10.
Integer MegaBytes MB int Returns the given number multiplied with 2^20.
Integer GigaBytes GB int Returns the given number multiplied with 2^30.
Integer TeraBytes TB int Returns the given number multiplied with 2^40.
Integer PetaBytes PB int Returns the given number multiplied with 2^50.
Integer ExaBytes EB int Returns the given number multiplied with 2^60.


Functions:


Return Type Name Min. Abbreviation Signature Description
String Name name ./. Returns the file name.
Types Type ty ./. Returns the result of Type.
Boolean IsDirectory isdir ./. Returns the result of IsDirectory.
Boolean IsSymbolicLink issl ./. Returns the result of IsSymbolicLink.
Integer Size size ./. Returns the result of Size.
DateTime Date timestamp ./. Returns the result of MDate.
DateTime MDate md ./. Returns the result of MDate.
DateTime BDate bd ./. Returns the result of BDate.
DateTime CDate cd ./. Returns the result of CDate.
DateTime ATime ad ./. Returns the result of ADate.
Permissions Permissions perm ./. Returns the result of Permissions.
TOwnerAndGroupID Owner owner ./. Returns the result of Owner.
TOwnerAndGroupID Group group ./. Returns the result of Group.
TOwnerAndGroupID UserID uid ./. Returns the current user's ID (calls posix getuid()).
TOwnerAndGroupID GroupID gid ./. Returns the current user's group ID (calls posix getgid()).
Availability
This class is available only if the module ALib Expressions is included in the ALib Build.

Definition at line 121 of file fileexpressions.inl.

Inner Type Index:

struct  FexScope
class  Filter
struct  Plugin

Public Field Index:

Compiler compiler
 The expression compiler.
Plugin plugin
 The file expression Plugin.

Public Method Index:

 FileExpressions ()
 Default constructor.
SPFileFilter CreateFilter (const String &expressionString)

Field Details:

◆ compiler

Compiler alib::files::FileExpressions::compiler

The expression compiler.

Definition at line 204 of file fileexpressions.inl.

◆ plugin

Plugin alib::files::FileExpressions::plugin

The file expression Plugin.

Definition at line 205 of file fileexpressions.inl.

Constructor(s) / Destructor Details:

◆ FileExpressions()

alib::files::FileExpressions::FileExpressions ( )

Default constructor.

Definition at line 234 of file fileexpressions.cpp.

Method Details:

◆ CreateFilter()

SPFileFilter alib::files::FileExpressions::CreateFilter ( const String & expressionString)

Creates a file filter using the expression compiler of this instance.

Parameters
expressionStringThe expression string to filter files and directories.
Returns
A shared pointer to the dynamically allocated filter object.

Definition at line 237 of file fileexpressions.cpp.


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