\hypertarget{transition__contract_8h_source}{}\doxysection{transition\+\_\+contract.\+h} \label{transition__contract_8h_source}\index{lib\_headers/mingl/transition/transition\_contract.h@{lib\_headers/mingl/transition/transition\_contract.h}} \mbox{\hyperlink{transition__contract_8h}{Go to the documentation of this file.}} \begin{DoxyCode}{0} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00001}00001 } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00011}00011 \textcolor{preprocessor}{\#ifndef TRANSITION\_CONTRACT\_H}} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00012}00012 \textcolor{preprocessor}{\#define TRANSITION\_CONTRACT\_H}} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00013}00013 } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00014}00014 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00015}00015 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00016}00016 } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00017}00017 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{itransitionable_8h}{itransitionable.h}}"{}}} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00018}00018 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{transition__types_8h}{transition\_types.h}}"{}}} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00019}00019 } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00020}00020 \textcolor{keyword}{namespace }\mbox{\hyperlink{namespacens_transition}{nsTransition}}} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00021}00021 \{} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00022}00022 } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00027}\mbox{\hyperlink{classns_transition_1_1_transition_contract}{00027}} \textcolor{keyword}{class }\mbox{\hyperlink{classns_transition_1_1_transition_contract}{TransitionContract}}} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00028}00028 \{} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00029}00029 \textcolor{keyword}{public}: } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00033}\mbox{\hyperlink{classns_transition_1_1_transition_contract_a40118ebf3c1a0a486934ce2b9ddc3edb}{00033}} \textcolor{keyword}{enum} \mbox{\hyperlink{classns_transition_1_1_transition_contract_a40118ebf3c1a0a486934ce2b9ddc3edb}{TransitionMode}} \{} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00034}\mbox{\hyperlink{classns_transition_1_1_transition_contract_a40118ebf3c1a0a486934ce2b9ddc3edba8e6b597d9cc193da6eb40a6be5dc544b}{00034}} \mbox{\hyperlink{classns_transition_1_1_transition_contract_a40118ebf3c1a0a486934ce2b9ddc3edba8e6b597d9cc193da6eb40a6be5dc544b}{MODE\_FINITE}}, } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00035}\mbox{\hyperlink{classns_transition_1_1_transition_contract_a40118ebf3c1a0a486934ce2b9ddc3edbada40ee822d94803e81878d415e46ef6a}{00035}} \mbox{\hyperlink{classns_transition_1_1_transition_contract_a40118ebf3c1a0a486934ce2b9ddc3edbada40ee822d94803e81878d415e46ef6a}{MODE\_FINITE\_REVERSE}}, } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00036}\mbox{\hyperlink{classns_transition_1_1_transition_contract_a40118ebf3c1a0a486934ce2b9ddc3edbaaf7f662702b3f37a41b8cfb86598f857}{00036}} \mbox{\hyperlink{classns_transition_1_1_transition_contract_a40118ebf3c1a0a486934ce2b9ddc3edbaaf7f662702b3f37a41b8cfb86598f857}{MODE\_LOOP}}, } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00037}\mbox{\hyperlink{classns_transition_1_1_transition_contract_a40118ebf3c1a0a486934ce2b9ddc3edba5aa6e1fbf9670aa9ecd96beff2ba6abb}{00037}} \mbox{\hyperlink{classns_transition_1_1_transition_contract_a40118ebf3c1a0a486934ce2b9ddc3edba5aa6e1fbf9670aa9ecd96beff2ba6abb}{MODE\_LOOP\_SMOOTH}}, } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00038}00038 \};} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00039}00039 } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00053}\mbox{\hyperlink{classns_transition_1_1_transition_contract_a8ec4ef83c08901c9b93cec5eb0bfd06b}{00053}} \mbox{\hyperlink{classns_transition_1_1_transition_contract_a8ec4ef83c08901c9b93cec5eb0bfd06b}{TransitionContract}}(\mbox{\hyperlink{classns_transition_1_1_i_transitionable}{ITransitionable}}\& target, \textcolor{keyword}{const} \textcolor{keywordtype}{int}\& \textcolor{keywordtype}{id},} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00054}00054 \textcolor{keyword}{const} \mbox{\hyperlink{namespacens_transition_a260258f249f46ff9a62da721537f87af}{SystemDuration\_t}}\& duration, \textcolor{keyword}{const} std::vector\& destination,} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00055}00055 \textcolor{keyword}{const} \mbox{\hyperlink{namespacens_transition_a260258f249f46ff9a62da721537f87af}{SystemDuration\_t}}\& delay = std::chrono::seconds::zero(),} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00056}00056 \textcolor{keyword}{const} \mbox{\hyperlink{classns_transition_1_1_transition_contract_a40118ebf3c1a0a486934ce2b9ddc3edb}{TransitionMode}}\& transitionMode = TransitionMode::MODE\_FINITE);} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00057}00057 } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00063}\mbox{\hyperlink{classns_transition_1_1_transition_contract_a34a594d05171628bca81120c768c86b9}{00063}} \textcolor{keyword}{const} \textcolor{keywordtype}{int}\& \mbox{\hyperlink{classns_transition_1_1_transition_contract_a34a594d05171628bca81120c768c86b9}{getId}}() \textcolor{keyword}{const};} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00064}00064 } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00070}\mbox{\hyperlink{classns_transition_1_1_transition_contract_a464b06c739e50a374c4d11509cf6e5ee}{00070}} \textcolor{keyword}{const} \mbox{\hyperlink{classns_transition_1_1_i_transitionable}{ITransitionable}}\& \mbox{\hyperlink{classns_transition_1_1_transition_contract_a464b06c739e50a374c4d11509cf6e5ee}{getTarget}}() \textcolor{keyword}{const};} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00071}00071 } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00077}\mbox{\hyperlink{classns_transition_1_1_transition_contract_ad5d6524d7e2eeddf9f06204b8245c484}{00077}} \textcolor{keyword}{const} \mbox{\hyperlink{classns_transition_1_1_transition_contract_a40118ebf3c1a0a486934ce2b9ddc3edb}{TransitionMode}}\& \mbox{\hyperlink{classns_transition_1_1_transition_contract_ad5d6524d7e2eeddf9f06204b8245c484}{getTransitionMode}}() \textcolor{keyword}{const};} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00078}00078 } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00084}\mbox{\hyperlink{classns_transition_1_1_transition_contract_a8dc505c54df5d1f09a482a1b56676cd4}{00084}} \textcolor{keyword}{const} std::vector\& \mbox{\hyperlink{classns_transition_1_1_transition_contract_a8dc505c54df5d1f09a482a1b56676cd4}{getBeginning}}() \textcolor{keyword}{const};} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00085}00085 } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00091}\mbox{\hyperlink{classns_transition_1_1_transition_contract_ae4ce420a4376e1d372efb3fd046410df}{00091}} \textcolor{keyword}{const} std::vector\& \mbox{\hyperlink{classns_transition_1_1_transition_contract_ae4ce420a4376e1d372efb3fd046410df}{getDestination}}() \textcolor{keyword}{const};} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00092}00092 } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00098}\mbox{\hyperlink{classns_transition_1_1_transition_contract_a9b900986c8f271729f99c88fa1b0a5e1}{00098}} \textcolor{keyword}{const} \mbox{\hyperlink{namespacens_transition_a260258f249f46ff9a62da721537f87af}{SystemDuration\_t}}\& \mbox{\hyperlink{classns_transition_1_1_transition_contract_a9b900986c8f271729f99c88fa1b0a5e1}{getDuration}}() \textcolor{keyword}{const};} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00099}00099 } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00105}\mbox{\hyperlink{classns_transition_1_1_transition_contract_a8f1ebafd9966553678fd7845f35bac33}{00105}} \textcolor{keywordtype}{void} \mbox{\hyperlink{classns_transition_1_1_transition_contract_a8f1ebafd9966553678fd7845f35bac33}{setDestinationCallback}}(\textcolor{keyword}{const} std::function<\textcolor{keywordtype}{void}()>\& callback);} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00106}00106 } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00107}00107 \textcolor{keyword}{protected}:} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00114}\mbox{\hyperlink{classns_transition_1_1_transition_contract_a48e1b58bc26cb8b6167fb6b76911c941}{00114}} \textcolor{keyword}{const} \textcolor{keywordtype}{int} \mbox{\hyperlink{classns_transition_1_1_transition_contract_a48e1b58bc26cb8b6167fb6b76911c941}{m\_id}};} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00115}00115 } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00121}\mbox{\hyperlink{classns_transition_1_1_transition_contract_a1066c3c1526a519276b75a4f4c5206b2}{00121}} \mbox{\hyperlink{classns_transition_1_1_i_transitionable}{ITransitionable}}\& \mbox{\hyperlink{classns_transition_1_1_transition_contract_a1066c3c1526a519276b75a4f4c5206b2}{m\_target}};} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00122}00122 } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00128}\mbox{\hyperlink{classns_transition_1_1_transition_contract_a9634edf746d8605e78ae30f7a0e6efd3}{00128}} \textcolor{keyword}{const} \mbox{\hyperlink{classns_transition_1_1_transition_contract_a40118ebf3c1a0a486934ce2b9ddc3edb}{TransitionMode}} \mbox{\hyperlink{classns_transition_1_1_transition_contract_a9634edf746d8605e78ae30f7a0e6efd3}{m\_transitionMode}};} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00129}00129 } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00133}\mbox{\hyperlink{classns_transition_1_1_transition_contract_a5f804f0f4cc00d48e139ff93c5469954}{00133}} std::vector \mbox{\hyperlink{classns_transition_1_1_transition_contract_a5f804f0f4cc00d48e139ff93c5469954}{m\_beginning}};} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00134}00134 } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00138}\mbox{\hyperlink{classns_transition_1_1_transition_contract_adc660e53bde2e552bb4148ac7abc4e42}{00138}} \textcolor{keyword}{const} std::vector \mbox{\hyperlink{classns_transition_1_1_transition_contract_adc660e53bde2e552bb4148ac7abc4e42}{m\_destination}};} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00139}00139 } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00143}\mbox{\hyperlink{classns_transition_1_1_transition_contract_a0c8ac97863022965d6ac0539d972c325}{00143}} \mbox{\hyperlink{namespacens_transition_a260258f249f46ff9a62da721537f87af}{SystemDuration\_t}} \mbox{\hyperlink{classns_transition_1_1_transition_contract_a0c8ac97863022965d6ac0539d972c325}{m\_duration}};} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00144}00144 } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00148}\mbox{\hyperlink{classns_transition_1_1_transition_contract_a5c317b573104f3d3c9caafbc3014ac16}{00148}} \mbox{\hyperlink{namespacens_transition_a260258f249f46ff9a62da721537f87af}{SystemDuration\_t}} \mbox{\hyperlink{classns_transition_1_1_transition_contract_a5c317b573104f3d3c9caafbc3014ac16}{m\_delay}};} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00149}00149 } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00153}\mbox{\hyperlink{classns_transition_1_1_transition_contract_ac95072df084f1edbd63479c68228b9d6}{00153}} std::function \mbox{\hyperlink{classns_transition_1_1_transition_contract_ac95072df084f1edbd63479c68228b9d6}{m\_destinationCallback}};} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00154}00154 \}; \textcolor{comment}{// class TransitionContract}} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00155}00155 } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00156}00156 \} \textcolor{comment}{// namespace nsTransition}} \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00157}00157 } \DoxyCodeLine{\Hypertarget{transition__contract_8h_source_l00158}00158 \textcolor{preprocessor}{\#endif }\textcolor{comment}{// TRANSITION\_CONTRACT\_H}} \end{DoxyCode}