winix/plugins/group/init.cpp

77 lines
1.2 KiB
C++
Executable File

/*
* This file is a part of Winix
* and is not publicly distributed
*
* Copyright (c) 2011, Tomasz Sowa
* All rights reserved.
*
*/
#include "core/log.h"
#include "core/plugin.h"
#include "groupinfo.h"
extern "C" void Init(PluginInfo &);
namespace GroupItem
{
const wchar_t plugin_name[] = L"group";
GroupInfo group_info;
void AddMountPar(PluginInfo & info)
{
group_info.mount_par_group_conf = info.system->mounts.AddMountPar(L"group_conf");
}
void FstabChanged(PluginInfo & info)
{
group_info.ReadGroupsConfigs(true);
}
void ProcessRequest(PluginInfo & info)
{
if( info.cur->request->function == &info.functions->fun_reload )
{
if( info.cur->request->IsParam(L"group") )
group_info.ReadGroupsConfigs(false);
}
}
void AddEzcFunctions(PluginInfo & info);
} // namespace
void Init(PluginInfo & info)
{
using namespace GroupItem;
plugin.Assign(WINIX_TEMPLATES_CREATEFUNCTIONS, AddEzcFunctions);
plugin.Assign(WINIX_ADD_MOUNTS, AddMountPar);
plugin.Assign(WINIX_FSTAB_CHANGED, FstabChanged);
plugin.Assign(WINIX_PROCESS_REQUEST, ProcessRequest);
group_info.SetSystem(info.system);
group_info.SetConfig(info.config);
info.p1 = (void*)(plugin_name);
}