* Author : Maxim Mamontov <faust@stargazer.dp.ua>
*/
-#ifndef TARIFFS_H
-#define TARIFFS_H
+#pragma once
#include <string>
-#include <list>
+#include <vector>
-class ADMIN;
-class TARIFF;
-class TARIFF_DATA;
+#include "notifer.h"
-class TARIFFS {
-public:
- virtual int ReadTariffs () = 0;
- virtual const TARIFF * FindByName(const std::string & name) const = 0;
- virtual const TARIFF * GetNoTariff() const = 0;
- virtual int GetTariffsNum() const = 0;
- virtual int Del(const std::string & name, const ADMIN * admin) = 0;
- virtual int Add(const std::string & name, const ADMIN * admin) = 0;
- virtual int Chg(const TARIFF_DATA & td, const ADMIN * admin) = 0;
+namespace STG
+{
- virtual void GetTariffsData(std::list<TARIFF_DATA> * tdl) = 0;
+struct Admin;
+struct Tariff;
+struct TariffData;
- virtual const std::string & GetStrError() const = 0;
+struct Tariffs {
+ virtual ~Tariffs() = default;
+
+ virtual int ReadTariffs() = 0;
+ virtual const Tariff* FindByName(const std::string& name) const = 0;
+ virtual const Tariff* GetNoTariff() const = 0;
+ virtual int Del(const std::string& name, const Admin* admin) = 0;
+ virtual int Add(const std::string& name, const Admin* admin) = 0;
+ virtual int Chg(const TariffData& td, const Admin* admin) = 0;
+
+ virtual void AddNotifierAdd(NotifierBase<TariffData>* notifier) = 0;
+ virtual void DelNotifierAdd(NotifierBase<TariffData>* notifier) = 0;
+
+ virtual void AddNotifierDel(NotifierBase<TariffData>* notifier) = 0;
+ virtual void DelNotifierDel(NotifierBase<TariffData>* notifier) = 0;
+
+ virtual void GetTariffsData(std::vector<TariffData>* tdl) const = 0;
+
+ virtual size_t Count() const = 0;
+
+ virtual const std::string& GetStrError() const = 0;
};
-#endif
+}