interface_analysis.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /**
  2. * Tencent is pleased to support the open source community by making Tars available.
  3. *
  4. * Copyright (C) 2016THL A29 Limited, a Tencent company. All rights reserved.
  5. *
  6. * Licensed under the BSD 3-Clause License (the "License"); you may not use this file except
  7. * in compliance with the License. You may obtain a copy of the License at
  8. *
  9. * https://opensource.org/licenses/BSD-3-Clause
  10. *
  11. * Unless required by applicable law or agreed to in writing, software distributed
  12. * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
  13. * CONDITIONS OF ANY KIND, either express or implied. See the License for the
  14. * specific language governing permissions and limitations under the License.
  15. */
  16. #ifndef INTERFACE_ANALYSIS_H_
  17. #define INTERFACE_ANALYSIS_H_
  18. #include "parse.h"
  19. #include <map>
  20. #include <vector>
  21. class InterfaceAnalysis {
  22. public:
  23. InterfaceAnalysis();
  24. const std::map<std::string, StructPtr>& getAllStructs() const;
  25. const std::map<std::string, EnumPtr>& getAllEnums() const;
  26. const std::map<std::string, ConstPtr>& getAllConsts() const;
  27. void analysis(const InterfacePtr& interfacePtr);
  28. void analysis(const vector<InterfacePtr>& interfacePtrs);
  29. private:
  30. void analysis(const StructPtr& structPtr);
  31. void analysis(const TypePtr& typePtr);
  32. private:
  33. std::map<std::string, StructPtr> mAllStructs;
  34. std::map<std::string, EnumPtr> mAllEnums;
  35. std::map<std::string, ConstPtr> mAllConsts;
  36. };
  37. #endif /* INTERFACE_ANALYSIS_H_ */