112 lines
1.6 KiB
C++
Executable File
112 lines
1.6 KiB
C++
Executable File
/*
|
|
* This file is a part of Winix
|
|
* and is not publicly distributed
|
|
*
|
|
* Copyright (c) 2009, Tomasz Sowa
|
|
* All rights reserved.
|
|
*
|
|
*/
|
|
|
|
|
|
#ifndef headerfilecmslucoremount
|
|
#define headerfilecmslucoremount
|
|
|
|
#include <map>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
|
|
|
|
|
|
class Mount
|
|
{
|
|
public:
|
|
|
|
|
|
enum Type
|
|
{
|
|
cms = 0,
|
|
thread,
|
|
ticket
|
|
};
|
|
|
|
enum Fs
|
|
{
|
|
simplefs = 0,
|
|
hashfs
|
|
};
|
|
|
|
|
|
// the first should be with 0 index
|
|
// the last should be 'none'
|
|
enum ParamCode
|
|
{
|
|
par_page = 0,
|
|
par_thread,
|
|
par_ticket,
|
|
par_ticket_type,
|
|
par_ticket_type_default,
|
|
par_ticket_status,
|
|
par_ticket_status_default,
|
|
par_ticket_priority,
|
|
par_ticket_priority_default,
|
|
par_ticket_category,
|
|
par_ticket_category_default,
|
|
par_ticket_expected,
|
|
par_ticket_expected_default,
|
|
par_createthread_on,
|
|
par_createticket_on,
|
|
par_only_root_remove,
|
|
par_emacs_on,
|
|
par_mkdir_on,
|
|
par_app,
|
|
par_html_template,
|
|
|
|
par_none
|
|
};
|
|
|
|
typedef std::vector<std::string> ParamArg;
|
|
|
|
|
|
struct ParamRow
|
|
{
|
|
bool defined;
|
|
ParamArg arg;
|
|
|
|
ParamRow() { defined = false; }
|
|
void Clear() { defined = false; arg.clear(); }
|
|
};
|
|
|
|
typedef std::vector<ParamRow> Param;
|
|
Param param;
|
|
|
|
long dir_id;
|
|
Type type;
|
|
Fs fs;
|
|
|
|
|
|
Mount();
|
|
const char * TypeToStr();
|
|
const char * FsToStr();
|
|
static ParamCode ParseParam(const char * param);
|
|
|
|
|
|
void ClearParams();
|
|
|
|
|
|
bool IsPar(Mount::ParamCode code);
|
|
|
|
bool IsArg(Mount::ParamCode code, const char * arg);
|
|
bool IsArg(Mount::ParamCode code, const std::string & arg);
|
|
bool IsArg(Mount::ParamCode code, int arg);
|
|
|
|
// returning a name to html template (can be null if not defined)
|
|
const std::string * FirstHtmlTemplate() const;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|
|
|