मैं libev में गुजरने वाले तर्क की स्थिति में फंस गया हूं।लिबेव, प्रासंगिक कॉलबैक के लिए तर्क कैसे पास करें
आमतौर पर, libev संकुल एक समारोह में की तरह * receive_callback * प्राप्त करता है, तो कोई बात नहीं, लेकिन व्यवहार में, हम प्रेषण करने के लिए एक रिश्तेदार * write_callback * प्राप्त पैकेज के अनुसार विशिष्ट नौकरियों से निपटने के लिए की जरूरत है। उदाहरण के लिए:
S_RECV_MSG* pstRecvMsg = (S_RECV_MSG*) recv_buff;
switch(pstRecvMsg->wMsgType) {
case 1:
ev_io_init(w, write_callback1, w->fd, EV_WRITE);
break;
case 2:
ev_io_init(w, write_callback2, w->fd, EV_WRITE);
break;
case 3:
// .......
}
मेरा प्रश्न है, अगर write_callbackX
भी recv_buff में विशिष्ट सामग्री को पढ़ने के लिए है, हम कैसे callbackX को recv_buff तर्क पारित कर सकते हैं? क्या हमें वैश्विक चर के बोझ और कुरूपता को सहन करना चाहिए?
यह सही जवाब है, यदि आप चाहते हैं कि आप इसे वास्तविक उत्तर के रूप में लिख सकें और इसे स्वीकार कर सकें, तो अन्य लोगों के लिए जानकारी ढूंढना आसान हो जाता है। – dnaq
कम से कम आप वापस गए और उत्तर के लिए चारों ओर इंतजार करने के बजाय शोध रखा ... :) खुशी है कि आपने इसे हल किया है। –
मैं – Shahbaz