#ifndef __INotify_h__
# define __INotify_h__

#include "includes"
#include "Socket.h"

namespace core {

   class INotify : Socket {

    public:
      INotify(EPoll &ePoll);
      ~INotify();

      int addWatch(coreutils::ZString &watch);
      void removeWatch(int wd);

      void onDataReceived(coreutils::ZString &data) override;

      virtual void inAccess(coreutils::ZString name) {}
      virtual void inAttrib(std::string name) {}
      virtual void inCloseWrite(std::string name) {}
      virtual void inCloseNoWrite(std::string name) {}
      virtual void inCreate(coreutils::ZString &name) {}
      virtual void inDelete(std::string name) {}
      virtual void inDeleteSelf(std::string name) {}
      virtual void inModify(std::string name) {}
      virtual void inMoveSelf(std::string name) {}
      virtual void inMovedFrom(std::string name) {}
      virtual void inMovedTo(std::string name) {}
      virtual void inOpen(std::string name) {}

   };

}

#endif
