Go to the documentation of this file.00001
00002
00003
00004 #ifndef TAO_SFP_IDL
00005 #define TAO_SFP_IDL
00006
00007 #include <ULongSeq.pidl>
00008 #include <OctetSeq.pidl>
00009
00010 module flowProtocol
00011 {
00012 typedef CORBA::ULongSeq my_seq_ulong;
00013 enum MsgType
00014 {
00015
00016
00017
00018
00019
00020
00021 Start_Msg,
00022 EndofStream_Msg,
00023 SimpleFrame_Msg,
00024 SequencedFrame_Msg,
00025 Frame_Msg,
00026 SpecialFrame_Msg,
00027
00028
00029 StartReply_Msg,
00030 Credit_Msg,
00031
00032 Fragment_Msg
00033 };
00034
00035 struct frameHeader
00036 {
00037 char magic_number[4];
00038
00039
00040 octet flags;
00041
00042
00043 octet message_type;
00044 unsigned long message_size;
00045
00046 };
00047
00048 struct fragment
00049 {
00050
00051 char magic_number[4];
00052
00053 octet flags;
00054
00055 unsigned long frag_number;
00056
00057 unsigned long sequence_num;
00058 unsigned long frag_sz;
00059 unsigned long source_id;
00060
00061 };
00062
00063 struct Start
00064 {
00065 char magic_number[4];
00066
00067
00068 octet major_version;
00069 octet minor_version;
00070 octet flags;
00071
00072 };
00073
00074
00075
00076
00077 struct StartReply
00078 {
00079
00080 char magic_number[4];
00081
00082 octet flags;
00083
00084 };
00085
00086
00087
00088
00089
00090 struct sequencedFrame
00091 {
00092 unsigned long sequence_num;
00093 };
00094
00095
00096
00097
00098 struct frame
00099 {
00100 unsigned long timestamp;
00101 unsigned long synchSource;
00102 my_seq_ulong source_ids;
00103 unsigned long sequence_num;
00104 };
00105
00106
00107 typedef unsigned long frameID;
00108 struct specialFrame
00109 {
00110 frameID context_id;
00111 CORBA::OctetSeq context_data;
00112 };
00113
00114 struct credit
00115 {
00116
00117 char magic_number[4];
00118
00119 unsigned long cred_num;
00120 };
00121
00122 };
00123
00124 #endif