Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

user 側で実装すべき関数の宣言のかかれたヘッダーを user が持つのではなく, core から提供したい #553

Open
meltingrabbit opened this issue Apr 20, 2023 · 6 comments
Labels

Comments

@meltingrabbit
Copy link
Collaborator

概要

user 側で実装すべき関数の宣言のかかれたヘッダーを user が持つのではなく, core から提供したい

詳細

例えば,

は,core から呼び出される関数で,すべての user が実装している.
こういうものは

  • src/src_user/TlmCmd/user_packet_handler.c
  • src/src_user/TlmCmd/user_packet_handler.h

と,宣言と定義が .h, .c に分かれて,同じフォルダ(=ともに user)に存在している.

ヘッダーは core でもちたい?

close条件

方針決めて実装したら

@meltingrabbit
Copy link
Collaborator Author

@sksat これ,core に移動するとして,core のどのディレクトリに配置するのがいいんだろうか?

上の例だと, src/src_core/TlmCmd/user_packet_handler.h とか?
それとも,こういうたぐい,全部まとめて src/src_core/include/TlmCmd/user_packet_handler.h みたいな感じにする?

@sksat
Copy link
Collaborator

sksat commented Apr 20, 2023

include みたいなディレクトリは c2a-core にあるすべてのヘッダをそこに移すのでなければ混乱しか生まないのでやめた方がいい

@sksat
Copy link
Collaborator

sksat commented Apr 20, 2023

これこそ真に並列してる概念なんだから並列してる c2a-core のディレクトリにいればよくない?(つまり,src_core/TlmCmd/ 以下でよくない?)
あんまり何をどう悩んでるかがわかってないかも.

@meltingrabbit
Copy link
Collaborator Author

なんか,userが実装すべき関数一覧,ぱっとわからないけど,いいのかな,って.

@sksat
Copy link
Collaborator

sksat commented Apr 20, 2023

そもそも "c2a-core" というのはライブラリの単位としては一切正しくなくて,ライブラリとして扱うべきは src_core/TlmCmd とかの単位(実運用上そういかないとしても,そのように扱い設計すべき)なので,その中で明らかになっていればよいと思う(そのため,将来的に src_core/TlmCmd/include が生える,とかはナシではないかな).
src_core/include みたいなのは "c2a-core" という単位でのリリースをバラしにくくする割には得られるうまみがそこまでないと思う.

@sksat
Copy link
Collaborator

sksat commented Apr 20, 2023

user が実装すべき関数一覧はなんも実装せずに executable build したらリンクエラーで得られるみたいな雑な見方もあるし,なんらかの明示的な指定をするとしても documentation comment とかでよいのではないか(現状の Doxygen でもなんか共通したコメント足すぐらいで一覧は得られるのでは?)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants