mirror of
https://github.com/haiwen/ccnet-server.git
synced 2025-09-16 06:49:54 +00:00
Initial commit of Ccnet server.
This commit is contained in:
129
net/common/peer-mgr.h
Normal file
129
net/common/peer-mgr.h
Normal file
@@ -0,0 +1,129 @@
|
||||
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
|
||||
#ifndef CCNET_PEER_MGR_H
|
||||
#define CCNET_PEER_MGR_H
|
||||
|
||||
#include <glib.h>
|
||||
#include <glib-object.h>
|
||||
|
||||
#include "peer.h"
|
||||
|
||||
#define CCNET_TYPE_PEER_MANAGER (ccnet_peer_manager_get_type ())
|
||||
#define CCNET_PEER_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CCNET_TYPE_PEER_MANAGER, CcnetPeerManager))
|
||||
#define CCNET_IS_PEER_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CCNET_TYPE_PEER_MANAGER))
|
||||
#define CCNET_PEER_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), CCNET_TYPE_PEER_MANAGER, CcnetPeerManagerClass))
|
||||
#define CCNET_IS_PEER_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), CCNET_TYPE_PEER_MANAGER))
|
||||
#define CCNET_PEER_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), CCNET_TYPE_PEER_MANAGER, CcnetPeerManagerClass))
|
||||
|
||||
|
||||
typedef struct _CcnetPeerManager CcnetPeerManager;
|
||||
typedef struct _CcnetPeerManagerClass CcnetPeerManagerClass;
|
||||
|
||||
typedef struct CcnetPeerManagerPriv CcnetPeerManagerPriv;
|
||||
|
||||
struct _CcnetPeerManager
|
||||
{
|
||||
GObject parent_instance;
|
||||
|
||||
CcnetSession *session;
|
||||
|
||||
char *peerdb_path;
|
||||
|
||||
GHashTable *peer_hash;
|
||||
|
||||
GList *local_peers;
|
||||
|
||||
guint32 connected_peer;
|
||||
|
||||
CcnetPeerManagerPriv *priv;
|
||||
};
|
||||
|
||||
struct _CcnetPeerManagerClass
|
||||
{
|
||||
GObjectClass parent_class;
|
||||
};
|
||||
|
||||
GType ccnet_peer_manager_get_type (void);
|
||||
|
||||
CcnetPeerManager* ccnet_peer_manager_new (CcnetSession *);
|
||||
|
||||
int
|
||||
ccnet_peer_manager_prepare (CcnetPeerManager *manager);
|
||||
|
||||
void ccnet_peer_manager_free (CcnetPeerManager *manager);
|
||||
|
||||
void ccnet_peer_manager_start (CcnetPeerManager *manager);
|
||||
void ccnet_peer_manager_on_exit (CcnetPeerManager *manager);
|
||||
|
||||
void ccnet_peer_manager_add_peer (CcnetPeerManager *manager, CcnetPeer *peer);
|
||||
void ccnet_peer_manager_remove_peer (CcnetPeerManager *manager, CcnetPeer *peer);
|
||||
|
||||
CcnetPeer* ccnet_peer_manager_get_peer (CcnetPeerManager *manager,
|
||||
const char *peer_id);
|
||||
|
||||
CcnetPeer* ccnet_peer_manager_get_peer_by_name (CcnetPeerManager *manager,
|
||||
const char *name);
|
||||
|
||||
GList* ccnet_peer_manager_get_peer_list (CcnetPeerManager *manager);
|
||||
GList* ccnet_peer_manager_get_peers_with_role (CcnetPeerManager *manager,
|
||||
const char *role);
|
||||
|
||||
void ccnet_peer_manager_add_role (CcnetPeerManager *manager,
|
||||
CcnetPeer *peer,
|
||||
const char *role);
|
||||
|
||||
void ccnet_peer_manager_remove_role (CcnetPeerManager *manager,
|
||||
CcnetPeer *peer,
|
||||
const char *role);
|
||||
|
||||
void ccnet_peer_manager_add_local_peer (CcnetPeerManager *manager,
|
||||
CcnetPeer *peer);
|
||||
void ccnet_peer_manager_remove_local_peer (CcnetPeerManager *manager,
|
||||
CcnetPeer *peer);
|
||||
|
||||
struct _CcnetMessage;
|
||||
void ccnet_peer_manager_receive_message (CcnetPeerManager *manager,
|
||||
struct _CcnetMessage *msg);
|
||||
|
||||
void
|
||||
ccnet_peer_manager_notify_peer_role (CcnetPeerManager *manager,
|
||||
CcnetPeer *peer);
|
||||
|
||||
void
|
||||
ccnet_peer_manager_set_peer_public_addr (CcnetPeerManager *manager,
|
||||
CcnetPeer *peer,
|
||||
const char *addr,
|
||||
int port);
|
||||
|
||||
#ifdef CCNET_SERVER
|
||||
void
|
||||
ccnet_peer_manager_send_bind_status (CcnetPeerManager *manager,
|
||||
const char *peer_id,
|
||||
const char *result);
|
||||
#endif /* CCNET_SERVER */
|
||||
|
||||
/* function of resolving peer */
|
||||
CcnetPeer *
|
||||
ccnet_peer_manager_add_resolve_peer (CcnetPeerManager *manager,
|
||||
const char *ip_or_domain,
|
||||
uint16_t port);
|
||||
|
||||
GList *
|
||||
ccnet_peer_manager_get_resolve_peers (CcnetPeerManager *manager);
|
||||
|
||||
void
|
||||
ccnet_peer_manager_redirect_peer (CcnetPeerManager *manager,
|
||||
CcnetPeer *peer,
|
||||
CcnetPeer *to);
|
||||
|
||||
void
|
||||
ccnet_peer_manager_send_ready_message (CcnetPeerManager *manager, CcnetPeer *peer);
|
||||
|
||||
void
|
||||
ccnet_peer_manager_on_peer_session_key_sent (CcnetPeerManager *manager,
|
||||
CcnetPeer *peer);
|
||||
void
|
||||
ccnet_peer_manager_on_peer_session_key_received (CcnetPeerManager *manager,
|
||||
CcnetPeer *peer);
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user