Index: /trunk/glueforge/templates/psdb/header.tt
===================================================================
--- /trunk/glueforge/templates/psdb/header.tt	(revision 4322)
+++ /trunk/glueforge/templates/psdb/header.tt	(revision 4323)
@@ -23,5 +23,7 @@
 [% INCLUDE insertfits_h.tt %]
 [% INCLUDE popfits_h.tt %]
-[% INCLUDE selectrowsfits_h.tt -%]
+[% INCLUDE selectrowsfits_h.tt %]
+[% INCLUDE metadatafromobject_h.tt %]
+[% INCLUDE objectfrommetadata_h.tt -%]
 
 /// @}
Index: /trunk/glueforge/templates/psdb/metadatafromobject_h.tt
===================================================================
--- /trunk/glueforge/templates/psdb/metadatafromobject_h.tt	(revision 4323)
+++ /trunk/glueforge/templates/psdb/metadatafromobject_h.tt	(revision 4323)
@@ -0,0 +1,10 @@
+[% USE format -%]
+[% indented = format('%-15s %-20s') -%]
+/** Convert a [% object_name %] into an equivalent psMetadata
+ *
+ * @return A psMetadata pointer or NULL on error
+ */
+
+psMetadata *[% namespace %]MetadataFromObject(
+    [% indented("$object_name", "*object") %]///< fooRow to convert into a psMetadata
+);
Index: /trunk/glueforge/templates/psdb/objectfrommetadata_h.tt
===================================================================
--- /trunk/glueforge/templates/psdb/objectfrommetadata_h.tt	(revision 4323)
+++ /trunk/glueforge/templates/psdb/objectfrommetadata_h.tt	(revision 4323)
@@ -0,0 +1,8 @@
+/** Convert a psMetadata into an equivalent fooRow
+ *
+ * @return A [% object_name %] pointer or NULL on error
+ */
+
+[% object_name %] *[% namespace %]ObjectFromMetadata(
+    psMetadata      *md                 ///< psMetadata to convert into a fooRow
+);
