{"action":"created","issue":{"url":"https://api.github.com/repos/chrsmith/bwapi/issues/142","labels_url":"https://api.github.com/repos/chrsmith/bwapi/issues/142/labels{/name}","comments_url":"https://api.github.com/repos/chrsmith/bwapi/issues/142/comments","events_url":"https://api.github.com/repos/chrsmith/bwapi/issues/142/events","html_url":"https://github.com/chrsmith/bwapi/issues/142","id":58653900,"number":142,"title":"interfaces and portability","user":{"login":"GoogleCodeExporter","id":9614759,"avatar_url":"https://avatars.githubusercontent.com/u/9614759?v=3","gravatar_id":"","url":"https://api.github.com/users/GoogleCodeExporter","html_url":"https://github.com/GoogleCodeExporter","followers_url":"https://api.github.com/users/GoogleCodeExporter/followers","following_url":"https://api.github.com/users/GoogleCodeExporter/following{/other_user}","gists_url":"https://api.github.com/users/GoogleCodeExporter/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleCodeExporter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleCodeExporter/subscriptions","organizations_url":"https://api.github.com/users/GoogleCodeExporter/orgs","repos_url":"https://api.github.com/users/GoogleCodeExporter/repos","events_url":"https://api.github.com/users/GoogleCodeExporter/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleCodeExporter/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/chrsmith/bwapi/labels/auto-migrated","name":"auto-migrated","color":"ededed"},{"url":"https://api.github.com/repos/chrsmith/bwapi/labels/Usability","name":"Usability","color":"ededed"}],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":11,"created_at":"2015-02-23T21:44:31Z","updated_at":"2015-02-23T21:44:34Z","closed_at":"2015-02-23T21:44:31Z","body":"```\nforked issue 134, collecting facts:\n\n1.\nfact:\ncurrent interface is the \"abstract interface\". Read more under \"C++ Mature \nApproach: Using an Abstract Interface\" at \nhttp://www.codeproject.com/KB/cpp/howto_export_cpp_classes.aspx . This \ninterface is only portable between C++ compilers. More on that under \"Why \nThis Works With Other Compilers\". \n\nplan:\nremove the abstract interface and let agents compile the receiver code. \nThis option became available since the bridge from issue 134.\nNote: \"receiver\" is coined as \"agent-side wrapper classes around bridge's \nprotocoll\"\n\n2.\nfact:\nMany nonC++ classes beg to use BWAPI. This feature is best implemented on \nthe agent's side. Since the bridge, the are no drawbacks this way.\n\nsuggestion:\nigalvelis has a promising project using swig to port the C++ receiver into \nany target language. Technically this is a better way than using sockets. \nI suggest making a wiki acticle for nonC++ users about portability and \nlink to igalvelis's project page, where they hopefully, soon will be able \nto download an adapter library for their target language.\nOr we could make igalvelis's project part of BWAPIs and publish the \nadapter libraries with our releases.\n```\n\n-----\nOriginal issue reported on code.google.com by `goo...@teabix.com` on 28 Nov 2009 at 12:58"},"comment":{"url":"https://api.github.com/repos/chrsmith/bwapi/issues/comments/75641963","html_url":"https://github.com/chrsmith/bwapi/issues/142#issuecomment-75641963","issue_url":"https://api.github.com/repos/chrsmith/bwapi/issues/142","id":75641963,"user":{"login":"GoogleCodeExporter","id":9614759,"avatar_url":"https://avatars.githubusercontent.com/u/9614759?v=3","gravatar_id":"","url":"https://api.github.com/users/GoogleCodeExporter","html_url":"https://github.com/GoogleCodeExporter","followers_url":"https://api.github.com/users/GoogleCodeExporter/followers","following_url":"https://api.github.com/users/GoogleCodeExporter/following{/other_user}","gists_url":"https://api.github.com/users/GoogleCodeExporter/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleCodeExporter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleCodeExporter/subscriptions","organizations_url":"https://api.github.com/users/GoogleCodeExporter/orgs","repos_url":"https://api.github.com/users/GoogleCodeExporter/repos","events_url":"https://api.github.com/users/GoogleCodeExporter/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleCodeExporter/received_events","type":"User","site_admin":false},"created_at":"2015-02-23T21:44:33Z","updated_at":"2015-02-23T21:44:33Z","body":"```\nI believe this generator could also help produce the code for the bridge, \nunless I am\nmistaken and you would be able to use existing header files to deal with shared \nmemory.\n\nI am done with the parser (I think), now I am working on the generator part. \nHere is\nsome progress (I am not sure if it compiles or works yet):\n\n```\n\n-----\nOriginal comment by `igalve...@gmail.com` on 2 Dec 2009 at 1:31\n\nAttachments:\n* [ExampleAIModule.zip](https://storage.googleapis.com/google-code-attachments/bwapi/issue-142/comment-6/ExampleAIModule.zip)\n"}}