Skip to content

Commit 3583558

Browse files
committed
2.0.032
1 parent 02c29f0 commit 3583558

File tree

148 files changed

+14941
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

148 files changed

+14941
-0
lines changed
+68
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
TEMPLATE = app
2+
CONFIG += console c++11
3+
CONFIG -= app_bundle
4+
CONFIG -= qt
5+
HOME_BASE=../
6+
7+
INCLUDEPATH += ./src
8+
INCLUDEPATH += ./lib
9+
LIBS += -L$$HOME_BASE/lib/YangMeetingServer/lib
10+
LIBS += -lst -lpthread -lmysqlclient
11+
CONFIG(debug, debug|release) {
12+
DESTDIR += $$HOME_BASE/bin/server_debug
13+
}else{
14+
15+
DESTDIR += $$HOME_BASE/bin/server_release
16+
}
17+
SOURCES += \
18+
src/YangMeetingServer.cpp \
19+
src/yangdataserver/YangDataChannelServer.cpp \
20+
src/yangdataserver/YangMapMeeting.cpp \
21+
src/yangdataserver/YangMessageData.cpp \
22+
src/yangdataserver/YangServerMeeting.cpp \
23+
src/yangdataserver/YangStThread.cpp \
24+
src/yangdataserver/YangThread.cpp \
25+
src/yangdataserver/YangUserDataHandle.cpp \
26+
src/yanghttp/YangHttp.cpp \
27+
src/yanghttp/YangServerletManager.cpp \
28+
src/yanghttp/httpserver.cpp \
29+
src/yangsql/src/YangConf.cpp \
30+
src/yangsql/src/YangConnectionPool.cpp \
31+
src/yangsql/src/YangMysqlBase.cpp \
32+
src/yangsql/src/YangUserManager.cpp \
33+
src/yangsrt/src/YangTsBuffer.cpp \
34+
src/yangsrt/src/YangTsMuxer.cpp \
35+
src/yangsrt/src/YangTsPacket.cpp \
36+
src/yangsrt/src/YangTsdemux.cpp \
37+
src/yangsrt/src/YangTsdemuxer.cpp \
38+
src/yangsrt/src/common.cpp \
39+
src/yangsrt/src/crc.cpp \
40+
src/yangsrt/src/srt_data.cpp
41+
42+
HEADERS += \
43+
src/yangdataserver/YangCommandId.h \
44+
src/yangdataserver/YangCommon.h \
45+
src/yangdataserver/YangDataChannelServer.h \
46+
src/yangdataserver/YangMapMeeting.h \
47+
src/yangdataserver/YangMessageData.h \
48+
src/yangdataserver/YangServerMeeting.h \
49+
src/yangdataserver/YangStThread.h \
50+
src/yangdataserver/YangThread.h \
51+
src/yangdataserver/YangUserContext.h \
52+
src/yangdataserver/YangUserDataHandle.h \
53+
src/yanghttp/YangHttp.h \
54+
src/yanghttp/YangServerletManager.h \
55+
src/yanghttp/httpserver.h \
56+
src/yangsql/include/YangConf.h \
57+
src/yangsql/include/YangConnectionPool.h \
58+
src/yangsql/include/YangMysqlBase.h \
59+
src/yangsql/include/YangUserManager.h \
60+
src/yangsrt/include/YangTsBuffer.h \
61+
src/yangsrt/include/YangTsMuxer.h \
62+
src/yangsrt/include/YangTsPacket.h \
63+
src/yangsrt/include/YangTsPid.h \
64+
src/yangsrt/include/YangTsdemux.h \
65+
src/yangsrt/include/YangTsdemuxer.h \
66+
src/yangsrt/include/common.h \
67+
src/yangsrt/include/crc.h \
68+
src/yangsrt/include/srt_data.hpp

YangMeetingServer/lib/libsrt.so

848 KB
Binary file not shown.

YangMeetingServer/lib/libst.a

44.2 KB
Binary file not shown.

YangMeetingServer/lib/st.h

+174
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
/*
2+
* The contents of this file are subject to the Mozilla Public
3+
* License Version 1.1 (the "License"); you may not use this file
4+
* except in compliance with the License. You may obtain a copy of
5+
* the License at http://www.mozilla.org/MPL/
6+
*
7+
* Software distributed under the License is distributed on an "AS
8+
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
9+
* implied. See the License for the specific language governing
10+
* rights and limitations under the License.
11+
*
12+
* The Original Code is the Netscape Portable Runtime library.
13+
*
14+
* The Initial Developer of the Original Code is Netscape
15+
* Communications Corporation. Portions created by Netscape are
16+
* Copyright (C) 1994-2000 Netscape Communications Corporation. All
17+
* Rights Reserved.
18+
*
19+
* Contributor(s): Silicon Graphics, Inc.
20+
*
21+
* Portions created by SGI are Copyright (C) 2000-2001 Silicon
22+
* Graphics, Inc. All Rights Reserved.
23+
*
24+
* Alternatively, the contents of this file may be used under the
25+
* terms of the GNU General Public License Version 2 or later (the
26+
* "GPL"), in which case the provisions of the GPL are applicable
27+
* instead of those above. If you wish to allow use of your
28+
* version of this file only under the terms of the GPL and not to
29+
* allow others to use your version of this file under the MPL,
30+
* indicate your decision by deleting the provisions above and
31+
* replace them with the notice and other provisions required by
32+
* the GPL. If you do not delete the provisions above, a recipient
33+
* may use your version of this file under either the MPL or the
34+
* GPL.
35+
*/
36+
37+
#ifndef __ST_THREAD_H__
38+
#define __ST_THREAD_H__
39+
40+
#include <unistd.h>
41+
#include <sys/types.h>
42+
#include <sys/socket.h>
43+
#include <sys/uio.h>
44+
#include <time.h>
45+
#include <errno.h>
46+
#include <poll.h>
47+
48+
#define ST_VERSION "1.9"
49+
#define ST_VERSION_MAJOR 1
50+
#define ST_VERSION_MINOR 9
51+
52+
/* Undefine this to remove the context switch callback feature. */
53+
#define ST_SWITCH_CB
54+
55+
#ifndef ETIME
56+
#define ETIME ETIMEDOUT
57+
#endif
58+
59+
#ifndef ST_UTIME_NO_TIMEOUT
60+
#define ST_UTIME_NO_TIMEOUT ((st_utime_t) -1LL)
61+
#endif
62+
63+
#ifndef ST_UTIME_NO_WAIT
64+
#define ST_UTIME_NO_WAIT 0
65+
#endif
66+
67+
#define ST_EVENTSYS_DEFAULT 0
68+
#define ST_EVENTSYS_ALT 3
69+
70+
#ifdef __cplusplus
71+
extern "C" {
72+
#endif
73+
74+
typedef unsigned long long st_utime_t;
75+
typedef struct _st_thread * st_thread_t;
76+
typedef struct _st_cond * st_cond_t;
77+
typedef struct _st_mutex * st_mutex_t;
78+
typedef struct _st_netfd * st_netfd_t;
79+
#ifdef ST_SWITCH_CB
80+
typedef void (*st_switch_cb_t)(void);
81+
#endif
82+
83+
extern int st_init(void);
84+
extern int st_getfdlimit(void);
85+
86+
extern int st_set_eventsys(int eventsys);
87+
extern int st_get_eventsys(void);
88+
extern const char *st_get_eventsys_name(void);
89+
90+
#ifdef ST_SWITCH_CB
91+
extern st_switch_cb_t st_set_switch_in_cb(st_switch_cb_t cb);
92+
extern st_switch_cb_t st_set_switch_out_cb(st_switch_cb_t cb);
93+
#endif
94+
95+
extern st_thread_t st_thread_self(void);
96+
extern void st_thread_exit(void *retval);
97+
extern int st_thread_join(st_thread_t thread, void **retvalp);
98+
extern void st_thread_interrupt(st_thread_t thread);
99+
extern void st_thread_yield();
100+
extern st_thread_t st_thread_create(void *(*start)(void *arg), void *arg, int joinable, int stack_size);
101+
extern int st_randomize_stacks(int on);
102+
extern int st_set_utime_function(st_utime_t (*func)(void));
103+
104+
extern st_utime_t st_utime(void);
105+
extern st_utime_t st_utime_last_clock(void);
106+
extern int st_timecache_set(int on);
107+
extern time_t st_time(void);
108+
extern int st_usleep(st_utime_t usecs);
109+
extern int st_sleep(int secs);
110+
extern st_cond_t st_cond_new(void);
111+
extern int st_cond_destroy(st_cond_t cvar);
112+
extern int st_cond_timedwait(st_cond_t cvar, st_utime_t timeout);
113+
extern int st_cond_wait(st_cond_t cvar);
114+
extern int st_cond_signal(st_cond_t cvar);
115+
extern int st_cond_broadcast(st_cond_t cvar);
116+
extern st_mutex_t st_mutex_new(void);
117+
extern int st_mutex_destroy(st_mutex_t lock);
118+
extern int st_mutex_lock(st_mutex_t lock);
119+
extern int st_mutex_unlock(st_mutex_t lock);
120+
extern int st_mutex_trylock(st_mutex_t lock);
121+
122+
extern int st_key_create(int *keyp, void (*destructor)(void *));
123+
extern int st_key_getlimit(void);
124+
extern int st_thread_setspecific(int key, void *value);
125+
extern void *st_thread_getspecific(int key);
126+
127+
extern st_netfd_t st_netfd_open(int osfd);
128+
extern st_netfd_t st_netfd_open_socket(int osfd);
129+
extern void st_netfd_free(st_netfd_t fd);
130+
extern int st_netfd_close(st_netfd_t fd);
131+
extern int st_netfd_fileno(st_netfd_t fd);
132+
extern void st_netfd_setspecific(st_netfd_t fd, void *value, void (*destructor)(void *));
133+
extern void *st_netfd_getspecific(st_netfd_t fd);
134+
extern int st_netfd_serialize_accept(st_netfd_t fd);
135+
extern int st_netfd_poll(st_netfd_t fd, int how, st_utime_t timeout);
136+
137+
extern int st_poll(struct pollfd *pds, int npds, st_utime_t timeout);
138+
extern st_netfd_t st_accept(st_netfd_t fd, struct sockaddr *addr, int *addrlen, st_utime_t timeout);
139+
extern int st_connect(st_netfd_t fd, const struct sockaddr *addr, int addrlen, st_utime_t timeout);
140+
extern ssize_t st_read(st_netfd_t fd, void *buf, size_t nbyte, st_utime_t timeout);
141+
extern ssize_t st_read_fully(st_netfd_t fd, void *buf, size_t nbyte, st_utime_t timeout);
142+
extern int st_read_resid(st_netfd_t fd, void *buf, size_t *resid, st_utime_t timeout);
143+
extern ssize_t st_readv(st_netfd_t fd, const struct iovec *iov, int iov_size, st_utime_t timeout);
144+
extern int st_readv_resid(st_netfd_t fd, struct iovec **iov, int *iov_size, st_utime_t timeout);
145+
extern ssize_t st_write(st_netfd_t fd, const void *buf, size_t nbyte, st_utime_t timeout);
146+
extern int st_write_resid(st_netfd_t fd, const void *buf, size_t *resid, st_utime_t timeout);
147+
extern ssize_t st_writev(st_netfd_t fd, const struct iovec *iov, int iov_size, st_utime_t timeout);
148+
extern int st_writev_resid(st_netfd_t fd, struct iovec **iov, int *iov_size, st_utime_t timeout);
149+
extern int st_recvfrom(st_netfd_t fd, void *buf, int len, struct sockaddr *from, int *fromlen, st_utime_t timeout);
150+
extern int st_sendto(st_netfd_t fd, const void *msg, int len, const struct sockaddr *to, int tolen, st_utime_t timeout);
151+
extern int st_recvmsg(st_netfd_t fd, struct msghdr *msg, int flags, st_utime_t timeout);
152+
extern int st_sendmsg(st_netfd_t fd, const struct msghdr *msg, int flags, st_utime_t timeout);
153+
154+
// @see http://man7.org/linux/man-pages/man2/sendmmsg.2.html
155+
#include <sys/socket.h>
156+
struct st_mmsghdr {
157+
struct msghdr msg_hdr; /* Message header */
158+
unsigned int msg_len; /* Number of bytes transmitted */
159+
};
160+
extern int st_sendmmsg(st_netfd_t fd, struct st_mmsghdr *msgvec, unsigned int vlen, int flags, st_utime_t timeout);
161+
162+
extern st_netfd_t st_open(const char *path, int oflags, mode_t mode);
163+
164+
#ifdef DEBUG
165+
extern void _st_show_thread_stack(st_thread_t thread, const char *messg);
166+
extern void _st_iterate_threads(void);
167+
#endif
168+
169+
#ifdef __cplusplus
170+
}
171+
#endif
172+
173+
#endif /* !__ST_THREAD_H__ */
174+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
#include <stdio.h>
2+
#include <string.h>
3+
#include <signal.h>
4+
#include <unistd.h>
5+
6+
using namespace std;
7+
8+
#include <pthread.h>
9+
#include "yanghttp/YangHttp.h"
10+
#include "yangsql/include/YangConf.h"
11+
#include "yangdataserver/YangDataChannelServer.h"
12+
int g_waitState=0;
13+
pthread_mutex_t g_lock ;//= 0;//PTHREAD_MUTEX_INITIALIZER;
14+
pthread_cond_t g_cond ;//PTHREAD_COND_INITIALIZER;
15+
/*
16+
* ctrl + c controller
17+
*/
18+
static bool b_exit = 0;
19+
static void ctrl_c_handler(int s){
20+
printf("\ncaught signal %d, exit.\n",s);
21+
b_exit = true;
22+
pthread_mutex_lock(&g_lock);
23+
pthread_cond_signal(&g_cond);
24+
pthread_mutex_unlock(&g_lock);
25+
}
26+
27+
28+
static bool b_reload = 0;
29+
static void reload_handler(int s){
30+
printf("\ncaught signal %d, reload.\n",s);
31+
b_reload = true;
32+
}
33+
34+
35+
36+
int main(int argc, char* argv[])
37+
{
38+
struct sigaction sigIntHandler;
39+
struct sigaction sigHupHandler;
40+
g_lock = PTHREAD_MUTEX_INITIALIZER;
41+
g_cond = PTHREAD_COND_INITIALIZER;
42+
//Http Server
43+
YangConf yconf;
44+
YangHttp http;
45+
YangDataChannelServer dataServer;
46+
yconf.init("yang_config.ini");
47+
yconf.initValue();
48+
http.m_conf=&yconf;
49+
dataServer.m_conf=&yconf;
50+
YangMapMeeting m_map_meeting ;//= new YangMapMeeting();
51+
m_map_meeting.m_usingSrtDataChannel=yconf.m_usingSrtDataChannel;
52+
53+
//ctrl + c to exit
54+
sigIntHandler.sa_handler = ctrl_c_handler;
55+
sigemptyset(&sigIntHandler.sa_mask);
56+
sigIntHandler.sa_flags = 0;
57+
sigaction(SIGINT, &sigIntHandler, 0);
58+
59+
//hup to reload
60+
sigHupHandler.sa_handler = reload_handler;
61+
sigemptyset(&sigHupHandler.sa_mask);
62+
sigHupHandler.sa_flags = 0;
63+
sigaction(SIGHUP, &sigHupHandler, 0);
64+
65+
66+
67+
http.handle();
68+
dataServer.init(yconf.m_dataChannelPort);
69+
dataServer.start();
70+
//sls manager
71+
72+
73+
while(!b_exit)
74+
{
75+
76+
77+
g_waitState=1;
78+
pthread_cond_wait(&g_cond, &g_lock);
79+
g_waitState=0;
80+
if (b_reload) {
81+
//reload
82+
b_reload = false;
83+
84+
}
85+
}
86+
87+
EXIT_PROC:
88+
89+
dataServer.stop();
90+
m_map_meeting.clearMap();
91+
92+
93+
return 0;
94+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/*
2+
* YangCommandId.h
3+
*
4+
* Created on: 2019年9月3日
5+
* Author: yang
6+
*/
7+
8+
#ifndef YANGVIDEOMEETING_SRC_YANGCOMMANDID_H_
9+
#define YANGVIDEOMEETING_SRC_YANGCOMMANDID_H_
10+
#define Yang_Command_Connection 100
11+
12+
#define Yang_Command_Login 1001
13+
#define Yang_Command_HasLogin 1002
14+
#define Yang_Command_Login_Success 1003
15+
#define Yang_Command_Login_Failure 1004
16+
#define Yang_Command_LogOut 1012
17+
#define Yang_Command_ForbidShowVideo 1013
18+
#define Yang_Command_AllowShowVideo 1014
19+
#define Yang_Command_VideoDisplaySyn 1015
20+
#define Yang_Command_AllowSpeak 1016
21+
#define Yang_Command_DisableSpeak 1017
22+
#define Yang_Command_KickOff 1018
23+
#define Yang_Command_PubCam 1019
24+
#define Yang_Command_PubCamClose 1020
25+
#define Yang_Command_MeetingEnd 1021
26+
#define Yang_Command_PubMic 1022
27+
#define Yang_Command_PubMicClose 1023
28+
#define Yang_Command_LockMeeting 1024
29+
#define Yang_Command_UnlockMeeting 1025
30+
#define Yang_Command_Palm 1026
31+
#define Yang_Command_CancelPalm 1027
32+
33+
#define Yang_Command_RoomInfoUsers 2000
34+
35+
#endif /* YANGVIDEOMEETING_SRC_YANGCOMMANDID_H_ */

0 commit comments

Comments
 (0)