Query_Related_.hpp
上传用户:yhdzpy8989
上传日期:2007-06-13
资源大小:13604k
文件大小:10k
源码类别:

生物技术

开发平台:

C/C++

  1. /*
  2.  * ===========================================================================
  3.  * PRODUCTION $Log: Query_Related_.hpp,v $
  4.  * PRODUCTION Revision 1000.1  2004/04/12 17:20:20  gouriano
  5.  * PRODUCTION PRODUCTION: UPGRADED [CATCHUP_003] Dev-tree R1.5
  6.  * PRODUCTION
  7.  * ===========================================================================
  8.  */
  9. /* $Id: Query_Related_.hpp,v 1000.1 2004/04/12 17:20:20 gouriano Exp $
  10.  * ===========================================================================
  11.  *
  12.  *                            PUBLIC DOMAIN NOTICE
  13.  *               National Center for Biotechnology Information
  14.  *
  15.  *  This software/database is a "United States Government Work" under the
  16.  *  terms of the United States Copyright Act.  It was written as part of
  17.  *  the author's official duties as a United States Government employee and
  18.  *  thus cannot be copyrighted.  This software/database is freely available
  19.  *  to the public for use. The National Library of Medicine and the U.S.
  20.  *  Government have not placed any restriction on its use or reproduction.
  21.  *
  22.  *  Although all reasonable efforts have been taken to ensure the accuracy
  23.  *  and reliability of the software and data, the NLM and the U.S.
  24.  *  Government do not and cannot warrant the performance or results that
  25.  *  may be obtained by using this software or data. The NLM and the U.S.
  26.  *  Government disclaim all warranties, express or implied, including
  27.  *  warranties of performance, merchantability or fitness for any particular
  28.  *  purpose.
  29.  *
  30.  *  Please cite the author in any work or product based on this material.
  31.  *
  32.  * ===========================================================================
  33.  *
  34.  * File Description:
  35.  *   This code is generated by application DATATOOL
  36.  *   using specifications from the data definition file
  37.  *   'twebenv.asn'.
  38.  *
  39.  * ATTENTION:
  40.  *   Don't edit or check-in this file to the CVS as this file will
  41.  *   be overridden (by DATATOOL) without warning!
  42.  * ===========================================================================
  43.  */
  44. #ifndef QUERY_RELATED_BASE_HPP
  45. #define QUERY_RELATED_BASE_HPP
  46. // standard includes
  47. #include <serial/serialbase.hpp>
  48. // generated includes
  49. #include <string>
  50. // forward declarations
  51. class CItem_Set;
  52. class CQuery_Command;
  53. // generated classes
  54. class CQuery_Related_Base : public ncbi::CSerialObject
  55. {
  56.     typedef ncbi::CSerialObject Tparent;
  57. public:
  58.     // constructor
  59.     CQuery_Related_Base(void);
  60.     // destructor
  61.     virtual ~CQuery_Related_Base(void);
  62.     // type info
  63.     DECLARE_INTERNAL_TYPE_INFO();
  64.     class C_Items : public ncbi::CSerialObject
  65.     {
  66.         typedef ncbi::CSerialObject Tparent;
  67.     public:
  68.         // constructor
  69.         C_Items(void);
  70.         // destructor
  71.         ~C_Items(void);
  72.     
  73.         // type info
  74.         DECLARE_INTERNAL_TYPE_INFO();
  75.     
  76.         // choice state enum
  77.         enum E_Choice {
  78.             e_not_set = 0,
  79.             e_Items,
  80.             e_ItemCount
  81.         };
  82.         enum E_ChoiceStopper {
  83.             e_MaxChoice = 3 // == ItemCount+1
  84.         };
  85.     
  86.         // reset selection to none
  87.         void Reset(void);
  88.     
  89.         // choice state
  90.         E_Choice Which(void) const;
  91.         // throw exception if current selection is not as requested
  92.         void CheckSelected(E_Choice index) const;
  93.         // throw exception about wrong selection
  94.         void ThrowInvalidSelection(E_Choice index) const;
  95.         // return selection name (for diagnostic purposes)
  96.         static std::string SelectionName(E_Choice index);
  97.     
  98.         // select requested variant if needed
  99.         void Select(E_Choice index, ncbi::EResetVariant reset = ncbi::eDoResetVariant);
  100.     
  101.         // types
  102.         typedef CItem_Set TItems;
  103.         typedef int TItemCount;
  104.     
  105.         // getters
  106.         // setters
  107.     
  108.         // typedef CItem_Set TItems
  109.         bool IsItems(void) const;
  110.         const TItems& GetItems(void) const;
  111.         TItems& SetItems(void);
  112.         void SetItems(TItems& value);
  113.     
  114.         // typedef int TItemCount
  115.         bool IsItemCount(void) const;
  116.         TItemCount GetItemCount(void) const;
  117.         TItemCount& SetItemCount(void);
  118.         void SetItemCount(const TItemCount& value);
  119.     
  120.     
  121.     private:
  122.         // copy constructor and assignment operator
  123.         C_Items(const C_Items& );
  124.         C_Items& operator=(const C_Items& );
  125.     
  126.         // choice state
  127.         E_Choice m_choice;
  128.         // helper methods
  129.         void DoSelect(E_Choice index);
  130.     
  131.         static const char* const sm_SelectionNames[];
  132.         // data
  133.         union {
  134.             TItemCount m_ItemCount;
  135.             NCBI_NS_NCBI::CSerialObject *m_object;
  136.         };
  137.     };
  138.     // types
  139.     typedef CQuery_Command TBase;
  140.     typedef std::string TRelation;
  141.     typedef std::string TDb;
  142.     typedef C_Items TItems;
  143.     // getters
  144.     // setters
  145.     // mandatory
  146.     // typedef CQuery_Command TBase
  147.     bool IsSetBase(void) const;
  148.     bool CanGetBase(void) const;
  149.     void ResetBase(void);
  150.     const TBase& GetBase(void) const;
  151.     void SetBase(TBase& value);
  152.     TBase& SetBase(void);
  153.     // mandatory
  154.     // typedef std::string TRelation
  155.     bool IsSetRelation(void) const;
  156.     bool CanGetRelation(void) const;
  157.     void ResetRelation(void);
  158.     const TRelation& GetRelation(void) const;
  159.     void SetRelation(const TRelation& value);
  160.     TRelation& SetRelation(void);
  161.     // mandatory
  162.     // typedef std::string TDb
  163.     bool IsSetDb(void) const;
  164.     bool CanGetDb(void) const;
  165.     void ResetDb(void);
  166.     const TDb& GetDb(void) const;
  167.     void SetDb(const TDb& value);
  168.     TDb& SetDb(void);
  169.     // mandatory
  170.     // typedef C_Items TItems
  171.     bool IsSetItems(void) const;
  172.     bool CanGetItems(void) const;
  173.     void ResetItems(void);
  174.     const TItems& GetItems(void) const;
  175.     void SetItems(TItems& value);
  176.     TItems& SetItems(void);
  177.     // reset whole object
  178.     virtual void Reset(void);
  179. private:
  180.     // Prohibit copy constructor and assignment operator
  181.     CQuery_Related_Base(const CQuery_Related_Base&);
  182.     CQuery_Related_Base& operator=(const CQuery_Related_Base&);
  183.     // data
  184.     Uint4 m_set_State[1];
  185.     ncbi::CRef< TBase > m_Base;
  186.     TRelation m_Relation;
  187.     TDb m_Db;
  188.     ncbi::CRef< TItems > m_Items;
  189. };
  190. ///////////////////////////////////////////////////////////
  191. ///////////////////// inline methods //////////////////////
  192. ///////////////////////////////////////////////////////////
  193. inline
  194. CQuery_Related_Base::C_Items::E_Choice CQuery_Related_Base::C_Items::Which(void) const
  195. {
  196.     return m_choice;
  197. }
  198. inline
  199. void CQuery_Related_Base::C_Items::CheckSelected(E_Choice index) const
  200. {
  201.     if ( m_choice != index )
  202.         ThrowInvalidSelection(index);
  203. }
  204. inline
  205. void CQuery_Related_Base::C_Items::Select(E_Choice index, NCBI_NS_NCBI::EResetVariant reset)
  206. {
  207.     if ( reset == NCBI_NS_NCBI::eDoResetVariant || m_choice != index ) {
  208.         if ( m_choice != e_not_set )
  209.             Reset();
  210.         DoSelect(index);
  211.     }
  212. }
  213. inline
  214. bool CQuery_Related_Base::C_Items::IsItems(void) const
  215. {
  216.     return m_choice == e_Items;
  217. }
  218. inline
  219. bool CQuery_Related_Base::C_Items::IsItemCount(void) const
  220. {
  221.     return m_choice == e_ItemCount;
  222. }
  223. inline
  224. int CQuery_Related_Base::C_Items::GetItemCount(void) const
  225. {
  226.     CheckSelected(e_ItemCount);
  227.     return m_ItemCount;
  228. }
  229. inline
  230. int& CQuery_Related_Base::C_Items::SetItemCount(void)
  231. {
  232.     Select(e_ItemCount, NCBI_NS_NCBI::eDoNotResetVariant);
  233.     return m_ItemCount;
  234. }
  235. inline
  236. void CQuery_Related_Base::C_Items::SetItemCount(const int& value)
  237. {
  238.     Select(e_ItemCount, NCBI_NS_NCBI::eDoNotResetVariant);
  239.     m_ItemCount = value;
  240. }
  241. inline
  242. bool CQuery_Related_Base::IsSetBase(void) const
  243. {
  244.     return m_Base;
  245. }
  246. inline
  247. bool CQuery_Related_Base::CanGetBase(void) const
  248. {
  249.     return IsSetBase();
  250. }
  251. inline
  252. const CQuery_Command& CQuery_Related_Base::GetBase(void) const
  253. {
  254.     if (!CanGetBase()) {
  255.         ThrowUnassigned(0);
  256.     }
  257.     return (*m_Base);
  258. }
  259. inline
  260. CQuery_Command& CQuery_Related_Base::SetBase(void)
  261. {
  262.     return (*m_Base);
  263. }
  264. inline
  265. bool CQuery_Related_Base::IsSetRelation(void) const
  266. {
  267.     return ((m_set_State[0] & 0xc) != 0);
  268. }
  269. inline
  270. bool CQuery_Related_Base::CanGetRelation(void) const
  271. {
  272.     return IsSetRelation();
  273. }
  274. inline
  275. const std::string& CQuery_Related_Base::GetRelation(void) const
  276. {
  277.     if (!CanGetRelation()) {
  278.         ThrowUnassigned(1);
  279.     }
  280.     return m_Relation;
  281. }
  282. inline
  283. void CQuery_Related_Base::SetRelation(const std::string& value)
  284. {
  285.     m_Relation = value;
  286.     m_set_State[0] |= 0xc;
  287. }
  288. inline
  289. std::string& CQuery_Related_Base::SetRelation(void)
  290. {
  291. #ifdef _DEBUG
  292.     if (!IsSetRelation()) {
  293.         m_Relation = ms_UnassignedStr;
  294.     }
  295. #endif
  296.     m_set_State[0] |= 0x4;
  297.     return m_Relation;
  298. }
  299. inline
  300. bool CQuery_Related_Base::IsSetDb(void) const
  301. {
  302.     return ((m_set_State[0] & 0x30) != 0);
  303. }
  304. inline
  305. bool CQuery_Related_Base::CanGetDb(void) const
  306. {
  307.     return IsSetDb();
  308. }
  309. inline
  310. const std::string& CQuery_Related_Base::GetDb(void) const
  311. {
  312.     if (!CanGetDb()) {
  313.         ThrowUnassigned(2);
  314.     }
  315.     return m_Db;
  316. }
  317. inline
  318. void CQuery_Related_Base::SetDb(const std::string& value)
  319. {
  320.     m_Db = value;
  321.     m_set_State[0] |= 0x30;
  322. }
  323. inline
  324. std::string& CQuery_Related_Base::SetDb(void)
  325. {
  326. #ifdef _DEBUG
  327.     if (!IsSetDb()) {
  328.         m_Db = ms_UnassignedStr;
  329.     }
  330. #endif
  331.     m_set_State[0] |= 0x10;
  332.     return m_Db;
  333. }
  334. inline
  335. bool CQuery_Related_Base::IsSetItems(void) const
  336. {
  337.     return m_Items;
  338. }
  339. inline
  340. bool CQuery_Related_Base::CanGetItems(void) const
  341. {
  342.     return IsSetItems();
  343. }
  344. inline
  345. const CQuery_Related_Base::C_Items& CQuery_Related_Base::GetItems(void) const
  346. {
  347.     if (!CanGetItems()) {
  348.         ThrowUnassigned(3);
  349.     }
  350.     return (*m_Items);
  351. }
  352. inline
  353. CQuery_Related_Base::C_Items& CQuery_Related_Base::SetItems(void)
  354. {
  355.     return (*m_Items);
  356. }
  357. ///////////////////////////////////////////////////////////
  358. ////////////////// end of inline methods //////////////////
  359. ///////////////////////////////////////////////////////////
  360. #endif // QUERY_RELATED_BASE_HPP