RegistrationInstructions.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #ifndef FIX44_REGISTRATIONINSTRUCTIONS_H
  2. #define FIX44_REGISTRATIONINSTRUCTIONS_H
  3. #include "Message.h"
  4. namespace FIX44
  5. {
  6. class RegistrationInstructions : public Message
  7. {
  8. public:
  9. RegistrationInstructions() : Message(MsgType()) {}
  10. RegistrationInstructions(const FIX::Message& m) : Message(m) {}
  11. RegistrationInstructions(const Message& m) : Message(m) {}
  12. RegistrationInstructions(const RegistrationInstructions& m) : Message(m) {}
  13. static FIX::MsgType MsgType() { return FIX::MsgType("o"); }
  14. RegistrationInstructions(
  15. const FIX::RegistID& aRegistID,
  16. const FIX::RegistTransType& aRegistTransType,
  17. const FIX::RegistRefID& aRegistRefID )
  18. : Message(MsgType())
  19. {
  20. set(aRegistID);
  21. set(aRegistTransType);
  22. set(aRegistRefID);
  23. }
  24. FIELD_SET(*this, FIX::RegistID);
  25. FIELD_SET(*this, FIX::RegistTransType);
  26. FIELD_SET(*this, FIX::RegistRefID);
  27. FIELD_SET(*this, FIX::ClOrdID);
  28. FIELD_SET(*this, FIX::NoPartyIDs);
  29. class NoPartyIDs: public FIX::Group
  30. {
  31. public:
  32. NoPartyIDs() : FIX::Group(453,448,FIX::message_order(448,447,452,802,0)) {}
  33. FIELD_SET(*this, FIX::PartyID);
  34. FIELD_SET(*this, FIX::PartyIDSource);
  35. FIELD_SET(*this, FIX::PartyRole);
  36. FIELD_SET(*this, FIX::NoPartySubIDs);
  37. class NoPartySubIDs: public FIX::Group
  38. {
  39. public:
  40. NoPartySubIDs() : FIX::Group(802,523,FIX::message_order(523,803,0)) {}
  41. FIELD_SET(*this, FIX::PartySubID);
  42. FIELD_SET(*this, FIX::PartySubIDType);
  43. };
  44. };
  45. FIELD_SET(*this, FIX::Account);
  46. FIELD_SET(*this, FIX::AcctIDSource);
  47. FIELD_SET(*this, FIX::RegistAcctType);
  48. FIELD_SET(*this, FIX::TaxAdvantageType);
  49. FIELD_SET(*this, FIX::OwnershipType);
  50. FIELD_SET(*this, FIX::NoRegistDtls);
  51. class NoRegistDtls: public FIX::Group
  52. {
  53. public:
  54. NoRegistDtls() : FIX::Group(473,509,FIX::message_order(509,511,474,482,539,522,486,475,0)) {}
  55. FIELD_SET(*this, FIX::RegistDtls);
  56. FIELD_SET(*this, FIX::RegistEmail);
  57. FIELD_SET(*this, FIX::MailingDtls);
  58. FIELD_SET(*this, FIX::MailingInst);
  59. FIELD_SET(*this, FIX::NoNestedPartyIDs);
  60. class NoNestedPartyIDs: public FIX::Group
  61. {
  62. public:
  63. NoNestedPartyIDs() : FIX::Group(539,524,FIX::message_order(524,525,538,804,0)) {}
  64. FIELD_SET(*this, FIX::NestedPartyID);
  65. FIELD_SET(*this, FIX::NestedPartyIDSource);
  66. FIELD_SET(*this, FIX::NestedPartyRole);
  67. FIELD_SET(*this, FIX::NoNestedPartySubIDs);
  68. class NoNestedPartySubIDs: public FIX::Group
  69. {
  70. public:
  71. NoNestedPartySubIDs() : FIX::Group(804,545,FIX::message_order(545,805,0)) {}
  72. FIELD_SET(*this, FIX::NestedPartySubID);
  73. FIELD_SET(*this, FIX::NestedPartySubIDType);
  74. };
  75. };
  76. FIELD_SET(*this, FIX::OwnerType);
  77. FIELD_SET(*this, FIX::DateOfBirth);
  78. FIELD_SET(*this, FIX::InvestorCountryOfResidence);
  79. };
  80. FIELD_SET(*this, FIX::NoDistribInsts);
  81. class NoDistribInsts: public FIX::Group
  82. {
  83. public:
  84. NoDistribInsts() : FIX::Group(510,477,FIX::message_order(477,512,478,498,499,500,501,502,0)) {}
  85. FIELD_SET(*this, FIX::DistribPaymentMethod);
  86. FIELD_SET(*this, FIX::DistribPercentage);
  87. FIELD_SET(*this, FIX::CashDistribCurr);
  88. FIELD_SET(*this, FIX::CashDistribAgentName);
  89. FIELD_SET(*this, FIX::CashDistribAgentCode);
  90. FIELD_SET(*this, FIX::CashDistribAgentAcctNumber);
  91. FIELD_SET(*this, FIX::CashDistribPayRef);
  92. FIELD_SET(*this, FIX::CashDistribAgentAcctName);
  93. };
  94. };
  95. }
  96. #endif