winix/notify/notify.h

78 lines
1.6 KiB
C++
Executable File

/*
* This file is a part of Winix
* and is not publicly distributed
*
* Copyright (c) 2010-2012, Tomasz Sowa
* All rights reserved.
*
*/
#ifndef headerfile_winix_notify_notify
#define headerfile_winix_notify_notify
#include <vector>
#include <string>
#include "notifypool.h"
#include "templates/patterns.h"
#include "notifythread.h"
struct Request;
class Config;
class Users;
class Dirs;
class ThreadManager;
class Notify
{
public:
Notify();
void SetCur(Cur * pcur);
void SetConfig(Config * pconfig);
void SetUsers(Users * pusers);
void SetDirs(Dirs * pdirs);
void SetThreadManager(ThreadManager * pmanager);
void Init();
size_t AddTemplate(const std::wstring & file_name);
void ReadTemplates();
void ItemChanged(int notify_code, const Item & item);
void ItemChanged(const NotifyMsg & msg);
void ActivateAccount(const std::wstring & name, const std::wstring & email, long code);
void ResetPassword(const std::wstring & name, const std::wstring & email, long code);
private:
Cur * cur;
Config * config;
Dirs * dirs;
Users * users;
ThreadManager * thread_manager;
NotifyThread notify_thread;
NotifyMsg msg;
NotifyPool notify_pool;
std::wstring tmp_path;
size_t notify_template_cms;
size_t notify_template_activate_account;
size_t notify_template_reset_password;
Patterns patterns;
void CreateItemLink(const Item & item, std::wstring & link, std::wstring & dir_link);
void CreateActivateLink(const std::wstring & name, long code, std::wstring & link);
void CreateResetPasswordLink(const std::wstring & name, long code, std::wstring & link);
};
#endif