socketbreaker.h 607 Bytes
//
//  socketbreaker.h
//  BBAAPIRequest
//
//  Created by cairui01 on 2020/05/11.
//


#ifndef _SOCKSTBREAKER_
#define _SOCKSTBREAKER_ 

#include "lock.h"

class SocketBreaker {
  public:
    SocketBreaker();
    ~SocketBreaker();

    bool IsCreateSuc() const;
    bool ReCreate();
    void Close();

    bool Break();
    bool Clear();

    bool IsBreak() const;
    int  BreakerFD() const;

  private:
    SocketBreaker(const SocketBreaker&);
    SocketBreaker& operator=(const SocketBreaker&);

  private:
    int   pipes_[2];
    bool  create_success_;
    bool  broken_;
    Mutex mutex_;
};

#endif