function idl_format_cpp_header($header) { global $preamble, $funcs, $constants, $classes, $PREFIX, $NAME; ($f = fopen($header, 'w')) || die("cannot open {$header}"); fprintf($f, <<<EOT #ifndef incl_{$PREFIX}_{$NAME}_H_ #define incl_{$PREFIX}_{$NAME}_H_ #include "hphp/runtime/base/base-includes.h" EOT ); if (isset($preamble)) { fprintf($f, $preamble); } fprintf($f, <<<EOT namespace HPHP { /////////////////////////////////////////////////////////////////////////////// EOT ); foreach ($funcs as $func) { generateFuncCPPHeader($func, $f); } foreach ($constants as $const) { generateConstCPPHeader($const, $f); } foreach ($classes as $class) { generateClassCPPHeader($class, $f); } fprintf($f, <<<EOT /////////////////////////////////////////////////////////////////////////////// } #endif // incl_{$PREFIX}_{$NAME}_H_ EOT ); fclose($f); }
function generateMethodCPPHeader($method, $class, $f) { global $MAGIC_METHODS; fprintf($f, " public: "); generateFuncCPPHeader($method, $f, true, isset($MAGIC_METHODS[$method['name']]), $method['flags'] & IsStatic, $class); fprintf($f, " DECLARE_METHOD_INVOKE_HELPERS(%s);\n", strtolower($method['name'])); if ($method['name'] == "__call") { fprintf($f, " public: Variant doCall(Variant v_name, "); fprintf($f, "Variant v_arguments, bool fatal);\n"); } }
function generateMethodCPPHeader($method, $class, $f) { if ($method['flags'] & IsPrivate) { $vis = "private"; } else { if ($method['flags'] & IsProtected) { $vis = "protected"; } else { $vis = "public"; } } fprintf($f, " %s: ", $vis); generateFuncCPPHeader($method, $f, true, $method['name'] != "__construct" && strpos($method['name'], "__") === 0, $method['flags'] & IsStatic, $class); if ($method['name'] == "__call") { fprintf($f, " public: Variant doCall(Variant v_name, "); fprintf($f, "Variant v_arguments, bool fatal);\n"); } else { if ($method['name'] == "__get") { fprintf($f, " public: Variant doGet(Variant v_name, bool error);\n"); } } }
function generateMethodCPPHeader($method, $class, $f) { switch ($method['visibility']) { case PrivateMethod: $vis = "public"; break; case ProtectedMethod: $vis = "protected"; break; default: $vis = "public"; } fprintf($f, " %s: ", $vis); generateFuncCPPHeader($method, $f, true, $method['name'] != "__construct" && strpos($method['name'], "__") === 0, $method['static']); if ($method['name'] == "__call") { fprintf($f, " public: Variant doCall(Variant v_name, Variant v_arguments," . " bool fatal);\n"); } else { if ($method['name'] == "__get") { fprintf($f, " public: Variant doGet(Variant v_name, bool error);\n"); } } }
); if (isset($preamble)) { fprintf($f, $preamble); } fprintf($f, <<<EOT #include <runtime/base/base_includes.h> namespace HPHP { /////////////////////////////////////////////////////////////////////////////// EOT ); foreach ($funcs as $func) { generateFuncCPPHeader($func, $f); } foreach ($constants as $const) { generateConstCPPHeader($const, $f); } foreach ($classes as $class) { generateClassCPPHeader($class, $f); } fprintf($f, <<<EOT /////////////////////////////////////////////////////////////////////////////// } #endif // __EXT_{$NAME}_H__ EOT
function generateMethodCPPHeader($method, $class, $f) { if ($method['flags'] & IsPrivate) { $vis = "private"; } else { if ($method['flags'] & IsProtected) { $vis = "protected"; } else { $vis = "public"; } } fprintf($f, " %s: ", $vis); generateFuncCPPHeader($method, $f, true, $method['name'] != "__construct" && strpos($method['name'], "__") === 0, $method['flags'] & IsStatic, $class); fprintf($f, " DECLARE_METHOD_INVOKE_HELPERS(%s);\n", strtolower($method['name'])); if ($method['name'] == "__call") { fprintf($f, " public: Variant doCall(Variant v_name, "); fprintf($f, "Variant v_arguments, bool fatal);\n"); } }
function generateMethodCPPHeader($method, $class, $f) { global $MAGIC_METHODS; fprintf($f, " public: "); generateFuncCPPHeader($method, $f, true, isset($MAGIC_METHODS[$method['name']]), $method['flags'] & IsStatic, $class); }