RetroShare/tests/librssimulator/peer/PeerNode.h

90 lines
3.0 KiB
C
Raw Normal View History

/*******************************************************************************
* librssimulator/peer/: PeerNode.h *
* *
* libretroshare: retroshare core library *
* *
* Copyright (C) 2018, Retroshare team <retroshare.team@gmailcom> *
* *
* This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU Affero General Public License as *
* published by the Free Software Foundation, either version 3 of the *
* License, or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU Lesser General Public License for more details. *
* *
* You should have received a copy of the GNU Lesser General Public License *
* along with this program. If not, see <https://www.gnu.org/licenses/>. *
* *
******************************************************************************/
#pragma once
#include <list>
#include "retroshare/rsids.h"
class RsRawItem ;
class p3ServiceServer ;
class FakePublisher;
class p3ServiceControl;
class FakeLinkMgr;
class FakePeerMgr;
class FakeNetMgr;
class RsNxsNetMgr;
class FakeNxsNetMgr;
class pqiMonitor;
class pqiServiceMonitor;
class pqiService;
class PeerNode
{
public:
PeerNode(const RsPeerId& id,const std::list<RsPeerId>& friends, bool online) ;
~PeerNode() ;
RsRawItem *outgoing() ;
void incoming(RsRawItem *) ;
bool haveOutgoingPackets();
const RsPeerId& id() const { return _id ;}
void tick() ;
p3ServiceControl *getServiceControl() const { return _service_control; }
p3LinkMgr *getLinkMgr();
p3PeerMgr *getPeerMgr();
p3NetMgr *getNetMgr();
RsNxsNetMgr *getNxsNetMgr();
void AddService(pqiService *service);
void AddPqiMonitor(pqiMonitor *service);
void AddPqiServiceMonitor(pqiServiceMonitor *service);
//
void notifyOfFriends();
void bringOnline(std::list<RsPeerId> &friends);
void takeOffline(std::list<RsPeerId> &friends);
private:
RsPeerId _id;
p3ServiceServer *_service_server ;
FakePublisher *mPublisher ;
p3ServiceControl *_service_control;
FakeLinkMgr *mLinkMgr;
FakePeerMgr *mPeerMgr;
FakeNetMgr *mNetMgr;
FakeNxsNetMgr *mNxsNetMgr;
/* for monitors */
std::list<pqiMonitor *> mPqiMonitors;
std::list<pqiServiceMonitor *> mPqiServiceMonitors;
};