diff options
author | jsorg71 <jsorg71> | 2008-08-22 06:08:11 +0000 |
---|---|---|
committer | jsorg71 <jsorg71> | 2008-08-22 06:08:11 +0000 |
commit | 643e22a6e5615536ac798831da6b139be79bb6fb (patch) | |
tree | 0f4efa3a72e48bf3ada5b48bed1ea405c9317efd /common/trans.h | |
parent | f1ebdf189e36a59afc14cd58b05f2fa2dc57d9b5 (diff) | |
download | xrdp-proprietary-643e22a6e5615536ac798831da6b139be79bb6fb.tar.gz xrdp-proprietary-643e22a6e5615536ac798831da6b139be79bb6fb.zip |
added trans files
Diffstat (limited to 'common/trans.h')
-rw-r--r-- | common/trans.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/common/trans.h b/common/trans.h new file mode 100644 index 00000000..b915ab9b --- /dev/null +++ b/common/trans.h @@ -0,0 +1,73 @@ +/* + Copyright (c) 2004-2008 Jay Sorg + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + generic transport + +*/ + +#if !defined(TRANS_H) +#define TRANS_H + +#include "arch.h" +#include "parse.h" + +struct trans; /* forward declaration */ + +typedef int (*ttrans_data_in)(struct trans* self); +typedef int (*ttrans_conn_in)(struct trans* self, struct trans* new_self); + +struct trans +{ + tbus sck; + int mode; /* tcp, shared memory, pipes */ + int status; + int type1; /* 1 listener 2 server 3 client */ + ttrans_data_in trans_data_in; + ttrans_conn_in trans_conn_in; + void* callback_data; + int header_size; + struct stream* in_s; + struct stream* out_s; +}; + +struct trans* APP_CC +trans_create(int mode, int in_size, int out_size); +void APP_CC +trans_delete(struct trans* self); +int APP_CC +trans_get_wait_objs(struct trans* self, tbus* objs, int* count, int* timeout); +int APP_CC +trans_check_wait_objs(struct trans* self); +int APP_CC +trans_force_read(struct trans* self, int size); +int APP_CC +trans_force_write(struct trans* self); +int APP_CC +trans_connect(struct trans* self, const char* server, const char* port, + int timeout); +int APP_CC +trans_listen(struct trans* self, char* port); +struct stream* APP_CC +trans_get_in_s(struct trans* self); +struct stream* APP_CC +trans_get_out_s(struct trans* self, int size); + +#endif |