/* * 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 #include #include 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_none }; typedef std::vector ParamArg; struct ParamRow { bool defined; ParamArg arg; ParamRow() { defined = false; } void Clear() { defined = false; arg.clear(); } }; typedef std::vector 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); }; #endif