Advertisement
popov-aa

Untitled

Jun 9th, 2021
651
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.18 KB | None | 0 0
  1. namespace n1 { namespace n2 {
  2.  
  3. /*----                                                                                        ----*/
  4. template<class T, class C, class I>
  5. boost::optional<const T&> getObjByName( const std::string& name,
  6.                                         const C* objCollection,
  7.                                         const I* collection,
  8.                                         const I* collectionRu )
  9. {
  10.     const T* apbObj = nullptr;
  11.  
  12.     auto getnpByName = [&]( const NameIndex* nameIndex ) {
  13.         if ( nameIndex == nullptr )
  14.             return apbObj;
  15.  
  16.         auto npnamecount = nameIndex->count( name );
  17.         if ( npnamecount > 0 ) {
  18.             auto pos = nameIndex->find( name );
  19.             apbObj   = &objCollection->at( pos->second );
  20.         }
  21.         return apbObj;
  22.     };
  23.  
  24.     std::map<TlgParser::Language, std::function<void()>> collectionFinders(
  25.       { { TlgParser::Language::EN, [&]() { getnpByName( collection ); } },
  26.         { TlgParser::Language::RU, [&]() { getnpByName( collectionRu ); } } } );
  27.  
  28.     auto lang = TlgParser::checkLanguage( name.c_str() );
  29.  
  30.     if ( collectionFinders.find( lang ) != collectionFinders.end() )
  31.         collectionFinders[lang]();
  32.  
  33.     if ( apbObj == nullptr )
  34.         return boost::none;
  35.     else
  36.         return *apbObj;
  37. }
  38.  
  39. /*----                                                                                        ----*/
  40. static const Common::AdvancedEnum<TlgParser::Language, QString> charsUp( { { "Unknown", TlgParser::Language::Unknown },
  41.                                                                            { "A-Z", TlgParser::Language::EN },
  42.                                                                            { "А-Я", TlgParser::Language::RU } } );
  43.  
  44. *dynamic_cast<A::A*>( this ) = *dynamic_cast<const A::A*>( value );
  45.  
  46. for ( auto&& state : kolektsia ) {
  47.     PDEBUGVV( m_logName ) << wrapInColor( std::string( "[ " ) + ANIPBL::aniTypes.at( state.first ) + " : "
  48.                                             + ( ( state.second ) ? " ok " : "fail" ) + std::string( " ]" ),
  49.                                           ( state.second ) ? 32 : 31 );
  50. }
  51.  
  52. bool res( nullptr != m_awNameIndex.get() && nullptr != m_awRuNameIndex.get() && nullptr != m_npNameIndex.get()
  53.           && nullptr != m_npRuNameIndex.get() && nullptr != m_firIdIndex.get() && nullptr != m_firNameIndex.get()
  54.           && nullptr != m_firRuNameIndex.get() );
  55.  
  56. if ( nameIndex == nullptr )
  57.     return apbObj;
  58.  
  59. std::map<TlgParser::Language, std::function<void()>> collectionFinders(
  60.   { { TlgParser::Language::EN, [&]() { getnpByName( collection ); } },
  61.     { TlgParser::Language::RU, [&]() { getnpByName( collectionRu ); } } } );
  62.  
  63. for ( const auto& code : airdromes->at( i ).codelat() ) {
  64.     m_adNameIndex->emplace( code, i );
  65. }
  66.  
  67. const NameIndex* ANIHandler::awNameIndex() const
  68. {
  69.     switch ( expression ) {
  70.         case 1: {
  71.             /* code */
  72.             break;
  73.         }
  74.  
  75.         case 2:
  76.             /* code */
  77.             break;
  78.  
  79.         default:
  80.             break;
  81.     }
  82.     return m_awNameIndex.get();
  83. }
  84.  
  85. std::pair<std::unique_ptr<F15Content>, std::unique_ptr<FieldState>> F15Parser::parseField15( const TelegramField& field,
  86.                                                                                              int shift )
  87. {}
  88.  
  89. Aircraft::Aircraft( const double stallSpeed_, const QString& synonym_, const QString& synonym_ru_ )
  90. {}
  91.  
  92. f( aaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa );
  93.  
  94. f( aaaaaaaaaaaaaaaaaaaa,
  95.    aaaaaaaaaaaaaaaaaaaa,
  96.    aaaaaaaaaaaaaaaaaaaa,
  97.    aaaaaaaaaaaaaaaaaaaa,
  98.    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa );
  99.  
  100. if ( telegram.telegramType == TelegramType::PLN || telegram.telegramType == TelegramType::FPL
  101.      || telegram.telegramType == TelegramType::SHR ) {}
  102.  
  103. if ( telegram.telegramType == 1 || telegram.telegramType == 2 || telegram.telegramType == 3 ) {}
  104.  
  105. template<class T>
  106. std::unique_ptr<T> to_unique( T* ptr )
  107. {
  108.     return std::unique_ptr<T>( ptr );
  109. }
  110.  
  111. (void)( std::string ( * )( const std::string&, const int ) ) wrapInColor;
  112.  
  113. #define PWARNINGVVV( loggerName ) PWARNING_IF( value ) << "[VVV] "
  114.  
  115. }} // namespace n1::n2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement