- initial import
This commit is contained in:
105
src/libs/ice/ICEBoxImpl.h
Normal file
105
src/libs/ice/ICEBoxImpl.h
Normal file
@@ -0,0 +1,105 @@
|
||||
/* Copyright(C) 2007-2014 VoIP objects (voipobjects.com)
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#ifndef __ICE_BOX_IMPL__H
|
||||
#define __ICE_BOX_IMPL__H
|
||||
|
||||
#include "ICEBox.h"
|
||||
#include "ICESession.h"
|
||||
#include "ICELog.h"
|
||||
|
||||
namespace ice
|
||||
{
|
||||
class StackImpl: public Stack
|
||||
{
|
||||
protected:
|
||||
ServerConfig mConfig;
|
||||
Mutex mGuard; //mutex to protect ICE stack object
|
||||
Session mSession;
|
||||
StageHandler* mEventHandler;
|
||||
void* mEventTag;
|
||||
bool mTimeout;
|
||||
unsigned int mActionTimestamp;
|
||||
|
||||
void logMsg(LogLevel level, const char* msg);
|
||||
|
||||
public:
|
||||
|
||||
StackImpl(const ServerConfig& config);
|
||||
~StackImpl();
|
||||
|
||||
void setEventHandler(StageHandler* handler, void* tag) override;
|
||||
int addStream() override;
|
||||
int addComponent(int streamID, void* tag, unsigned short port4, unsigned short port6) override;
|
||||
void removeStream(int streamID) override;
|
||||
bool findStreamAndComponent(int family, unsigned short port, int* stream, int* component) override;
|
||||
bool hasStream(int streamId) override;
|
||||
bool hasComponent(int streamId, int componentId) override;
|
||||
void setComponentPort(int streamId, int componentId, unsigned short port4, unsigned short port6) override;
|
||||
|
||||
void setRole(AgentRole role) override;
|
||||
AgentRole role() override;
|
||||
|
||||
bool processIncomingData(int stream, int component, ByteBuffer& incomingData) override;
|
||||
PByteBuffer generateOutgoingData(bool& response, int& stream, int& component, void*& tag) override;
|
||||
|
||||
// Attempt to gather candidates for specified channel
|
||||
void gatherCandidates() override;
|
||||
void checkConnectivity() override;
|
||||
void stopChecks() override;
|
||||
void restartCheckConnectivity();
|
||||
|
||||
IceState state() override;
|
||||
|
||||
void createSdp(std::vector<std::string>& commonPart) override;
|
||||
NetworkAddress defaultAddress(int streamID, int componentID) override;
|
||||
void fillCandidateList(int streamID, int componentID, std::vector<std::string>& candidateList) override;
|
||||
|
||||
bool processSdpOffer(int streamIndex, std::vector<std::string>& candidateList,
|
||||
const std::string& defaultIP, unsigned short defaultPort, bool deleteRelayed) override;
|
||||
NetworkAddress getRemoteRelayedCandidate(int stream, int component) override;
|
||||
NetworkAddress getRemoteReflexiveCandidate(int stream, int component) override;
|
||||
|
||||
void setRemotePassword(const std::string& pwd, int streamId = -1) override;
|
||||
std::string remotePassword(int streamId = -1) const override;
|
||||
void setRemoteUfrag(const std::string& ufrag, int streamId = -1) override;
|
||||
std::string remoteUfrag(int streamId = -1) const override;
|
||||
|
||||
std::string localPassword() const override;
|
||||
std::string localUfrag() const override;
|
||||
bool hasTurnPrefix(unsigned short prefix) override;
|
||||
NetworkAddress remoteAddress(int stream, int component) override;
|
||||
NetworkAddress localAddress(int stream, int component) override;
|
||||
bool findConcludePair(int stream, Candidate& local, Candidate& remote) override;
|
||||
bool candidateListContains(int stream, const std::string& remoteIP, unsigned short remotePort) override;
|
||||
void dump(std::ostream& output) override;
|
||||
bool mustRestart() override;
|
||||
void clear() override;
|
||||
void clearForRestart(bool localNetworkChanged) override;
|
||||
void refreshPwdUfrag() override;
|
||||
|
||||
// Channel binding
|
||||
TurnPrefix bindChannel(int stream, int component, const NetworkAddress& target, ChannelBoundCallback* cb) override;
|
||||
bool isChannelBindingFailed(int stream, int component, TurnPrefix prefix) override;
|
||||
|
||||
// Permissions
|
||||
void installPermissions(int stream, int component, const NetworkAddress& address, InstallPermissionsCallback* cb) override;
|
||||
|
||||
// Allocations
|
||||
void freeAllocation(int stream, int component, DeleteAllocationCallback* cb) override;
|
||||
bool hasAllocations() override;
|
||||
|
||||
|
||||
int errorCode() override;
|
||||
std::vector<Candidate>*
|
||||
remoteCandidates(int stream) override;
|
||||
NetworkAddress activeStunServer(int stream) const override;
|
||||
void setup(const ServerConfig& config) override;
|
||||
bool isRelayHost(const NetworkAddress& remote) override;
|
||||
bool isRelayAddress(const NetworkAddress& remote) override;
|
||||
};
|
||||
} //end of namespace
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user