// // Author: Fong Qi // FILE: GSXInterFace.idl // DESCRIPTION: This idl file is for GSX in memory interface. #ifndef __GSXINTERFACE_IDL__ #define __GSXINTERFACE_IDL__ module GSXIDL { enum ResultStatus {OK_STATUS, NOT_FOUND_STATUS, NOT_IN_SERVICE_STATUS}; /* ** instrument table ** search key is INSTRUMENT ID ** if column is defined as null, that column will be define here as string */ struct GsxIssue { long cValorInt; long cIssuerInt; long cStatusInt; string cShortDescString; string cDescPrefixString; string cDescSuffixString; string cCurrencyString; string cSharesString; string cSecTypeString; string cDebtTypeString; string cDebtCategoryString; string cRateString; string cDatedDateString; string cMatDateString; string cPrimaryMarketString; }; /* ** EMD project used */ struct GsxFullIssue { long cValorInt; long cIssuerInt; long cStatusInt; string cShortDescString; string cDescPrefixString; string cDescSuffixString; string cCurrencyString; string cSharesString; string cSecTypeString; string cDebtTypeString; string cDebtCategoryString; string cRateString; string cDatedDateString; string cMatDateString; string cPrimaryMarketString; string cRateTypeString; string cPaymentFrequencyString; string cPaymentFrequencyUnitString; }; /* ** institution table ** search key is INSTITUTION ID */ struct GsxIssuer { long cIssuerInt; string cShortNameString; string cNameString; string cLocationString; string cCountryString; short cSectorShort; short cLegalFormShort; string cBusiYearEndString; }; /* ** instrument rating ** search key are INSTRUMENT ID and SCHEME 271|S&PLONG */ struct GsxIssueRating { long cValorInt; string cSchemeString; string cRatingString; string cRatingDateString; }; /* ** provide a valor to get instrument data return with struct GsxIssue */ interface GsxIssueInterface { ResultStatus getIssue(in long aValorInt, out GsxIssue aGsxIssue); ResultStatus getFullIssue(in long aValorInt, out GsxFullIssue aGsxFullIssue); void shutdown(); }; interface GsxIssueRatingInterface { /* ** provide a valor and rating scheme to get one current rating */ ResultStatus getIssueRating(in long aValorInt, in string aSchemeString, out GsxIssueRating aGsxIssueRating); /* ** provide a valor and number of rating schemes to get current one rating. ** The number of schemes are separated by comma delimit. */ ResultStatus getCurrentIssueRating(in long aValorInt, in string aNSchemeString, out GsxIssueRating aGsxIssueRating); void shutdown(); }; interface GsxIssuerInterface { ResultStatus getIssuer(in long aIssuerInt, out GsxIssuer aGsxIssuer); void shutdown(); }; interface GsxNsinInterface { // get Nsin based on valor and nsin scheme ResultStatus getNsin4Valor(in long aValorInt, in string aSchemeString, out string aNsinString); // get valor based on nsin and nsin scheme ResultStatus getValor4Nsin(in string aNsinString,in string aSchemeString, out long aValorLong ); // search one sedol by using valor and market id, return one sedol ResultStatus getSedol4Valor(in long aValorInt, in long aMarketInt, out string aSedolString ); // search mutilple sedols by using valor return sedols string with | as delimited ResultStatus getNSedol4Valor(in long aValorInt, out string aNSedolString); // search primary sedol by using valor and same market with sedol ResultStatus getPrimarySedol4Valor(in long aValorInt, in string aInSedolString, out string aOtSedolString); // search a sedol by using valor and market;if there is no a sedol for this market and find it from other market ResultStatus getASedol4Valor(in long aValorInt, in long aMarketInt, out string aOtSedolString); void shutdown(); }; }; #endif