File: _application_8h_source.html

package info (click to toggle)
quickfix 1.13.3%2Bdfsg-9
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 152,548 kB
  • ctags: 679,426
  • sloc: cpp: 639,331; xml: 129,200; python: 108,722; ruby: 85,152; sh: 10,492; ansic: 9,025; java: 1,827; cs: 1,145; makefile: 523; sql: 313; perl: 108
file content (122 lines) | stat: -rw-r--r-- 21,424 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>QuickFIX: /home/omiller/Development/autobuild/quickfix/src/C++/Application.h Source File</title>
<link href="quickfix.css" rel="stylesheet" type="text/css">
<table cellspacing="0" cellpadding="0" border="0">
  <tr>
   <td>
	<img src="images/QuickFIX.jpg" align="middle" border=0>
	&nbsp;&nbsp;
	<a href="index.html">Index</a>&nbsp;
	<a href="files.html">Source Files</a>&nbsp;
	<a href="annotated.html">Annotated Class List</a>&nbsp;
	<a href="classes.html">Alphabetical Class List</a>&nbsp;
	<a href="hierarchy.html">Class Hierarchy</a>&nbsp;
	<a href="inherits.html">Graphical Class Hierarchy</a>&nbsp;
   </td>
  </tr>
</table>
</head><body bgcolor="#ffffff">
<!-- Generated by Doxygen 1.6.1 -->
  <div class="navpath"><a class="el" href="dir_a9003438d6daff57482a26b22b6121a1.html">src</a>&nbsp;&raquo&nbsp;<a class="el" href="dir_348ef16cf184025134029522e7f02883.html">C++</a>
  </div>
<div class="contents">
<h1>Application.h</h1><a href="_application_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* -*- C++ -*- */</span>
<a name="l00002"></a>00002 
<a name="l00003"></a>00003 <span class="comment">/****************************************************************************</span>
<a name="l00004"></a>00004 <span class="comment">** Copyright (c) quickfixengine.org  All rights reserved.</span>
<a name="l00005"></a>00005 <span class="comment">**</span>
<a name="l00006"></a>00006 <span class="comment">** This file is part of the QuickFIX FIX Engine</span>
<a name="l00007"></a>00007 <span class="comment">**</span>
<a name="l00008"></a>00008 <span class="comment">** This file may be distributed under the terms of the quickfixengine.org</span>
<a name="l00009"></a>00009 <span class="comment">** license as defined by quickfixengine.org and appearing in the file</span>
<a name="l00010"></a>00010 <span class="comment">** LICENSE included in the packaging of this file.</span>
<a name="l00011"></a>00011 <span class="comment">**</span>
<a name="l00012"></a>00012 <span class="comment">** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE</span>
<a name="l00013"></a>00013 <span class="comment">** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.</span>
<a name="l00014"></a>00014 <span class="comment">**</span>
<a name="l00015"></a>00015 <span class="comment">** See http://www.quickfixengine.org/LICENSE for licensing information.</span>
<a name="l00016"></a>00016 <span class="comment">**</span>
<a name="l00017"></a>00017 <span class="comment">** Contact ask@quickfixengine.org if any conditions of this licensing are</span>
<a name="l00018"></a>00018 <span class="comment">** not clear to you.</span>
<a name="l00019"></a>00019 <span class="comment">**</span>
<a name="l00020"></a>00020 <span class="comment">****************************************************************************/</span>
<a name="l00021"></a>00021 
<a name="l00022"></a>00022 <span class="preprocessor">#ifndef FIX_APPLICATION_H</span>
<a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#define FIX_APPLICATION_H</span>
<a name="l00024"></a>00024 <span class="preprocessor"></span>
<a name="l00025"></a>00025 <span class="preprocessor">#include &quot;<a class="code" href="_message_8h.html">Message.h</a>&quot;</span>
<a name="l00026"></a>00026 <span class="preprocessor">#include &quot;<a class="code" href="_session_i_d_8h.html">SessionID.h</a>&quot;</span>
<a name="l00027"></a>00027 <span class="preprocessor">#include &quot;<a class="code" href="_mutex_8h.html">Mutex.h</a>&quot;</span>
<a name="l00028"></a>00028 
<a name="l00029"></a>00029 <span class="keyword">namespace </span>FIX
<a name="l00030"></a>00030 {
<a name="l00043"></a><a class="code" href="class_f_i_x_1_1_application.html">00043</a> <span class="keyword">class </span><a class="code" href="class_f_i_x_1_1_application.html" title="This interface must be implemented to define what your FIX application does.">Application</a>
<a name="l00044"></a>00044 {
<a name="l00045"></a>00045 <span class="keyword">public</span>:
<a name="l00046"></a><a class="code" href="class_f_i_x_1_1_application.html#af24f206ee346f6ca63c443a06be697e9">00046</a>   <span class="keyword">virtual</span> <a class="code" href="class_f_i_x_1_1_application.html#af24f206ee346f6ca63c443a06be697e9">~Application</a>() {};
<a name="l00048"></a>00048   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_f_i_x_1_1_application.html#a3a5ac4cc9cb178336abcc6e2c6dfa59b" title="Notification of a session begin created.">onCreate</a>( <span class="keyword">const</span> <a class="code" href="class_f_i_x_1_1_session_i_d.html" title="Unique session id consists of BeginString, SenderCompID and TargetCompID.">SessionID</a>&amp; ) = 0;
<a name="l00050"></a>00050   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_f_i_x_1_1_application.html#ad565d69adb18f02a2effdb3ca4d1d8fa" title="Notification of a session successfully logging on.">onLogon</a>( <span class="keyword">const</span> <a class="code" href="class_f_i_x_1_1_session_i_d.html" title="Unique session id consists of BeginString, SenderCompID and TargetCompID.">SessionID</a>&amp; ) = 0;
<a name="l00052"></a>00052   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_f_i_x_1_1_application.html#a8e17c6f9f4692d34812d1084292105ee" title="Notification of a session logging off or disconnecting.">onLogout</a>( <span class="keyword">const</span> <a class="code" href="class_f_i_x_1_1_session_i_d.html" title="Unique session id consists of BeginString, SenderCompID and TargetCompID.">SessionID</a>&amp; ) = 0;
<a name="l00054"></a>00054   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_f_i_x_1_1_application.html#a608013bd0443b2f5309913d459f0b44e" title="Notification of admin message being sent to target.">toAdmin</a>( <a class="code" href="class_f_i_x_1_1_message.html" title="Base class for all FIX messages.">Message</a>&amp;, <span class="keyword">const</span> <a class="code" href="class_f_i_x_1_1_session_i_d.html" title="Unique session id consists of BeginString, SenderCompID and TargetCompID.">SessionID</a>&amp; ) = 0;
<a name="l00056"></a>00056   <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_f_i_x_1_1_application.html#a95f1534c957d2985a18a24637a583f4b" title="Notification of app message being sent to target.">toApp</a>( <a class="code" href="class_f_i_x_1_1_message.html" title="Base class for all FIX messages.">Message</a>&amp;, <span class="keyword">const</span> <a class="code" href="class_f_i_x_1_1_session_i_d.html" title="Unique session id consists of BeginString, SenderCompID and TargetCompID.">SessionID</a>&amp; )
<a name="l00057"></a>00057   throw( <a class="code" href="struct_f_i_x_1_1_do_not_send.html" title="Indicates user does not want to send a message.">DoNotSend</a> ) = 0;
<a name="l00059"></a>00059   virtual <span class="keywordtype">void</span> <a class="code" href="class_f_i_x_1_1_application.html#a47506b8e6673d4a6e408b7dd8be39038" title="Notification of admin message being received from target.">fromAdmin</a>( const <a class="code" href="class_f_i_x_1_1_message.html" title="Base class for all FIX messages.">Message</a>&amp;, const <a class="code" href="class_f_i_x_1_1_session_i_d.html" title="Unique session id consists of BeginString, SenderCompID and TargetCompID.">SessionID</a>&amp; )
<a name="l00060"></a>00060   throw( <a class="code" href="struct_f_i_x_1_1_field_not_found.html" title="Field not found inside a message.">FieldNotFound</a>, <a class="code" href="struct_f_i_x_1_1_incorrect_data_format.html" title="Field has a badly formatted value.">IncorrectDataFormat</a>, <a class="code" href="struct_f_i_x_1_1_incorrect_tag_value.html" title="Field has a value that is out of range.">IncorrectTagValue</a>, <a class="code" href="struct_f_i_x_1_1_reject_logon.html" title="User wants to reject permission to logon.">RejectLogon</a> ) = 0;
<a name="l00062"></a>00062   virtual <span class="keywordtype">void</span> <a class="code" href="class_f_i_x_1_1_application.html#a35a4e75eeb0908d56c87be5f8ec7dfd9" title="Notification of app message being received from target.">fromApp</a>( const Message&amp;, const <a class="code" href="class_f_i_x_1_1_session_i_d.html" title="Unique session id consists of BeginString, SenderCompID and TargetCompID.">SessionID</a>&amp; )
<a name="l00063"></a>00063   throw( FieldNotFound, IncorrectDataFormat, IncorrectTagValue, <a class="code" href="struct_f_i_x_1_1_unsupported_message_type.html" title="Message type not supported by application.">UnsupportedMessageType</a> ) = 0;
<a name="l00064"></a>00064 };
<a name="l00065"></a>00065 
<a name="l00076"></a><a class="code" href="class_f_i_x_1_1_synchronized_application.html">00076</a> class <a class="code" href="class_f_i_x_1_1_synchronized_application.html" title="This is a special implementation of the Application interface that takes in another...">SynchronizedApplication</a> : public <a class="code" href="class_f_i_x_1_1_application.html" title="This interface must be implemented to define what your FIX application does.">Application</a>
<a name="l00077"></a>00077 {
<a name="l00078"></a>00078 <span class="keyword">public</span>:
<a name="l00079"></a><a class="code" href="class_f_i_x_1_1_synchronized_application.html#ad63cd18cc212c2974837e2b6d83d2e3b">00079</a>   <a class="code" href="class_f_i_x_1_1_synchronized_application.html#ad63cd18cc212c2974837e2b6d83d2e3b">SynchronizedApplication</a>( Application&amp; app ) : m_app( app ) {}
<a name="l00080"></a>00080 
<a name="l00081"></a><a class="code" href="class_f_i_x_1_1_synchronized_application.html#adec06f35ae27f210af4102182d10bbbf">00081</a>   <span class="keywordtype">void</span> <a class="code" href="class_f_i_x_1_1_application.html#a3a5ac4cc9cb178336abcc6e2c6dfa59b" title="Notification of a session begin created.">onCreate</a>( <span class="keyword">const</span> <a class="code" href="class_f_i_x_1_1_session_i_d.html" title="Unique session id consists of BeginString, SenderCompID and TargetCompID.">SessionID</a>&amp; sessionID )
<a name="l00082"></a>00082   { <a class="code" href="class_f_i_x_1_1_locker.html" title="Locks/Unlocks a mutex using RAII.">Locker</a> l( m_mutex ); app().onCreate( sessionID ); }
<a name="l00083"></a><a class="code" href="class_f_i_x_1_1_synchronized_application.html#a2c823d9106430f3876bd3979e1b3e0bd">00083</a>   <span class="keywordtype">void</span> <a class="code" href="class_f_i_x_1_1_application.html#ad565d69adb18f02a2effdb3ca4d1d8fa" title="Notification of a session successfully logging on.">onLogon</a>( <span class="keyword">const</span> <a class="code" href="class_f_i_x_1_1_session_i_d.html" title="Unique session id consists of BeginString, SenderCompID and TargetCompID.">SessionID</a>&amp; sessionID )
<a name="l00084"></a>00084   { <a class="code" href="class_f_i_x_1_1_locker.html" title="Locks/Unlocks a mutex using RAII.">Locker</a> l( m_mutex ); app().onLogon( sessionID ); }
<a name="l00085"></a><a class="code" href="class_f_i_x_1_1_synchronized_application.html#a23b9f92e9f2104878062694230dc4846">00085</a>   <span class="keywordtype">void</span> <a class="code" href="class_f_i_x_1_1_application.html#a8e17c6f9f4692d34812d1084292105ee" title="Notification of a session logging off or disconnecting.">onLogout</a>( <span class="keyword">const</span> <a class="code" href="class_f_i_x_1_1_session_i_d.html" title="Unique session id consists of BeginString, SenderCompID and TargetCompID.">SessionID</a>&amp; sessionID )
<a name="l00086"></a>00086   { <a class="code" href="class_f_i_x_1_1_locker.html" title="Locks/Unlocks a mutex using RAII.">Locker</a> l( m_mutex ); app().onLogout( sessionID ); }
<a name="l00087"></a><a class="code" href="class_f_i_x_1_1_synchronized_application.html#a68ca874a193f3fba95c77a4b42f70491">00087</a>   <span class="keywordtype">void</span> <a class="code" href="class_f_i_x_1_1_application.html#a608013bd0443b2f5309913d459f0b44e" title="Notification of admin message being sent to target.">toAdmin</a>( Message&amp; message, <span class="keyword">const</span> <a class="code" href="class_f_i_x_1_1_session_i_d.html" title="Unique session id consists of BeginString, SenderCompID and TargetCompID.">SessionID</a>&amp; sessionID )
<a name="l00088"></a>00088   { <a class="code" href="class_f_i_x_1_1_locker.html" title="Locks/Unlocks a mutex using RAII.">Locker</a> l( m_mutex ); app().toAdmin( message, sessionID ); }
<a name="l00089"></a><a class="code" href="class_f_i_x_1_1_synchronized_application.html#a4ea435dfff6bb6c6e1f0926c55742a4e">00089</a>   <span class="keywordtype">void</span> <a class="code" href="class_f_i_x_1_1_application.html#a95f1534c957d2985a18a24637a583f4b" title="Notification of app message being sent to target.">toApp</a>( Message&amp; message, <span class="keyword">const</span> <a class="code" href="class_f_i_x_1_1_session_i_d.html" title="Unique session id consists of BeginString, SenderCompID and TargetCompID.">SessionID</a>&amp; sessionID )
<a name="l00090"></a>00090   <span class="keywordflow">throw</span>( DoNotSend )
<a name="l00091"></a>00091   { <a class="code" href="class_f_i_x_1_1_locker.html" title="Locks/Unlocks a mutex using RAII.">Locker</a> l( m_mutex ); app().toApp( message, sessionID ); }
<a name="l00092"></a><a class="code" href="class_f_i_x_1_1_synchronized_application.html#a5113801ffd82e36dc43adb10289e2af7">00092</a>   <span class="keywordtype">void</span> <a class="code" href="class_f_i_x_1_1_application.html#a47506b8e6673d4a6e408b7dd8be39038" title="Notification of admin message being received from target.">fromAdmin</a>( <span class="keyword">const</span> Message&amp; message, <span class="keyword">const</span> <a class="code" href="class_f_i_x_1_1_session_i_d.html" title="Unique session id consists of BeginString, SenderCompID and TargetCompID.">SessionID</a>&amp; sessionID )
<a name="l00093"></a>00093   <span class="keywordflow">throw</span>( FieldNotFound, IncorrectDataFormat, IncorrectTagValue, RejectLogon )
<a name="l00094"></a>00094   { <a class="code" href="class_f_i_x_1_1_locker.html" title="Locks/Unlocks a mutex using RAII.">Locker</a> l( m_mutex ); app().fromAdmin( message, sessionID ); }
<a name="l00095"></a><a class="code" href="class_f_i_x_1_1_synchronized_application.html#ae859a94b9eb24d2ba54edb133c8664ca">00095</a>   <span class="keywordtype">void</span> <a class="code" href="class_f_i_x_1_1_application.html#a35a4e75eeb0908d56c87be5f8ec7dfd9" title="Notification of app message being received from target.">fromApp</a>( <span class="keyword">const</span> Message&amp; message, <span class="keyword">const</span> <a class="code" href="class_f_i_x_1_1_session_i_d.html" title="Unique session id consists of BeginString, SenderCompID and TargetCompID.">SessionID</a>&amp; sessionID )
<a name="l00096"></a>00096   <span class="keywordflow">throw</span>( FieldNotFound, IncorrectDataFormat, IncorrectTagValue, UnsupportedMessageType )
<a name="l00097"></a>00097   { <a class="code" href="class_f_i_x_1_1_locker.html" title="Locks/Unlocks a mutex using RAII.">Locker</a> l( m_mutex ); app().fromApp( message, sessionID ); }
<a name="l00098"></a>00098 
<a name="l00099"></a><a class="code" href="class_f_i_x_1_1_synchronized_application.html#a8407d683f16a7623860946ff3a38f6d1">00099</a>   <a class="code" href="class_f_i_x_1_1_mutex.html" title="Portable implementation of a mutex.">Mutex</a> m_mutex;
<a name="l00100"></a>00100 
<a name="l00101"></a><a class="code" href="class_f_i_x_1_1_synchronized_application.html#aa6a502b977403b787b31e646349a8e39">00101</a>   Application&amp; <a class="code" href="class_f_i_x_1_1_synchronized_application.html#aa6a502b977403b787b31e646349a8e39">app</a>() { <span class="keywordflow">return</span> m_app; }
<a name="l00102"></a><a class="code" href="class_f_i_x_1_1_synchronized_application.html#a01ec0e825ba12e4f14ed2e26fb35715f">00102</a>   Application&amp; m_app;
<a name="l00103"></a>00103 };
<a name="l00104"></a>00104 
<a name="l00111"></a><a class="code" href="class_f_i_x_1_1_null_application.html">00111</a> <span class="keyword">class </span><a class="code" href="class_f_i_x_1_1_null_application.html" title="An empty implementation of an Application.">NullApplication</a> : <span class="keyword">public</span> Application
<a name="l00112"></a>00112 {
<a name="l00113"></a><a class="code" href="class_f_i_x_1_1_null_application.html#a0720fa867fd217978cd2caa546ecabfc">00113</a>   <span class="keywordtype">void</span> <a class="code" href="class_f_i_x_1_1_null_application.html#a0720fa867fd217978cd2caa546ecabfc" title="Notification of a session begin created.">onCreate</a>( <span class="keyword">const</span> <a class="code" href="class_f_i_x_1_1_session_i_d.html" title="Unique session id consists of BeginString, SenderCompID and TargetCompID.">SessionID</a>&amp; ) {}
<a name="l00114"></a><a class="code" href="class_f_i_x_1_1_null_application.html#ad34cd9d21f6fd3ad2999a0128cb5ef9e">00114</a>   <span class="keywordtype">void</span> <a class="code" href="class_f_i_x_1_1_null_application.html#ad34cd9d21f6fd3ad2999a0128cb5ef9e" title="Notification of a session successfully logging on.">onLogon</a>( <span class="keyword">const</span> <a class="code" href="class_f_i_x_1_1_session_i_d.html" title="Unique session id consists of BeginString, SenderCompID and TargetCompID.">SessionID</a>&amp; ) {}
<a name="l00115"></a><a class="code" href="class_f_i_x_1_1_null_application.html#a23c886aae7ad3911f3f73474163f6e35">00115</a>   <span class="keywordtype">void</span> <a class="code" href="class_f_i_x_1_1_null_application.html#a23c886aae7ad3911f3f73474163f6e35" title="Notification of a session logging off or disconnecting.">onLogout</a>( <span class="keyword">const</span> <a class="code" href="class_f_i_x_1_1_session_i_d.html" title="Unique session id consists of BeginString, SenderCompID and TargetCompID.">SessionID</a>&amp; ) {}
<a name="l00116"></a><a class="code" href="class_f_i_x_1_1_null_application.html#a697aa8783ced1360d54e73da7bf6f6de">00116</a>   <span class="keywordtype">void</span> <a class="code" href="class_f_i_x_1_1_null_application.html#a697aa8783ced1360d54e73da7bf6f6de" title="Notification of admin message being sent to target.">toAdmin</a>( Message&amp;, <span class="keyword">const</span> <a class="code" href="class_f_i_x_1_1_session_i_d.html" title="Unique session id consists of BeginString, SenderCompID and TargetCompID.">SessionID</a>&amp; ) {}
<a name="l00117"></a><a class="code" href="class_f_i_x_1_1_null_application.html#a522f42dbb1615df7226c7d15094b4043">00117</a>   <span class="keywordtype">void</span> <a class="code" href="class_f_i_x_1_1_application.html#a95f1534c957d2985a18a24637a583f4b" title="Notification of app message being sent to target.">toApp</a>( Message&amp;, <span class="keyword">const</span> <a class="code" href="class_f_i_x_1_1_session_i_d.html" title="Unique session id consists of BeginString, SenderCompID and TargetCompID.">SessionID</a>&amp; )
<a name="l00118"></a>00118   throw( DoNotSend ) {}
<a name="l00119"></a><a class="code" href="class_f_i_x_1_1_null_application.html#a44bc0e49ef318e5a5de1b1bbb5b90a82">00119</a>   <span class="keywordtype">void</span> <a class="code" href="class_f_i_x_1_1_application.html#a47506b8e6673d4a6e408b7dd8be39038" title="Notification of admin message being received from target.">fromAdmin</a>( <span class="keyword">const</span> Message&amp;, <span class="keyword">const</span> <a class="code" href="class_f_i_x_1_1_session_i_d.html" title="Unique session id consists of BeginString, SenderCompID and TargetCompID.">SessionID</a>&amp; )
<a name="l00120"></a>00120   throw( FieldNotFound, IncorrectDataFormat, IncorrectTagValue, RejectLogon ) {}
<a name="l00121"></a><a class="code" href="class_f_i_x_1_1_null_application.html#a0b2f438a5d1f034e454b19b0619a611b">00121</a>   <span class="keywordtype">void</span> <a class="code" href="class_f_i_x_1_1_application.html#a35a4e75eeb0908d56c87be5f8ec7dfd9" title="Notification of app message being received from target.">fromApp</a>( <span class="keyword">const</span> Message&amp;, <span class="keyword">const</span> <a class="code" href="class_f_i_x_1_1_session_i_d.html" title="Unique session id consists of BeginString, SenderCompID and TargetCompID.">SessionID</a>&amp; )
<a name="l00122"></a>00122   throw( FieldNotFound, IncorrectDataFormat, IncorrectTagValue, UnsupportedMessageType ) {}
<a name="l00123"></a>00123 };
<a name="l00125"></a>00125 }
<a name="l00126"></a>00126 
<a name="l00127"></a>00127 <span class="preprocessor">#endif //FIX_APPLICATION_H</span>
</pre></div></div>
<hr><address><small>
Generated on Mon Apr 5 20:59:50 2010 for QuickFIX by <a href="http://www.doxygen.org/index.html">
<img src="doxygen.gif" alt="doxygen" align="middle" border=0 width=110 height=53>
</a> 1.6.1 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>,
 &copy;&nbsp;1997-2001</small></address>
</body>
</html>